首页 >> 网络安全 >>病毒分析 >> Smith Smith代理:移动恶意软件的新种类
详细内容

Smith Smith代理:移动恶意软件的新种类

Check Point研究人员最近发现了一种新的移动恶意软件变种,它悄悄感染了大约2500万个设备,而用户仍然完全不知道。伪装成与Google相关的应用程序,恶意软件的核心部分利用各种已知的Android漏洞,并自动将设备上已安装的应用程序替换为恶意版本,而无需用户干预。这种独特的实时设备上(JIT)方法启发了研究人员将这种恶意软件称为“ Agent Smith”。


“ Agent Smith”目前使用对设备资源的广泛访问来展示欺诈性广告,以获取经济利益。此活动类似于以前的活动,例如Gooligan,HummingBad和CopyCat。到目前为止,主要目标是印度,尽管其他亚洲国家(如巴基斯坦和孟加拉国)也受到影响。


在经过充分改进的Android安全环境中,Agent Smith背后的参与者似乎已经进入了更加复杂的世界,不断寻找新漏洞,例如Janus,Bundle和Man-in-the-Disk,以实现三个阶段感染链,以建立受控设备的僵尸网络以为犯罪者赚取利润。“特工史密斯”很可能是第一个对所有这些漏洞进行恶意化和武器化的运动,下面将对其进行详细介绍。


在这种情况下,“ Agent Smith”被用来通过使用恶意广告来牟取金钱。但是,它可以轻松用于更具侵入性和更有害的目的,例如银行凭证盗窃。确实,由于其能够从启动器中隐藏其图标并模拟设备上任何流行的现有应用程序,因此这种恶意软件有无数种可能损害用户设备的可能性。


Check Point Research已将数据提交给Google和执法部门,以方便进一步调查。结果,与恶意行为者有关的信息在本出版物中被暂时删除。Check Point与Google紧密合作,在发布之时,Play商店中没有恶意应用程序。


遭遇

在2019年初,Check Point Research团队观察到针对印度用户的Android恶意软件攻击尝试激增,这些攻击具有Janus漏洞滥用的强大特征; 我们团队在初步调查期间收集的所有样本都能够隐藏其应用程序图标,并声称是与Google相关的更新程序或自动售货模块(Google Play框架的关键组件)。


经过进一步分析,可以清楚地看出该应用程序是恶意软件,最初类似于Check Point Research在2016年4月发现的CopyCat恶意软件。随着研究的进展,它开始揭示独特的特征,这使我们相信我们正在寻找在野外发现的全新恶意软件活动。


经过一系列技术分析(下面将详细介绍)和启发式威胁搜寻,我们发现完整的“ Agent Smith”感染具有三个主要阶段:


滴管应用程序诱使受害者自愿安装自己。最初的放置程序具有武器化的风水捆绑软件,作为加密的资产文件。滴管变体通常几乎不能用于照片实用程序,游戏或与性相关的应用。

删除程序会自动解密并安装其核心恶意软件APK,该APK随后会进行恶意补丁和应用更新。核心恶意软件通常伪装成Google Updater,适用于U的Google Update或“ com.google.vending”。核心恶意软件的图标被隐藏。

核心恶意软件提取设备的已安装应用列表。如果它在猎物列表中找到了应用程序(通过硬编码或从C&C服务器发送),它将在设备上提取目标无辜应用程序的基本APK,用恶意广告模块修补APK,重新安装APK并替换原始一个,好像它是一个更新。

 


“ Agent Smith”以smali / baksmali代码级别重新打包其猎物应用程序。在最终更新安装过程中,它依靠Janus漏洞绕过Android的APK完整性检查。杀死链完成后,“ Agent Smith”将劫持受感染的用户应用程序以展示广告。在某些情况下,变体拦截受感染的应用程序的原始合法广告显示事件,并使用“ Agent Smith”广告系列黑客的广告ID回报给预定的广告交易。


我们的情报显示,“ Agent Smith”投递器通过第三方应用程序商店“ 9Apps”激增,这是UC团队支持的商店,主要针对印度(印地语),阿拉伯语和印度尼西亚用户。不过,“史密斯经纪人”本身似乎主要针对印度用户。


