揭秘潜藏在你手机里的“广告大师”

百家 作者:OPPO安全应急响应中心 2021-03-11 18:22:04



背 景 


OPPO天镜:基于多引擎综合判定的移动应用安全与隐私检测平台,提供移动终端APP、IOT、快应用、小游戏等的安全与隐私检测能力。


近日,天镜分析团队在做恶意样本分析时检测到一款恶意的工具类应用,该应用主要行为是展示各种应用外广告(普通用户无法感知到是哪个应用弹出来的广告),定期循环弹出广告,配合流氓保活(通过保活机制让程序无法被杀死)给用户极差的使用体验。


试想一个场景:手机用户正在使用导航开车,突然遇到恶意弹出的全屏广告而且无法关闭,那会有多危险。轻则路线走错,重则引发交通事故,严重威胁人身安全,后果不堪设想。除此之外,恶意工具类应用有的单纯为了弹出广告而本身就不具备相应的功能,比如杀毒类App只是为了展示广告,杀毒功能只是展示一个动画。某些工具应用目的则是窃取用户的隐私信息。


  • 恶意工具应用具体的恶意行为有哪些?实现原理是什么?

  • 为什么恶意开发者会盯上工具类应用呢?

  • 普通用户如何识别何防范此类应用?


接下来通过分析主流的某类工具应用(见下图)的实现流程,为大家详细介绍一下这些恶意应用潜藏了哪些恶意行为。


图1-1: 恶意应用名单




主要恶意行为


动态控制广告开关

经过我们的分析,通常这类应用恶意行为的开启都是有相关配置,应用在刚刚安装到用户手机上时,是不会展示广告的。

我们以最简单的启屏广告来举例。首先,先是获取广告相关的配置,然后根据配置信息,来决定是否去展示广告。


图1-2 广告请求流程


我们在看一下默认的开屏广告配置。从下图可以明显看到,默认开屏是关闭的。让用户误以为,应用没有广告。


图1-3 默认广告配置文件



流氓保活

应用可以在Android9.0以上进行相当强的保活,核心原理为: 通过fork多个进程,进程间利用Linux的flock文件锁来监测对方是否已经死亡,利用系统查杀的空挡,反射系统API进行拉活,导致最终应用进程无法被杀死。


图2-1 保活sdk启动后


通过上图可以发现,保活sdk启动后,会孵化出多个进程,多个进程相互守护,对于普通用户来说,应用根本无法杀掉,这也就导致应用可以随时监听到用户手机相关的行为,从而弹出应用外广告。


监控其他应用进入/退出,从而弹出广告

先说一下,为什么应用要监听其他应用的进入和退出的时候弹广告呢?这是因为,通过监听其他应用进入,可以给用户造成错觉,认为这个广告是其它应用的启动广告,是正常的。退出广告也同理,都是让用户认为当前展示的广告是其它应用弹出的,而并非恶意App。

上面之所以先说保活,就是为了让大家看到,保活这个辅助手段加上应用外广告,会给用户带来多大的伤害。


图 3-1 应用外广告样式



下面看一下它的实现方式


图 3-2 应用打开/关闭广告位实现流程


下面放一张应用外广告的配置

图3-3 应用打开/退出广告位配置文件


通过上面的手段,应用就可以肆意的弹出应用外广告,在保活的保护下,意味着,如果用户不卸载此应用,将一直会看到广告。


锁屏广告

先看一下样式

图 4-1 锁屏样式


锁屏有什么危害呢?第一个就是广告容易误触,按用户解锁习惯,很容易就点击去解锁了。另一个就是,一般系统都有锁屏,这样会导致解锁两次,用户的体验会比较差。下面来看此应用锁屏的具体实现。


简单看一下锁屏广告的实现:


图 4-2 锁屏实现


通过上面对这款应用的分析,我们可以看出,如果用户安装了这个应用,无论是否在使用此应用,都会有非常差的体验,而且由于有强保活的原因,这个影响是持续的。


HomeBack广告,拦截用户正常退出

所谓的HomeBack,就是在主Activity中拦截了onBackPressed事件,详细见下图。



图 5-1 HomeBack实现


图 5-2 策略弹窗


