美女头像这么多,他们用大数据告诉你哪个是骗子
编者按:作为拥有微信和qq等社交应用的腾讯,用户数据是其非常重要的资源,同时也是腾讯安全重点关注的领域,连CEO马化腾都一直在讲,未来的安全是大数据安全。
腾讯云安全总监周斌(Blue)在2017腾讯安全技术国际峰会中,就以“大数据下的黑产画像和反欺诈能力建设”为主题,介绍了在过去一年多的时间里面,腾讯怎样运用大数据的能力更快、更好去发现安全威胁,如何运用大数据的算法揪出异常账户。下面为周斌在现场的演讲,雷锋网 (公众号:雷锋网) 编辑在不改变原意的基础上做了适当的删减和整理。
周斌(Blue): 腾讯云安全总监“大数据下的黑产画像和反欺诈能力建设”
在正式开始之前,我想先跟大家看一张老照片。
这是一张黑白照片,可能稍微有点模糊,各位是不是觉得有些眼熟?这是在广西丛林中的一张照片,大家可以看到,这个照片其实有两张图,左边这张图是帐篷,右边是账篷的内景。
这是我们前几年通过一些技术的手段,包括一些线下合作,打击到的黑产团伙。这个团伙在丛林里面搭起了一个迷彩的帐篷,架起了基战和发电机,大概有几十台笔记本在专门做黑产,主要就是羊毛党,从事验证码的对抗工作。
根据我们统计到的数据,目前中国从事黑产的人已经超过了100万,市面上流传的身份证至少超过1000万张。 整个黑产产值年过千亿,有大概数百亿条的恶意链接,存在于黑产的手里。
在这种情况下如何做对抗,腾讯也做了初步的研讨。
我今天的内容大概会分成两块来讲,一块是我们看到的,除了这个团伙以外,背后还在做的一些事情。另外一块,是腾讯通过算法和模型,在对抗上面做的一些动作。
回到这个山林中的迷彩帐篷来看,这样一个完整的产业链已经突破了原来的认知,他们已经变成了什么样的?
在这个帐篷里面他们会做什么事情?做勒索,薅羊毛,做更多的事情,面向O2O,面向互联网公司,面向银行,去做大量、更多获益的动作。
为什么会有这种动作,这与今天中国线下黑产产业的蓬勃发展是有关系的。根据我们现在总结的数据,以刚刚迷彩帐篷为例,针对国内网站的攻击基本上是200块钱一次,600块钱一天,这足以击垮中国绝大多数的网站。
这其实仅仅只是开始,他们手上掌握了大量的资源,接下来还会有更多的变化。
根据我们现在统计看到的情况,2016年全年平均每5个小时就会有一起由于黑产掌握的资源所有发生的数据泄露案例,除了攻击以外,大部分是拖库和撞库。
对方拿到资源以后,主要是针对主流的公司,除去刚刚提到攻击,背后的动作我们可以看一看,这是我拿到的一个截图。
刚刚我们看到的团伙是黑白图片,这里换成了彩色图片。
右上角的猫池,这个设备现在在华强北可以买到,左边这些图我会再做一些延伸,左边是控制端。
第一个图看上去,可能大家会觉得很眼熟,这个很像手机的众测平台,但实际上不是,是手机破解的平台,专门用来破解手机的短信。 第二和第三张图是猫池的控制终端,通过一排电脑集中去控制我们所有的猫池设备,去对相应的短信进行连接。下面的第一张图是所有这种设备卡存放的系统,最后两张图也是跟猫池相关的。
这是一个完整的产业链,刚刚我只是描述了其中的一个过程。从黑产来看,其已经形成了一个完整分工协作、高度产业化的链条,我把它分成了三个环节。上游、中游和下游。
上游是软件开发的环节,软件开发环节有高速验证码的平台,有手机卡的注册、售卖渠道、注册商以及相应微片的提供商。在中游,有专门的团队去提供批量的注册,恶意账户等过程,最后还可以进行相应号码分发的流程。在下游,所有获利的环节,包括像优惠券的获取,新手的任务,超值商品的秒杀以及活动、奖励等行为,这一切其实都在变化,这些变化是因为技术的进步,是因为整个产业的进步,更是因为对手也在采用新的思路。
从腾讯来讲,刚刚我其实与一位同事做了一些交流,传统的对抗情况下,我们多采用规则的方式去进行。但走到今天,传统的规则已经不能够适应所有的场景,所以我们在算法模型上面做了一些探讨和应用。
算法和模型作为机器学习是基础,在安全领域,我们在过往在场景的应用当中也碰到了很多坑,最开始的时候,我们其实基础的出发点是希望能够用机器学习的模型来取代传统专家规则的应用。
大家可以看到右边上面的图,右边上面我画了一个图,他有两个部分,下半部分是基于专家模型的应用,传统是我们用安全专家来生成定义的规则,我们把规则引入到引擎当中,进入到线网去进行比对、拦截。在这个基础上,我刚刚讲过我们第一步最开始碰到的,是希望把这些规则能够通过机器学习去做进一步的升级,在这个阶段我们做的工作是把这些专家规则生成的流程和具体的规则,由我们的算法工程师依据特征工程的方式来进行特征的筛选,然后我们把这些特征的筛选引入到机器学习的引擎当中,去进行异常的识别并进行拦截。
但是这个地方做完以后,我们碰到了很多的坑,一个最大的问题是,由于攻击方法是多样的,他有无限种可能,基于规则的这种学习,其实很难去覆盖到所有的环节里面,而且更大的问题是来自于我们缺乏天然的应用样品,也没有办法较好地学习,也直接导致了整个模型设计上的困难。
所以我们会想到,用更多深度学习的办法。下面我列了一个我们看到的方法,常规的像异常检测,消息的识别,以及比如像用的最多的推荐,会在不同的维度上用到不同的算法,像异常识别这里,机器学到更多的,像有监督无监督的办法都会去利用,在误差和漏洞上面都会比较高,最终输出的无非是分类跟解释,但是由于所有多样性的变化,导致整体的效果,单独应用效果并不好,垃圾箱的检测也是一样的,主要是基于有监督学习的算法,有监督学习的算法准确率高,但是覆盖率依然很差,最终分类的结果在多样化的情况下,整体的效果并不是特别好。最底下那个是我列出来的大概参考,这不是安全里面更多的内容,主要是用在推荐的场景,主要也是有监督的学习算法。所以基于这些坑,我们就想到,最终要解决安全对抗和黑产多样的手段化,不能依赖于单纯的算法,而是要多个维度解决框架的问题,需要基于腾讯现在的海量用户。
现在腾讯的社交网络每个月有8亿左右的月活动数据,我们需要依据这个庞大的数据集,去挖掘多维度的数据和模型来进行学习。所以基于刚刚的这个思路,我们把数据的模型抽象成了四个大块。
第一大块是社交的大数据,我们会把社交的这种社交关系、内容,以及业务各种正常的请求归到数据维度上。
第二块是在样品和标签上面,因为刚刚讲过要有机器学习,所以一定要样品跟标签。
第三块来讲,机器学习里大家都会提到一个场景,有监督学习、无监督学习或叫半监督学习,这三种不同场景学习的时候,没有哪一种是可以一成不变的,换句话说,一定是多种去结合的,所以所有的场景当中,我们一定是需要这种标签和样本来进行汇总的。这个样本和标签,我们会在中间把样本和标签纳入到无监督和监督学习当中去,同时也会有算法。
第四块是根据特征,包括功能画像、批量团伙以及历史黑数据,最后根据模型进行精准预测和主动预警。我这里提了一个主要的作用,框架,最终我们把这个框架落地到三个角度,账号、内容以及风险管理,在这三个维度上面去进行落地。
我们首先讲账号,账号是万恶之源,所有一切的问题其实都是来自于账号,因为如果没有登陆账号,其实能做的无非就是传统的网络安全中间的内容,包括有漏洞,DDoS攻击,一旦有账号,里面能做的或者能获益的点就更多了。
在主机、终端、业务网络等多个维度上,因为有账号所以有更多可利用的空间,会发展出入侵、木马、恶意注册登陆等等,都是一些主要的入口。单独的这种模型已经无法识别里面的恶意,因为恶意的操控人五花八门,他的目的各异,也没有较强的规律跟统计的特性,最终是需要通过把整个恶意行为纳入监测系统,形成各种恶意的感知和模型样本进行预防和防控。
我们基于账号设计了一个框架,这是一个批量的恶意注册账号的识别模型,这个核心主要是通过全量社交网络的分析,我们设计了一个叫SybiRank的算法,主要是依据图挖掘合成的,核心是进行用户分类,对不同的类别进行打分,最后输出一个静态的种子用户,通过在流水当中机器进行学习,进行自动的分类和识别,来识别出恶意、可疑和温和的用户,最终根据不同的数据来进行应用。
这种模式其实结合无监督、有监督跟半监督结成的闭环,整个流程中比较突出的挑战不是来自于算法本身的设计,而是说算法要在海量的数据当中如何跑。
我刚刚提到目前仅以QQ为例,每个月有8亿左右的月活账号,这会带来整个算法上非常大的挑战。因为有这8亿数据,所以我们会设计出大的图挖掘的系统,我们根据这个算法设计完成以后,大概形成一个图,有几十亿个顶点,大概有数百亿条双算编,一天有几千亿次的规模,仅以我们单一的一个业务场景为例,大概每天上来,由于两个人社交关系之间的相似性,我们一个单一入口上来的场景,大概一天会匹配到超过100亿条的双向边,目前一天有几亿,这会导致传统的平台很难处理这样的模型。
这也是现在非常大的一个门槛,正是由于这种社交关系链实体之间彼此关联,依赖性强的原则,传统的几个分布式的系统已经很难去处理,我们需要一个更高速的系统,所以我们搭建了围绕顶点流水化磁盘图计算的方法,来搭建了一个扩容性很高的系统,目前的情况下我们使用一台服务器大概需要差不多120个小时左右,可以把我们现在权量的关系全部跑一遍。如果要对用户做完整的标记评分,大概需要62个小时完成。
由于这个算法的计算,我们会进行大盘数据的分析,最后我们会输出一个结果就会看到,由于算法计算完以后,会看到不同的群体,其实会有相似的这种系统驱动性,但是在这中间就会发现很多不一样的点出来。大家其实看到,这个就是依据于算法跑出来的结果,这个结果里面其实可以看到绝大多数的点都是相同的,但是一定会出现不一样的群体。这些不一样的群体就是我们中间能够发现的高可疑的状态。最终我们把这些可疑的状态纳入到线网当中,去进行一个快速识别时就可以发现大量的疑似恶意的行为。
右边我列了两种恶意的行为,上面是跟内容相关,下面大家看上去好像没什么问题,如果熟悉黑产行业的,各位可能就会知道,右下就是色情引流,用美女的头像去吸引点击,实际上本身的账号就是有非常严重的问题,但从传统的规则匹配或行为匹配上没有任何的问题,这只能在大盘里通过社交关系和单个用户的打分来找出不一样的群体。
这个是在账号这一层做的一些动作,在账号维度之后我们会进入到第二层,也就是说构建第二层段内容的模型。我们在第二层内容的模型一共四层,最底层是数据层,构建画像、信用、信息、种子库这样的基础系统。在算法这一层,包括像文本的识别,像Boosting的算法入到基础的算法库。我们在逻辑处理这一层,可能大家都很了解,像风险识别、子类分析,都有不同这样的维度。最后我们会在接口层上输出不同维度的产品。
我们可以介绍一下这块做的工作。分两部分,一部分是存量,一部分是新增。
我先从存量讲起,对所有存量的数据我们会从三块去做,业务层其实是存量的数据,第二层做了一个无监督的学习,无监督学习这里主要是用Boosting的方法去做,我们先生成了一个词类的字典,然后生成变换举证,去生成小类的表格,然后用算法对整个词生成多套变换矩阵最终进行排序,目标是进行参数判断,最后进入一个打击策略,也就是我们叫做处理的阶段。这个过程不用考虑太多效率的问题,因为毕竟是对历史存量数据的处理,但是对于实时的信息,也就是新增的话,会需要一个更快速的处理逻辑。
对于增量的训练,其实集聚的原则是来自于对存量样本的学习,因为刚刚提到,存量只要在乎准确率,但是对效率不是那么看中,对存量稍微慢一点没有关系,但会形成大量基础的样本,基于基础样本可以对新增进行训练,我们也可以根据存量数据形成新增数据多维矩阵,包括有字典变换矩阵以及小类的列表,进而进入到处理。在这个过程当中,我们可以通过降维的方式让文本进行持续的演变,通过定义我们整个库的大小,同时更改一个时间窗口,来更新我们用于预测的库,从而提升本身我们匹配的效率,最后达到我们所需要的效果。这个过程完成以后,目前达到的一个情况是,现在对于存量的处理,我们大概准确率在99.8%,对新增的处理大概我们的准确率会在99.7%左右,大概会差0.1个百分点。
对所有的内容数据进行处理完以后,下一步就是对于风险管理这块的处理。在这个过程当中,其实也经过了几代的策略。在最开始的时候,我们其实是希望去使用逻辑回归进行这样相应处理的过程,使用逻辑函数来表示属于目标类别的概率,并且使用一个随机梯度下降的方式去进行优化的求解。好处主要是,由于业界基准的模型能够预测出目标的概率、高效、易使用和容易解释,但这个模型的缺点也是非常明显的,最大的一个问题是在于覆盖率较差,而且对于多特征或特征比较缺失的场景下,这个模型的效果并不是最好的。
同时,他也会有一个问题,对于这种非线性特征超空间的划分能力,本身并不足,而且更大的一个问题存在于供给,直接导致这样随机设立的模型不是最佳的处理方案。
接下来我们会考虑到,因为现在的数据源多样,各个数据源的数据特征都不太一样,属性也不太统一,离散和连续其实是并存的,整个查询不一致,又是非线性分布,而且特征维度较高的情况下,单独使用性能都很差,人工规则又很难覆盖,所以我们需要使用随机分离的模型来训练。整个模型是从训练子集当中进行采样,同时从各特征集也进行采样,最后建立一个决策树,进行自动选择,最终形成一个分裂的二叉树,采用投票的方式进行分类。这个分类迭代了以后,可以较好提升检测的性能,但依然不是一个完美的状态。
我们有一个更高的要求,因为我们对精度有更高的要求,针对于误差,我们在学习的时候由于有更好的精准,标签数字也在增加,这个时候我们需要采用新的方法,所以我们有了第三个阶段,基于残差的阶段去做了这样的动作。
基于残差的思路,我们建立了一个弱学习器,通过迭代训练集成了一个boosting的分析器来进行学习,优点是在大数据集下分类性能最好,而且适用于非线性特征和多特征的类型。这个是不是完整的呢?其实最后还是不完整的。由于腾讯社交网络的业务多样化,以及腾讯云上客户应用场景的多样化,这个时候我们需要在各个场景去进行一个定制化建模的时候,人力成本会变得越来越高,最后我们的解决思想是采用神经网络进行模型设计,最后基于迁移学习,进行实地的迁移或目标领域的特征。优点是一套方案可以多处复用,适合于标签数据偏少的情况。
最终我们会在这个模型上输出一个框架,这个框架是我们现在在风险控制领域出来的基础架构,最底层是我们的画像数据层,包括基于我刚刚讲的几个算法形成画像数据、设备指纹数据以及知识图谱。在云数据上,我们保留了终端数据、身份数据以及恶意内容的数据。在算法这一层,对于像迁移学习、boosting等算法纳入到基础的算法层,这一层主要是基于内容这一块的,比如像传统的图像识别以及语音识别等等算法,可能还有第三块,就是最右边灰色的这一段。灰色的这一段刚刚没有重点介绍,因为灰色这一段是属于泛安全这一块。因为左右,其实蓝色跟绿色这一段跟安全更相关,灰色这一段是为了我们在图计算当中能够更好地去识别相似群体用的。
比如像这里,灰色第三段,像Look Alike的算法,一般是在广告系统里用得比较多,但是在安全领域用的时候,依然可以在相似当中进行扩展,这就形成了算法层,最终我们会形成服务层的模型,以便向金融、内容以及市场领域进行应用,最终我们形成了这样一个统一的框架。
这个框架的数据现在除了在腾讯用,在电商、直播、移动以及O2O等多个行业其实也都会应用。
我这里画了一页图,就是战斗才刚刚开始。我们虽然用了很多对抗,实际上我们来看准确率跟覆盖率,其实效果还不错,但对手也在演进,不是说开始在一成不变的状态。上午的时候,其实各位已经看过了这样一个验证码的平台,我今天把这个平台再进一步放一放。
这是基于神经网络搭建的黑产验证码破解平台,这个平台的开发者是一位博士,他其实主要是做的中国现在验证码的识别。这个平台是基于现在很流行的一个深度学习的模型,叫caffe,基于这个模型搭建,搭建完了以后大概是花了50几台服务器去进行深度训练。在这个平台里面,最终积累了差不多1万左右字符的样本,大概积累了5000万左右的学习样本,对中国目前市面上所有的验证码进行破解。目前依据这个平台上来看,它在2017年的上半年,也就是前6个月,这个平台上一共发生了259亿次的验证码破解,破解的成功率在95%以上。也就是现在中国市面上所有的验证码全部可以破掉,不管你怎么对抗。
大家可以看到,我这个图右边有个用户,就是用户ID,这是我们测试的情况,用户ID3532,识别量36万条,准确率96.95%,是用这个平台搭建出来的。框架就是你进来的时候有一个验证码的分发,然后是数字加字母的识别,最终进行分布式的学习,通过识别结果优选,然后进行一个结果的输出。
但这不是这个平台的真相,平台更深的真相是,大家都知道,所有的验证码都是图片,所以这个平台在这个系统之前还搭建了一个OCR的模块去完成整个识别。为什么要做这件事情?目标就是简化,为了防止图像需要进行二次的预处理,所以自己先搭了一个OCR的模块,把图片先预处理一遍,最后进入平台。换句话说,你只要给他OCR就可以完成。我们在进步,我们的对手也在进步,对抗是越来越激烈了,这块其实学无止境,我们有了初步的这种研究,但是战斗仍将继续下去,也希望后面能有机会跟各位再继续进行一些相应的交流跟沟通,我今天的分享就到这里。
以上为演讲全文。下面是问答环节。
雷锋网:上午说有一个验证码的抗击,我想知道验证码抗击的准确率是怎么样算出来的?如果说你没有识别出是坏人,你认为他是好人,你怎么知道他是坏人?
周斌:是这样的,这个通过率其实很容易判定,因为两个CGI,你去调就知道了,一般情况下你去调一个CGI会有一个验证码,有一个反馈结果,就是下次跳转到哪个网页,你只要看跳转正确或错误网页的次数就可以知道了。
雷锋网:验证码成功识别率我知道,成功就可以跳过去,因为上午有一个问答的环节,是说验证码这边会识别有多少人会来攻破验证码,攻破以后就相当于我抗击他的攻击,抗击的成功率是怎么来的?
周斌:你刚刚其实问的这个问题,换句话说是漏过率,你怎么知道他漏了,这个跟我刚刚讲的内容有点关联,我刚刚讲的是说,基于数据上处理的时候,所以的都是业务链上的过程,因为验证码不是单一的模块,验证码一定是处于在业务过程当中的模块,比如说你出现在登陆的过程当中,登陆的时候要输验证码,或者在某个业务行政的过程当中要输出验证码,在这个过程当中,下一个阶段其实知道上一个阶段漏过的比例。第一,有没有出验证码上一个阶段知道。第二,在第二个阶段里有另外的模型去识别恶意,把两个阶段减一下就知道,出了验证码,在下一个阶段又是恶意的,其实就是验证码通过率里面漏过的一段。这里面还有更复杂的一个问题,你要排除那一次是手工登陆的过程。我刚刚其实换了一个架构,不知道你注意到没有,有一个设备指纹我今天没有讲,我们会在设备指纹上判断,你今天拿的手机,或者说你的终端设备,究竟是通过黑产猫池的设备批量上来了还是终端上来了,这是另外一种算法,我们要刨掉真实的部分,比如在登陆环节已经过来了,两个差值减一下就知道了。
雷锋网:其实后面那个环节就相当于还是用一些技术的手段去预判,你到底是不是一个正常的用户,其实也会存在一定折损准确率的问题,可不可以说漏过率还不是有一个百分之百准确率的算法?
周斌:不会,最终还是通过多个环节来验证的,因为就像讲的,其实跟今天讲的攻击是一样的,它也是在多个环节下做动作,最终我们作为安全防御这一方,其实也是多个环节去设的,在多个环节上的数据最后去判断本次行为到底可不可以。其实各位都很清楚,设在一个长城前面不太可行,基本上肯定也靠不住。
雷锋网:关于您在那张架构图当中,有提到有一个AI,我比较好奇的是AI的功能是什么,和传统运用在搜索引擎当中的有什么区别?应用在AI学习中的作用是什么?谢谢。
周斌:这个问题其实是一个非常大的话题,因为知识图谱这一张其实就已经可以展开一个非常大的话题,我们现在讲的IA的知识图谱,主要还是在安全领域这一块的应用。因为搜索上的这种应用跟安全上的应用不一样,安全上的应用主要目标是来自于要去发现异常的这种行为,也就像我刚刚前面讲的大图里,我去发现异常趋同的人,我们现在做的知识图谱,主要是基于我们所有的这种,因为各位可能知道,腾讯的产品线非常长,我们不只有社交的产品,有各种维度的产品,我们会把各种产品的数据灌到知识图谱里,最终对用户做风险的分类,这样的方式去用,跟在搜索引擎上的用法其实不大一样,主要是在用户异常风险使用的判定上使用。
。