与以前发现的以Google Play为中心的活动(受害者几乎完全来自欠发达国家和地区)不同,“特工史密斯”成功地渗透到了沙特阿拉伯,英国和美国等发达国家的众多设备中。

1.png

图:史密斯探员的攻击流程

技术分析

“ Agent Smith”具有模块化的结构,由以下模块组成:

  • 装载机

  • 核心

  • 补丁

  • AdSDK

  • 更新

如上所述,此感染链的第一步是滴管。删除程序是经过重新包装的合法应用程序,其中包含另外一段代码–“ loader”。


加载程序的目的非常简单,提取并运行“ Agent Smith”的“核心”模块。“核心”模块与C&C服务器通信,接收预定的流行应用列表以扫描设备。如果从该列表中找到任何应用程序,它将利用Janus漏洞将“启动”模块注入重新打包的应用程序中。在下一次运行被感染的应用程序之后,“启动”模块将运行“补丁”模块,该模块将方法从已知的广告SDK挂钩到其自己的实现。

2.png

图1: 'Agent Smith的模块化结构


技术分析–装载机模块


 如上所述,“加载程序”模块提取并运行“核心”模块。虽然“核心”模块位于APK文件中,但它已加密并伪装成JPG文件-前两个字节实际上是JPG文件的魔术头,而其余数据则使用XOR密码进行编码。

3.png

图2: “ Agent Smith的jpg文件结构

提取后,“加载程序”模块将代码添加到应用程序中,同时使用Android的合法机制来处理大型DEX文件。

4.png

图3:将核心恶意代码加载到良性应用程序中

提取并加载“核心”模块后,“加载器”将使用反射技术来初始化和启动“核心”模块。

5.png

图4: Loader调用初始化方法

技术分析–核心模块


以传播感染为主要目的,“ Agent Smith”在“核心”模块中实施:

  1. 一系列“捆绑”漏洞,用于在受害者不知情的情况下安装应用程序。

  2. Janus漏洞,该漏洞使参与者可以用受感染的版本替换任何应用程序。


“核心”模块与C&C服务器联系,尝试获取要搜索的新应用程序列表,或者如果失败,则使用默认应用程序列表:

  • WhatsApp的

  • 联想.anyshare.gps

  • mxtech.videoplayer.ad

  • jio.jioplay.tv

  • jio.media.jiobeats

  • jiochat.jiochatapp

  • jio.join

  • 良好的游戏收藏

  • 歌剧原著

  • 起始星

  • 美图美

  • domobile.applock

  • touchtype.swiftkey

  • flipkart.android

  • cn.xender

  • 永恒

  • 真实呼叫者

对于列表中的每个应用程序,“核心”模块检查安装的应用程序的匹配版本和MD5哈希,还检查在用户空间中运行的应用程序。如果满足所有条件,“ Agent Smith”将尝试感染该应用程序。


“核心”模块将使用两种方法之一感染应用程序:反编译和二进制。


反编译方法基于Android应用程序基于Java的事实,这意味着可以重新编译它。因此,“ Agent Smith”会反编译原始应用程序和恶意有效负载,并将它们融合在一起。

6.png

图5:核心模块将恶意负载与原始应用程序混合在一起

在对原始应用进行反编译时,“ Agent Smith”有机会修改内部方法,用自己的代码替换原始应用中处理广告的方法,并专注于与“ AdMob”,“ Facebook”,“ MoPub”和“统一广告”。

7.png

图6:目标广告网络

8.png


图7:注入示例

完成所有必需的更改后,“ Agent Smith”将编译应用程序,并构建一个包含原始应用程序的原始代码和恶意有效负载的DEX文件。


在某些情况下,反编译过程将失败,“ Agent Smith”将尝试另一种感染原始应用程序的方法-二进制补丁,该补丁仅提供“ Agent Smith”“启动”模块的二进制文件。


准备好有效负载后,“ Agent Smith”将利用它来利用Janus漏洞构建另一个APK文件:

9.png

图8:新感染的APK文件结构

仅注入加载程序的代码是不够的。由于“ Agent Smith”使用模块化方法,并且如前所述,原始加载程序会从资产中提取所有内容,因此Janus漏洞的使用只能更改原始应用程序的代码,而不能更改资源。这意味着在这种情况下,唯一可能的是替换其DEX文件。


