腾讯防刷负责人:基于用户画像大数据的电商防刷架构

做者|颜国平,腾讯云-天御系统研发负责人。一直负责腾讯自有验证码、业务安全、防刷、帐号安全等研发工做。内部支持的产品(游戏、电商、腾讯投资的O2O企业)很是普遍。在业务安全领域项目经验丰富,而且具有深度学习、大数据架构搭建等实战经验。python

1、背景介绍

最近1~2年电商行业飞速发展,各类创业公司犹如雨后春笋大量涌现,商家经过各类活动形式的补贴来获取用户、培养用户的消费习惯。c++

但任何一件事情都具备两面性,高额的补贴、优惠同时了也催生了“羊毛党”。算法

“羊毛党”的行为距离欺诈只有一步之遥,他们的存在严重破环了活动的目的,侵占了活动的资源,使得正常的用户享受不到活动的直接好处。后端

今天主要分享下腾讯本身是如何经过大数据、用户画像、建模来防止被刷、恶意撞库的。安全

2、黑产现状介绍

“羊毛党”通常先利用自动机注册大量的目标网站的帐号,当目标网站搞促销、优惠等活动的时候,利用这些帐号参与活动刷取较多的优惠,最后经过淘宝等电商平台转卖获益。服务器

1、羊毛党分工微信

他们内部有着明确的分工,造成了几大团伙,全国在20万人左右:网络

  1. 软件制做团伙:专门制做各类自动、半自动的黑产工具,好比注册自动机、刷单自动机等;他们主要靠出售各类黑产工具、提供升级服务等形式来获利。架构

  2. 短信代接平台:实现手机短信的自动收发,其实一些平台亦正亦邪,不但提供给正常的商家使用,一些黑产也会购买相关的服务。框架

  3. 帐号出售团伙:他们主要是大量注册各类帐号,经过转卖帐号来获利;该团伙与刷单团伙每每属于同一团伙。

  4. 刷单团伙:到各类电商平台刷单,获取优惠,而且经过第三方的电商平台出售优惠,实现套现。

大数据架构

2、“羊毛党”从业特色

这些黑产团队,有三个特色:

  1. 专业化:专业团队、人员、机器来作。

  2. 团伙化:黑产已经造成必定规模的团伙,并且分工明确;从刷单软件制做、短信代收发平台、电商刷单到变卖套现等环节,已经造成完整的刷单团伙。

  3. 地域化:黑产刷单团伙基本分布在沿海的一些经济发达城市,好比,北京、上海、广东等城市,这或许跟发达城市更加容易接触到新事物、新观念有关。

大数据架构

3、对抗刷单的思路

对抗刷单,通常来说主要从三个环节入手:

  1. 注册环节:识别虚假注册、减小“羊毛党”可以使用的帐号量。在注册环节识别虚假注册的帐号,并进行拦截和打击。

  2. 登陆场景:提升虚假帐号登陆门槛,从而减小可以到达活动环节的虚假帐号量。好比,登陆环节经过验证码、短信验证码等手段来下降自动机的登陆效率,从而达到减小虚假帐号登陆量、减轻活动现场安全压力的目的。

  3. 活动环节:这个是防刷单对抗的主战场,也是减小“羊毛党”获利的直接战场;这里的对抗措施,通常有两个方面:

    1)经过验证码(短信、语音)下降黑产刷单的效率。

    2)大幅度下降异常帐号的优惠力度。

3、腾讯内部防刷架构

1、腾讯内部防刷的架构图

大数据架构

2、模块详细介绍

一、风险学习引擎

风险学习引擎:效率问题。因为主要的工做都是线下进行,因此线上系统不存在学习的效率问题。线上采用的都是C++实现的DBScan等针对大数据的快速聚类算法,基本不用考虑性能问题。

风险学习引擎:采用了黑/白双分类器风险断定机制。之因此采用黑/白双分类器的缘由就在于减小对正经常使用户的误伤。

例如,某个IP是恶意的IP,那么该IP上可能会有一些正常的用户,好比大网关IP。

