Android安全警告:发现高度复杂的Android木马20110919

原文来自:http://labs.netqin.com/us/?p=104/

Android恶意软件名:AnserverBot.2011/9/19

危险/破坏等级:高

威胁综述:

 Dr. Xuxian Jiang所领导的网秦安全研究中心团队发现的AnserverBot,被认为是感染Android设备最为复杂的木马之一。这一特定的木马搭载在合法的apps中,并且可以同远程的指挥控制服务器(Command and Control (C&C) servers) 通信,以获得进一步的指示。根据我们目前的调查,AnserverBot正在注入一定数量(20+)的合法apps中,然后被分散在中国不同的Android Market中。与之前像Pjapps和BaseBridge这样具有bot能力的程序不同的是,这个程序利用了好几种技术,包括深度代码混淆(deep code obfuscating)和(Plankton-lile)动态代码加载,用来阻止逆向工程分析以及防篡改以保护自己。据我们目前所掌握的情况,这是迄今为止我们见过的最为复杂的Android bot程序。

它是如何运行的

1.安装payload

当一个被感染的宿主开始运行的时候,将会出现一个假的升级对话框诱导用户安装一个隐藏的payload(我们称之为payload A)。Payload A本质上是一个bot程序,安装之后它会在后台安静地运行,并且不会在主屏幕上显示任何图标。就这样,即便是宿主程序从手机中被移除,bot程序还是能够继续运行。这一特定的机制与先前BaseBridge的变种里所用到的类似。

2.执行payload

除了Payload A 之外,在宿主程序中还有另外一个隐藏着的payload(我们称之为Payload B)。与Payload A所不同的是,Payload B不会被实际安装在手机中。在运行时,它会被宿主程序或者是Payload A动态地加载并执行。实际上,它利用了DVM动态加载的功能,和之前观察Plankton spyware所得到的行为相似。然而,AnserverBot又更进了一步,它将所有会被调用到的方法名称进行了加密,使得分析和检测更加地困难。除此之外,PayloadB可以远程获取并且动态加载(参看3)。

3.Phoning homes & Fetching payloads

在运行的时候,AnserverBot间歇性地(每2小时一次)同远程C&C进行通信,获得命令。AnserverBot支持两种类型,或者更加确切地说是两个层次的C&C服务。第一种层次的C&C服务是一个(加密的)公共的blog,用来保存第二种层次C&C服务的URLs以及PayloadB的新版本。特别地,当它与特定的blog节点相连接的时候,这个节点的内容会被AnserverBot解密,得到第二层C&C服务。然后它会连接到第二层C&C服务获得命令。这个是相当有意思的,因为这是在Android恶意软件史上第一个使用公共blogs 作为C&C服务来发送命令的案例。到目前为止,我们所做的分析成功地挖掘出在过去的2个月里释放出来的9个不同版本的PayloadB,从中也可以看出这一恶意软件进化的很快速。

4.自我保护

从我们的分析中可以看出,AnserverBot的作者采取了一些主动的措施去保护受感染的apk被逆向工程或者是“重新包装”(re-packaged)。尤其是,我们观察到,PayloadA和PayloadB中的大部分代码都被深度地混淆化,这增高了逆向工程的门槛。除此之外,我们也发现,AnserverBot有种机制可以避免受感染的apk被再重新包装一次。在特定的情况下,当bot程序被执行时,它会先检查app的签名。如果签名被改动过,程序将不会执行。我们推测,这是用以保护app或者是bot程序被篡改或者分析。不仅如此,我们发现有一处代码会去检测智能手机杀毒软件程序的存在。如有任何此类的安全软件被检测到,它会尝试去关闭安全软件。

原文地址:https://www.cnblogs.com/pengwang/p/2185310.html