McAfee Mobile Research团队已经确定了一个名为Android / LeifAccess.A的Android恶意软件家族,该家族自2019年5月以来一直处于活动状态。该木马已在全球范围内被本地化,但在美国和巴西的流行率更高。作为有效载荷的一部分,该木马可以滥用OAuth,利用可访问性服务在多个第三方应用程序中以受害者的合法电子邮件的名义自动创建帐户。使用相同的方法,它可以在Google Play商店上创建虚假评论,以操纵应用排名,执行广告欺诈(点击功能),更新自身并执行任意远程代码等功能。
同时,许多受到假评论影响的目标应用程序都在Google Play上。
该恶意软件尚未在Android官方商店中找到,因此我们确定的某些潜在分发方法与社交媒体,游戏平台,恶意广告以及从Command and Control(C&C)服务器直接下载APK文件有关。
社会工程获得无障碍服务
安装后,Android / LeifAccess.A不会显示任何图标或快捷方式。它在后台运行,并可能会通过显示敬酒通知并模拟系统警告,要求受害者激活可访问性服务以执行其大多数恶意活动,如下所示:
无障碍服务旨在帮助残障用户,或者在无法与设备进行完全交互的情况下为残障用户提供帮助。但是,正如我们在银行木马和其他移动威胁中所观察到的那样,可访问性服务也可能被恶意软件作者滥用而在没有用户交互的情况下执行恶意活动。在最新版本的Android中,Google限制了在Google Play上具有可访问性服务许可的应用程序的数量,并将某些功能移至其他新创建的API以最大程度地减少滥用,但是网络罪犯仍在尝试利用它,说服用户激活此关键许可。
如果授予了可访问性权限,则该木马可以完全执行其恶意活动;如果未授予它,它将仍然执行部分可能的命令,例如广告欺诈,安装快捷方式并进行自我更新,从而为新的有效负载打开了大门。
假评论
基于对模糊的第二阶段dex文件(fields.css)的静态分析,可以得出结论,Android / LeifAccess可以通过滥用辅助功能来在Google Play上发布虚假评论:
Android / LeifAccess会尝试下载并安装目标应用程序,因为用户帐户只能撰写对先前安装的应用程序的评论。它将尝试通过Google Play下载,但是还有一个实现可以从替代市场商店(BlackBerry)下载应用程序以及直接链接。
真实的例子
作为这种恶意行为的真实示例,可以在Google Play上找到与从C&C接收并存储在去混淆的SharedPreferences XML文件中的参数匹配的评论。例如,应用程序“ Super Clean-Phone Booster,垃圾清理器和CPU散热器”的平均得分为4.5星,并且获得超过7k条评论,其中许多是伪造的,因为它们具有从特洛伊木马的命令参数中复制的重复短语。
一些伪造的评论包含多个喜欢,这些喜欢可以与此恶意软件执行的其他命令相关联,该恶意软件能够找到此文本内容并为其提供喜欢:
命令和参数解密
Android / LeifAccess.A 以SharedPreferences XML格式存储Hashtable映射,其中的键是函数名称,值是命令使用的参数。为了避免检测,对真实函数名称(纯文本)和参数进行了混淆,加密,加盐处理和/或单向散列(md5或sha-1)。
使用zip.deflater和base64.enconde作为防御规避技术,通过数据压缩将值存储为混淆字符串。使用相同的算法,有些字符串会被混淆多次。
每个键都是使用对字符串的自定义base64生成的字节数组的md5摘要校验和计算得出的,该字符串是通过对样本的“函数名称”和“包名称”进行自定义操作得出的。该系列有数百种不同的变体,每个变体具有不同的程序包名称,因此恶意软件作者利用程序包名称字符串中的这种唯一性将其用作对键值进行哈希处理的盐。
在图5中,xml <String>元素包含C&C发送的评论,而属性“ name”代表哈希表键。在此示例中,键“ FF69BA5F448E26DDBE8DAE70F55738F6”与命令“ rate_p_words”相关联:
MD5是一种单向函数,因此无法解密字符串,但是基于静态分析,可以为第二阶段DEX文件中找到的所有已解码字符串重新计算哈希,然后将其与哈希关联-表。
通过使用rate_p_words和com.services.ibgpe.hflbsqqjrmlfej作为参数调用哈希函数,可以重新计算此特定哈希值。
其他参数存储在同一哈希表中,例如使用相同的加密/混淆技术的自更新服务器URL:
此密钥F09EA69449BA00AA9A240518E501B745和嵌入值可以解释如下:
附录中的命令表中详细介绍了其他命令,其中包括快捷方式创建和更新频率。
此外,接收到的命令也可以本地存储在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”以尝试停用扫描设备选项。
伪造帐户滥用单一登录:
该家族使用的另一种获利技术是以真实用户身份的名义创建帐户以及在受感染设备上注册的帐户。这是通过滥用辅助功能来执行帐户创建并使用许多有效服务集成在其应用中的Google登录 OAuth 2.0 登录来实现的。
Android / LeifAccess可以下载并安装目标应用程序,以便以后无需用户干预即可设置帐户。
下面的反混淆代码显示了Android / LeifAccess如何使用AccesibilityEvent导航到约会应用程序以使用Google登录选项创建帐户。
以下是此恶意软件以执行虚假帐户创建为目标的其他应用程序包名称的一些示例,这些名称主要与购物,约会和社交等类别相关。
zalora.android
tiket.gits
b2w.submarino
zzkko
友善地
newchic.client
com.netshoes.app
Makemytrip
喜欢
lazada.android
oom
jabong.android
起始星
banggood.client
alibaba.intl.android.apps.poseidon
阿里巴巴
airyrooms.android
其他恶意负载
广告欺诈:
还实现了Clicker功能,因此受感染的设备可以请求广告流量,而无需在界面中显示单个广告。
从C&C发送特定的用户代理标头以执行广告欺诈。
通常,运行广告的应用将一个或多个广告网络SDK(通常以JAR库形式分发)集成到其中,以正确请求广告内容收集位置,设备类型甚至某些用户数据。但是,此恶意软件不会将任何SDK软件包集成到源代码中以访问广告。Android / LeifAccess可以通过C&C服务器预先构建并以JSON格式发送给它的广告点击或广告印象(IMPR)的直接链接,使用正确的广告网络格式加载广告。这意味着受感染的设备将能够请求具有模拟合法点击所需的完整参数的URL,该合法模拟来自用户在合法应用程序的上下文中单击横幅广告,从而避免了SDK集成,这也有助于保持相对较小的尺寸文件大小。
广告软件JSON结构包括:
此外,如果该恶意软件在收到适当的命令后或基于C&C定义的特定频率,在解锁设备后可以在任何应用程序的上下文之外全屏显示真实广告。此外,它还可以显示一个重叠图标,以浮动重叠的形式重定向到广告。
可以根据收到的参数在主屏幕中创建任意快捷方式:
假通知
为了获得可访问性服务或请求停用尚未被授予的OS安全选项,该恶意软件能够启动Toast消息以试图说服受害者执行某些操作。
以下是“ dialog”属性内恶意软件使用的JSON格式的伪造通知(包括标题和内容)的列表,该恶意通知在参数“ notifi_inter”(28800000毫秒,等于8个小时)的间隔内作为敬酒通知执行)。
图13.用作假通知的对话框列表
国际化'deactivate'和'activate'字符串以与OS语言匹配:
开箱和执行
为了避免检测,或者作为一种“防御规避”技术,原始安装的应用程序只是一个包装,该包装一旦被执行,就可以从路径“ assets / fields.css”的资产文件中解密JAR,并通过反射将其动态加载到主要应用。系统API调用字符串也使用自定义的base64实现进行了混淆。
图14.恶意软件拆包概述
还原解密的jar文件需要对Android / LeifAccess.A使用的字符串进行模糊处理,这些字符串都是自定义编码的:
图15.使用函数et.a对字符串进行模糊处理
命令和控制服务器:
命令和控制服务器还用于恶意软件分发和有效负载更新。域名中包含的单词可能使人们认为它们属于合法的广告网络或内容分发网络(CDN):
分布与遥测
分配
这些示例可作为直接APK链接托管在C&C中,但也可以在社交媒体中分发,也可以作为试图说服用户安装重要安全更新的恶意广告活动来分发。此变体标签为SystemSecurityUpdates,程序包名称以'com.services.xxxx'开头,假装是系统更新。
发现Android / LeifAccess.A的变体是通过Discord游戏聊天平台托管和分发的。以下网址格式提供了一些恶意的APK变体:
感染需要用户下载并安装恶意APK;这意味着将使用社会工程学组件进行初始访问。使用广告让人们担心潜在威胁,或者诱使想要添加“隐藏功能”的游戏玩家,使他们更愿意遵循攻击者在帖子或视频中描述的不受信任的安装流程的说明,即使他们必须撤消安全通知或停用安全性允许主动权限或激活辅助功能的措施。
结论
能够安装应用程序,然后以受害人的名义在Google Play上发布虚假评论,能够在第三方服务上创建虚假帐户以及自我更新机制,并结合多种混淆和加密技术用作自我防御功能,一种独特的恶意软件,可以在没有AV保护的情况下将其隐藏在受害者的视线范围内。
该木马的主要功能可以描述为:
从Google Play或APK Pure下载应用
停用Google Play保护
创建具有OAuth滥用访问权限的虚假帐户
在Google Play上发布虚假评论
在主屏幕上创建快捷方式
在后台和全屏展示广告
自我更新
Android / LeifAccess实施了多种自卫技术,以加密和混淆恶意行为,并尝试避免AV检测。
由于大量的独特样本,我们可以推断出,大量资源用于服务器端多态方式来生成样本的基础架构和自动化。
不断部署新的变体,以使这个假冒评论者的移动僵尸网络存活。
这种恶意软件不仅会损害用户,还会影响App Market的信誉以及为无人看过的横幅广告付费的对手/广告网络。
它还暗示存在欺诈性提高应用程序声誉的市场,并且必须以类似于实现社交媒体的服务来实现此类目的的货币化目标,在社交媒体上存在购买追随者或喜欢的服务。
这些出版物违反了Google Play商店的指南,主要是因为评论和排名是帮助用户选择合适且安全的应用程序的关键-伪造的应用程序可能会破坏用户的信任。
但是,这种排名操纵是识别和删除的挑战,因为这类虚假评论不是由虚假帐户产生的,并且大多数反垃圾邮件方法旨在查找由不可信或未经验证的帐户而非合法用户创建的内容。该相同技术可用于社交媒体或任意消息的任何其他平台分发。
如果您认为自己可能受到这个家庭的影响,则可以通过https://aboutme.google.com/查看或编辑您在Google帐户上撰写的评论。
McAfee Mobile Security还以Android / LeifAccess.A和Android / LeifAccess.B的身份识别并检测到了该恶意软件的较新版本。
技术数据和IOC
命令表
斜接ATT&CK矩阵
芯片
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