移动应用安全黑灰产对抗分析之“虚假”的点击

admin 2023年3月18日20:52:51评论120 views字数 3991阅读13分18秒阅读模式
一、前言

随着互联网时代的发展,利用互联网技术实现的新型网络犯罪事件层出不穷,黑灰产技术不断升级且越来越复杂,“作案工具”也越来越多,这给黑灰产对抗带来了越来越多的挑战。根据业界公开材料显示:2021年黑灰产行业研究及趋势洞察报告中有这样一项数据:手机端黑灰产作恶工具中,42%为脚本工具,其中26.35%使用了按键精灵工具实现黑灰产盈利。与此同时,云真机、群控也是经常出现的网络黑产技术。这些工具均应用到了“虚假”点击技术。因此笔者对常见的 “虚假”点击黑灰产技术展开了研究,通过对“虚假”点击技术原理的深入分析,借助MotionEvent类中的部分方法,获取模拟点击事件与人工点击事件特征值,通过特征提取与判断,可在移动应用运行中有效识别点击事件的来源,完成对“虚假”点击的有效判断。

二、常见的“虚假”点击

针对业界常见的“虚假”应用及原理进行了不同程度的分析,其中常用的“虚假”点击技术主要依赖于ADB、截图、Instrumentation、辅助功能等能力,取其中代表实现分析如下:

1. 按键精灵

按键精灵是一款模拟鼠标键盘动作的软件。该软件通过制作脚本,可以让按键精灵代替双手,自动执行一系列鼠标键盘动作,通过“虚假”点击等事件来达到进行恶意作弊等破坏网络环境的目的。

同时,该工具也是黑灰产场景中出现频次最多的手机端黑灰产作恶工具,我们对其实现原理进行调研。我们可以采用以下三种技术实现按键精灵“虚拟”点击的功能:

(1)使用Root权限模拟发送ADB的input命令

(2)后台截图使用ADB的screencap命令

(3)使用MediaProjectionManager 的录屏接口进行截屏

根据分析,ADB的screencap命令在java代码中并不能直接像命令行那样拿到图片的二进制数据返回,而只能将截图保存到闪存中,然后再从闪存读取图片数据,技术(2)的性能较差,不适合按键精灵这个软件的应用。技术(3)应用后会出现弹窗,而按键精灵无弹窗,故可以将其排除。通过更深入的查询资料,通过反编译对工具的底层原理进行分析,得到每一项事件(如按下、抬起、触摸、移动等)都经过了一个实现Instrumentation类的函数。

移动应用安全黑灰产对抗分析之“虚假”的点击

按键精灵apk反编译后的核心函数

2. 云真机

云真机本质上就是远程控制手机,并且通过API的方式间接调用ADB命令和手机交互。常见的云手机平台有河马云、多多云手机、红手指等。这些业界众多云测平台的服务器原理基本是通过一些高端的USB HUB连接了很多真机,再通过一个设备管理系统,将手机屏幕类似直播的方式显示到用户的浏览器上,再接收浏览器的上的手势操作回传给服务器。

下图为云真机的原理图。用户首先与web平台建立连接,用户上传手势、命令等操作传送给web平台,web平台获取到操作权限后与主机建立联系,主机收到调用信息后将发送ADB命令去实现用户指定的操作。可以发现,云真机的底层原理也应用到了ADB命令来实现“虚假”点击等操作。

移动应用安全黑灰产对抗分析之“虚假”的点击云真机原理图

3. 其他

技术的快速发展使得黑灰产行为变得更加智能化、自动化。黑灰产为降低运营成本,提高效率应用脚本进行“虚假”的自动化技术还有很多,如autojs、Xposed等工具,均在不同的场景中应用了“虚假”点击事件,后续我们还会对更多的此类技术进行底层原理分析。

三、实现技术分析

通过对上文常见的“虚假”点击分析,我们可以得到其实现原理是两种比较典型的Android“虚假”(即模拟)点击事件方法:

(1)ADB控制

(2)Android的测试框架—Instrumentation

接下来,我们来详细的对这两种典型方法进行介绍:

ADB控制

Android 调试桥 (adb) 是一个通用命令行工具,其允许与模拟器实例或连接的 Android 设备进行通信。ADB控制通过input来实现,用于输入touch,key等事件。

ADB可以分为三个部分:

  • 客户端:该组件发送命令。客户端在开发计算机上运行。我们可以通过发出 adb 命令从命令行终端调用客户端。

  • 后台程序:该组件在设备上运行命令。后台程序在每个模拟器或设备实例上作为后台进程运行。

  • 服务器:该组件管理客户端和后台程序之间的通信。服务器在开发计算机上作为后台进程运行。

ADB的后台程序相当于一个跑在手机上的服务器,通过约定的协议以TCP的方式和PC的客户端交互,执行命令。下图所示为ADB命令流程图:

移动应用安全黑灰产对抗分析之“虚假”的点击adb命令流程图

常见ADB终端命令如下:

移动应用安全黑灰产对抗分析之“虚假”的点击

代码中ADB模拟点击事件的实现:

移动应用安全黑灰产对抗分析之“虚假”的点击

Instrumentation

Instrumentation是Android自带一个单元测试框架,最大的作用反而是用于功能测试或UI测试。其核心代码如下所示:

移动应用安全黑灰产对抗分析之“虚假”的点击

