Android银行木马Chameleon现在可以绕过任何生物识别身份验证

2023年 12月 25日 36.7k 0

介绍

2023年1月,ChameleonBanking木马成为重大威胁,采用各种分发方法渗透到Android生态系统中,特别关注澳大利亚和波兰的用户。该木马恰如其分地命名为“Chameleon”,通过多个新命令(包括检查应用程序包名称)来展示其适应性。它的主要目标是移动银行应用程序,通过网络钓鱼页面伪装成合法应用程序进行分发。

在这次调查中,我们能够跟踪和分析与更新的Zombinder相关的样本。

这些Zombinder示例利用复杂的两阶段有效载荷过程。他们通过PackageInstaller使用SESSION_API,将Chameleon示例与Hook恶意软件系列一起部署。

本文深入探讨了新发现的Chameleon恶意软件变种,该变种通过Zombinder分发。这个进化的Chameleon变体代表了其前身的重组和增强迭代,在使用辅助功能服务执行设备接管(DTO)方面表现出色,同时扩大了其目标区域。我们的研究展示了其恶意有效载荷中嵌入的新的高级特性和功能,突出了这种移动威胁的演变。

一、Chameleon银行木马

Chameleon银行木马于2023年初首次出现在野外,在其初始开发阶段被发现。它的特点是使用了各种记录器、有限的恶意功能以及定义明确但未使用的命令,暗示了进一步发展和影响的明显潜力。

该银行木马具有独特的能力,可以操纵受害者的设备,通过代理功能代表受害者执行操作。此功能支持帐户接管(ATO)和设备接管(DTO)攻击等高级操作,特别是针对银行应用程序和加密货币服务。这些功能依赖于滥用无障碍服务权限。

Chameleon银行木马的早期变体还采用了多种分发方法,倾向于通过网络钓鱼页面将自己伪装成合法应用程序,并使用合法的内容分发网络(CDN)进行文件分发。

值得注意的是,它主要针对澳大利亚和波兰,在那里它伪装成澳大利亚税务局(ATO)和波兰流行的银行应用程序等机构。

这一有针对性的战略引起了这些地区的银行和其他金融机构的极大关注。该木马擅长冒充受信任的应用程序,增强了其产生广泛影响的潜力,凸显了其对移动安全领域威胁的重要性。

二、推出增强型Chameleon变体

正如ThreatFabric早期研究所预测的那样,在最初的开发版本之后,Chameleon银行木马的改进迭代已经出现,继承了其前身的特征。这个新变种还扩大了其目标区域,包括英国(UK)和意大利的Android用户。

这个新发现的变种继续其恶意追求,包括通过辅助功能服务实现设备接管(DTO)功能。通过Zombinder分发,这种新变体的样本在引入高级功能的同时表现出一致的作案手法。值得注意的是,它们通常通过冒充GoogleChrome应用程序进行分发。

三、改良Chameleon变体的新功能

更新后的Chameleon变体中有两个新功能脱颖而出:绕过生物识别提示的能力,以及显示HTML页面以在实现Android13的“受限设置”功能的设备中启用无障碍服务的能力。

这些增强功能提升了新Chameleon变体的复杂性和适应性,使其成为不断发展的移动银行木马环境中更强大的威胁。

在接下来的章节中,我们将仔细研究新的Chameleon银行木马的复杂性,揭示其功能,策略以及它对网络安全领域构成的潜在风险。

1. Android13:启用无障碍服务的HTML提示

在新的Chameleon变体的功能中,有一个功能特别突出:此功能涉及在收到来自命令和控制(C2)服务器的命令“android_13”时激活的设备特定检查。

例如,当重新浮出水面的Chameleon变体检测到安装在基于Android13的设备上并对应用程序应用了限制时,它会动态响应。恶意软件会显示一个HTML页面,提示用户启用辅助功能服务。此步骤对于Chameleon恶意软件系列至关重要,因为它依赖于此服务来成功执行设备接管(DTO)攻击。

以下代码片段概述了恶意软件用于检查受感染设备的受限设置状态的方法:

if (!class.devicebuild() && (class2.commandlist("android_13", Boolean.valueOf(true)) && Build.VERSION.SDK_INT >= 33 && !class2.commandlist("restrict_opened", Boolean.FALSE)) {
        this.startActivity(new Intent(this, class0).putExtra("action", "restriction"));
    }

在收到受感染设备上存在Android13受限设置的确认后,银行木马会启动HTML页面的加载。该页面将指导用户完成手动分步流程,以在Android13及更高版本上启用无障碍服务。下面的视觉表示概述了新的Chameleon变体对Android13环境的适应。

这项新功能再次展示了威胁行为者如何应对并不断寻求绕过旨在挫败其努力的最新安全措施。

Chameleon 是威胁行为者适应投放器并在恶意软件中集成Android13限制检查以绕过安全措施的趋势的一个例子。

2. Disrupting Biometric Operations

新的Chameleon变体引入了一项旨在中断目标设备的生物识别操作的功能。通过发出命令“interrupt_biometric”来启用此功能。收到此命令后,恶意软件会执行“InterruptBiometric”方法。

此方法使用KeyguardManagerAPI和AccessibilityEvent来评估屏幕和键盘锁状态。它评估键盘锁在各种锁定机制(如图案、PIN或密码)方面的状态。满足指定条件后,恶意软件会利用AccessibilityEvent操作从生物识别身份验证转换为PIN身份验证。这绕过了生物识别提示,允许木马随意解锁设备。

强制回退到“标准”身份验证为地下参与者提供了两个优势。首先,它通过键盘记录功能促进了PIN码、密码或图形密钥的盗窃,因为这些威胁行为者仍然无法访问生物识别数据。

其次,利用这种回退使这些相同的参与者能够使用以前被盗的PIN或密码解锁设备。这是通过辅助功能操作实现的。

因此,尽管受害者的生物识别数据仍然无法为参与者提供,但它们会迫使设备回退到PIN身份验证,从而完全绕过生物识别保护。

以下代码片段显示了评估KeyGuard状态的恶意软件:

public final void interruptBiometric(AccessibilityEvent accessibilityEvent0) {
        if (accessibilityEvent0.getPackageName() != null) {
            if (bCBFNOgmB2372b7065b5f58f8f9f.screenstatus != 1 && (KeyguardManager != null && (KeyguardManager.isKeyguardSecure()))) {
                if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "lockPatternView") != null) {
                    return;
                }
                if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "pinEntry") != null) {
                    return;
                }
                if (getInstance.findViewByContainsID(getInstance.getRootInActiveWindow(), "passwordEntry") != null) {
                    return;
                }
            }

这种有效绕过生物识别安全措施的功能是移动恶意软件领域的一个令人担忧的发展。

3.任务调度和活动控制

除了前面讨论的功能外,更新后的Chameleon变体还引入了许多银行其他木马中也发现的功能:使用AlarmManagerAPI进行任务调度,这是其早期的“工作中”变体中不存在的功能。

虽然任务调度在特洛伊木马中很常见,但此实现的与众不同之处在于其动态方法,可根据标准特洛伊木马行为有效地处理可访问性和活动启动。

更新后的Chameleon版本支持新命令“inejction_type”[原文如此]。此命令为特洛伊木马的任务调度机制带来了独特的元素。在收到特定命令时,它会自动从“a11y”(a11y是辅助功能的简写)切换到“usagestats”,具体取决于是否禁用了辅助功能。如果启用,恶意软件会通过“注入”活动发起覆盖攻击。

如果禁用无障碍服务,恶意软件会从“a11y”无缝切换到“usagestats”,从而收集有关用户在运行Android23或更高版本的Android设备上的应用使用情况的信息。此数据(包括前台应用)提供了一种替代方法,用于确定前台应用程序并决定是启动覆盖活动还是注入活动。

public final void run() {
        ((AlarmManager) class.this.getApplicationContext().getSystemService("alarm")).set(0, System.currentTimeMillis() + 60000 L, PendingIntent.getBroadcast(class.this.getApplicationContext(), 5333, new Intent(class.this.getApplicationContext(), class2.class), 0xC000000));
        if (!class.accessibility_enabled(class2.class) || (class.list("inejction_type", "a11y").equals("usagestats"))) {
            if (class.usage_stats()) {
                String s = class.this.currentActivity();
                if ((class.commandlist("injection", Boolean.TRUE)) && (class.config(s)) && !false) {
                    new Handler(Looper.getMainLooper()).post(new Runnable() {
                                @Override public final void run() {
                                    ActivityThread.startActivity(new Intent(ActivityThread, class2.class).putExtra("app", this.val$lastPackage).addFlags(0x10000000).addFlags(0x8000));
                                }

结论

新的Chameleon银行木马的出现是Android生态系统中复杂和适应性威胁环境的另一个例子。从早期的迭代中演变而来,该变体展示了增强的弹性和先进的新功能。随着对英国和意大利用户的日益关注,该木马采用了多种分发方法,包括通过Zombinder部署和伪装成合法应用程序(如Chrome应用程序)。

值得注意的是该木马的新功能,例如用于Android13设备评估的HTML页面和生物识别操作的中断,这两者都展示了其自适应能力。对辅助功能设置和动态活动启动的操纵进一步强调了新的Chameleon是一种复杂的Android恶意软件。

在不断变化的威胁环境中,了解新Chameleon变种的复杂性对于制定有效的防御策略非常重要。ThreatFabric始终致力于揭示此类威胁的微妙之处,提供见解,使用户和安全专业人员能够保护其数字域。随着威胁行为者的不断发展,这种动态和警惕的方法在对抗复杂网络威胁的持续斗争中被证明至关重要。

IOC

哈希 (SHA256)                                                     应用名称                 软件包名称
2211c48a4ace970e0a9b3da75ac246bd9abaaaf4f0806ec32401589856ea2434    Chrome                  Z72645c414ce232f45.Z35aad4dde2ff09b48
0a6ffd4163cd96d7d262be5ae7fa5cfc3affbea822d122c0803379d78431e5f6    Chrome                  com.busy.lady

参考链接:https://www.threatfabric.com/blogs/android-banking-trojan-chameleon-is-back-in-action

图片来源网络目标可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论