本文讲的是迈克菲详解FakeInstaller恶意伪装程序,Android.FakeInstaller 是一个广泛传播的移动恶意软件系列。它曾假冒奥运会赛事成绩应用程序、Skype、Flash Player、Opera 和许多其他流行应用程序。事实上,在移动恶意软件界,FakeInstaller 系列是我们所分析过的最猖獗的恶意软件之一。迈克菲所处理过的针对 Android 系统的恶意软件样本中,超过 60%是来自 FakeInstaller系列。随着其增加了服务器端多态、混淆、反逆向以及频繁重编译等伎俩用来逃避检测,这一威胁已逐渐加大。

  Android.FakeInstaller 会向收费服务的电话号码发送消息,无需用户同意,便可将自身伪装成合法的安装程序。这一恶意软件有大量变体,通过数以百计的网站和假冒市场进行传播,且覆盖面逐日扩大。


▲Android.FakeInstaller 图标

  在用户搜索流行应用程序时,如果通过搜索引擎或社交网络不慎访问了一个假冒的官方站点或假冒市场,就会遇到貌似合法的应用程序,包含截屏、用户评价、说明、视频等,以引诱受害者下载恶意软件。当用户在执行 Android.FakeInstaller 时,首先会显示一个服务协议,告诉用户将会发送一条或多条短信,这一界面足以迷惑很多人,当用户开始点击“同意”或“下一步”按钮,系统便开始强制性的给用户发送收费短信。我们还发现一些版本在受害者点击按钮之前,便已经发送了短信。


