2016年,被称为Dirty COW(CVE-moles195)的Linux漏洞被首次公开曝光。同时安全研究人员发现,诸如Redhat和Android之类的主流Linux平台中也存在该漏洞,因为这些平台的内核都是基于Linux。这个漏洞被认定为严重的提权漏洞,允许攻击者在目标系统上获得root访问权限。不过从该漏洞被发现以来,一直没有听说过针对Android平台的Dirty COW攻击的传闻,也许是因为攻击者正在憋大招:多花些时间搞出超级稳定的漏洞利用代码。近一年后,趋势科技研究人员收集到了ZNIU(即AndroidOS_ZNIU)的样本,这是第一个针对Android平台的Dirty COW漏洞的恶意软件系列。 上个月,安全研究人员在四十多个国家发现了ZNIU恶意软件,其中大多数受害者都位于中国和印度。我们在美国,日本,加拿大,德国和印度尼西亚等国也检测到了该恶意软件。截止撰写本文时,我们检测到的感染用户已经超过了5000人。同时,我们在各种恶意网站上发现,有超过1,200多种恶意使用程序都携带ZNIU代码,其中包括一个利用Dirty COW漏洞的现有rootkit,这些程序通常都会伪装成色情和游戏软件。 图1:暗藏ZNIU代码的色情程序 我们监测了六个ZNIU rootkit,其中四个利用了Dirty COW漏洞。另外两个分别是KingoRoot(一个rooting程序)和Iovyroot漏洞利用代码(CVE-2015-1805)。 ZNIU用到了KingoRoot和Iovyroot,因为它们可以获得ARM 32位处理器设备的root权限,其他针对该Dirty COW漏洞的Rootkit则没有这个功能。 感染过程 ZNIU恶意软件通常伪装成色情使用程序,放在恶意网站上工人们下载,当用户被诱骗而点击相应的恶意URL后,它就会被安装到用户的手机上。一旦启动,ZNIU就开始与其C&C服务器进行通信。如果有相应的更新代码可用,则从C&C服务器下载相应的代码,并将其加载到系统中。同时,Dirty COW漏洞利用代码将用于提权,并成相应的后门,以便将来可以发动隐蔽的远程控制攻击。 图2:ZNIU感染链 图3:恶意软件发送给运营商的交易请求 图4:SMS业务的截图 对于Android OS来说,当授予其他使用程序访问设备的SMS功能的权限时,会强制用户介入,所以ZNIU需要root权限才能实现上述功能。此外,该恶意软件还可以安装后门程序,并远程加载其他恶意代码,从而继续从受害者那里榨取钱财。 深入分析ZNIU RootkitZNIU rootkit可以通过一个独立的广播接收者(Broadcast Receiver)集成到恶意使用程序中。 图5:通过网络激活ZNIU代码 该恶意软件的操纵者还为ZNIU的DEX代码提供了加密和打包等保护措施,以对抗静态逆向工程。 经过进一步调查后发现,一旦用户将设备连接到网络或插入电源,它就会运用广播接收者(Broadcast Receiver)激活漏洞代码。然后,该恶意软件会直接传输并执行其本地代码。 图6:ZNIU的本地代码 1. 收集设备的型号信息。 2. 从远程服务器下载相应的rootkit。 3. 对漏洞利用代码进行解密。 4. 逐个触发各漏洞利用代码,检查结果,并删除漏洞利用文件。 5. 报告漏洞利用代码的运行是否成功。 图7:ZNIU的网络活动 图8:漏洞利用代码服务器的后台 图9:利用ZLIB解压ziu文件 图10:inf文件的结构 ZNIU运用公开的漏洞利用代码将shellcode写入vDSO并创建反向shell。 然后,它会篡改SELinux策略以解除限制,并植入一个后门性质的root shell。 图11:Dirty COW用于篡改vDSO的代码 用户只应安装来自Google Play或可信的第三方使用商店的使用程序,并运用杀毒软件来提供相应的保护。此外,用户还可以与其设备制造商和/或电话运营商联系,以获得此漏洞的补丁。 我们正在监测ZNIU的活动,并且会根据事态的发展进一步更新本文。本附录(https://documents.trendmicro.com/assets/pdf/Appendix- ZNIUFirstAndroidMalwaretoExploitDirtyCOWVulnerability.pdf)中列出了相关软件的哈希值(SHA256)、包名称和使用标签。 |
发表评论