从2017年4月份开始,我们就一直在观察这个通过Google Play应用商店进行传播的新型恶意软件。与其他root型恶意软件不同,这款恶意软件不仅会将自己的模块植入目标系统中,而且它还会将恶意代码注入至系统运行时库。卡巴斯基安全实验室将这款恶意软件标记为Trojan.AndroidOS.Dvmap.a。
Dvmap分析
实际上,通过Google Play应用商店来传播恶意软件已经不是什么新鲜事了。比如说,从2016年9月至今,Ztorg木马已经上传至Google Play大约100多次了。但Dvmap是一款非常特殊的Android root恶意软件,它使用了很多新的攻击技术,其中最有意思的是它竟然能够将恶意代码注入至目标设备的系统库中,例如libdmv.so或libandroid_runtime.so等等。
这也使得Dvmap成为了历史上首个能够在设备运行过程中向系统库中注入恶意代码的Android恶意软件。目前它在Google Play应用商店中的下载量已经超过了5万次。目前,卡巴斯基实验室已经将该木马报告给了Google,Google也在收到报告后的第一时间将其从应用商店中移除了。
为了成功绕过Google Play应用商店的安全检测,这款恶意软件的开发者使用了一种非常有意思的方法:他们在2017年3月底向应用商店上传了一个干净的App,随后又对这款App进行了更新,并将原本的代码替换成了恶意代码,操作完成之后他们会在同一天向Google Play重新上传一个干净版本的App。研究人员通过观察发现,攻击者在4月18日到5月15日之间至少进行了5次这样的上传和更新操作。
所有的恶意Dvmap App都拥有相同的功能,它们首先会对App安装数据包中assets文件夹下的一些归档文件进行解密,然后利用这些文件来启动恶意可执行文件(文件名包含“start”)。
有趣的地方就在于,该木马甚至支持Android的64位版本,这就非常罕见了。下图为该木马选取32位和64位兼容文件的部分代码:
所有的加密文件可以被分为两大类:第一类由Game321.res、Game322.res、Game323.res和Game642.res组成,恶意软件在攻击的初始阶段需要使用到这些文件;第二类由Game324.res和Game644.res组成,这些文件用于攻击的主要阶段。
初始阶段
在这个阶段中,木马会尝试获取目标设备的root权限并安装某些模块。这个阶段中所要用到的归档文件都包含相同的文件,但除了一个名叫“common”的文件之外。这是一个本地root利用包,而且该木马会使用4种不同的漏洞利用包文件,其中3个针对的是32位系统,另一个针对的是64位系统。如果这些文件成功获取到了root权限,该木马将会向目标系统中安装一些恶意工具。除此之外,它还会安装恶意App“com.qualcmm.timeservices”。
这些归档文件中包含一个名叫“.root.sh”文件,而这个文件代码的注释部分竟然写的是中文:
主要阶段
在这个阶段中,该木马会通过Game324.res或Game644.res启动之前的“start”文件。它会检测目标设备所安装的Android版本,然后再决定攻击哪一个库。对于Android 4.4.4或更老的版本,该木马会修改libdvm.so中的_Z30dvmHeapSourceStartupBeforeForkv方法,对于Android 5及其以上版本,它将会修改libandroid_runtime.so中的nativeForkAndSpecialize方法。这两个库是跟Dalvik和ART运行时环境相关的系统运行时库。在修改代码之前,该木马会对原始库进行备份,备份命名格式为bak_{原始名称}。下图为修改过后的libdvm.so:
在修改代码的过程中,该木马会用恶意代码重写现存的代码,然后它所要做的就是执行/system/bin/ip了。这是非常危险的,因为这种代码重写(覆盖)行为可能导致会导致设备发生崩溃。接下来,该木马会将修改过的库文件放回系统目录中,然后替换掉原始的/system/bin/ip。这样一来,Dvmap就可以确保它的恶意模块能够以系统权限执行。但是恶意ip文件中并不包含原始ip文件中的任何方法,这也就意味着所有需要使用这个文件的app都会失去一部分功能,有时甚至还会发生崩溃。
恶意模块 -“ip”
修改过的系统库将会执行这个恶意文件,它可以通过修改系统设置来关掉系统的“VerifyAPPs”功能并允许用户从第三方商店安装应用。除此之外,它还可以通过注入控制命令在与用户没有任何交互的情况下给“com.qualcmm.timeservices” App提供设备管理员权限,对于恶意软件获取设备管理员权限来说,这种方法还是很罕见的。
恶意App – “com.qualcmm.timeservices”
正如我之前所提到的,在攻击的初始阶段,该木马需要安装“com.qualcmm.timeservices” App。它的主要目的是下载归档文件并执行其中的“start”代码。在我们的分析过程中,这款App能够成功连接到其后台C&C服务器,但当时它并没有接收到任何命令。所以目前我们还不清楚它执行的到底是哪种文件,但肯定是恶意文件或广告文件。总结
这款名叫Dvmap的木马主要通过Google Play应用商店进行传播,并且使用了多种非常危险的技术,包括修改系统库代码。它会在目标系统中安装各种不同功能的恶意模块,由此看来,它的主要目标就是感染目标系统,然后以root权限执行那些从恶意C&C服务器下载来的恶意文件,但我们目前还无法得知具体的恶意文件类型。
就目前的分析来看,我们认为Dvmap的开发者仍在测试这款恶意软件,因为他们现在所使用的技术很有可能会导致受感染系统发生崩溃。因此,我们系统能够在这款恶意软件的早期攻击阶段就将它公之于众,这样一来,我们将有更加充足的时间来设计出更好的应对方案。
MD5
43680D1914F28E14C90436E1D42984E2
20D4B9EB9377C499917C4D69BF4CCEBE
|