zoukankan      html  css  js  c++  java
  • 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程序被篡改或者分析。不仅如此,我们发现有一处代码会去检测智能手机杀毒软件程序的存在。如有任何此类的安全软件被检测到,它会尝试去关闭安全软件。

  • 相关阅读:
    Chrome开发者工具中Elements(元素)断点的用途
    最简单的SAP云平台开发教程
    Java实现 LeetCode 495 提莫攻击
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 492 构造矩形
  • 原文地址:https://www.cnblogs.com/pengwang/p/2185310.html
Copyright © 2011-2022 走看看