某 P2P 公司刚刚拿到B轮融资,拿出数百万策划了一场大型的优惠活动。凡是新注册的用户都可以得到不同形式的现金奖励。然而,就在活动刚上线,还没来得及进行宣传的时候,就涌来了大量的用户注册请求。而经过对数据的检测,公司发现了一个惊人的事实: 参与优惠活动的用户,80%都来自同一个黑产组织控制的虚假身份。 几百万现金,几天之内被“羊毛党”洗劫一空。 这是真实的故事。相信所有 P2P、O2O、电商、社交等等几乎全行业的互联网企业,都饱受“羊毛党”困扰。事实上,昔日的“羊毛党”已经成为装备精良的“羊毛部队”了:数百万张黑卡,自动化操作程序,针对企业安全措施的对抗,遍及行业的情报系统…… 而更加“坑爹”的是:企业的伤口,远不止于“薅羊毛”这一条。 企业生于蛮荒的互联网,正如乱世商贾,在茫茫山路中行走,难免遇到盗贼抢匪。小商贩面对蜂拥而上的山匪,没有任何还手之力。而富商们则不同,他们可以雇佣镖局,甚至自己培养一群“镖师”。 富贾“阿里巴巴”正是这样,以淘宝系为主的业务,是各路黑客“薅羊毛”“刷库撞库”“垃圾广告”“逆向破解”的明星“靶场”。可以说,和黑产作斗争,是阿里“镖师”的日常。 而阿里的镖师,同样可以帮其他企业“退敌”。这位行侠仗义的镖师名字就是:阿里聚安全。 阿里聚安全究竟有什么秘密武器,可以打退黑产的进攻呢? 一、大数据风控,用上帝视角揪出作恶者 1、设备指纹——干掉垃圾注册 有黑客说,互联网是一个黑暗森林,你永远不知道网络那头究竟是何方神圣。 所以,对于提供服务的企业来说,描绘出网络那头“用户”的形象,是一切攻防的根基。当然,山水远隔,了解用户的姓名、背景、习惯、交际圈、身高体重三维显然不现实。 相比之下,定位用户的设备,是一个有效的手段。 如何标记用户的设备呢?这里需要引述一个“设备指纹”的概念。设备指纹是帮助定位一台设备的独特信息。阿里聚安全风控专家笙华告诉雷锋网,根据应用类型的不同,例如App,Web,Html5,对背后设备的定位技巧略有不同。 总体来说,为了给设备定义一个独特的指纹,聚安全需要用到多维度的信息(基于已授权基础上获取),例如: App的基本信息 设备信息 网络信息 公开的接口信息 等等 根据以上信息综合算出设备的“指纹ID”。这个 ID 相当于设备的身份证。当硬件发生变动时,只要改动的部件低于一定比例,仍会被认定为是同一台设备。 【每个设备都有自己的指纹】 笙华说, 任意两个设备 ID 冲突的概率低于 1%。从另一个角度来看,也就是说你很难模拟伪造一个已经正常存在的设备指纹。因为企业一般会给旗下每一位用户进行信用评分,一个已经正常使用了很久的设备能累积得到较高的评分,但是这样的设备是无法伪造的。 有时设备 ID 本身就可以说明问题。例如一些黑产为了进行垃圾注册,可能会用较低版本的 SDK,或者使用漏洞较多的低版本软件。 另外,黑产为了使用同一台终端(手机/PC)进行垃圾注册,会通过修改 MAC 和 IMEI 等方法。但是,设备指纹系统的“火眼金睛”可以识别出来:你根本就没换设备。这样就可以发现用同一个设备大量重复注册的行为。 黑产垃圾注册账号,本来是为了薅羊毛。但如果黑产每注册一个新账号,都需要购买一台新手机。。。这个生意就显得有些搞笑了。 2、人机识别——揪出作弊的“机器人” 在一些 P2P 或电商推出的节日活动中,经常有一些需要简单点击划动的游戏或优惠活动。虽然大多奖励并不丰厚,但是一旦用机器来模拟操作,就会积少成多,累加到不菲的奖励。 1)机器学习 人操作鼠标键盘,都有自己的特性,每一次操作都不会很准。而机器操作每一次都有规律性。 这是判断机器操作的最基本原理。但是实际情况远不止这么简单:黑产不会束手就擒,他们会想尽办法用机器来模拟人的真实点击。 虽然程序为了对抗监测系统,会模拟增加随机波动因子,但是这种波动本身也是有规律的,只不过需要大量的分析才可以判断。 这种情况下,就需要机器学习系统辅助。某一个特定环境下,某个动作重复100多次之后,系统就可以分辨出机器的仿人操作。 笙华说。 当然,除了机器学习之外,用来判断机器人的方法还有很多。就像科幻电影中所描绘的那样,机器的伪装总会在不经意的地方露出马脚。 【黑产喜欢使用各种“自动注册王”】 2)软硬件环境信息 黑产在进行垃圾注册,模拟点击等“特殊操作”的时候,往往需要进入一个特定的环境。 笙华说, 很多黑产在 Web 端操作的时候,会使用特殊的操作系统或浏览器,例如 IE8,甚至 IE6。这些低版本浏览器防控能力弱,并且服务提供者从中能够获取的内容少,这正中黑产下怀。 另外一些黑产在进行垃圾注册的时候,要把浏览器嵌入到注册软件中 。这样的话,从浏览器的分辨率参数来看就是一个怪异的小尺寸。 再比如,有一些 H5 网页,正常人几乎不会在电脑上操作。但是黑产为了速度和自动化,一定会在电脑上运行。 这些参数,都可以辅助系统判定网络那头的操作者,究竟是人还是机器。 【强迫症喜欢的滑动验证】 3)暗号谍战——滑动验证的混淆加密切换 通过之前的手法,可以筛查出95%的机器操作。而剩余的 5%,则需要增加新的验证手段:一旦被之前的程序判定为“灰黑用户”,聚安全就会建议企业使用“滑动验证”来进行进一步“人机识别”。 滑动验证,几乎人人都体验过。它只需一个简单动作:把一个拼图形状的滑块挪到适合的位置。就是这个简单的动作,可以用来筛查“可疑用户”。 笙华说: 机器成功模拟一次滑动验证也许有可能,但短时间内模拟各不相同的一千次,一万次滑动验证,是需要极高的技术水准的。而一旦这种模拟不能批量操作,黑产作恶的成本就会大幅提高。 黑产使用机器模拟滑动验证的技术,往往会先对聚安全的代码接口进行破解,然后通过接口直接传输命令。而系统一旦感知到风险,会实时切换混淆和加密算法。这相当于临时改变了程序交流的暗号。 如果宝库的密码已经从“芝麻开门”变成了“蓝瘦香菇”,那么仍然喊“芝麻开门”的用户一定是“心怀不轨”的。此时,系统会认为黑客的代码命令无效。黑客如果想继续使用自动化工具,就需要重新对接口进行破解。这也是极高的成本。 如果最终还是没有通过人机验证,我们会建议客户对用户进行最严格的实人认证。每天我们人机识别的接口调用是亿级,而误识别的数量只有个位数。 除了误识别,我们的技术难点还在于如何找出漏报。一般情况下,我们会对整体用户流量的“大盘”进行监控,一旦监测到注册或登录流量异常,我们的安全攻防技术专家就会紧急响应。这种响应速度是小时级别的。 笙华说。她为雷锋网宅客频道举了一个例子,在阿里聚安全的所有客户中,陌陌对于防护策略的贡献相当大。 黑产很喜欢陌陌,开发出了很多刷库撞库的“新玩法”。例如利用找回密码的接口进行刷库,例如在H5 页面上登录尝试。感知到这些在陌陌上首创的新方法之后,我们的拦截策略才得以升级。 4)风险信息库 以上所有的验证数据,都会被收录到风险信息库中。每一个风险用户和背后的手机、邮箱、IP地址、身份证号都会被记录在案。 以手机黑名单为例,一旦被识别为用于垃圾注册的手机号,就会进入黑名单。目前这个黑名单库已经达到了亿级。如果某些手机号被黑产用于刷库,也会被认为存在风险。 这些黑名单中的手机号很可能正在被黑产掌握,也可能被运营商作为废号定期收回。所以风险信息库中的电话号码,也是随着运营商更新的周期更换一轮。 但是,这些黑名单的使用是有场景的。也就是说,有些名单来自电商,这些人会刷单、炒作信誉。但是同样的名单不一定适用于互联网金融行业。在 P2P 场景里,这些店主也许仅仅需要资金周转,并不会违反规则。 笙华说。 二、移动安全,战场上的黄金铠甲 辛苦编写的 App 代码被黑客逆向出来,是服务被攻击的重要前提。这无异于被拔掉底裤游街示众,彻底失去了隐私和安全。但是,这样的事情却每天都在发生。 对于代码的混淆和加密程度越高,App 被逆向的可能性就越小。聚安全有一个重要的武器,被称为“全量混淆”。 1、全量混淆 这里需要简单科普: 从事 Android App 开发的同学都知道,Google 官方推出的最新版 Android 应用开发工具 Android Studio 默认集成了 ProGuard,而 ProGuard 的功能就是对编译出来的应用进行代码层面的混淆,提高黑客的逆向分析难度,同时不影响APP的运行效率。 阿里聚安全资深产品经理陵轩告诉雷锋网宅客频道: 由于编写一个像手机淘宝这样的复杂App应用,往往需要多人协作。在这种情况下,开发人员对彼此的代码并不熟悉,如果使用ProGuard 进行混淆,则每个开发人员为了避免混淆过多而造成应用崩溃,因此只会混淆自己编写的少量核心代码。 另一方面,由于JAVA语言的一些特性(例如反射调用),导致无法使用ProGuard来混淆这些反射调用的类和方法。 最后,ProGuard的使用需要配置较为复杂的规则,一旦配置不当,即会导致应用运行时崩溃。 基于上述这些原因,ProGuard 对 APP 的混淆率一般在10%~30%左右。 而全量混淆的方法是利用底层 HOOK 技术,随机生成类名、变量名、方法名,只需少量简单配置即可达到80%以上的混淆率。 陵轩坦言,全量混淆技术看起来原理简单,但是由于要 HOOK 很多的 Android 虚拟机底层函数,稳定性是一个非常头疼的问题。 在最初的研发过程中,他们也确实遇到了不少的坑。 对于 Android 应用来说,影响稳定性最大的问题在于 Android 系统的碎片化太严重,想要使用一套 HOOK 机制解决所有的 OEM 系统基本不太可能。 另一个影响稳定性的因素是,目前 Android 手机 CPU 大多是六核、八核,如果在 HOOK 的时候,其中一个核心正好在替换函数的前几个字节,并且没有完成整个 HOOK 操作。此时,CPU 核心发生切换,也正好执行了这几条指令,则会造成应用崩溃。当然,这样的问题只有在手机淘宝、支付宝这样的亿级用户应用上进行灰度才有可能被发现。 陵轩告诉雷锋网宅客频道,全量混淆技术目前已经很成熟,并且已经产品化。而在产品化的道路上各种坑被一个个填平,过程实属不易。目前阿里巴巴旗下的手机淘宝、支付宝等亿级用户主流 App 都已经进行了全量混淆处理,稳定性、安全性和运行效率都很不错。 【PC 端的手机模拟器】 2、模拟器检测 对于一个 App 来说,还有另一种“遭遇”,那就是:运行在模拟器之中。 一个正常的使用者,绝不会在模拟器中刷淘宝、朋友圈。模拟器绝大多数情况下被黑产用于批量操作。例如游戏挂机、垃圾注册、刷单刷信誉。所以运行在模拟器中,本身就是一个极强的风险参数。 而由于模拟器极端仿真了硬件环境,所以 App 本身并不能对所处环境产生“质疑”。这恰如《黑客帝国》中 Neo 身陷的赛博世界。 陵轩介绍了聚安全的模拟器检测技术: 市面上的模拟器软件数量有限,而每一种模拟器都有自己的特征。例如专门的驱动、专门的设备端口。一旦发现使用了特定的驱动或端口,就判断为模拟器。 这种技术已经提供给用户使用。 陵轩说,这种技术在理论上存在一个弊端,那就是会有漏报的可能。因为新的模拟器出来,到系统识别存在一个时间差。但好在模拟器技术门槛较高,新模拟器出现的频率并不高,技术团队可以及时跟进。 然而,聚安全的移动安全技术团队正在研究一种逆天的模拟器识别方法。 这里面涉及到一个简单而有趣的背景知识:Android 手机绝大多数跑在 ARM 架构的处理器平台上,而模拟器巨大多数跑在 Intel 的 X86 架构平台上。 基于此,技术团队研发出一种识别方法: 我们会执行一段精心构造的代码,这段代码在真机和模拟器上的输出结果不同。例如在 X86 架构上可能是1,而在 ARM 平台上可能是0。 这种检测方法,有一个巨大的优势,那就是通吃所有的模拟器。但这种对处理器一刀切的方法,也同时存在一个缺陷,那就是市面上仍然存在极少数量的 Intel 处理器手机,在这种策略下会被误识别为模拟器。 所以,聚安全的方法就是:将这两种方法结合使用,在控制误报的基础上,减少漏报。 三、内容风控,平定搞事的“老司机” 熬过了大多数黑产的狂轰滥炸,互联网企业,特别是2C的服务商们却来不及喘气。他们还要面对无尽的内容风险,这些风险来自动不动就发车的老司机。 1、违规图片 在很多UGC(用户产生内容)的平台上,涉黄涉暴涉政的图片文字视频如病毒泛滥一般难以遏制。仅靠管理员的人工审核,根本无法对付。 这时,人工智能就派上了用场。 【通过人工智能和机器学习鉴别违规图片】 阿里聚安全产品经理苍穆为雷锋网宅客频道介绍了通过神经网络算法识别违规图片的技术: 以鉴黄为例,自动化鉴黄的原理很好理解。使用十万张以上的样本来进行机器学习,训练出能够分辨黄图和非黄图的模型。对于训练出的模型,我们会用大量新图片来验证效果。对于界限模糊,检测结果不理想的图片,通过人工纠正结果,重新投入模型进行训练。通过这样一次次迭代,得到稳定精确的识别模型。 这个识别能力来自于阿里巴巴安全算法团队,并且在支付宝和淘宝上使用。 至于训练的过程,大部分由机器自主完成。但人的“监督”却起到了决定性作用。这种作用主要体现在机器识别效果的纠正上。 简单来说,分辨黄色图片的最终任务,就是让机器来“摸清”色情与非色情的界限所在,所以每一个样本都帮助机器更加清晰了这些界限。 苍穆说, 输入的样本大概是五五分,正常的样本会多一些。这是因为在实践过程中,系统更倾向于知道哪些是坏的,而对于哪些是好的判断不准确。增加这样的白样本,是减少误判的有效途径。 效果自动调优,是聚安全内容安全的亮点所在。简单说来,就是用户在使用过程中,如果发现系统产生了误判,例如把非色情图片鉴定为色情,可以通过回传错误样本,纠正偏差。 这其中有两个有趣的细节: 1,每个用户的“尺度”是不同的。例如人民网和陌陌对于色情图像的定义显然会有细微的差距。 所以,一旦每个用户进入调优的过程,最终就会形成一套专属的判断标准。 2,在应用的过程中,有可能突然出现一整类的误判,需要大量的样本返回系统才能纠正偏差。面对这种情况,聚安全使用了一种黑白名单机制。 苍穆为雷锋网(公众号:雷锋网)宅客频道举了一个例子: 某直播TV 是我们的客户,在上面有很多人直播 LOL 游戏。其中的一些游戏人物衣着服装比较怪异且暴露。这些曾经被系统误抓,但是通过大量的样本改进模型需要一定的时间。为了保障客户的业务流畅,我们研发了这个黑白名单机制用来“快速止血”。 简单说来,黑白名单机制就是把和样本类似的图片/视频统一标记黑白。用户只要反馈一个误判案例,所有同类图片就自动被标记,不需要用户再重复手动标记。 2、违规文字 文字识别技术,最初依赖关键词。仅仅对命中关键词的语句进行屏蔽。但是这种一刀切的方式有诸多弊端。比如“进群交流”这样的词语就会被无辜地干掉。 目前对于违规文字判断的最新技术,同样是通过机器学习的方法实现语义分析,类似于对违规图片的判断。 然而在识别之前,需要一个关键技术,那就是对于变异文字的识别。 苍穆说: 例如,很多违规广告都会在文本中加入标点符号或空格,或者利用拼音代替正常文字,或者用汉字代替数字。在这种情况下,需要一个预处理模型,把变异词还原为正常的文字,再进入智能识别系统。 在所有的机器学习系统中,对于样本的标记都是首要任务。这意味着人需要告诉机器,哪些特定的图片是黑的,哪些特定的图片是白的。这些数以十万计的样本,需要人工“打标记”。在阿里巴巴内部,有专门的同学负责标记,而由阿里发起的安全志愿者联盟,也在招募有空闲时间的志愿者通过严格测试后帮助标记。 也就是说,每一次精准的识别,背后都是大数据和人工智能技术的支撑。 3、违规视频 苍穆告诉雷锋网,对于违规视频的鉴定,和违规图片类似。需要对视频进行截帧回传,再进行鉴别。 这其中,涉及到三个有趣的技术: 1)去重 对于视频的截取,往往会采用定时的方法。例如每三秒截取一帧。但在视频直播或播放过程中,经常会存在视频长时间静止的情况。面对静止画面,这种定时截取的方法不仅显得不智能,而且浪费带宽。 所以,技术团队加入了图片去重技术,如果识别图片和之前截取的相似度超过80%-90%,就会只选一张传回。 2)自动寻找关键帧 对于两帧之间“画风”有疑似违规画面出现,系统会判定为中间有画面被漏过的风险。于是可以自动增加截图密度,用以找到关键帧并进行鉴别。 3)多帧综合判断 如果某一张图片命中了规则,则会被认为疑似非法图片。但是苍穆说,机器识别规则毕竟存在误判,例如一个人起身时可能会把脸贴近屏幕,此时系统有可能误判为屏幕中的人没有穿衣服。在这种“疑似”情况下,系统会自动在截帧的前后再密集地截取几帧,用于辅助判断这个画面究竟是不是非法画面。 【违规视频鉴定的“黑科技”】 平心而论,内容安全背后是监管部门的红线。一旦触及,很可能对业务带来重创,甚至危及到企业的生死存亡。两年前快播王欣的惨痛教训言犹在耳,让人唏嘘。 小结 企业在追赶快速迭代商业模式的同时,还要面对盗匪山贼。这不得不说是另一个维度上的创业维艰。而反过来看,在被人称为最好或最坏的商业现实中,每一支不能置你于死地的冷箭,都会让你变得更敏锐。 对于阿里巴巴来说,从淘宝开始,多年行进于密林草莽,练就了非凡的“镖师”队伍,积累的经验弥足珍贵。在 BAT 中,阿里第一个把业务安全能力分享出来,也昭示了这个互联网巨头的技术自信。 从这个角度看,阿里聚安全或许是在互联网业务安全对抗的天平上,一颗重要的砝码。 |