风控要略:互联网业务反欺诈之路
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.3 设备伪造工具

业务风控方除通过手机号、IP 资源部署风控策略外,还会结合设备维度定制更加强有效的防控策略,因此黑产会通过各种方式和工具伪造移动设备信息。改机工具、模拟器和各种hook 框架都是黑产常用的作案工具。

2.3.1 改机工具

设备(手机、电脑等)是互联网风控体系中的重要环节。IP 和手机号都是运营商的资源,很多关键的风险属性和数据只有运营商才能掌握。而设备掌握在用户自己手中,互联网平台可以获取设备上的各种信息用来做风控。设备数据的维度是相当丰富的,设备类策略规则运用得当能够起到非常好的防护作用。为了对抗设备端的风控技术,黑产也在不断地创新各种技术,改机工具就是其中值得注意的一类。

互联网业务平台的营销活动,一般都有以下类似的客户条款。

· 每个注册账号仅限参与一次。

· 每个手机号仅限参与一次。

· 每台设备仅限参与一次。

当然这些条款不能靠客户自觉来遵守,需要做到后台限制策略里。前文提到,黑产可以通过接码平台来获取大量的虚假手机号,进而注册大量的垃圾账号。那么如何使用少量真实设备生成大量的虚假设备呢?

互联网业务平台通过设备上的一些信息来判断,这就是设备指纹。只要通过技术手段修改设备信息,理论上就可以绕过设备的限制,于是改机工具应运而生。

如图2.6所示为008神器改机工具的介绍,如果在风控系统中使用诸如手机号、MAC 地址信息来进行简单防控策略,基本上都会被这款改机工具绕过。如果应用程序没有足够的终端对抗能力,黑产就轻而易举地伪造出各种虚假的设备信息,用一台手机生成无限多个设备指纹。当然改机工具也不是万能的,设备指纹还是能够通过技术手段识别出来的,这是攻防对抗的博弈。根据对改机工具的逆向分析研究,一些高级的改机工具已经有了针对设备指纹的对抗。

图2.6 改机工具

2.3.2 多开工具

如果你希望在不root 的情况下同时开启多个相同的应用程序,就可以使用多开工具。多开的工具在Android 应用市场上架非常多,如LBE 平行空间、360分身大师、多开分身等(见图2.7)。多开工具一般自带修改系统参数功能,甚至有个别多开工具还针对设备指纹厂商进行了特殊处理。

多开工具按照技术原理,大致可以分为三大类:基于virtualAPP 开源框架、基于DroidPlugin 开源框架和重打包。也有开发者将virtualAPP 和Xposed 结合,开发出一套virtualXposed 框架,能够在多开环境下灵活使用Xposed 插件。多开工具因为不需要root就能改机,倍受“小白”黑产欢迎。

图2.7 多开工具

2.3.3 Root/越狱工具

Android root 和iOS 越狱(jailbreak)指的是操作系统管理员的权限状态,即普通应用拥有系统管理员权限。大部分的手机操作系统,出于安全的考虑,是不允许应用程序提升权限的。当然也有些Android 操作系统(如MIUI 开发版)本身允许应用程序申请root 权限。Android root 和iOS 越狱一般利用的是操作系统提权漏洞。例如,CVE-2017-8890是一个影响Linux Kernel 4.10.15之前的所有内核版本的double free 漏洞,可以利用该漏洞获取Android 7手机的root权限。Android操作系统常用的root工具有kingroot、360root、root 精灵等,这些工具实际上就是尝试利用各种提权漏洞,最终获取root 权限并安装权限管理工具。因此低版本root 和越狱的成功率较高。iOS 操作系统上的越狱工具种类繁多,Hexxa plus 支持iOS 13.1,Chimera 和Unc0ver 支持iOS 12.4。前不久爆出的iOS bootrom 硬件越狱漏洞,更是影响了iPhone XR 之前版本的iPhone 手机,况且苹果公司无法通过更新系统版本的方式修复。root 和越狱操作是有一定的风险的,很有可能造成手机系统瘫痪。需要说明的是,root 和越狱并不意味着设备一定是黑设备,只是可能性较高。

2.3.4 Xposed

Xposed 是一款Android 操作系统常见的hook 框架,可以直接从互联网免费下载,安装前需要先root 手机。基于Xposed 框架,开发者可以非常方便地修改Android 操作系统的任意Java 代码,如自动抢红包、修改步数、消息防撤回、一键新机等。绝大部分改机工具都使用了Xposed 框架,如微X 模块、QX 模块、幸运破解器、fakegps 等。

2.3.5 Cydia Substrate

CydiaSubstrate(原名为MobileSubstrate)是一款iOS 操作系统常见的hook 框架,越狱时会同时安装该软件。基于CydiaSubstrate 框架的MobileHooker,开发者可以非常方便地替换iOS 操作系统的Objective-C/C/C++函数。几乎全部的改机工具都是通过CydiaSubstrate 实现的,使用量较多的有NZT、AWZ、iGrimace 等,iOS 操作系统的改机工具大部分都是要付费的。

2.3.6 Frida

Frida 是一款功能强大的轻量级hook 框架,支持Android 操作系统和iOS 操作系统。它主要提供了功能简单的Python 接口和功能丰富的JS 接口,使得hook()函数和修改ELF 等操作可以通过简单编程实现。Frida API 接口包含了主控端与目标进程的交互接口,可以用于动态调试,即时获取信息并进行修改。使用Frida 可以获取进程的信息(模块列表、线程列表、库导出函数),可以拦截指定函数和调用指定函数,可以注入代码,图2.8展示了使用Frida 注入twitter 并使用所有recv 或read 开头的函数,操作方便。如果你没有root 手机或不想写hook 代码,你也可以选择objection。objection 是一个基于Frida 开发的命令行工具,它可以很方便地hook Java 函数和类,并输出参数,调用栈,返回值。