为了得到上述模拟点击事件与人工点击事件的特征以发现两者的区别,笔者针对Android事件的点击与分发机制进行了模拟点击事件与人工点击事件分析和真机测试,可知

我们可以从Android的MotionEvent类入手,事件发生时的一些特征值存在着不同之处,能够帮助我们寻找区分两者的方法,为了方便大家理解,我们先对MotionEvent类详细介绍。

MotionEvent是用于描述一个运动事件(鼠标、笔、手指、轨迹球)的类,是用来存储我们当前手指移动的状态的,比如按下、移动、抬起等。MotionEvent可能持有绝对或者相对运动和其他数据,这取决于设备的类型。我们对MotionEvent类进行详细分析。

1. MotionEvent的主要事件类型

事件类型是指MotionEvent对象所代表的动作,获取事件类型的核心代码如下所示:

移动应用安全黑灰产对抗分析之“虚假”的点击

动作所产生的一系列事件,被称为一个事件流,它包括一个ACTION_DOWN事件,很多个ACTION_MOVE事件,和一个ACTION_UP事件。

移动应用安全黑灰产对抗分析之“虚假”的点击

2. MotionEvent的常用方法

移动应用安全黑灰产对抗分析之“虚假”的点击

四、“虚假”点击事件对抗

根据MotionEvent的获取事件类型与通过调用方法获取到的特征维度来测试与分析“虚假”点击事件与人工点击事件的差别。“虚假“点击即应用代码完成点击事件,因此也可称作模拟点击。在实验中我们采用了getDownTime()、getEventTime()、getSize ()及getPressure ()这四个方法获得的特征来进行测试。

1. 人工点击的特征

选用vivo手机进行人工点击测试,如图所示,人工点击时按压与抬起的压力均为1.0(某友商品牌手机的压力值不是固定的数字,压力值取决于硬件,不同的手机压力值也存在着差异),按压范围是有很多小数点的数值,按下时间与事件发生结束的时间有一定的变化。

移动应用安全黑灰产对抗分析之“虚假”的点击

人工点击所得特征值

2. ADB模拟点击与人工点击的区别

如图所示可以看出,ADB模拟点击事件的抬起时压力为0.0,与人工点击不同;按压范围均为1.0,这对于人工点击来说基本无法达到如此准确的得到1.0这个数值;按压时间与事件发生结束(即抬起)时间完全相同,这也与人工点击事件完全不同。因此,可以根据这四个特征来区分ADB模拟点击事件与人工点击事件。

移动应用安全黑灰产对抗分析之“虚假”的点击

adb模拟点击所得特征值

3. Instrumentation模拟点击与人工点击的区别

如图所示可以看出,采用Instrumentation框架实现模拟点击事件与人工点击事件的唯一差别是按压范围。同ADB模拟点击事件的按压范围相同,Instrumentation模拟点击事件获得的按压范围值也均为1.0。因此,可以根据按压范围这一特征区分Instrumentation模拟点击事件与人工点击事件。

移动应用安全黑灰产对抗分析之“虚假”的点击

Instrumentation模拟点击所得特征值

小结

根据对三种点击方式的测试,我们能够明显发现三者的不同之处。如下表格所示:

移动应用安全黑灰产对抗分析之“虚假”的点击

因此,我们可以应用这些特征帮助我们识别底层技术原理为ADB或Instrumentation的黑灰产行为,为后续的对抗打下基础。

五、总结

随着黑灰产产业的日益发达,我们急需提高能够对抗黑灰产事件的技术。对于移动应用安全中常见的“虚假”点击事件,本文通过两个常见黑灰产“虚假”点击场景进行分析,得到其实现“虚假”点击的底层原理,对“虚假”(即模拟)点击事件进行分析,通过调用MotionEvent类的getDownTime()、getEventTime()、getSize ()及getPressure ()这四个方法获取到的值能够有效区分两种典型”虚假“点击事件与人工点击事件。利用互联网技术产生的各类移动端黑灰产犯罪事件层出不穷,对营造安全绿色的网络环境的要求越来越高,亟须加快对抗黑灰产行为的步伐。通过对典型的“虚假”点击事件的分析,我们能够发现,深入调研与分析黑灰产技术的原理能够帮助我们更快、更准确的找到能够识别黑灰产的方法。我们对黑灰产技术的研究不能止步于此,与黑灰产对抗的步伐不会停歇!

参考文献

【1】深入探究按键精灵(Android)的实现原理,https://www.jinnrry.com/2019/05/15/ReverseEngineering/

【2】Android云真机原理以及云真机平台搭建实践,https://www.hackbase.net/mobile/tips/260115.html

【3】Android模拟点击的四种方式,https://developer.aliyun.com/article/325054

【4】Android ADB原理及常用命令,https://www.cnblogs.com/hiyong/p/14163307.html

【5】Android 运行Instrumentation Test的原理分析,https://www.jianshu.com/p/6132eeb551d3

【6】MotionEvent详解,https://www.jianshu.com/p/3f204d64178b

原文始发于微信公众号(vivo千镜):移动应用安全黑灰产对抗分析之“虚假”的点击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月18日20:52:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   移动应用安全黑灰产对抗分析之“虚假”的点击http://cn-sec.com/archives/1219166.html

发表评论

匿名网友 填写信息