McAfee Mobile Research团队已经确定了一个名为Android/LeifAccess.A的Android恶意软件家族,该家族自2019年5月以来一直处于活动状态。目前,该木马已在全球范围内被本地化,但在美国和巴西的流行率更高。作为有效载荷的一部分,该木马可以滥用OAuth,利用辅助功能(AccessibilityService)在多个第三方应用中以受害者的合法电子邮件的名义自动创建帐户。使用相同的方法,它可以在Google Play商店上创建虚假评论,以操纵应用排名,执行广告欺诈(点击功能),更新自身并执行任意远程代码等功能。
根据最新的调查,许多受到虚假评论影响的目标应用程序还在Google Play上。
目前,这个恶意软件还没有在官方的Android商店中被识别出来,所以研究人员认为该恶意软件的传播方法与社交媒体、游戏平台、恶意广告以及从命令与控制(C&C)服务器直接下载APK文件有关。
使用社会工程方法获得无障碍服务的过程
安装后,Android/LeifAccess.A不会显示任何图标或快捷方式。它会隐藏在后台运行,并可能会通过显示toast通知,模拟如下所示的系统警告,要求受害者激活辅助功能服务来执行大多数恶意活动:
无障碍服务旨在帮助残障用户,或者在无法与设备进行完全交互的情况下为残障用户提供帮助。但是,正如我们在银行木马和其他移动威胁中所观察到的那样,辅助功能也可能被恶意软件开发者滥用而在没有用户交互的情况下执行恶意活动。在最新版本的Android中,Google限制了在Google Play上具有无障碍服务权限的应用程序的数量,并将某些功能移至其他新创建的API,以最大程度地减少滥用行为,但网络罪犯仍在尝试利用它,说服用户激活此关键权限。
如果用户授予了可访问性权限,则该木马可以完全执行其恶意活动;如果未授予它,它将仍然执行部分可能的命令,例如广告欺诈、安装快捷方式并进行自我更新,从而为新的有效载荷打开了大门。
虚假评论是如何生成的?
基于对去混淆化的第二阶段dex文件(fields.css)的静态分析,研究人员认为,Android/LeifAccess可以通过滥用辅助功能在谷歌Play上发布虚假评论:
被混淆的字符串列表,用作视图id访问的完全合格资源名称,以执行滥用访问服务的虚假评论
Android/LeifAccess会尝试下载并安装目标应用程序,因为用户帐户只能撰写之前安装过的应用程序的评论。它将尝试通过Google Play下载,除此之外还有一个从另一个市场商店(APKPure)下载应用程序的实现,以及直接链接。
真实案例分析
研究人员已经在Google Play上找到相关评论,这些评论与从C&C接收到的参数相匹配,并存储在去混淆的SharedPreferences XML文件中。例如,这款名为“超级清洁手机助听器、垃圾清洁剂和CPU冷却器”的应用程序获得了4.5星的平均评分和超过7000条的评论,其中很多都是假的,因为它们使用了从木马的命令参数中复制的词汇。
一些虚假评论包含多个“喜欢”,这些“喜欢”可能与恶意软件执行的其他命令有关,恶意软件能够找到这些文本内容,并给它们一个“喜欢”:
用于对虚假评论进行投票的命令“ rate_words”
命令和参数解密
Android/LeifAccess.A以SharedPreferences XML格式存储Hashtable映射,其中的键是函数名称,值是命令使用的参数。为了避免检测,对真实函数名称(纯文本)和参数进行了混淆,加密,加盐处理或单向哈希(md5或sha-1)。
使用zip.deflater和base64.enconde作为防御规避技术,通过数据压缩将值存储为混淆字符串。使用相同的算法,有些字符串会被混淆多次。
每个键都是使用对字符串的自定义base64生成的字节数组的md5摘要校验和计算得出的,该字符串是通过对示例的“函数名称”和“包名称”进行自定义操作而产生的。该系列有数百种不同的变体,每个变体具有不同的程序包名称,因此恶意软件开发者利用程序包名称字符串中的这种唯一性将其用作对键值进行哈希处理的盐值。
在图5中,xml
MD5是一种单向函数,因此无法解密字符串,但是,根据静态分析,可以重新计算在第二个阶段DEX文件中找到的所有已解码字符串的哈徐,然后将其与哈希表关联。
通过使用rate_p_words和com.services.ibgpe.hflbsqqjrmlfej作为参数调用哈希函数,可以重新计算此特定哈希值。
在相同的哈希表中存储其他参数,如使用相同的加密/混淆技术的自更新服务器URL:
混淆的HashMap
该密钥为F09EA69449BA00AA9A240518E501B745,其嵌入值可解释为:
HashMap作为纯文本
其他命令在附录中的命令表中有详细说明,其中包括快捷方式创建和更新频率。
此外,接收到的命令也可以存储在本地的SQLite数据库中,该数据库记录恶意软件执行的部分操作。
滥用可访问性
停用Google Play保护
LeifAccess尝试使用AccessibilityNodeInfo通过view-id资源名称浏览目标应用程序,例如,对于Google Play保护,该程序包以程序包名称“com.android.vending”嵌入到Google Play应用中,并且它将尝试访问在字符串g上定义的视图ID“ play_protect_settings:”。完整的合格资源ID为“com.android.vending:id/play_protect_settings”,如下面的反混淆代码所示。然后它将找到“android:id/switch_widget”以尝试禁用扫描设备选项。
LeifAccess滥用的view-id资源字符串列表
虚假账号创建滥用单点登录
恶意软件使用的另一种技术是以真实用户身份和在受感染设备上注册的帐户的名义创建帐户,这是通过滥用辅助功能服务来创建帐户并使用谷歌登录OAuth 2.0来实现的,许多合法的服务将OAuth 2.0集成到他们的应用程序中。
Android/LeifAccess可以下载并安装目标应用,然后在没有用户交互的情况下建立账户。
下面的反混淆代码显示了Android/LeifAccess如何使用AccesibilityEvent导航到约会应用程序以使用Google登录选项创建帐户。
用于创建伪造帐户的AccessibilityEvent
以下是此恶意软件以执行虚假帐户创建为目标的其他应用程序包名称的一些示例,这些名称主要与购物,约会和社交等类别相关。
zalora.android tiket.gits b2w.submarino zzkko phrendly newchic.client com.netshoes.app Makemytrip Like lazada.android joom jabong.android · startv.hotstar banggood.client alibaba.intl.android.apps.poseidon · alibaba.aliexpresshd airyrooms.android
其他恶意的有效载荷
广告欺诈
恶意软件还实现了Clicker功能,因此受感染的设备可以请求广告流量,而无需在界面中显示单个广告。
从C&C发送特定的用户代理标头以执行广告欺诈。
特定的用户代理
广告网络的ID通过C&C服务器更新:
用于通过广告获利的ID
通常,运行广告的应用会将一个或多个广告网络SDK(通常以JAR库形式传播)集成到其中,以正确请求广告内容收集位置、设备类型甚至某些用户数据。但是,此恶意软件不会将任何SDK软件包集成到源代码中以访问广告。而Android/LeifAccess可以通过C&C服务器预先构建并以JSON格式发送给它的广告点击或广告印象(IMPR)的直接链接,使用正确的广告网络格式加载广告。这意味着受感染的设备将能够请求具有模拟合法点击所需的完整参数的URL,该合法模拟来自用户在合法应用程序的上下文中单击横幅广告,从而避免了SDK集成,这也有助于保持相对较小的尺寸文件大小。
广告软件JSON结构如下:
此外,如果该恶意软件在收到适当的命令后或基于C&C定义的特定频率,在解锁设备后,该恶意软件可以在任何应用程序的上下文中全屏显示真实的广告。此外,它还可以显示一个重叠图标,以浮动重叠的形式重定向到广告。
可以根据收到的参数在主屏幕中创建任意快捷方式:
虚假通知
为了获得辅助功能,或者请求禁用尚未被授予的操作系统安全选项,恶意软件可以启动toast消息,试图说服受害者执行某些操作。
以下是“dialog”属性内恶意软件使用的JSON格式的虚假通知(包括标题和内容)的列表,,该属性在参数“notifi_inter”(28800000毫秒,等于8小时)的间隔内作为toast通知执行。
用作虚假通知的对话框列表
“deactivate”和“activate”字符串被国际化,以匹配OS语言:
解压缩和执行过程
为了避免被检测到,或者使用一种“防御规避”技术,最初安装的应用程序只是一个包装程序,该程序一旦被执行,就可以从路径“assets/fields”的资产文件中解密JAR,并通过反射将其动态加载到主要应用程序中。另外,系统API调用字符串也使用自定义的base64实现进行了混淆处理。
恶意软件的解压缩过程
还原解密的jar文件需要对Android / LeifAccess.A使用的字符串进行混淆处理,这些字符串都是自定义编码的:
使用函数et.a对字符串进行混淆处理
命令和控制服务器
命令和控制服务器还用于恶意软件传播和有效载荷更新,域名中包含的单词可能使人们认为它们属于合法的广告网络或内容传播网络(CDN):
hxxp://api.adsnativeXXX.com hxxp://cdn.leadcdnbXXX.com/
传播与网络遥测过程
以上所举的样本可作为直接APK链接托管在C&C中,但也可以在社交媒体中传播,也可以作为试图说服用户安装重要安全更新的恶意广告活动来传播。此变体标签为SystemSecurityUpdates,程序包名称以“com.services.xxxx”开头,并伪装成系统更新。
变异的Android /LeifAccess.A的变体是通过Discord游戏聊天平台托管和传播的,一些恶意的APK变体可以在以下网络中被找到:
· hxxps://cdn.discordapp.com/attachments/XXXXXXXXX/XXXXXX
攻击如果要实现,就需要用户下载并安装恶意APK,这意味着攻击者会使用社会工程学原理让用户首先禁用安全措施,然后激活辅助功能。
总结
综上所述,Android/LeifAccess.A确实是一种独特的恶意软件,它能够通过社会工程的方式安装到受害者的设备上,然后以受害人的名义在Google Play上发布虚假评论,并最终在第三方服务上创建虚假帐户以及实现更新机制,并结合多种混淆和加密技术逃避检测。
该木马的主要功能有:
1.从Google Play或APK Pure下载应用;
2.禁用Google Play保护;
3.创建具有OAuth滥用访问权限的虚假帐户;
4.在Google Play上发布虚假评论;
5.在主屏幕上创建快捷方式;
6.在后台以全屏的形式显示广告;
7.自我更新;
另外,Android/LeifAccess实施了多种反检测技术,并加密和混淆恶意行为,并尝试避免各种杀毒软件地检测。
根据目前找到的样本,研究人员可以推断出,大量资源将被用于服务器端多态方式的基础设施和样本生成的自动化。不断部署新的变体,以使虚假评论者不断活跃着。
这类恶意软件不仅会损害用户,还会影响应用程序市场的信誉,以及为无人浏览的横幅广告付费的广告主。
除此之外,本文的分析还表明,存在这样一个黑市,可以通过欺诈手段提高应用程序的声誉。
命令表
Mitre ATT&CK 矩阵
IoC
6032c1a8b54f3daf9697a49fdd398d3ebe35f3fec3d945d6d8e9588043332969
com.services.ibgpe.hflbsqqjrmlfej
032184204b50f0634ad360a2090ea9904c012cb839b5a0364a53bf261ce8414e
com.services.kxyiqc.zzwkzckzfiojjzpw
0a95e9cce637a6eb71e4c663e207146fe9cde0573265d4d93433e1242189a35c
com.services.jifat.qaxtitmumdd
533a395ed16143bbe6f258f3146ea0ea3c56f71e889ace81039800803d0b1e18
com.services.xvpyv.tteawsribdsvi
6755f708d75a6b8b034eae9bcb6176679d23f2dc6eb00b8656d00f8ee0ec26c1
com.services.myzmuexri.nrphcanr
URL
adsnative123[.]com
Myapkcdn[.]in
adsv123[.]com
本文翻译自:https://www.mcafee.com/blogs/other-blogs/mcafee-labs/android-leifaccess-a-is-the-silent-fake-reviewer-trojan/如若转载,请注明原文地址