[译] Cerberus - Android 平台新型木马病毒

原创
1749 天前
16302

编者按

近日,一款名为“Cerberus”的安卓平台恶意木马对交易所等数字资产相关App构成了直接的威胁,北京链安第一时间跟进了这一事件。在这里,我们首先结合发现和分析该木马的ThreatFabric发布的若干文章进行了编译,以便各位了解该木马的技术原理。后续,我们还将进一步从技术细节和安全防护角度进行专门的分析,让行业对类似木马进行更全面的认识和防范。

介绍

Android 银行木马的租赁业务

规避技术分析

工作原理

Cerberus 功能

覆盖攻击     

     攻击目标

结论

附录     

     样品     

     目标列表

2020 新变种     

     最新样本     

     最新目标列表

引用

介绍

2019 年 6 月,ThreatFabric 分析人员发现一种名为 “Cerberus” 的新型 Android 平台恶意软件,它在地下论坛上提供租赁服务。其作者声称,在租赁开始之前,它已经被私人经营了两年。他们还指出,它不像许多其他银行 Trojan(特洛伊木马)病毒一样完全基于另一个木马程序(例如泄露的正在转售的 Anubis 源代码)编写,或至少借用其他木马的一部分程序,其代码完全是重新编写的,没有使用任何其他现有木马程序的代码。经过彻底的分析,可以确认 Cerberus 确实不是基于 Anubis 程序编写的。

有关此银行恶意软件背后的参与者的一件有意思的事情是,他们有一个“官方”的 twitter 账户,专门用来发布有关此恶意软件的促销内容(甚至视频)。他们还用来嘲讽 AV 社区,分享 VirusTotal(病毒分析引擎网站)的检测截图,甚至直接与恶意软件研究人员沟通讨论。

以下截图显示了他们广告活动的推文:

其中主要提到了:

“我们总是使用加密和混淆过的版本,木马病毒已经过了数年的发展,目前所有代码都是重新编写的。”

上述这种行为可以解释为需要被关注和缺乏出租经验。

可以肯定的是,在 Anubis 2 和 RedAlert 2 木马的租赁结束之后,Android 平台银行恶意软件业务中的差距仍然存在,这为 Cerberus 背后的参与者提供了一个快速增长业务的良好机会。

 

Android 银行木马的租赁业务

银行木马的租赁业务并非新鲜事,这是一个已存在的商业模式,当时基于计算机平台的银行恶意软件是银行恶意软件的唯一形式,在几年后以相同形式转移到 Android 平台。

Android 平台银行恶意软件的寿命受限于其作者提供支持的意愿或恶意软件参与者被逮捕,目前已观察到此类型的恶意软件生命周期为每隔几年会出现一次,从而曝光出新型的恶意软件系列。当每次租用的恶意软件达到使用寿命时,其他恶意软件参与者将有机会接管该恶意软件的租赁市场份额。

从下图可以看出,许多知名的 Android 平台银行恶意软件的寿命通常不超过一到两年。当该系列恶意软件不存在时,就已经出现一种新的恶意软件系列来填补空缺,这表明对于此类恶意软件的需求一直存在,因此 Cerberus 有很好的生存发展空间。

在 RedAlert 2 背后的参与者决定退出恶意软件租赁业务之后,我们发现一些市面上的 Anubis 样本数量激增,在听说 Anubis 背后参与者被逮捕和源代码被泄漏之后,发现市面上的 Anubis 样本数量也大大增加,但是使用 Anubis 的新参与者并没有提供支持和更新。

因此,对于希望专注于执行欺诈行为而无需开发和维护僵尸网络和 C2 结构的参与者,Cerberus 将非常有用。

 

规避技术分析

除了标准的动态加载和字符串混淆之外,Cerberus 还用了一种非常有意思的技术来阻止对该木马程序的分析。

它使用设备的加速度计传感器实现了一个简单的计步器,用于测量被攻击者的运动情况,这个想法简洁有效——如果被感染设备属于一个真实用户,那么他迟早会发生走动行为,从而对计步器产生增量。木马病毒使用此计步器程序激活自动化程序——如果上述计步器步数达到预先配置好的阈值数量,则认为当前运行环境是安全的。使用这种简单的措施可有效阻止木马程序在动态分析环境例如沙箱,以及在恶意软件分析人员的测试设备上被运行和分析。

以下代码片段显示展示出了负责计步器程序验证的逻辑:

工作原理

当恶意软件首次在设备上启动运行时,它将首先从应用程序抽屉中隐藏图标。然后它会请求对应的辅助功能权限。

如截图所示:

当用户授予此权限后,Cerberus 通过授予自身其他权限(例如发送短信和拨打电话权限)开始进行权限滥用,无需用户任何交互。同时它还会禁用 Google Play 保护服务(Google 在设备上预装的防病毒解决方案),以防止未来发现或删除木马程序。在方便地授予自己额外的权限并确保木马在设备上的持久性之后,Cerberus 将受感染的设备注册在僵尸网络中,并等待来自 C2 服务器的命令,同时还准备好执行窗口覆盖攻击。

下面列出了受分析的 Cerberus 样本所支持的命令,可以看到其提供的常见自动化行为:

Cerberus 功能

Cerberus 恶意软件具有和其他大多数 Android 平台银行木马相同的功能,例如使用窗口覆盖攻击、短信控制和收集联系人列表。该木马还可以利用按键记录来扩大攻击范围。总体而言,Cerberus 具有相当普遍的功能列表。尽管该恶意软件是重新编写的,但目前似乎没有任何创新功能。例如,一些更高级的银行木马现在提供注入反向连接代理,录屏甚至远程控制等功能。