用户本来在应用里面已经看了很多广告了,然后现在非常想退出应用,结果一按back键,又弹了一个视频广告出来,这时候用户一定会很苦恼。


应用内循环广告展示

图6-1 应用内循环广告样式(都是视频类型)


循环广告,只要处于主界面,每隔一段时间就会弹出一个广告,下面看它的实现

图 6-2 循环广告实现


无法关闭的广告

  • 控制关闭按钮大小

开发者可以通过服务端控制关闭按钮大小,如果设置比较小的时候,基本就点不到了。


图 7-1 控制关闭按钮大小


下面看一下实现方式


图 7-2 控制关闭按钮大小代码


  • 控制关闭按钮事件

开发者可以通过对关闭按钮的点击事件做修改,从而使用户的关闭意图变为广告点击意图

图7-3 控制关闭按钮事件


后台用户收集隐私信息

后台收集用户的隐私,一般用户是无法察觉的,比如下面的代码,就是偷偷跑在一个服务里面,应用会注册相当多的广播,一旦触发广播,就会启动上报服务,用户的数据可能被拿去卖掉,或者用作刷量,无论哪一种,都会造成用户隐私泄露。


图 8-1 收集用户数据



虚假功能应用,欺骗用户看广告

什么是虚假功能呢?就是整体功能只有UI变动,实际上什么都没做, 然后为用户播放广告 ,比如下图中某杀毒软件:


图 9-1 手机杀毒触发流程


简单介绍一下上面流程,点击手机杀毒,然后跳转到手机杀毒扫描界面,再然后,跳转到扫描结果界面,现在我们分析核心代码操作。

图 9-2 随机生成病毒


也就是说,病毒都是通过随机数生成,然后杀毒的过程只是个动画,代码中什么都没做,用户只要杀毒,就会弹出广告。



工具类应用的风险

为什么恶意开发者会选择工具类应用作为宿主呢?

根据我们调研发现, 工具类应用通常拥有特定的权限(可能是恶意开发者需要的权限)也比较容易去申请其他权限,另外普通用户比较相信工具类应用,未过多的检查权限是否合理。


恶意工具类应用的盈利手段

  • 广告盈利

恶意工具App会通过技术手段,窃取广告主的广告预算。例如本篇提到的,杀毒清理类App很容易获取到监控其他应用相关的权限,这样就可以肆无忌惮的弹出“应用外场景的广告”,用户十分反感频繁的广告,这就造成了,广告主的许多展示的预算是无效的,而广告费用却被恶意App赚取了。


  • 短信订阅

恶意工具App会通过协议或者WebView构造订阅信息(整个过程是无感的),然后通过读取短信,或者通知栏内容完成订阅流程。在整个过程中,读取通知栏/读取短信内容是必不可少的,所以,为了达到目的,恶意开发者会专门开发一款短信管理/通知栏管理工具去获取相应权限,最终目的是为了赚取用户的订阅费用。


  • 贩卖数据信息

恶意工具App在获取权限后,会在后台静默收集设备的所有信息,甚至会读取用户相册,试图收集身份证和银行卡的信息。这些数据可能会被拿去卖给黑灰产团队做刷量,或者会卖给诈骗团伙做诈骗,无论是哪一种,都会造成用户利益的损失.



安全建议

  1. 用户可以从正规应用商店下载软件,避免从论坛、小型资源站等下载软件,可以有效的减少该类病毒的侵害。如OPPO移动应用安全与隐私检测平台(天镜)会持续关注移动应用的安全与隐私问题,基于多引擎全方位检测,发现威胁会及时更新规则在应用上架软件商店前有效拦击恶意应用,使手机用户能放心下载。
  2. 树立安全防范意识,应用申请权限时要区分是否和应用功能相关,不相关权限不能给。
  3. 手机用户应养成使用安全软件来保护手机安全的良好习惯,定期给手机进行体检和病毒查杀,并及时更新病毒库,提升手机安全。



最新动态
招聘专场-总有一个岗位适合你!
安全众测第五期-IoT众测
2020年OPPO安全大事记
揭秘QUIC的性能与安全
年度奖励 | 期待已久的年终奖出炉啦~
OSRC 2周年第二弹——第五次奖励升级
OPPO互联网DevSecOps实践


关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接