再好比,黑产经过ADSL拨号上网,那么就会形成恶意与正经常使用户共用一个IP的状况。

黑分类器:根据特征、机器学习算法、规则/经验模型,来判断本次请求异常的几率。

白分类器:判断属于正常请求的几率。

大数据架构

二、矩阵式逻辑框架

咱们以黑分类器为例来剖析下分类器的整个逻辑框架。

总的来说咱们采用了矩阵式的逻辑框架,最开始的黑分类器咱们也是一把抓,随意的创建一个个针对黑产的检测规则、模型。

结果发现不是这个逻辑漏过了,而是那个逻辑误伤量大,要对那一类的帐号增强安全打击力度,改动起来也很是麻烦。

所以咱们就设计了这个一个矩阵式的框架来解决上述问题。

大数据架构

矩阵的横向采用了Adaboost方法,该方法是一种迭代算法,其核心思想是针对同一个训练集训练不一样的弱分类器,而后把这些分类器集合起来,构成一个最终的分类器。

而咱们这里每个弱分类器都只能解决一种账号类型的安全风险判断,集中起来才能解决全部帐户的风险检测。

那么在工程实践上带来三个好处:

  1. 便于实现轻重分离,好比某平台虚假帐号集中在邮箱帐号,策略就能够加大对邮箱帐号的打击力度,影响范围也局限在邮箱账号,而不是该平台全部的帐号。

  2. 减小模型训练的难度,模型训练最大的难度在于样本的均衡性问题,拆分红子问题,就不须要考虑不一样帐号类型之间的数据配比、均衡性问题,大大下降了模型训练时正负样本比率的问题。

  3. 逻辑的健壮性,某一个分类器的训练出现了问题,受影响的范围不至于扩展到全局。

矩阵纵向采用了Bagging方法,该方法是一种用来提升学习算法准确度的方法,该方法在同一个训练集合上构造预测函数系列,而后以必定的方法将他们组合成一个预测函数,从而来提升预测结果的准确性。

上面讲的部分东西,理解起来会比较艰涩,这里你们先理解框架,后续再理解实现细节。

4、腾讯大数据收集纬度

大数据一直在安全对抗领域发挥着重要的做用,从咱们的对抗经验来看,大数据不只仅是数据规模很大,并且还包括两个方面:

  1. 数据广度:要有丰富的数据类型。好比,不只仅要有社交领域的数据、还要有游戏、支付、自媒体等领域的数据,这样就提供了一个广阔的视野让咱们来看待黑产的行为特色。

  2. 数据深度:黑产的对抗。咱们一直强调纵深防护,咱们不只仅要有注册数据,还要有登陆,以及帐号的使用的数据,这样咱们才能更好的识别恶意。

因此想要作风控和大数据的团队,必定要注意在本身的产品上多埋点,拿到足够多的数据,先沉淀下来。

5、腾讯大数据处理平台-魔方

咱们的团队研发了一个叫魔方的大数据处理和分析的平台,底层咱们集成了MySQL、MongoDB,Spark、Hadoop等技术,在用户层面咱们只须要写一些简单的SQL语句、完成一些配置就能够实现例行分析。

这里咱们收集了社交、电商、支付、游戏等场景的数据,针对这些数据咱们创建一些模型,发现哪些是恶意的数据,而且将数据沉淀下来。

沉淀下来的对安全有意义的数据,一方面就存储在魔方平台上,供线下审计作模型使用;另外一方面会作成实时的服务,提供给线上的系统查询使用。

1、腾讯用户画像沉淀方法

画像,本质上就是给帐号、设备等打标签。

用户画像 = 打标签

咱们这里主要从安全的角度出发来打标签,好比IP画像,咱们会标注IP是否是代理IP,这些对咱们作策略是有帮助的。

以QQ的画像为例,好比,一个QQ只登陆IM、不登陆其余腾讯的业务、不聊天、频繁的加好友、被好友删除、QQ空间要么没开通、要么开通了QQ空间可是评论多但回复少,这种号码咱们通常会标注QQ养号(***、营销),相似的咱们也会给QQ打上其余标签。

