本文内容仅限于研究,不涉及各安全厂商具体源码与风控策略。维护网络安全,人人有责。
注册账号是大多数作弊场景的第一步,例如交易场景的生单、营销场景的秒杀活动等都需要账号的参与。其次账号相对于设备、支付卡等能够给唯一标识用户的资源中具备更好的主动权,因此提升账号安全能力是有必要的。
想要弄清楚如何提升账号成本,就需要知道创建、运营账号需要付出什么成本。说得通俗一点就是以业务蓝军的角度进行批量注册、登录。(以淘宝页面为案例,不代表本人对淘宝网进行过攻击)
若针对该功能进行逆向需要做什么准备?
(1)资源类准备包括手机号、验证码识别(图像、行为或短信验证码)、IP等
(2)协议类准备包括业务协议、安全协议。
注:此处不考虑模拟点击类攻击方式。
以上拆解具体要解决作弊的什么问题呢?
(1)手机号:解决注册多个账户的问题;
(2)验证码:解决被加强验证的问题;
(3)代理IP:解决IP被唯一标识的问题;
(4)业务协议分析:解决模拟业务请求逻辑与参数的问题;
(5)安全协议分析:解决设备唯一标识、风控参数、行为模拟的问题。
根据以上的关键点拆解,解决思路是:
(1)提升资源成本;
(2)提升技术成本。
注册攻击包括机器注册、批量注册以及小号注册,登录攻击包括机器登录、批量登录、恶意撞库以及账号盗用,短信攻击包括短信轰炸。
关于黑产资源,我把账号获利产业链分为上、中、下游三个环节。
其中上游(事前)是攻击前所需要准备的资源,中游(事中)是攻击过程中遇到的风控反制所需要准备的资源,下游(事后)为黑产攻击的目标场景。
其中具备检测的维度如下:
(1)IP资源
(2)手机号资源
(3)验证码资源
(1)改机工具
(2)群控软件
(3)自动化工具
接下来我们会根据这四个维度进行攻击原理的分析以及其对应防御思路的梳理。
(1)IP类型
(2)位置信息
(3)风险类型
秒拨的底层思路就是利用国内家用宽带拨号上网(PPPoE)的原理,每一次断线重连就会获取一个新的IP。黑产掌握大量宽带线路资源,利用这些资源构建一个动态IP池,并利用ROS(软路由)对虚拟主机以及宽带资源做统一调配和管理,再利用虚拟化和云计算的技术整体打包成了云服务。这样就能够生产出大量的真实ip。
校验IP位置与GPS位置是否一致。
爬虫、机器作弊、代理等大多数情况来自于数据中心(机房)。如阿里云、腾讯云、美团云、京东云、微软云、亚马逊云等。(需要注意的是部分办公网络也会使用云ip所以在策略应用时应该结合其他维度一起判断)
a)秒拨已经成为黑产IP层面的核心技术,也是当前业务安全的痛点之一;
b)秒拨IP数量巨大且与正常用户共用IP池。
检测技术:通过IP扫描端口、协议以及报文特征等方式,识别当前主机是否是正常用户使用的主机。
a)协议识别:
(1)REMOTE_ADDR:web服务器就会把 REMOTE_ADDR 设为客户端的 IP 地址;
(2)X-Forwarded-For:X-Forwarded-For 是一个 HTTP 扩展头部,用来表示 HTTP 请求端真实 IP。
(3)针对于高匿IP这种方式就无法应对。
b)端识别:
(1)System property中的http.proxyHost、http.proxyPort;
(2)虚拟网卡。
手机号购买的渠道大致有三类,第一类是购买现成历史账号,第二类是通过淘宝等第三方卖家,第三类是接码平台。
a)成品号价格 > 资源价格
b)成品:手机号注册号价格 > 邮箱注册号价格
c)资源:电商平台三方卖家价格 > 接码平台价格
d)资源:免费接码平台资源被拉黑概率 > 收费接码平台资源被拉黑概率
f)风险:国内资源 > 国外资源 (具体原因是国内安全厂商不具备识别国外风险手机号的能力)
国家号非86;常见香港卡、澳门卡获取方式更为简单,所以对于海外卡检测时,要重点关注这两地卡号。
162、165、167、170、171;
海外卡和虚拟卡本身存在正常用户使用,只能对其进行标记,作为因子结合其他策略一同进行检测。
在注册、登录场景,面临全新的手机号,必须依靠外部平台通过企业共享、打码平台以及运营商等渠道对风险手机号进行标识。
(1)第一代:主要利用简单知识构建验证码。如中文、英文、数字等。
(2)第二代:以第一代验证码为基础,以创新交互方式的思想构建验证码。如看题选字、看图选物等。
(3)第三代:多场景多维度收集数据信息,为网站提供立体式安全防护。
通过RNN、CNN进行图像识别。
Selenium + Headless或chrome插件进行模拟点击。
若快、斐斐、超人等打码平台进行人工打码。
对第三代验证码进行协议破解。
攻击流程一般是:篡改 + 驱动。
常见HOOK工具包括Xposed、Frida等,常见成品改机工具有改机王、随心改等。通过篡改唯一标识和相关环境检测信息,达到逃避检测的目的,后续再配套上相关驱动代码,可以作为黑盒调用,也可以配合自动化点击完成整改攻击流程。
常见的行为模拟工具auto.js、脚本精灵。除开现成的行为模拟工具也可以通过监听事件或坐标识别的方式达到自动化(驱动)的目的。
基于设备与运行环境,为每台设备生成一个不可篡改的唯一标识,这个标识就是设备指纹。
针对市面逆向手段、逆向工具、作弊工具原理分析。对当前应用运行环境进行针对性风险检测。
将账号评分作为风控体系与业务体系沟通的标准。
例如:对于资源投入高的活动,可以通过账号评分的标准适当调整用户的中奖概率,达到控制活动风险的目的。
大概率为优质用户,可以用于风控准确性判断的依据。
例如:新应用的风控策略封禁的用户中有20%为白名单用户,那初步可以判断该策略是不合理的。
需要监视其行为。
例如:监视期间存在高频访问、频繁更换机器、频繁更换账号等异常行为可以进行封禁。
历史上封禁过的用户,需要考虑封禁周期。
例如:用户设备、手机号转让给其他正常用户是否可以解除封禁?
账号安全运维阶段所需要做的事,还没有思考透彻,后续如果有机会实践再来补充。
软件工程没有银弹,逆向工程永远胜利。
懂的不多,做的太少。欢迎批评、指正。