美文网首页
打造规则/AI防御系统

打造规则/AI防御系统

作者: qianlnk | 来源:发表于2020-07-04 11:35 被阅读0次

余生很短,如果要找个人相爱相杀的话,我想这个人就是黑产或者羊毛党。

业务生产线,是个没有灵魂没有思想的系统,来者不拒。而做为系统安全开发,没有黑产的攻击,那么工作是无趣的。哪里有利可图,哪里就有黑产。

画上一个不算全面的架构图:


规则防御系统架构

业务系统:如注册、登录、评论系统、直播关注等
风控系统:根据业务数据或者埋点信息,如用户ID,请求IP、设备ID等来判断当前用户或者事件是否有风险。
管理系统:风控系统的配置管理
分析系统:包括日志系统、AI模型、离线分析。

本系统采用两种防御技术,规则防御、模型防御。规则比较好理解、也比较灵活,但是容易被黑产猜中绕过。比如我们对IP限制,那么黑产就使用代理IP,比如我们针对设备做规则,那么黑产就伪装设备ID等。所以在实际业务中我们会结合多种规则对一个事件进行综合判断。甚至引入用户行为模型来进行防御。

微博、抖音等评论、点赞关注很火爆,假如我们以评论业务为例设置一些规则:

  • 单IP5分钟内评论超过100条
  • 单设备5分钟内评论超过10条
  • 账号注册时间小于1天
  • 同一个IP段评论次数
  • 是否风险IP
  • 是否黑卡
  • 等等

实际业务中我们可能加上十几二十种规则,这个都很常见。

那么这些规则怎么生效呢?

1、数据准备
一个用户评论后,评论系统一般会送过来的信息包括:用户ID、设备ID、IP、评论内容、评论时间、评论对象(比如短视频GCID)、客户端版本等等,除了这些信息对我们的安全防御判断还是不够的,所以我们设计了系统函数,可以通过配置去特定的业务方取对应的数据,比如我们可以去账号网关取用户的手机号、邮箱、昵称、注册时间、会员信息等,可以根据IP去IP库去取地址、经纬度等信息。

2、指标统计

比如针对规则单IP5分钟内评论超过100条,我们可以采用redis/ssdb做统计

假设我们的事件名为comment,规则名为ip_per_5min

那么这条规则的统计可以使用comment_ip_per_5min_<ip地址>做为key,用incr原子操作来对本规则IP进行统计。

如果系统压力比较大可以考虑采用Flink流计算做准实时统计模块,这样可以大大提高系统性能。

这样的话就多了一条路线,图中黄色框框部分。

优化架构

3、规则判断

规则可以分为属性判断和统计指标阈值判断。

3.1、属性判断

比如上面说的是否风险IP、是否黑卡、用户轨迹等

3.2、指标阈值判断

比如上面提到的单IP5分钟内评论超过100条、单设备5分钟内评论超过10条。

4、结果输出

假如命中规则A单IP5分钟内评论超过100条得分50,命中规则B账号注册时间小于1天得分20

那么A & B计算方式:

score = 100 - (100-A)*(100-B)/ 100

同理 命中三条规则 A & B & C 的计算方式就是:

score =(A & B)& C

代入公式:

score = 100 - 50*80/100 = 60

假如 [0,60)结果为PASS, [60,80)结果为REVIEW,[80,100]结果为BLOCK

那么这条用户评论等分60分,结果为REVIEW,业务端需要出验证码。

5、模型训练

以上面介绍的规则防御结果为训练参考,对防御日志进行数据处理,维度提取等操作。

维度:
比如1小时内用户轨迹(根据IP计算用户运动距离):100km
5分钟内IP访问次数:98
5分钟内设备访问次数: 34
手机号是黑卡: 1
IP是风险IP: 0

规则防御结果是:BLOCK

这样就形成一条可以训练模型的数据:

100 98 34 1 0 BLOCK

当然实际维度需要线上的数据支撑调整,我们采用ANN(人工神经网络)进行模型训练,这个网上有很多基础知识,这边不再展开。

6、团伙关系图

比如我们选择常见属性:用户ID、IP、设备ID,那么每次访问都有这些信息。我们通过采集线上日志使用echarts画了一下关系图:


团伙关系图

这个图可以比较直观的反应出团伙关系,零星的点表示正常的用户访问,而中间一团,可以很明显的看出这么多用户使用的是同一个IP。

7、多事件联动

比如,黑产有很多手机号,那么他会通过手机号注册来平台注册很多账号,然后发表评论、给评论点赞让评论置顶,然后修改用户昵称(比如广告信息)。这一系列操作乍一看都是正常的,但是联合起来呢?

用户注册->评论->刷赞置顶->修改昵称

这一波骚操作,当时我就给了满分。这会儿我们从单个事件来看这些用户行为都是再正常不过的们,但是结合起来就很犯难。

防御规则怎么设置?比如

  • 注册时间小于n天评论数在单位时间内不能超过m条
  • 几个月内没有登录在单位时间内不能超过m条
  • 短时间内不同事件使用不通IP
    等等

当然对于用户内容(UGC)比如评论、昵称,我们还是要审核的,下次分享内容审核系统架构。

8、日志分析

这是很重要的一个环节,比如你线上业务系统被刷了,而且你的规则都被绕过,那么你就需要根据防御日志去分析这批黑产的特征,定位到问题后添加规则,防御系统已放过的黑产账号是否封号等操作。

最后,在这没有硝烟的战场上,你攻我防,我防住的是责任,你攻入的可能是监狱。法网恢恢,疏而不漏。有那技术干嘛选择可能的牢饭?

相关文章

网友评论

      本文标题:打造规则/AI防御系统

      本文链接:https://www.haomeiwen.com/subject/vzcgxktx.html