Android病毒分析报告 - 新病毒FakeUmg “假面友盟”
近期百度安全实验室发现一款“假面友盟”新病毒,该病毒通过大批量二次打包第三方应用获得快速的传播。安全实验室监控数据表明,受该病毒感染的应用数以万计,且分布于国内不同流行应用商店,累计下载量超过10万余次。该病毒恶意代码伪装成著名的“友盟统计”插件,具有较强的隐蔽性,导致该病毒较难被发现。 该病毒启动后,后台偷偷访问远端服务器获取运行指令,并根据服务器端指令执行如下恶意行为:
1、后台私自发送短信订阅付费服务,并拦截特定号码短信,完成吸费。
2、后台自动化模拟点击访问广告,骗取广告联盟广告推广费,消耗大量数据流量。
目前监控到的该病毒的远端指令服务器有以下几个:
http://118.126.11.136
http://218.240.151.104
http://www.ppa2099.com
http://www.sese365.net
http://www.fafa7891.com
1、首先该病毒通过修改AndroidManifest.xml文件的入口Activity为com.umeng.adutils.SplashActivity,SplashActivity启动恶意代码后,再启动源程序MainActivity。这样就达到了既启动恶意代码,又不破坏原有程序逻辑的目的。
代码树结构
通过伪装成“友盟SDK"到达隐藏目的,逆向分析人员极易忽略此类代码。
2、病毒恶意组件功能及交互图
3、恶意代码片段截图
一、广告模拟点击相关
广告指令服务器端地址:
Http请求服务器获取广告指令,广告指令通过Base64编码,解码后的指令如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--软件信息-->
<application>
<!--应用名称-->
<appname>阿伦威克高清动态壁纸</appname>
<!--应用包名-->
<pkgname>com.cnr.alunweike</pkgname>
<!--应用版本-->
<appversion>2.3.3</appversion>
<!--应用版本数-->
<appversioncode>16</appversioncode>
<!--应用主界面-->
<activity>MainActivity</activity>
<!--所在广告平台产品ID-->
<appid>29e27c80-6a22-44e7-9c1c-1033b0bbeab5</appid>
<!--所在广告平台渠道ID-->
<appchannel>DTN</appchannel>
<appkey>yzwzyleoczhi</appkey>
</application>
<!--模拟平台的参数信息-->
<advertisement>
<!--广告平台名称-->
<advertname>datouniao</advertname>
<adverttimes>0</adverttimes>
<!--广告平台需要模拟地址信息-->
<url urlid="1">
<!--具体网络地址,若以大括号包围表示关键字-->
<detail>http://ws1.datouniao.com/AdPublisherConnect</detail>
<!--访问方式-->
<way>get</way>
<!--是否需要UA-->
<useragent>0</useragent>
<!--延迟时间,以秒为单位-->
<delay>0</delay>
<!--返回的正确结果-->
<statusCode>200</statusCode>
<!--所需参数-->
<param pid="1">
<name>udid</name>
<value>$deviceID</value>
</param>
<param pid="2">
<name>device_name</name>
<value>$deviceType</value>
</param>
<param pid="3">
<name>device_type</name>
<value>android</value>
</param>
<param pid="4">
<name>os_version</name>
<value>$deviceOs</value>
</param>
<param pid="5">
<name>country_code</name>
<value>CN</value>
</param>
<param pid="6">
<name>language_code</name>
<value>zh</value>
</param>
<param pid="7">
<name>app_id</name>
<value>$appId</value>
</param>
<param pid="8">
<name>screen_density</name>
<value>$deviceDensity</value>
</param>
<param pid="9">
<name>screen_width</name>
<value>$deviceWidth</value>
</param>
<param pid="10">
<name>screen_height</name>
<value>$deviceHeight</value>
</param>
<param pid="11">
<name>sdk_version</name>
<value>7</value>
</param>
<param pid="12">
<name>userID</name>
<value>$deviceID</value>
</param>
<param pid="13">
<function>netType</function>
<value>$netType</value>
</param>
<param pid="14">
<name>place_id</name>
<value>$appChannel</value>
</param>
<param pid="15">
<name>timestamp</name>
<function>$at</function>
</param>
<param pid="16">
<name>verifier</name>
<function>$verifier</function>
</param>
</url>
<url urlid="2">
<!--具体网络地址,若以大括号包围表示关键字-->
<detail>http://ws1.datouniao.com/android/AdsOffers</detail>
<!--访问方式-->
<way>get</way>
<!--是否需要UA-->
<useragent>1</useragent>
<!--延迟时间,以秒为单位-->
<delay>0</delay>
<!--返回的正确结果-->
<statusCode>200</statusCode>
<!--所需参数-->
<param pid="1">
<name>udid</name>
<value>$deviceID</value>
</param>
<param pid="2">
<name>device_name</name>
<value>$deviceType</value>
</param>
<param pid="3">
<name>补充:移动开发 , Android ,