近日,网络安全公司Check Point旗下的研究人员Aviran Hazum、Feixiang He、Inbal Marom、Bogdan Melnykov和Andrey Polkovnichenko发现了一种全新的手机病毒——Agent Smith。截止到目前,该病毒已在全球范围内感染了大约2500万台安卓设备。 初步分析显示,Agent Smith主要通过虚假的图片处理、游戏或“成人”APP进行传播,且能够利用多个已知的安卓系统漏洞(如Janus漏洞),以及隐藏APP的图标。 在无需任何用户交互的情况下,Agent Smith能够使用受感染设备上已安装APP的恶意版本替换原来的合法版本,进而通过展示大量的恶意广告来给攻击者带来相当可观的收益。 感染过程经过深入分析,研究人员最终确认Agent Smith的感染过程大致可以分为三个阶段: 1.利用虚假图片处理、游戏或“成人”APP引诱受害者下载及安装; 2.虚假APP安装完成后,会自动解密并安装伪装成谷歌更新程序((如Google Updater、Google Update for U或“com.google.vending”)的apk文件(内含Agent Smith); 3. 接下来,Agent Smith便会提取受感染设备中已安装APP的列表。如果发现目标APP,则会以目标APP更新的形式安装恶意广告模块。 Agent Smith分析研究人员表示,Agent Smith具有模块化的结构,主要由如下模块构成:
Loader模块 Loader模块的作用只有一个,那就是提取并运行Agent Smith的Core模块。 提取成功之后,Loader模块会通过安卓处理大型DEX文件的合法机制将如下所示恶意代码注入到目标APP中。 一旦注入成功,Loader模块就会使用反射技术来初始化并启动Core模块。 Core模块 Core模块位于伪装成谷歌更新程序的apk文件中,且经过加密并伪装成JPG文件的。如下图所示,前2个字节是JPG文件的header,而剩余部分则是使用XOR编码的Agent Smith 的payload。 Core模块负责与C&C服务器进行通信,以接收目标APP列表,具体如下:
如果在受感染设备上安装有任意一款目标APP,就会利用Bundle系列漏洞或Janus漏洞将Boot模块注入到目标APP中。 Boot模块 从功能上讲,Boot模块相当于另一个Loader模块,主要负责提取并运行Agent Smith的payload——Patch模块。 具体来讲,在Patch模块成功提取之后,Boot模块就会在受感染设备每一次重启时使用与Loader模块所使用的相同的技术来执行它。 Patch模块 Patch模块主要负责挂钩恶意广告SDK,且能够禁用目标APP的自动更新功能,以确保它不会因为更新而被覆盖。 为此,Agent Smith使用了这样一种方法——设置update的timeout时间,使得目标APP进入无限循环的更新检查中。 感染状况研究人员表示,Agent Smith的危害性非常大,因为只要受感染设备已安装的APP在Agent Smith的目标APP列表之内就会遭到感染,且随着Patch模块的更新,目标APP列表也在更新。 换句话来说,Agent Smith会重复不断地感染同一台设备,进而感染任何一款有可能存在的目标APP,以寻求利益最大化。 到目前为止,Agent Smith的全球感染次数总量已经超过28亿次,约有2500万台不同的设备遭到感染,即平均每台设备的感染次数为112次。 如上所述,Agent Smith主要通过虚假的图片处理、游戏或“成人”APP进行传播。除此之外,还包括一些媒体播放器、系统工具等APP。 其中,下载量排名靠前的5款APP已经被下载了超过780万次。 从地理位置来看,Agent Smith的主要感染目标似乎是印度用户,占感染总量的59%。另外,与此前类似的病毒不同,Agent Smith不仅对发展中国家造成了影响,一些发达国家也未能幸免遇难。比如,美国的感染量为30.3万、沙特阿拉伯 24.5万、澳大利亚 14.1万、英国13.7万。 至于受感染设备的品牌,则包含了三星、小米、Vivo、Oppo、联想等等,具体如下图所示。 结论从目前来看,尽管隐藏在Agent Smith背后的攻击者似乎主要是想通过展示恶意广告来获取非法收益,但Agent Smith所具备的功能使得它能够被用来进行更广泛的恶意操作,如信息窃取、加密勒索等。 Agent Smith的出现提醒我们,单靠系统开发人员的努力并不足以构建一个安全的安卓生态系统。它还需要设备制造商、APP开发人员以及用户的关注和行动,以便及时发现、修补可能存在的安全漏洞。 |
|