为了克服这个问题,“史密斯经纪人”找到了另一种解决方案。鉴于DEX文件(ART)的系统加载程序完全忽略了数据部分之后的所有内容,因此修补程序将所有资源写入此处。此操作将更改DEX文件的原始文件大小,从而使恶意资源成为DEX文件的一部分,签名验证过程将忽略该部分。

10.png


图9:恶意软件秘密地将恶意资源添加到DEX文件中

现在,在更改原始应用程序之后,Android的程序包管理器将认为这是对使用相同证书签名的应用程序的更新,但实际上,它将执行恶意的DEX文件。


即使到现在,这还不够。未经用户同意,需要更新/安装“ Agent Smith”。为了实现这一目标,“ Agent Smith”利用了一系列的1天漏洞,即使没有导出此活动,该漏洞也允许任何应用程序在系统应用程序内运行活动。


恶意应用程序发送选择网络帐户的请求,该帐户只能由恶意应用程序导出的身份验证服务来处理。系统服务“ AccountManagerService”寻找可以处理此请求的应用程序。这样做时,它将到达“ Agent Smith”导出的服务,并发出身份验证请求,该请求将导致对“ addAccount”方法的调用。然后,以绕过所有安全检查的方式调用请求,从而以安装应用程序的活动的方式形成请求。

11.png

图10:恶意更新的算法,而“ Agent Smith”更新应用程序

如果所有操作失败,“ Agent Smith”将变为“ SHAREit”或“ Xender”应用程序的磁盘人漏洞。这是一个非常简单的过程,即将SD卡上的更新文件替换为自己的恶意有效负载。

12.png

图11: “ Agent Smith”使用磁盘中的人来安装恶意更新


技术分析–引导模块

“启动”模块基本上是另一个“加载程序”模块,但是这次在受感染的应用程序中执行。该模块的目的是提取并执行恶意有效负载–“补丁”模块。被感染的应用程序的有效载荷包含在DEX文件中。所需要做的就是获取DEX文件的原始大小,并读取此偏移量之后的所有内容。

13.png

图12:启动模块

提取补丁模块后,“启动”模块将使用“加载程序”模块中所述的相同方法执行该模块。“启动”模块具有占位符类,用于被感染应用程序的入口点。这允许“启动”模块在受感染的应用程序启动时执行有效负载。

14.png

图13: Boot模块中的占位符类


技术分析–补丁模块

当“ Agent Smith”达到其目标时(在原始应用程序内部运行恶意负载,并带有各种方法的钩子),此时,一切都在于维护原始应用程序更新所需的代码。

虽然在开发此恶意软件上投入了大量资源,但“ Agent Smith”背后的参与者并不希望真正的更新删除所有所做的更改,因此这里是“补丁”模块的作用所在。

唯一目的是为受感染的应用程序禁用自动更新,该模块会观察原始应用程序的更新目录,并在文件出现后将其删除。

“ Agent Smith的武器库中的另一个技巧是更改更新超时的设置,使原始应用程序无休止地等待更新检查。

15.png

图14:禁用受感染的应用程序自动更新

16.png


图15:更改更新超时设置


广告显示有效载荷

遵循以上所有内容,现在是时候看看向受害者显示广告的实际有效负载了。

在注入的有效负载中,模块实现方法'callActivityOnCreate'。在任何时候,被感染的应用程序都会创建活动,该方法将被调用,并从“ Agent Smith的代码”中调用“ requestAd”。“ Agent Smith”将用内部SDK的活动替换原始应用程序的活动,该活动将显示从服务器收到的标语。

如果未在代码中指定受感染的应用程序,“ Agent Smith”将仅在正在加载的活动上显示广告。

17.png

图16:整合内部广告SDK

18.png

图17:将原始应用程序活动替换为恶意广告SDK活动

19.png

图18:恶意软件在正在加载的任何活动上显示广告


连接点

随着我们的恶意软件样本分析使团队更紧密地揭示“ Agent Smith”活动的全部内容,C&C服务器调查正是在这里进入中心阶段。


我们从最常用的C&C域“ a *** d.com”,“ a *** d.net”和“ a *** d.org”开始。在多个子域中,“ ad.a *** d.org”和“ gd.a *** d.org”历史上都解析为相同的可疑IP地址。


