迈克菲详解FakeInstaller恶意伪装程序-阿里云开发者社区

开发者社区> 知与谁同> 正文

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

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

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

迈克菲详解FakeInstaller恶意伪装程序
▲Android.FakeInstaller 图标

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

迈克菲详解FakeInstaller恶意伪装程序
▲Android.FakeInstaller 有不同的版本,它会模拟合法应用程序的安装或下载界面

  在用户点击按钮后,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 的.样本中。

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

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

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

  向收费号码发送消息

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

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

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

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

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

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

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

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

  僵尸网络伎俩

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

  传播伎俩

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

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

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

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

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

  结论

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


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10071 0
正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码...
当我在窗体初始化的时候,调用了一个外部的dill时,它就不知什么原因的 抛出一个“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”的异常,程序就卡掉了,在网上查了查,相关说明如下: .NET2.0中增加了42种非常强大的调试助手,MDA.Loaderlock 是其中之一。
1115 0
Linux基础命令---mail邮件管理程序
mail mail是一个邮件的管理程序,可以用来发送或者接收邮件。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法 mail [选项] addr 2、参数列表 -a file 将给定的文件发送出去 -b ...
963 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13880 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11888 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7362 0
Linux 程序 Linux编译 Linux编译过程的来龙去脉
Linux 程序编译过程的来龙去脉 大家肯定都知道计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解释型,因此我们基本上将高级语言分为两大类,一种是编译型语言,例如C,C++,Java,另一种是解释型语言,例如Python、Ruby、MATLAB 、JavaScript。
1066 0
+关注
10077
文章
2994
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载