Cerberus 嵌入了如下功能,可让自己保持在监控之下并成功实施攻击:

  • Overlaying(窗口覆盖): 动态 (从 C2 获取界面劫持信息)
  • 按键记录
  • SMS harvesting:短信列表
  • SMS harvesting:短信转发
  • 手机设备信息
  • 收集联系人列表
  • 收集应用程序列表
  • 定位信息收集
  • Overlaying(窗口覆盖):目标列表更新
  • SMS: 短信发送
  • Calls: 请求生成 USSD
  • Calls: 呼叫转移
  • Remote actions:应用安装
  • Remote actions:应用启动
  • Remote actions:应用移除
  • Remote actions:展示任意网页
  • Remote actions:屏幕锁定
  • Notifications:通知推送
  • C2 Resilience:辅助 C2 列表
  • Self-protection:隐藏应用图标
  • Self-protection:防止被移除
  • Self-protection:模拟器检测
  • Architecture:模块化

 

覆盖攻击

大多数 Android 平台银行木马使用窗口覆盖攻击来诱骗用户提供其个人信息(包括但不仅限于:信用卡信息、银行凭据、邮件凭据),Cerberus 也不例外。在这种特殊情况下,该自动化程序会滥用辅助功能服务来获取前台应用程序的应用程序包名称,并确定是否显示网络钓鱼覆盖窗口,例如如下代码片段所示:

攻击目标

网络钓鱼窗口覆盖的一些示例如下图所示。它们有两种类型:凭据窃取程序(前面两个)和信用卡信息抓取器(最后一个)。

附录中提供了在市面上观察到的明确的 30 个活跃应用目标的列表。

实际目标列表包含:

  • 7 种法国银行应用程序
  • 7 种美国银行应用程序
  • 1 个日本银行应用程序
  • 15 个非银行应用

这个不常见的目标列表可能来源于特定的客户需求,或者是由于某些参与者重用了部分现有目标列表。

 

结论

尽管 Cerberus 还不够成熟,无法提供一套 Android 平台银行恶意软件完整功能【例如 RAT(remote access Trojan 远程访问木马),带有 ATS(Automated Transaction Script 自动交易脚本)的 RAT、反向连接代理、媒体录制】或提供相近的目标列表,但对于 Cerberus 不能掉以轻心 。

由于地下社区当前缺乏维护和受支持的服务即 Android 平台银行恶意软件,肯定有一个新的服务需求。Cerberus 已经有能力满足这一需求。除了它已经拥有的功能列表以及可从租金赚取收益之外,它会不断演变,以演变成为最强大的 Android 平台银行木马。除了这些功能,预计目标列表将在不远的将来扩展,以包含其他(银行)应用。

目前 Cerberus 仍是一种市面上活跃的新型木马。

附录

样品

下面是市面上发现的一些的 Cerberus 样本。

列表 1:

列表 2:

目标列表

Cerberus 所针对的移动应用程序列表,共 30 个:

2020 新变种

出现在 2019 年 6 月底恶意软件关注中的 Cerberus 银行木马已从 Anubis 木马中继承过来,目前作为主要的银行租赁恶意软件出现。Cerberus 提供的功能集合可以成功地从受感染设备中提取个人信息(PII),但是仍然缺少规避滥用信息和欺诈行为检测的功能。在 2020 年 1 月中旬,Cerberus 的作者回复了一种旨在解决该问题的新变种,带有 RAT 功能,用于在受感染的设备上执行欺诈行为。

这个 Cerberus 新变种进行了代码重构并更新了 C2 通信协议,但值得注意的是,它具有 RAT 功能,增强了从设备窃取屏幕滑动锁凭据(PIN 或解锁图案)和来自 Google Authenticator 应用程序的 2FA 令牌的可能性。

RAT 服务能够遍历设备的文件系统并上载文件内容。最重要的是,它还可以启动 TeamViewer 并建立与其的连接,为恶意软件参与者提供对设备的远程访问功能。

TeamViewer 开始工作后,它将为恶意软件参与者提供更多可能性,包括更改设备定位信息、安装或卸载应用,最需要注意的是它可以使用设备上的任何应用程序(例如银行应用、Messenger 和社交网络应用)。如果被用于间谍活动它还可以提供对被感染者习惯和行为的深度分析。

以下代码展示了负责 TeamViewer 登陆和初始启动的逻辑:

通过简单的窗口覆盖来破解受感染设备的屏幕锁定凭据(PIN 或锁屏图案),使受害者解锁设备。从 RAT 的实现中,我们可以得出结论,盗窃屏幕锁定凭据是为了使参与者能够远程解锁设备,以便在受害者未使用设备时进行欺诈行为。这再次证实了犯罪分子对于制造有效木马的创造力。

通过辅助功能服务提供的能力,木马现在还可以从 Google Authenticator 应用程序中窃取 2FA 代码。当应用程序运行时,木马程序可以获取设备窗口的内容并将其发送到 C2 服务器。还有,我们可以推断出该功能将用于绕过依赖 OTP(One Time Password 一次性密码) 代码的身份验证服务。

这是 Google Authenticator 应用程序界面的示例:

截止到 2020 年 2 月底,地下论坛尚未发布有关这些功能的广告。因此,我们认为 Cerberus 的新变种仍处于测试阶段,但有很快发布的可能性。Cerberus 拥有包括来自世界各地的机构在内的详细目标清单,再加上其新增的 RAT 功能,对于提供在线金融服务的金融机构来说是一个重大风险。无论是否在目标列表中,恶意软件的运营人员都可以轻松地扩充列表以定位到其他应用程序。

有关当前样本和目标列表,请参考下面的最新样本和目标列表。

最新样本

最新目标列表

引用

原文:https://www.threatfabric.com/blogs/cerberus-a-new-banking-trojan-from-the-underworld.html

原文:https://www.threatfabric.com/blogs/2020yearoftherat.html