标签的类别和明细,须要作风控的人本身去设定,好比:地理位置,按省份标记。性别,安男女标记。其余细致规则以此规律本身去设定。

咱们看看腾讯的IP画像,沉淀的逻辑以下图:

大数据架构

通常的业务都有针对IP的频率、次数限制的策略,那么黑产为了对抗,必然会大量采用代理IP来绕过限制。

既然代理IP的识别如此重要,那咱们就以代理IP为例来谈下腾讯识别代理IP的过程。

识别一个IP是否是代理IP,技术不外乎就是以下四种:

  1. 反向探测技术:扫描IP是否是开通了80,8080等代理服务器常常开通的端口,显然一个普通的用户IP不太可能开通如上的端口。

  2. HTTP头部的X_Forwarded_For:开通了HTTP代理的IP能够经过此法来识别是否是代理IP;若是带有XFF信息,该IP是代理IP无疑。

  3. Keep-alive报文:若是带有Proxy-Connection的Keep-alive报文,该IP毫无疑问是代理IP。

  4. 查看IP上端口:若是一个IP有的端口大于10000,那么该IP大多也存在问题,普通的家庭IP开这么大的端口几乎是不可能的。

以上代理IP检测的方法几乎都是公开的,可是盲目去扫描全网的IP,被拦截不说,效率也是一个很大的问题。

所以,咱们的除了利用网络爬虫爬取代理IP外,还利用以下办法来加快代理IP的收集:经过业务建模,收集恶意IP(黑产使用代理IP的可能性比较大)而后再经过协议扫描的方式来判断这些IP是否是代理IP。天天腾讯都能发现千万级别的恶意IP,其中大部分仍是代理IP。

2、腾讯用户画像类别概览

大数据架构

3、防护逻辑

大数据架构

实时系统使用C/C++开发实现,全部的数据经过共享内存的方式进行存储,相比其余的系统,安全系统更有他本身特殊的状况,所以这里咱们可使用“有损”的思路来实现,大大下降了开发成本和难度。

数据一致性,多台机器,使用共享内存,如何保障数据一致性?

其实,安全策略不须要作到强数据一致性。

从安全自己的角度看,风险自己就是一个几率值,不肯定,因此有一点数据不一致,不影响全局。

可是安全系统也有本身的特色,安全系统通常突发流量比较大,咱们这里就须要设置各类应急开关,并且须要微信号、短信等方式方便快速切换,避免将影响扩散到后端系统。

4、接入系统

大数据架构

大数据架构

适应的场景包括:

  • 电商o2o刷单、刷券、刷红包

  • 防止虚假帐号注册

  • 防止用户名、密码被撞库

  • 防止恶意登陆

Q&A

Q:风险学习引擎是自研的,仍是使用的开源库?

风险学习引擎包括两个部分,线上和线下两部分:

  • 线上:本身利用c/c++来实现。

  • 线下:涉及利用python开源库来作的,主要是一些通用算法的训练和调优。

Q:请问魔方平台中用到的MongDB是否是通过改造?由于MongDB一直不被看好,出现问题也比较多。

咱们作了部分改造,主要是DB的引擎方面。

Q:请问黑分类器和白分类器有什么区别?

白分类器主要用来识别正经常使用户,黑分类器识别虚假用户。

Q:风险几率的权重指标是如何考虑的?

先经过正负样本进行训练,而且作参数显著性检查;而后,人工会抽查一些参数的权重,看看跟经验是否相符。

Q:安全跟风控职责如何区分呢?

相比安全,风控的外延更丰富,更注重宏观全局;针对一个公司来说,风控是包括安全、法务、公关、媒体、客服等在内一整套应急处理预案。

Q:若是识别错了,误伤了正经常使用户会形成什么后果么?好比影响单次操做仍是会一直失败。

若是识别错了正经常使用户不会被误伤,可是会致使体验多加了一个环节,如弹出验证码、或者人工客服核对等。

相关文章
相关标签/搜索