0445-“道有道”的对抗之路

# “道有道”的对抗之路

**Author:360移动安全团队**

0x00 背景
=======

* * *

今年央视3.15晚会曝光了道有道科技公司通过推送恶意程序,使手机用户被莫名扣费的问题,引起了广大手机用户的高度关注。

360移动安全团队对道有道广告SDK进行了分析与研究。截至2016年3月底,嵌入道有道广告SDK的应用软件累计达到80万个,从月增样本数量统计可以看出,在去年年中的一个月内就收录了近10万个。

![p1](http://drops.javaweb.org/uploads/images/4a8ae3f87500998af2df1b83c43b933d211fddf8.jpg)

0x01 广告形式
=========

* * *

在道有道的官网上,介绍了其广告SDK的展现形式包括插屏广告、Banner广告和应用推荐广告。

![p2](http://drops.javaweb.org/uploads/images/5c356301b8983009af836ca5631c0c69fa06393c.jpg)

其官网展示的插屏广告是在软件内的插屏,实际上在其广告SDK开发文档中,还支持在自身软件外弹插屏广告,这也正是3.15曝光的展现形式。

![p3](http://drops.javaweb.org/uploads/images/c3af4b0508d333ac1b0ebe2732fa3994cb02d72b.jpg)

这种外插屏的展现形式,侵犯了用户的知情权,用户不知道是哪个应用弹的广告,并且点击屏幕任何地方都会直接下载推广的应用,除非准确点击ⓧ才能关闭广告。这种匿名且在自身应用外推送的广告展现形式,不但容易造成用户手机流量损失,还影响用户手机正常使用,被我们定义为恶意广告。

0x02 推广
=======

* * *

360移动安全团队发现,借助道有道广告SDK推广的软件,除了正常软件外,还存在大量的恶意软件,比如3.15曝光的色情视频类恶意软件。我们之前发布的“舞毒蛾”【1】和“百脑虫”【2】木马分析报告,都是借助色情视频类恶意软件传播、感染用户手机,并且难以清除干净。

![p4](http://drops.javaweb.org/uploads/images/0c614d98e0ff66856a5952ae052e0a30bbe41727.jpg)

移动广告平台对推广的应用审核不严,助涨了恶意软件传播,成为了其帮凶,最终造成用户经济损失、隐私泄露。

0x03 对抗演变
=========

* * *

360移动安全团队分析发现,道有道广告SDK利用静态和动态相结合的手段,与杀软特征进行持续性的对抗,从而躲避杀软的查杀。

### 1.静态对抗

**1.1 组件名称随机化**

从静态角度,通过对比嵌入其SDK的两个相似样本的AndroidManifest.xml文件内容,可以发现其声明的activity、service名称都是随机生成的,没有任何含义,这与一般正常软件的声明方式有明显的不同。

![p5](http://drops.javaweb.org/uploads/images/cbac15ec4133d3cca5463775f49c251e867ebbb1.jpg)

**1.2 方法及字符串变形**

SDK中的方法及字符串也在不断的进行变化,来躲避杀软静态特征识别。下面以onKeyDown方法为例,来展示其不同版本的变化情况。

最初的版本,方法和字符串均未加密。

![p6](http://drops.javaweb.org/uploads/images/ae8e855a465eab5be543ad82661026f1da939bca.jpg)

升级的版本,方法中的字符串进行简单的Base64加密。

![p7](http://drops.javaweb.org/uploads/images/4afccc85a5e32286747ed87daafc06836c9a0751.jpg)

再后续的版本中,隐藏方式又有所加深,将方法名称及字符串都保存在配置文件里。

![p8](http://drops.javaweb.org/uploads/images/bc645207fba3573c9c5f7dded330de0969c8c844.jpg)

**1.3 核心代码的隐藏**

道有道广告SDK的核心功能都是依靠动态加载的dex文件来实现,这也是躲避杀软静态特征扫描的一种手段。其主要采用本地文件释放和代码运行释放两种手段隐藏其核心代码。

解析assets目录下的资源文件,得到加载的dex文件。

![p9](http://drops.javaweb.org/uploads/images/164ec4fdbfd0548615b08220c0afe8753cfba7fc.jpg)

将dex文件的二进制编码到代码中,在代码运行过程中解码释放。

![p10](http://drops.javaweb.org/uploads/images/f84afcb766434c6206b36bf092d24f256853359b.jpg)

### 2.动态对抗

**2.1 URL变化***|

从动态角度,我们以时间轴和不同颜色的方式来展示其广告联网的URL变化情况。

![p11](http://drops.javaweb.org/uploads/images/0574de838586622a9ee3699e345eb3f8185ab5e7.jpg)

* 红色部分:URL前面几乎都是以“`api`”开头,不同时间段后面分别是 “`is”、“cp”、“info`”;
* 绿色部分:URL最后面都是以“`jsp`”结尾,并且从“`init`”、“`in`”和“`i1n2i3t4`”能够看出有明显的对抗变化;
* 蓝色部分:URL中间部分从“`is`”变为“`nis`”,从“`_b`”变为“`_tgb`”;
* 黄色部分:URL开头部分从“`api`”变为“`ai`”;
* 紫色部分:URL结尾从“`wa.*/bb`”变为“`ai.wa.*/ia`”;

以上这些URL的变化,都是在对抗沙箱等动态检测技术。

0x04 讨论
=======

* * *

移动广告市场的快速增长导致国内涌现出上百家移动广告平台,他们主要依靠在移动应用中集成广告SDK,收取广告主的展示费来盈利。3.15曝光的移动广告平台问题,仅仅是冰上一角,这些广告平台大小不一,良莠不齐,他们提供的广告SDK没有统一的行业标准,给移动安全带来了一定的风险和隐患。

360移动安全团队发现,开发者嵌入广告SDK需要的开发门槛极低,甚至有些广告厂商为了方便开发者嵌入自家平台的广告,提供了广告打包器,只要将开发的应用通过打包器,就可以制作出嵌有该平台广告的应用。

![p12](http://drops.javaweb.org/uploads/images/76ae2d68b134c2089c981d0761c8a6bac9ce6fb0.jpg)

极低的二次打包成本在一定程度上助涨了盗版软件的滋生。在360发布的《2015年Android手机应用盗版情况调研报告》【3】中指出,平均每款正版APP对应92.7个盗版。

广告厂商借助移动应用平台进行广告投放,有责任对自身推广的软件安全性进行严格审查,避免广告推广给手机用户带来的不必要话费、流量损失。

我们建议用户在选择应用下载途径时,应该尽量选择大型可信站点,如360手机助手、各软件官网等。同时,安装360手机卫士定期查杀。

0x05 参考文献
=========

* * *

* 【1】:[“舞毒蛾”木马演变报告](http://blogs.360.cn/360mobile/2016/03/08/analysis_of_wudue/)
* 【2】:[“百脑虫”手机病毒分析报告](http://blogs.360.cn/360mobile/2016/01/06/analysis_of_bainaochong/)
* 【3】:[2015年Android手机应用盗版情况调研报告](http://zt.360.cn/1101061855.php?dtid=1101061451&did=1101657409)

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容