新网Logo
首页>互联网热点>

可绕过谷歌官方应用商店安全检测的恶意软件—— Joker 变种

登录 注册

可绕过谷歌官方应用商店安全检测的恶意软件—— Joker 变种

  • 来源:网络
  • 更新日期:2020-07-13

摘要:Check Point 研究人员在 Google Play 中发现了一个 Joker Dropper 和 Premium Dialer 监控恶意软件的新变种。该更新版的 Joker 可以下载其他恶意软件到设备上,下载的 Premiu

Check Point 研究人员在 Google Play 中发现了一个 Joker Dropper 和 Premium Dialer 监控恶意软件的新变种。该更新版的 Joker 可以下载其他恶意软件到设备上,下载的 Premium Dialer 可以在无需用户同意或用户不知情的情况下让用户订阅付费服务。

图 1 Google Play 中的 Joker 应用

Joker 是一款典型的安卓恶意软件类型,一直在不断地寻找绕过谷歌官方应用市场安全检测的方法。此次的 Joker 最新变种利用了一种来自 PC 威胁图谱的古老的绕过简述来绕过谷歌应用市场的安全检测。

为了实现让 app 用户订阅付费服务而不知情或不告知,Joker 使用了两个主要的组件—— Notification Listener 服务和动态 dex 文件。Notification Listener 服务是原始 Joker 应用的一部分,动态 dex 文件是从 C2 服务器加载的,可以让用户注册不同的服务。

为最小化 Joker 的指纹,攻击者选择从远程 C2 服务器来动态加载 dex 文件,将恶意 dex 文件以 base64 编码的字符串的形式隐藏在应用中,来实现解码和加载。

技术分析

之前的版本中用于与 C2 通信和下载动态 dex 文件的代码位于 classes.dex 文件中,现在 classes.dex 文件的功能还包括加载新的 payload。

Joker 会通过注册一个与 C2 通信的新对象来检查攻击活动是否仍在进行来从 Activity 触发恶意流。确认之后,就可以准备要加载的 payload 模块。

图 2 – 恶意对象的创建

图 3 – 与 C2 通信的恶意对象

图 4 – 来自 C2 服务器的响应

加载 dex 文件的第一个 方法是从 manifest 文件读取内容。研究人员检查 manifest 文件时发现,有另一个 metadata 域中含有一个 base64 编码的 dex 文件。所以只需要从 manifest 文件中读取数据、解码 payload 和加载新的 dex 文件。

图 5 – 含有 base64 编码的 dex 的 Manifest 文件

图 6 – 从 manifest 文件中读取数据

研究人员还发现了一个仍在开发过程中的变种,该变种将 .dex 文件隐藏成 base64 字符串中,而不是将字符串加入到 manifest 文件中,这些字符串位于 main 应用的内部类中。在该例中,恶意代码运行只需要读取字符串、从 base64 字符串中解码、然后用反射的形式加载。

图 7 – main 应用中的字符串

图 8 – 读取 class 字符串和解码

图 9 – 加载含有反射的 dex 文件

图 10 – 解密的字符串

新 payload 中含有原始 Joker 文件的主 dex 文件中的代码,包括 Notification Listener 服务的注册、使用户订阅付费服务等等。攻击者隐藏功能只需要将 C2 服务器设置为在状态码中返回 false,没有恶意活动会出现。

总结

研究人员建议感染了恶意 app 的用户:

· 从设备中卸载受感染的应用;

·检查手机号和信用卡账单检查是否订阅了相关付费服务,如果订阅了那么尽快取消;

·安装安全解决方案来预防未来可能的感染。