▲Android.FakeInstaller 有不同的版本,它会模拟合法应用程序的安装或下载界面

  在用户点击按钮后,FakeInstaller 有时会显示一个虚假的下载进度条。最后,对话框关闭,受害者被重定向到另一个假冒市场。用户也不可能得到想要的应用程序。

  多态服务器

  与此同时,我们还发现了FakeInstaller 的若干变体,它们的相同点都集中在有效载荷方面,主要区别在于代码实现。其中一些还带有额外有效荷载。一般情况下,每个系列都与一组服务器、域名和假冒应用程序市场相关联。


  而由于多数 FakeInstallers 是服务器端多态的,因此这种关系非常强大,这意味着服务器(根据其配置)可能会针对同一 URL 请求提供不同的 APK 文件。

  如果受害者要从假冒市场下载应用程序,服务器会将浏览器(browser)重定向到另一个处理该请求的服务器,并发送定制好的 APK,该 APK 包含一个在生成的 URL 中关联的 ID。APK 文件与受害者的 IP 地址相关联。

  例如:假冒的“Opera Mini 6.5” APK 文件会从一个 URL(http://[censored]loads.ru/tds?r=3967) 下载,而从两个 IP 地址(A 和 B)访问。因此,受害者被重定向到不同的 URL 并下载非常相似的 APK 文件,这些文件会在 file res/raw/config.txt 中包含一些差别之处,它们与重定向的 URL 相关。

  下图显示了 file res/raw/config.txt 内部的差别,它们存在于下载自 IP地址 A 和 B 的.样本中。



  因此,这一改动会导致数字签名(MANIFEST、MYKEY2.SF 和 MYKEY2.RSA)的变化。这一恶意软件的其他变体包含一个图片(或一个俄文笑话)以增加或改变 APK 文件的大小。

  向收费号码发送消息

  以前的 FakeInstaller版本都是针对西欧用户创建,如今,恶意软件开发者已经将其欺诈的触角延伸到了其他国家与地区——通过添加指令来获得设备的移动国家码和移动网络码。根据这类信息,Android/FakeInstaller 会选择收费号码并向其发生短信。最初版本的短信都包含在 DEX 文件中,而最新版本的短信则包含在 APK 中的加密 XML 文件里。迄今为止,我们已经发现最多发送达7条收费短信的 FakeInstaller 样本。

  逃避分析:Java 混淆和重编译

  通常,在一个假冒市场,所有应用程序都包含相同的 DEX 文件。经过一段时间,会为所有应用程序变更 DEX 文件。恶意软件编写者会使用同一代码新的重编译版本来更改其 DEX 文件,或者实施新的功能并包含一些外观变化,假冒安装进度条动画、图标和文本等。


  最新版本的 FakeInstaller 包含同一代码的不同重编译混淆版本,更改源文件名、行号、字段名、方法名、参数名和变量名等。

  在下图中,我们可以看到同一变体的两个混淆版本,它们在两天时间里出现在同一假冒市场:


  诸如 ProGuard 或 DexGuard 之类的混淆会删除调试信息并将所有名称替换为无意义的字符序列,这样就更难以对代码进行逆向工程。有些版本(如 Android.FakeInstaller.S)还包含反逆向伎俩,能够有效规避动态分析,防止恶意软件在模拟器中运行。

  僵尸网络伎俩

  有一些版本的 Android.FakeInstaller 不仅仅向收费号码发送短信,还包含后门程序以便从远程服务器接收命令。FakeInstaller.S 使用“Android Cloud to Device Messaging”来将受感染的设备注册到一个数据库,并从恶意软件编写者的Google 帐户向它们发送消息 (URL)。

  传播伎俩

  由于服务器端的多态性,我们还不得不考虑的一个问题是新的假冒网站和假冒市场每天都会涌现。这些站点将受害者的下载重定向到一组 IP 地址和域,如下图所示:


  一些此类站点看上去相当具有迷惑性,并且能轻易地让受害者中招,原因在于它们被索引在诸如 Yandex 之类的搜索引擎中,在搜索结果排名中有着不错的位置。为了逃避检测,一些假冒站点会将来自恶意来源的应用程序下载链接重定向到无害的 APK 文件,然后再恢复链接。

  我们还曾发现有的站点将 URL 通过 Twitter 由僵尸帐户和假冒 Facebook 配置文件进行共享。


  结论

  恶意软件编写者通过这类欺诈攫取了大量不义之财,因此,他们一定还会不断完善基础设施、代码和伎俩来试图规避防病毒软件。在迈克菲看来,这将是一场无休止的对抗,而我们能做的就是完善自身,不断提高本身的安全系数,来规避这些恶意软件。

作者:海浪
来源:it168网站
原文标题:迈克菲详解FakeInstaller恶意伪装程序

迈克菲详解FakeInstaller恶意伪装程序相关推荐

  1. 迈克菲详解Android.FakeInstaller恶意伪装程序

    Android.FakeInstaller 是一个广泛传播的移动恶意软件系列.它曾假冒奥运会赛事成绩应用程序.Skype.Flash Player.Opera 和许多其他流行应用程序.事实上,在移动恶 ...

  2. 详解Xcode 4发布程序图文并茂教程

    详解Xcode 4发布程序图文并茂教程 2011-08-09 16:47 佚名  本文介绍的是详解Xcode 4发布程序图文并茂教程,通过图文的方式来介绍本文的内容,直接来看详细内容. AD: Xco ...

  3. 命令提示符使用java 类报错_lt;03gt;详解第一个Java程序

    详解第一个Java程序视频教程: Java轻松入门经典教程​ke.qq.com 1.编写源程序 新建一个文本文档,名称为HelloWorld,后缀为.java,右键编辑. 编写一个打印HelloWor ...

  4. Android开发详解之App升级程序一点通

    Android开发详解之App升级程序一点通 结束语 UpdateManager.java import java.io.File; import java.io.FileOutputStream; ...

  5. 详解 - 解决微信小程序分享功能图片比例问题 - 全局分享

    前言: 我在我的博客小程序使用微信小程序分享功能 图片不符合5:4问题 ,对其原理 扫描下面二维码,可以体验哦 准备 在需要自定义分享的页面 设置canvas 组件 目录 准备 详解思路 定义总函数 ...

  6. 《微信小程序开发》 页面导航最强详解 | 如何对小程序页面进行跳转?

    <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 文章目录 <微信小程序开发> 页面导航最强详解 | 如何对小程序页面进行跳转? 一.微信小程序导航 二.命 ...

  7. 【OpenGL】详解第一个OpenGL程序

    写在前面 OpenGL能做的事情太多了!很多程序也看起来很复杂.很多人感觉OpenGL晦涩难懂,原因大多是被OpenGL里面各种语句搞得头大,一会gen一下,一会bind一下,一会又active一下. ...

  8. 微信小程序详解 php,微信小程序canvas基础详解

    canvas 元素用于在网页上绘制图形.HTML5 的 canvas 元素使用 JavaScript 在网页上绘制2D图像.本文主要和大家分享微信小程序canvas基础详解,希望能帮助到大家. 一.了 ...

  9. 微信小程序详解 php,微信小程序列表开发详解

    本文主要和大家分享微信小程序列表开发详解,主要以代码的形式和大家分享,希望能帮助到大家. 一.知识点 (一).列表渲染 wx:for tip:wx:for="array"可以等于参 ...

最新文章

  1. nmap,tcpdump
  2. ubuntu server搭建svn server
  3. java 与 乱码问题_透彻分析和解决一切javaWeb项目乱码问题
  4. 什么是RESTful
  5. ado.net的操作查询数据 0127
  6. 快速搭建 SpringCloud 微服务开发环境的脚手架
  7. 一些必看的jQuery导航插件和教程
  8. 2018年山西省环境空气质量综合指数平均下降10.8%
  9. C++实现调用C#(CLI)方法
  10. Python下载prettyloaded的swf
  11. WinCE6.0 BootloaderMain源码分析之DownloadImage
  12. 190331每日一句
  13. Excel常用函数+数据透视表
  14. 第5-5课:最大流问题(图文篇)
  15. 继CDH收费之后,这家公司率先推出了免费版大数据套件服务!
  16. 微信第三方平台服务器,EasyWeChat微信开放平台第三方平台接入
  17. 动态规划——邮局、区间、坐标
  18. 服务器常用语言,计算机常用词汇--语言及服务器篇
  19. 在Mac OS系统下安装Java
  20. 2023年全国最新工会考试精选真题及答案3

热门文章

  1. 地铁bas服务器系统,地铁某线BAS系统项目
  2. 模仿口才的最佳训练方法
  3. 百分百恋人 治愈系恋人 如何照顾他心里的伤
  4. 【蓝桥杯】第十三届省赛-纸张尺寸
  5. 全国计算机等级考试全真模拟,全国计算机等级考试全真模拟试卷(10)
  6. excel怎么设置打印区域_WPS表格技巧:打印的内容很少,不能打印在纸张中间区域怎么办?...
  7. 一种用于COVID-19检测的轻量级深度学习模型实现
  8. LPC2103学习之定时器0和定时器1
  9. Linux Mint 19.1 配置开发环境记录【含:输入法安装、字体模糊解决等问题】
  10. MS17-010漏洞利用工具系统入侵(实测)