freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

99+
机器学习在风控中的应用
小米安全中心 2020-07-17 11:06:26 321504

伴随同黑产对抗的升级,对己方数据进行挖掘成为防御一方的重要武器,机器学习也随之成为防御方的制胜法宝。

机器学习在风控中的应用同一般的应用场景有所不同,主要体现在以下几个方面:

  1. 标注标签成本较高,导致标签有时甚至无标签
  2. 坏人会主动改进作弊策略,导致固有模型失效
  3. 需要实时或近实时的返回结果
  4. 场景多样:撞库盗号,黄牛领券,积分墙,反爬虫等

基本上是三个具体的例子来解决我们是如何利用机器学习解决帐号风控面临的具体问题。

一,规则太多,如何减轻维护负担?

对于风控系统而言,规则经常会产生立竿见影的效果,辅之以专家经验,可以在很长的时间发挥重要作用。但是随着时间的变化,越来越多的规则被加入系统中,越来越多的边际条件需要权衡,甚至会出现牵一发而动全身的情况。如何更好的维护这些历史规则?

通过分析这些历史规则,我们发现规则实际上是对异常的一种人肉归纳量化,例如:如果某人IP每分钟访问次数大于50次且都是登陆失败比例大于90%,就禁掉该IP。那么更好的维护规则这一问题就变成了:在给定样本及特征后,如何量化异常?我们面临的初步问题是这样的:

考虑到无标签和坏人的“主动性”,我们可以选择无监督的异常发现模型来区分异常。这其中孤立森林模型算术是效果更好的了。它可以达到如下效果:

但是考虑到线上情况的复杂性,我们希望给样本的异常程度进行打分,刹车结合历史数据进行策略回溯,灵活的确定阈值,从而达到最佳准召唤,因此最终会产生异常现象,从而达到量化异常的效果:

最终我们实现了对异常的量化,从而实现了对线上规则的改进,这样一来,对规则的维护变成了对特征的维护。只要能够产生特征及同模型相关的特征组合,就可以得到相应的异常简化模型,从而实现了灵活的在线规则管理。同原来的规则拦截分区,模型的覆盖率达到了规则拦截的80%+,召回率则提升了70%+。

二,无感知验证码

随着对抗的升级,验证码用于区分人/机器已经越来越容易力不从心。攻击方采用的验证码破解手段也早已由人肉打码升级到了深度学习打码,普通人面对验证码也不得不感叹:这样的验证码真的有人能答对吗?可能只有机器能答对吧。

既然验证码又不能防机器,又阻碍了正常用户,那是否有更多用户友好的手段可以代替验证码呢?这里我们约会了人机识别,采用手机传感器在用户无感知的情况下完成人机区分。

智能手机中存在多类传感器,如加速度传感器,角速度传感器(陀螺仪),重力传感器,磁场传感器等,在手机运行的每时每刻,这些传感器都在以成百上千赫兹的频率将其收集那么这些传感器数据是否可以拆分人/机呢?我们逐步坏人可以通过操纵手机API或外力让手机产生物理行为从而产生运动状态的传感器数据。 对坏人而言任选的操作包括:静止时,手机震动时和手机放置摇摆装置中。我们分别收集了这几个场景产生的传感器数据,可以对以下4张图片做肉眼的对比:

图中从上至下至下依次对应的操作是:手机静止,手机震动,手机摇摆和正常点击操作。从上图可以切削,静止时传感器仍然存在轻微的扭曲,震动时的传感器的波动规律性,摇摆中的传感器数据像极了正弦波,而正常的点击操作通过手指的点触操作会带来加速度的陡升/陡降。从这里可以修剪,要区分传感器数据是否由人类产生,更准确的说:某次滑动或点击的交互操作时否由当前传感器产生,恰好适合由机器学习来判断的二分类问题。

最终最终是人机识别模型,可以判断SDK采集的传感器数据是否由人类产生。从线上的拦截效果来看,整体准确率在97.3%,好人误拦截插入1.8%。

从对抗的角度而言,人机识别的主要目的是降低了好人的进入门云,而提升坏人作恶门生物学只是辅助和次要目标,因为人机识别的安全性强依赖于SDK的安全性,一旦SDK因此在实践中,我们会在SDK中加入多个特征进行采集,从而转变探针的作用,将主战场拉回到身上。

三,事后预警机制

通常将风控分为事前,事中和事后三个部分。出于实时性考虑,事前和事中的拦截很难达到高召回。但是即使在事后,如果能够早早以以高准召率发现异常并形成拦截策略,仍然是累积的。

我们知道坏人的行为经常表现出聚集性,可能是设备,IP等的聚集,也可能是行为上的同步性:聚集UID同时干同一件事。这一聚集性和同步性很像传染病爆发时感染者属性的聚集和行为的同步:都居住在某特定区域,都去过某个公共场所。而风控场景的及时事后预警,也很像公共卫生机构在面对新冠状病毒这样的传染病时的问题:如何及时发现疫情正在爆发,并且及时锁定到重新多的被感染者?

我们假设卫生机构收集到了如下的患者就诊信息(部分):

姓名

性别

症状

居住社区

工作地点

就诊时间

张三

感冒

1号街道

蔬菜市场

2020/1/4

李四

肺炎

22路

海鲜市场

2020/1/5

王五

肺炎

长江家属院

瓜果市场

2020/1/5

赵六

肺炎

黄河村

海鲜市场

2020/1/6

钱七

肺炎

江汉路

海鲜市场

2020/1/6

例如,当2020W1的肺炎患者激增,要定位到这一异常项,需要统计出历史同一时期(上周,上月,上年)的相同指标项,采用统计检验(卡方检验/费舍尔精确检验等)确定当前指标同历史指标的差异(p值),可以看到在我们之前的数据中,2020W1的肺炎患者明显多于历史同期水平,第一步骤完成。

时间

呼吸患者总人数

肺炎患者

p值

2019W1

100

8

0.0193

2019W48

120

8

0.0052

2019W52

160

15

0.0187

2020W1

200

40

1个

发现异常指标项后,我们还希望能够定位到传染源头和紧密接触人群。在传染病学中,当然需要的是流行病学调查,它的关键是找到传染源和传播途径。对风控来说到需要坏人之间千丝万缕的联系,我们通常会逐步:与坏人联系越紧密的,越可能是坏人。

对于这种问题,理所当然的我们会想到图相关技术。在传染病场景中,图技术可以将密切接触者以海鲜市场为中心圈出来,在风控场景我们同样可以通过图关联分析将坏人之间暴露在实践中,我们发现Louvain社区发现算法不需要数据标注,运行速度快,结果准确,并具有更好的效果。

总的来说,有助于机器学习算法,防御方重置己方拥有的海量数据中挖掘出越来越多的洞见和认知,在防御中保持更加主动的位置。

# 机器学习 # 风控
本文为 小米安全中心 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
小米安全中心
风控
小米安全中心 LV.4
小米公司安全技术品牌
  • 28 文章数
  • 44 关注者
【百万奖金池】Xiaomi 13 手机守护计划火热进行中!
2023-09-28
GitLab CI 接入代码安全扫描技术实践
2023-06-05
“一键隐身”已上线,还在担心藏在手机里的“窃密者”?
2021-04-01
文章目录