从几年前开始使用 Telegram 开始,即使身边的人大部分都在使用微信但 Telegram 一直就是我首选的即时通讯软件,就是因为 Telegram 的整体感觉比微信更加像是一个即时通讯软件,并且 Telegram 开放的 bot api 让我一陷进去就无法自拔。

今天就简单的写一写在我记忆里面的 Telegram 中文使用者群体里面所见到的 spammer 以及反 spammer 的一些事情。

spammer 分类

截至到目前,我所见过的广告帐号主要分为以下几类

  • 色情

    • 色情频道推广
    • 色情 GIF/图片 分发机器人,带频道推广
    • 私聊问你要不要拍一些色图
  • 卖东西

    • 卖高仿鞋
  • 黑产

    • 各种涨粉
    • 个人信息售卖
    • 四件套 实体储蓄卡+身份证+手机卡+U盾(取款密码+网银登录密码 售卖(四件套解释-知乎
    • 出售科学上网工具
    • 出售各种帐号(twitter,facebook,微博)
    • 三网数据
  • 币圈

    • 拉人
    • 推荐各种币
  • 传教

    • 法轮功
    • Arch神教
  • 外语

    • 各种看不懂的语言

spammer 行为分类

  • 公开群类

    • 进群发送一些无意义的问好的消息,并且展露自己的广告iID
    • 进群不说话,但是会私聊群成员进行推广
    • 进群后发送转发的频道的消息
  • 私聊类

    • 会先了解你是不是中国人,然后假装是一个对中国很有兴趣的外国人,然后就会宣传法轮功
  • 拉群类

    • 会将你拉进一些莫名其妙的群里面,一般以币圈的群居多
  • 爆破类

    • 进群就批量发送 spam 消息,刷屏来进行爆破骚扰

spammer 等级区分

反 spam 史

这一步部分虽然美其名曰 但是这些阶段并没有什么明显的分界线,目前来看这几个方案都是并存的状态,这几个方案及其项目目前的活跃程度不一,但在笔者有限的视野里面也的确有在运行。

第一阶段 - 手动处理

一开始也是处理 spammer 比较原始的方式,就是利用 telegram 的比较完善的群组管理的功能进行广告内容的清理,同时因为能够清除成员发送的所有消息,所以其实效果还不错(在有管理员在线的情况下)

第二阶段 - Bot 群管

代表:GroupButler

第二阶段就进入了 bot 管理群组的阶段,依赖于 telegram 强大开放的 bot api,有大佬构造出了一个通用的群组管理 bot,群管 bot 的功能高低不一,取决于开发者的水平以及他的开发意愿,总的来说的确有一定的抑制 spammer 的炸群活动,对于传播广告的 spammer 还是没有很到位的解决方法。

第三阶段 - 公共黑名单服务

代表:CNBL / CNBLR / SCP-079

第三阶段出现了公共广告黑名单服务,这些服务由开发者直接提供 bot 服务,并且广告的判定权利掌握在项目管理者以及群内管理员所有。

这些公共黑名单往往都会依托于其具有一定规模的用户量来完善黑名单,从而使得抗 spam 变得更主动,只要有一个 spammer 在一个群内被识别了,有这些 bot 在的群里面也会被联合踢出。

但是因为这些公共黑名单服务是由人来进行手动操作,所以也会有误操作的可能性,还记得在几年前我就被误操作了一次,所以我就被大量的群踢掉了(QAQ)

被踢了QAQ

第四阶段 - 百花齐放

第四阶段就是各种机器人百花齐放的时代,有答题验证的、有发表情包验证的还有通过另外的验证手段验证的。

目前采用的反 spam 策略

目前我管理的群有两种验证方式,两个 bot 都是我自己写的。

答题

因为其中一个群是属于一个播客的听友群,所以采取的验证策略是提问播客相关的问题,效果拔群.jpg

效果拔群.jpg

通过外部链接获取验证码

第二现场 目前的入群验证是由我开发的,验证方式要沿用之前通过外部链接获取的方式。

目前验证机制是这样:

新人进群 --> bot 计算 url 并且嵌入 url 的 hash 中 --> 反馈给用户 --> 用户访问外部链接执行 js 获取验证码 --> 到群组中发送验证码 --> 验证完成

由于url的计算是有当前时间戳作为变量,所以其实不是很需要担心被破解

黑名单主动处理

因为我的 bot 默认会在欢迎消息中打出新进群用户的昵称,所以我必须要在欢迎之前先过滤一次用户名,来保证不帮助他卖广告。