图2.8 Frida 注入twitter 并使用所有recv 或read 开头的函数

2.3.7 硬改工具

Android 是开源操作系统,开发者可以自己定制rom。一些不良动机的开发者,开发出可以随意修改手机操作系统参数的rom 称为“硬改”。这种改机方式对于开发者难度较高,但在操作系统framework 层面做了改动,APP 是完全无法检测的。从目前收集到的情报和数据分析来分析,确实有一部分群控和云真机在使用定制rom 的方式,手机自带操作系统打包出售。那么这些硬改的设备参数是如何生成的呢?硬改的设备可以在本地随机生成设备参数,也可以从云端设备库动态下发其他设备的真实参数。

2.3.8 脱机挂

脱机挂是指把原有客户端代码逻辑使用程序模拟执行。脱机挂开发者需要先对客户端代码逻辑进行逆向和破解,然后使用自己编写的代码实现相应逻辑。脱机挂能够实现短时间的大批量请求,但制作脱机挂的门槛也是所有作弊手段中最高的。说起脱机挂,就不得不提易语言和精易论坛。易语言是一种以中文作为程序代码的编程语言,其易上手、门槛低的特点,使之成为大多数外挂的编程语言。最近还推出了e4a 框架,可以使用易语言开发Android 应用。如图2.9所示,精易论坛是软件破解者和黑产工具的集中营,它具有各种封装好的破解库和现成工具线上担保交易。

图2.9 黑产社区的帖子

2.3.9 备份恢复/抹机恢复

由于改机工具对抗激烈,2019年黑产将作案手段升级为了iOS 设备备份恢复和抹机恢复。

备份恢复是对iOS 设备某一特定时期的数据进行备份,以备在需要时将设备恢复到某一时期的操作。例如,在安装某一应用程序之前先进行备份,然后使用完应用程序后进行备份还原,就会将设备还原到备份时的状态,而且一些系统的属性如idfa、idfv 等信息会发生变化。如图2.10所示,经过测试使用某助手进行备份还原的时间成本仅1分钟,并且可以批量操作。

抹机恢复就是将设备完全重置,恢复成出厂设置,如图2.11所示。在这个过程中,用户的所有数据信息都会被清理,即抹机后就是一个理论上的新设备,经过测试使用某助手抹机的时间成本在3~5分钟,并且可以批量操作。

图2.10 备份/恢复工具

图2.11 抹机工具

2.3.10 模拟器

近两年,手机模拟器的新技术层出不穷。一是各种 Android 模拟器获得了Windows、Linux、Mac 平台的支持,二是Android 云模拟器的兴起,三是iOS 模拟器的出现,四是在Android 手机上运行模拟器。

说起云模拟器(见图2.12),就不得不提红手指和河马云手机。在ARM 主板上同时运行多个Android 操作系统,然后通过远程控制工具实现近似于本机的用户操作,还可以实时分享给其他人观看。这种SaaS 模式可以实现成本最小化。在平台租用一台模拟器,每天的平均成本不到1元。实际测试发现,模拟器上预装好了各种游戏外挂、改机工具,操作非常流畅,玩游戏没有任何卡顿。

图2.12 云模拟器

2019年,市场上新出现了iOS 模拟器,可谓是新奇产品,如图2.13所示。iOS 模拟器目前已知的有黑雷和果仁。iOS 模拟器其实是在Windows 环境中下载一个vmdk 格式的MacOS 虚拟镜像,然后在MacOS 中使用Xcode 里的iOS 模拟器。iOS 模拟器不能直接运行ipa 文件,需要经过专用工具转换。

虚拟大师(基于Anbox)可以在Android 设备上运行一个独立的Android 模拟器,模拟器可以独立地运行各种Android APP。这个模拟器并非系统本身的镜像,由于apk打包了一个ROM(包含system.img 和data.img),所以模拟器有自己独立的版本和各项属性。在Android 手机上流畅运行模拟器,对于作弊者来说非常方便。值得一提的是,模拟器已经预装好了各种作弊工具和软件,如图2.14所示为虚拟大师的界面。有意思的是,红手指和虚拟大师的开发是姐妹公司。

图2.13 iOS 模拟器

图2.14 虚拟大师的界面

2.3.11 定制浏览器

国外还有很多专业的公司售卖付费浏览器软件,如图2.15和图2.16所示,Antidetect和Multilogin 等工具通过修改Chrome 和Firefox 内核,自定义浏览器对象参数,达到伪造新浏览器的目的,此外还提供自动代理、群控、cookie 机器人、设备标准库等功能,可视化界面方便用户操作,功能十分强大。

图2.15 Antidetect 工具

图2.16 Multilogin 工具

2.3.12 自动化脚本

selenium、plantomJS、nightmareJS、puppeteer 都是Web 应用程序的自动化框架,它们利用浏览器驱动实现自动化操作网页,支持无界面模式(headless)。如图2.17所示,使用者通过编写简单的脚本即可操作浏览器,任意更改浏览器属性。这种作弊方式不同于协议破解和JS 引擎模拟执行,因为它是在真实浏览器环境下的操作,原有的JS 代码会被完整执行,因此更难检测。并且headless 模式在内存消耗、运行时间、CPU 占用上都有一定的优势。

在移动端也有很多自动化脚本工具,如按键精灵、触动精灵等。其原理分为两类:一类是通过Android 操作系统的辅助功能服务,不需要root;另一类是通过root 权限直接注入事件。在一般情况下,自动化脚本工具会配合群控和改机工具配套使用。

图2.17 nightmareJS 代码示例