2011年是Android设备爆发的一年,越来越多的朋友都享受到了智能机给生活带来的便利,但与此同时,越来越多的恶意软件也盯上了这个系统,连新年也不让人安生。下面就为大家分析一款近日流行的恶意软件——Android.KungFu系列变种,并且介绍针对这一病毒的解决方案。
病毒介绍
Android.KungFu最早在6月份被安全厂商截获,随后又出现了至少3种不同的变种,截止到发文为止,这款病毒仍然在不断演化。KungFu系列病毒的特征非常典型,感染此病毒的手机会自动在后台静默下载并安装某些软件,造成用户流量话费损失以及系统全自动安装广告软件。当手机感染此病毒后使用常规安全软件无法彻底清除,甚至将手机恢复至出厂设置也无法解决问题。
这款病毒通常会捆绑在某些合法软件内,在第三方Android应用市场和论坛中传播,常见的宿主包括一键VPN(免费)、音乐随身听等,截止到发文,LBE团队已经通知各大第三方Android应用市场和论坛关注该类型的应用。
病毒分析
Android.KungFu整体架构由两个模块构成,第一个模块(Loader)会在宿主运行到特定场景时激活,随后执行提权操作,并加载第二个模块(Payload),Payload模块则常驻内存,执行各种威胁手机安全的操作。Android.KungFu不同的变种之间,区别主要在于不同的Loader,Payload模块则基本相同。
当Loader模块被激活后,首先会试图获得ROOT权限。根据宿主软件的不同,Loader会采用不同的策略,如果Loader宿主本身需要ROOT权限, Loader就会附着在宿主需要以ROOT权限执行的代码之后运行(例如一键VPN免费版,其中捆绑的Android.KungFu会嵌入在安装VPN的代码中)。如果宿主本身不需要ROOT权限,Loader会利用公开的漏洞(NPROC_RLIMIT)在后台静默获取ROOT权限(例如音乐随身听)。由于这个漏洞广泛的存在于Android2.1和2.2设备上,所以,即使手机没有ROOT权限,多数手机依然会受这个病毒威胁。
然后,随后,Loader会进行以下操作(不同的变种具体细节可能不同):
1.将系统分区设置为可写
2.获取设备信息,包括系统版本,手机品牌,Device ID,SDK版本等数据,写入mycfg.ini,并将此ini文件复制到/system/etc下重命名为.rild_cfg
使用AES加密算法解密Payload(Payload通常保存在宿主的assets中,名为Webview.db.init),并将Payload复制以下位置:
/system/etc/.dhcpcd
/system/xbin/ccb
/system/bin/installd(将原始文件备份为/system/bin/installdd)
/system/bin/dhcpcd(将原始文件备份为/system/bin/dhcpcdd)
/system/bin/bootanimation(将原始文件备份为/system/bin/bootanimationd)
3.恢复系统分区为只读,并执行/system/xbin/ccb
至此,Payload已经完成金蝉脱壳,从宿主APK中成功的被释放出来了。由于病毒替换的关键系统文件(installd, dhcpcd, bootanimation)在开机过程中会自动启动,因此病毒实际上具备了以ROOT权限开机自动启动的能力。同时,由于Payload已经脱离APK藏身于系统分区内,即使安全软件检测到病毒,也无法进行清理操作。
当Payload随系统自动启动之后,会尝试连接以下地址,获取攻击命令:
http://search.gongfu-android.com:8511
http://search.zi18.com:8511
http://search.zs169.com:8511
由于Payload感染了多个系统进程,为避免相互冲突,当任意一个Payload进程连接至控制服务器后,便创建/system/etc/dhcpcd.lock文件锁来进行进程同步。
(责任编辑:)