该IP的反向DNS历史使“ ads.i *** e.com”引起了我们的注意。


扩展的恶意软件搜索过程为我们返回了一大套“ Agent Smith”滴管变种,这有助于我们进一步推断出多个C&C服务器基础结构之间的关系。在“ Agent Smith”活动的不同时期,投递器和核心模块将“ a *** d”和“ i *** e”域的各种组合用于恶意操作,例如猎物列表查询,补丁请求和广告请求。


幸运的是,我们设法找到了日志,其中的证据表明“ Agent Smith的C&C前端例行地在“ wh *** g.com”和“ tt.a *** d.net”之间分配工作负载。


对“ Agent Smith的竞选活动C&C基础结构”的深入了解使我们得出的结论是,“ i *** e.com”,“ h *** g.com”的所有者是“ Agent”背后的一群黑客史密斯”。

20.png

图19: C&C基础结构图


感染景观

“ Agent Smith”滴管显示出非常贪婪的感染策略。对于这个恶意软件家族来说,仅将一个无辜的应用程序与被感染的双倍的应用程序交换是不够的。只要包名称在其猎物列表上,它就会对设备上的每个应用执行此操作。


随着时间的流逝,该活动还将使用最新的恶意补丁反复感染同一设备。这使我们估计,在大约2500万个唯一设备上,总共有28亿个感染,这意味着平均每个受害者将遭受大约112例无辜应用程序的互换。


作为最初的攻击媒介,“ Agent Smith”滥用了9Apps市场-拥有360多种不同的吸管变体。为了最大限度地提高利润,提供了带有“ MinSDK”或“ OTA” SDK的变体,以进一步感染其他广告软件系列的受害者。9Apps中的大多数丢弃程序是游戏,而其余的则属于成人娱乐,媒体播放器,照片实用程序和系统实用程序的类别。

21.jpg

图20:滴管应用类别分布

在众多变体中,仅针对前5个最具感染力的吸管,就针对无辜应用程序的感染操作而言,下载量已超过780万次:

22.png

图21:最具感染力的5个滴管

“史密斯经纪人”活动主要针对印度用户,他们占受影响人口的59%。与以前看到的以非GP(Google Play)为中心的恶意软件活动不同,“ Agent Smith”不仅对发展中国家而且对随时可以使用GP的一些发达国家都具有重大影响。例如,美国(约有303k感染),沙特阿拉伯(245k),澳大利亚(141k)和英国(137k)。

23.png


图22:世界感染热图

考虑到印度迄今为止是“史密斯代理商”(Agent Smith)感染最严重的县,因此整体设备品牌分销受到严重影响,这受到印度Android用户在品牌中的知名度的影响:

24.png


图23:受感染的品牌分布

虽然大多数感染发生在运行Android 5和6的设备上,但我们也看到了针对较新的Android版本的大量成功攻击。


这是一个令人担忧的观察。AOSP通过引入APK签名方案V2修补了自版本7起的Janus漏洞。但是,为了阻止Janus滥用,应用程序开发人员需要使用新方案对应用程序进行签名,以便Android框架安全组件可以执行具有增强功能的完整性检查。

25.png


图25:受感染的Android版本分布

为了进一步分析“史密斯特工”的感染状况,我们深入了十大受感染国家:

26.png

史密斯经纪人”时间表


“特工史密斯”(Agent Smith)背后演员的活跃迹象可以追溯到2016年1月。我们将这40个月的时期分为三个主要阶段。


2016年1月– 2018年5月:

在此阶段,“ Agent Smith”黑客开始尝试9Apps作为其广告软件的分发渠道。在此期间,恶意软件样本会显示一些典型的广告软件特征,例如不必要的权限要求和弹出窗口。在此期间,“ Agent Smith”黑客最终在9Apps上建立了大量的应用程序展示,随后将其用作演变的Droppers的发布渠道。但是,样本还没有感染受害者设备上无辜应用程序的关键功能。


2018年5月至2019年4月:

这是“特工史密斯”运动的实际成熟阶段。从2018年初到5月之前,“ Agent Smith”黑客开始尝试使用Bundle Feng Shui,Bundle Feng Shui是提供“ Agent Smith”恶意软件家族功能以感染设备上无辜应用程序的关键工具。执行了一系列试运行。经过一些重大升级后,到6月中旬,“史密斯经纪人”活动达到了顶峰。其Dropper系列已完成与Bundle Feng Shui的集成,并且活动C&C基础架构已转移到AWS云。该运动从2018年6月至2018年12月实现了指数级增长,感染人数一直稳定到2019年初。


2019年4月之后:

从2019年初开始,“ Agent Smith”的新感染率显着下降。从4月初开始,黑客开始以“ leechsdk”的名义对“ Agent Smith”战役进行新的重大更新。

27.png

图26: “ Agent Smith”广告系列时间表


更大的“史密斯特工”战役发现


为成功完成以9Apps为中心的恶意软件活动,“ Agent Smith”的幕后演员在恶意软件扩散和有效载荷传递方面建立了坚实的战略。参与者还建立了可以处理大量并发请求的可靠的后端基础结构。


在广泛的威胁搜寻过程中,我们在Google Play商店中发现了11个应用程序,其中包含与“ Agent Smith”演员有关的恶意但处于休眠状态的SDK。这一发现表明,演员具有将业务扩展到Google Play商店中的雄心壮志,并具有主要的“ Agent Smith”广告系列的成功经验。


参与者没有将核心的恶意软件有效载荷嵌入到droppers中,而是切换到了更为低调的SDK方法。危险模块中包含一个终止开关逻辑,该逻辑查找关键字“感染”。出现关键字后,SDK将从无辜的广告服务器切换到恶意的有效载荷传递服务器。因此,我们将此新的衍生活动命名为Jaguar Kill Switch。以下代码段当前处于隔离状态且处于休眠状态。将来,恶意横幅会在横幅广告展示期间调用它。

28.png


图26: kill开关代码片段

有证据表明,“特工史密斯”演员目前正在奠定基础,提高其Google Play渗透率,并等待适当的时机启动攻击。到本出版物发行时,已被Jaguar Kill Switch感染的两个应用程序的下载量已达到1000万,而其他应用程序仍处于早期阶段。


一旦发现,Check Point Research便将这些危险的应用程序报告给Google。目前,所有定制的应用程序都已从Google Play商店中删除。

29.png

图28: Jaguar Kill Switch感染的GP应用程序


窥视演员

基于上述所有内容,我们将“ Agent Smith”活动与一家位于广州的中国互联网公司建立了联系,该公司的前端合法业务是帮助中国Android开发人员在海外平台上发布和推广其应用。


在中国工作网站上的各种招聘信息和中国国家企业信用信息公共系统(NECIPS)数据使我们迈出了一步,将参与者与法人名称联系起来。有趣的是,我们从演员的前台业务中发现了多个Android逆向工程师的过期职位发布,这些职位发布于2018年和2019年。看来担任这些职位的人是“史密斯经纪人成功的关键,但对于演员的合法业务而言并不是必需的。


通过对“特工史密斯”演员的了解,比我们在竞选活动的最初阶段有了更好的了解,我们再次检查了目标无辜应用的列表,并发现了演员在选择目标方面的不寻常做法。看起来,“ Agent Smith”猎物列表不仅具有受欢迎的Janus易受攻击的应用程序以确保高度扩散,而且还包含演员合法业务部门的竞争对手应用程序以压制竞争。


结论

尽管“史密斯经纪人”背后的演员决定利用广告的使用来非法获取利润,但另一个演员却可以轻松地采取更具侵入性和危害性的途径。能够从启动器中隐藏其图标并劫持设备上流行的现有应用程序,从而有无数种可能危害用户的数字甚至物理安全的可能性。今天,这种恶意软件显示出有害的广告,明天它将窃取敏感信息;从私人消息到银行凭证等等。


“ Agent Smith”活动强烈提醒我们,仅系统开发人员所做的努力不足以建立一个安全的Android生态系统。它需要系统开发人员,设备制造商,应用程序开发人员和用户的关注和采取的措施,以便及时修补,分发,采用和安装漏洞修复程序。


这也是为什么组织和消费者都应在设备上安装先进的移动威胁防御解决方案以保护自己免受可能在不知情的情况下甚至从受信任的应用程序商店安装恶意应用程序的可能性的另一个示例。

技术支持: 建站ABC | 管理登录