# “道有道”的对抗之路

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-03-25T06:52:00Z
Canonical: https://wepostx.com/topics/156

> 乌云历史资料归档
>
> **原始作者：** 360安全卫士
> **原始编号：** superkieran-wooyundrops:1112
> **原始发布时间：** 2016-03-25 14:52
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

Author：360移动安全团队

# 0x00 背景

今年央视3.15晚会曝光了道有道科技公司通过推送恶意程序，使手机用户被莫名扣费的问题，引起了广大手机用户的高度关注。
360移动安全团队对道有道广告SDK进行了分析与研究。截至2016年3月底，嵌入道有道广告SDK的应用软件累计达到80万个，从月增样本数量统计可以看出，在去年年中的一个月内就收录了近10万个。

![原文图片](/media/2016/06/63c3090a6eb1cfcc0767ab4892c678e6)

# 0x01 广告形式

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

![原文图片](/media/2016/06/30ff3e8a84e5b1fe879dcb1de8be0c14)

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

![原文图片](/media/2016/06/106ba366b51dc18a340698cdcc755c6d)

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

# 0x02 推广

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

![原文图片](/media/2016/06/5204e634c5901cd127eed983d4610316)

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

# 0x03 对抗演变

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

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

![原文图片](/media/2016/06/ef36b60eaace2f931f2cbff942e2747b)

1.2 方法及字符串变形
SDK中的方法及字符串也在不断的进行变化，来躲避杀软静态特征识别。下面以onKeyDown方法为例，来展示其不同版本的变化情况。
最初的版本，方法和字符串均未加密。

![原文图片](/media/2016/06/79d47b700badfb8f8f07ed05269cc806)

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

![原文图片](/media/2016/06/56a3b2103eecf81fd5640e7c3f488e8d)

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

![原文图片](/media/2016/06/2aa0972256b763a6d0cfb109146eccea)

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

![原文图片](/media/2016/06/b3a44c28eee0700fbe77ca90de7ae75c)

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

![原文图片](/media/2016/06/77ad726b6cca308fdfb51b5c5b861461)

### 2.动态对抗
**2.1 URL变化***|
从动态角度，我们以时间轴和不同颜色的方式来展示其广告联网的URL变化情况。

![原文图片](/media/2016/06/9fed079a35b641e0ba22b706a7f3f415)

- 红色部分：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需要的开发门槛极低，甚至有些广告厂商为了方便开发者嵌入自家平台的广告，提供了广告打包器，只要将开发的应用通过打包器，就可以制作出嵌有该平台广告的应用。

![原文图片](/media/2016/06/f4a3ddfeb6a20f6ac6b8d5bb99ef612b)

极低的二次打包成本在一定程度上助涨了盗版软件的滋生。在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)

## Replies
