背景
对于黑产而言,他们会想尽一切办法,来不断降低攻击成本,提高攻击效率,自动化攻击便是其中的关键方法之一。当前的黑灰产业链条中,从提供黑产资源的上游,到利用黑产资源发起攻击的下游,已经形成了一套低耦合,高自动化的完整生态。基于永安在线业务情报监测平台近期捕获到的网络黑灰产情报,我们对符合自动化攻击特征的黑产数据、行为以及技术原理做了分析,并尽量展示其全貌。
从攻击者地域分布来看,经济发达的沿海地区,如浙江、福建、江苏、广东等,自动化攻击的比例也更高:
从被攻击的行业分布来看,黑产可以规模化获益的O2O、电商、短视频等行业是黑产自动化攻击的重灾区:
从攻击行为来看,批量注册,批量薅羊毛,刷量,刷单,引流等,往往需要操控大量的账号,因此对自动化攻击的依赖性更强:
二、黑产资源高度集成自动化攻击流程
我们在以前的报告中,有详细讲述过网络黑灰产对厂商业务发起攻击需要的各种资源以及提供资源的平台,包括提供手机号资源的接码平台,提供账号资源的发卡平台,提供IP资源的代理IP网站和秒拨平台,提供设备资源和设备管理的群控/云控/箱控等。为了便于使用,这些资源平台提供了多种方式,黑产下游在进行自动化攻击的过程中可以无缝集成和使用。
2.1 API接口
黑产资源平台为了方便,最典型的方式的是提供API接口,这样便可以在自动化脚本或程序中直接调用。以接码平台为例,提供的API接口主要有两个,取手机号和取验证码。其中取手机号的接口一般定义如下:
http://api.xxxxxx.com/api/do.php?action=getPhone
参数action=getPhone表示获取手机号,此外还需要通过参数sid来指定项目,即手机号要注册的产品或业务。有些产品对于新用户注册管控比较严格,可以通过参数exclude来排除虚拟运营商的号段;有些活动只针对部分区域,比如某个产品在成都举行的拉新活动,可以通过参数location来指定获取归属地在成都的手机号。
获取验证码的接口一般定义如下:
http://api.xxxxxx.com/api/do.php?action=getMessage
参数action=getPhone表示获取验证码,此外也需要通过参数sid来指定项目。返回的数据格式一般为:1|短信内容,1表示成功,短信内容里面包含了验证码,通过简单的字符串匹配或正则表达式即可提取出验证码,然后进行注册。
【小技巧】由于各个接码平台API接口除了域名外,参数格式都大同小异,所以可以通过定义一些正则表达式,从流量中(比如我们的蜜罐流量)捕获接码平台的API接口访问流量,从而可以大致掌握全网的接码平台数量和规模。
再以代理IP网站为例,基本上也都提供API接口,相比接码平台的API接口,使用起来更加简单,如下图所示,是一个代理IP网站提供的API接口说明:
只需要调用一个API接口,返回的数据是json格式,可以直接解析出IP地址和端口。
很多厂商为了对抗自动化攻击,往往会在业务流程中接入验证码,从而进行人机识别。相应的,网络黑灰产把验证码的自动识别也集成到了自动化攻击中。提供验证码自动识别功能的平台我们一般称为打码平台或过码平台,无论是图片验证码、滑动验证码还是一些复杂验证码,这些平台都提供了用于绕过这些验证码的API接口。如下图是其中一个过码平台,绕过某验证码的API使用说明:
2.2 功能模块
对于黑灰产实现自动化攻击来说,API接口已经足够方便了,但黑灰产也追求“精益求精”,于是有了另外一种更为方便的方式,直接提供封装好了的功能模块。由于黑灰产工具软件绝大多数都采用易语言编写,因此大多提供的是易语言封装的模块。我们还是以接码平台为例,下图是一个接码平台的易语言模块(.ec)导出信息,可以看到需要的功能都已经封装好了:
我们以一款近期发现的用易语言编写的自动化薅羊毛工具为例,其跟接码相关的代码只需要寥寥数行代码:
对于代理IP的使用,也有封装好了的功能模块可以使用,如下图所示:
除了提取代理IP之外,还提供了验证代理IP有效性的功能,使用者无需再用
其他工具或自行编写代码去验证代理IP的有效性,不可不谓“贴心”。
部分打码平台也提供了易语言的功能模块,如下图所示:
下图这个用易语言编写的自动化注册机工具,可以说是一个典型的“集大成者”,包括接码平台,打码平台,宽带拨号,代理IP等黑产资源的功能模块,都集成到了工具中。只需要在界面上填入各个黑产资源平台的账号密码,并进行一些
简单的配置,即可一键进行所有的自动化攻击流程。
2.3 提供环境
对于提供IP资源的平台来说,秒拨相比于代理IP,除了价格更低,可用的IP资源更多之外,对于自动化攻击来说,使用也更方便:不需要在脚本或程序嵌入API接口或功能模块,直接将自动化攻击运行在秒拨提供的环境下即可。有两种方式:
1)启动秒拨的客户端程序,开启自动拨号,然后执行自动化攻击:
2)将自动化攻击的脚本或程序运行在秒拨VPS中,秒拨VPS提供自动拨号的功能:
2.4 集成系统
黑产设备资源的提供者,我们可以理解为黑灰产行业的硬件厂商。近年来手机硬件厂商在不断提升硬件能力之外,也在不断发力软件市场。比如在手机系统中直接集成了自己的应用商店,浏览器,手机管理软件等,用户不需要再去额外安装。类似的,用于黑产设备提供者来说,他们也不再是单纯的提供硬件设备,而是将黑灰产完成自动化攻击所需要的各种资源,都集成到了里面。而在对外包装上,往往会打着“一站式营销”,“私域流量营销”等宣传语。
我们以某款箱式群控为例,从下图可以直接看到,这款箱控工具已经内置了以下一些功能:
1)VPN拨号功能,可以方便的切换IP;
2)虚拟定位功能,可以方便的修改定位,从而实现虚假出行订单或站街招嫖;
3)改机功能,可以方便的修改IMEI,IMSI等硬件参数,从而伪造更多设备;
4)主流的移动端App自动化操控脚本,比如微信自动加好友,自动加群,自动发朋友圈,抖音自动关注,自动点赞,自动发表评论等;
5)云端备份功能,可以将整套攻击环境连同环境上登录的账号一并上传备份,通过还原快照的方式切换环境,从而进行大量攻击。
三、自动化攻击的技术手段和攻防对抗
黑产实现自动化攻击,主要通过。2种技术手段:协议破解/伪造,以及模拟点击/操控。前者需要先破解应用的接口协议,存在一定的技术门槛,难度相对较大;而后者开发简单,可读性强,上手门槛较低,对于黑产来说,受众也更广。我们近期捕获到的自动化攻击工具里面,模拟点击/操控类工具的占比80%左右。
接下来我们对这两类自动化攻击技术做更详细的介绍。
3.1 协议破解/伪造
协议破解/伪造指的是通过抓包+逆向分析等方式,获取到客户端跟服务端通信的请求接口以及参数,直接伪造接口协议和参数来完成自动化操作。我们先以一款旅游类应用的自动发帖机为例。通过分析,我们可以看到这个发帖机会自动访问该应用的很多后端接口:
由于破解了接口协议和参数,所以在访问接口之前,所有的参数都已经构造好了:
其中有一些参数的伪造成本并不高,甚至直接硬编码在代码里面。有一些参数会根据一定的规则动态生成,以满足合法性校验。以os_api和os_version这两个参数为例,在代码里面内置了一个os_version的数组:
构造参数时,会根据这个数组随机选择os_version的值,同时会根据os_version的值来适配os_api的值:
再比如device_type和device_brand这两个参数,在代码里面内置了一个很大的设备类型的数组:
构造参数时,也是进行随机选择。如果选择了数组的第1个元素,那么生成的参数就是device_type=B7330并且device_brand=SAMSUNG。
以上举例的这些参数,伪造起来都比较简单,但是还有一些参数的伪造,难度要大很多。特别是一些做了协议保护的应用,会存在专门用于校验接口请求合法性的参数,而且多个参数之间相互校验,只要其中一个参数构造得有问题便无法通过校验。理论上来说,黑产似乎因为对抗成本的提高而望而却步,但实际情况却并非
如此。首先,在开源或免费渠道上,GitHub,CDSN等网站上面有大量的协议算法的原理讲解,甚至破解代码。虽然作者的出发点可能是单纯的技术探讨,但却被别有用心的黑产直接利用:
其次,存在一些破解网站,其背后有专门的技术人员,也提供收费的算法破解服务。
虽然随着移动端应用加固技术的发展(包括成熟的商业化产品和方案),核心算法的破解难度也越来越大,但由于攻防的不对等,黑产可以绕过这道防线,选择从防御的薄弱点下手。而Web端应用就成为了这样的一个突破口。虽然Web前端的代码可以做混淆做加密,但破解的难度相对要小很多。甚至可以不用破解,直接把算法的关键代码扣出来,通过脚本引擎进行调用和执行,从而完成加密参数的构造:
对于厂商而言,由于协议破解/伪造脱离了环境和设备的限制,黑灰产可以用很低的成本完成批量化规模化作案,因此危害也更加严重。如何更加有效的防止或检测这类自动化攻击,除了加强核心算法的复杂度之外,也可以尝试从情报入手。前面提到伪造的接口协议中,其中有一些参数是硬编码的,基于这些硬编码的参数,可以做特征聚类和分析,并针对性的提取识别规则。此外,黑产在构造自动化攻击的代码时,也不是天衣无缝,往往会在一些地方留下破绽。其中一种比较典型的情况是访问不同接口时,存在构造的参数不一致的情况。比如登录请求传入的设备类型的是iPhone:
但紧接着进行设备注册时,注册的信息却变成了操作系统是Android,设备厂商是华为:
通过这些情报信息,可以不断补充和完善对于协议破解/伪造类自动化攻击的识别。
3.2 模拟点击/操控
模拟点击/操控是指通过触发鼠标/键盘/触控等事件,或者通过代码注入等方式,完成界面控件的输入、点击、移动等操作。如果说协议破解/伪造的对抗是技术的硬碰硬,模拟点击/操控则可以说是以巧致胜,而且由于上手门槛低,也成为了当前黑灰产最为喜欢的自动化攻击方式。接下来我们分别讲解几种比较常见的模拟点击/操控类攻击方式。
3.2.1 按键精灵
按键精灵是一款大家非常熟悉的老牌自动化脚本工具,也是目前黑产使用最为普遍的通过模拟点击实现自动化攻击的工具。黑灰产从业人员通过编写相关的逻辑脚本,便可通过模拟用户操作去实现他们想要的功能,比如手机触摸、按键等操作;也可以先手动“录制”一遍想要操作的功能,这样按键精灵会自动记录操作行为序列和坐标轨迹,十分方便。
我们以某短视频平台的一款引流工具为例,该工具是基于按键精灵(安卓版)
脚本打包生成的一个apk文件,其主要功能是自动给平台上的短视频点赞、评论,以及给用户发私信,从而达到引流的效果,如下所示:
使用该工具时,只要打开短视频平台某网红主页的粉丝列表界面,便可自动按顺序打开每个粉丝的主页,给视频点赞、评论以及给粉丝发私信,并且该工具也支持自定义配置,比如是否关注粉丝、自定义引流话术等。
3.2.2 Auto.js
如果说按键精灵是老牌精英,Auto.js则可以说是后起之秀。根据情报显示,大约从18年底开始,越来越多的黑灰产从业者使用Auto.js来开发自动化攻击脚本。Auto.js是一个基于JavaScript的安卓平台自动化脚本框架,相比与按键精灵,Auto.js有以下一些优势:
1)设备无需Root,使用成本更低,而且可以躲避基于Root的风险设备环境检测;
2)按键精灵基于识别图片、颜色、坐标等实现模拟操作,存在分辨率的兼容问题,而Auto.js可以直接操作控件,自动适配各种安卓机型,稳定性更高;
3)使用Auto.js开发打包生成的apk文件体积更小。
我们以某社交平台的添加群成员好友的自动化脚本为例,首先判断是否处于群聊天窗口:
在获取到群成员QQ号后,自动完成点击“加好友”、填写验证信息、发送请求:
Auto.js脚本开发者可以使用Visual Studio Code + Auto.js插件开发脚本,电脑连接手机终端,可直接控制装有Auto.js客户端的手机执行脚本,也可将脚本保存至手机终端,编译为APK,运行APK执行操作。
3.2.3 浏览器内核
对于Web端应用来说,黑灰产往往通过浏览器做自动化攻击的载体。其中一种方式就是在工具中嵌入浏览器内核。以Chromium为例,Google为了方便给第三方应用提供可嵌入的浏览器支持,做了一个开源项目:CEF,全称Chromium Embedded Framework。CEF隔离底层Chromium和Blink的复杂代码,并提供一套产品级稳定的API,发布跟踪具体Chromium版本的分支,以及二进制包。CEF
的大部分特性都提供了丰富的默认实现,让使用者做尽量少的定制即可满足需求。CEF的应用场景之一就是用于自动化Web测试,这也给黑灰产打开了便利之门,将之用于自动化攻击。
我们某智能爬虫采集器为例,该软件内置了 Chromium浏览器,通过直接操控页面控件来完成自动化操作。该爬虫采集器使用方式非常简单,只需在软件界面输入目标网站,就可以根据需求爬取目标网站的数据,界面如下:
利用该工具,爬取某旅游网站数据如下:
3.2.4自动化Web测试
为了方便自动化Web测试,主流的浏览器自身也展现出了足够的开放性,比如大家都比较熟悉的自动化测试工具Selenium/WebDriver,就是基于浏览器的一些开放特性,完成了对Web页面的自动化操控,而黑灰产利用Selenium/WebDriver来完成自动化攻击也非常常见。对于厂商而言,也往往会在Web端代码里面嵌入一段JavaScript脚本,来检测这类自动化测试工具:
除了以上这些,还有一种自动化Web测试的手段:Chrome远程调试,也被黑灰产用于自动化攻击。我们以某社区软件的账号注册机为例,该工具会通过远程调式的方式打开Chrome浏览器:
然后通过WebSocket通信对浏览器进行控制。包括:
1)执行document.querySelector(‘[name=username]’).select()获得手机号输入框的焦点;
2)发送Input.dispatchKeyEvent消息,自动填写从接码平台获取到的手机号;
3)执行document.querySelector(‘button.Button.CountingDownButton.SignFlow-smsInputButton.Button–plain’).click()点击“获取短信验证码”按钮;
4)执行document.querySelector(‘[name=digits]’).select()获得验证码输入框的焦点,自动填写验证码,并执行document.querySelector(‘button.Button.SignFlow-submitButton.Button–primary.Button–blue’).click()点击“注册/登陆”按钮。
移动端的模拟点击/操控类攻击,需要在设备上运行被攻击的移动端应用。而且如果要实现批量化规模化攻击,需要有大量的设备资源(群控、云控、箱控,或者通过模拟器/改机工具伪造设备资源),因此对于厂商来说,可以从设备环境层面进行风险检测。无论是使用按键精灵、Auto.js、改机工具、GPS伪造等工具,还是模拟器、群控等设备环境,可从设备指纹数据中找到蛛丝马迹,设备指纹除了用作唯一性标识之外,还应该对基本的应用多开、改机环境/环境伪造、hook行为、root/越狱、代理/VPN等风险场景有识别能力。如果具备较强的情报能力,可以尽可能多的收集自动化攻击脚本程序,并在应用启动的时候检测安装列表(Applist)中是否存在这类程序。
另一方面,模拟点击/操控类攻击虽然会模仿正常用户的操作行为,但与用户实际的行为特征还是会存在差异,可以从 行为层面做检测。比如针对某电商平台刷店铺访问量的工具,每一次刷量行为一定会包含“打开首页”、“搜索目标店铺的商品关键词”、“先进入两家同类商品的店铺浏览商品”(模仿正常用户货比三家的习惯)、“在进入目标店铺浏览商品完成刷量”,并且在每个页面的停留时间也在固定的。从业务数据中提取用户关键行为做特征进行聚类分析,可以有效识别程序化的模拟操作。再比如上述的某智能爬虫采集器,虽然会产生看似正常的页面浏览行为,但是没有正常的鼠标点击、键盘输入或屏幕触控等操作,也属于高度可疑的行为。
当然,设备层面和行为层面的数据往往是互补的。为保证高准确性和识别率,风险行为的判定要结合多个维度综合判断。
总结
从技术上实现攻击流程的高度自动化,是黑灰产提高运营效率,降低运营成本的 必然道路。稳定的、成熟的自动化测试工具和技术被黑产滥用,又极大的提高了黑产的开发和攻击效率。这对于厂商的业务安全防护策略来讲,无疑将不断面临着更大的挑战。庆幸的是在人机识别的对抗中是一个持续升级和演进的过程,不管是对于业务方来讲,还是对于黑灰产来讲,都没有绝对的银弹。
业务方除了在风控规则模型上下功夫外,还可以在设备上进行风险检测:
- 对业务运行的设备环境进行检测。黑灰产无论是在设备信息欺骗上,运行自动化脚本工具,都需要使用一些特殊的运行环境。这些环境通过分析一般都能找到一些通用的检测点。比如改机工具,可以对HOOK框架进行检测,模拟点击可以检测系统参数。这些都可以作为可疑设备特征进行加权打分。
- 对业务上的用户行为识别。黑产自动化通常会用到的协议模拟技术和模拟按键技术,这都跟自然人的操作路径会有巨大的差距。比如当用户登录时,账号密码的输入不会是瞬间完成的,又或者每次按钮的点击,也不会在相同位置。这些都可以作为检测特征,当我们对用户操作行为进行识别,这大大增加了黑灰产的对抗成本。
在未来的人机对抗中,企业将会面临越来越多的自动化攻击。企业在业务安全的纵深防御上,除了基础风控的建设之外,还需要在设备上进行防护,从而才能提高黑产的攻击成本,提升防护效果。
关于永安在线:
永安在线是一家反欺诈服务&内容安全服务提供商,基于领先的反欺诈技术、海量的数据、丰富的安全经验积累,解决互联网行业内存在的安全问题。并先后推出业务反欺诈、内容安全等系列服务。我们拥有一整套国内领先的业务安全情报监控与预警体系,形成了强大的黑灰产布控能力。目前已为腾讯、百度、阿里、华为等互联网企业提供业务安全服务。
产品体系:
业务情报:业务情报监测平台、业务情报服务
风险数据:手机号画像、IP画像、风险环境画像
风控工具:设备指纹、业务安全决策平台
内容安全:图片、文本、语音、视频
联系我们:0755-26600293
转载联系:marketing@yazx.com
关注公众号获取更多黑产研究报告