ESET Research 发现的 Android 恶意软件会通过受害者的手机将受害者支付卡中的 NFC 数据传输到在 ATM 机旁等候的犯罪分子的设备
ESET 研究人员发现了一项针对三家捷克银行客户的犯罪软件活动。该恶意软件被我们命名为 NGate,它具有独特的能力,可以通过安装在受害者 Android 设备上的恶意应用程序将受害者支付卡的数据转发到攻击者已 root 的 Android 手机。
这篇博文的要点:
攻击者将标准恶意技术(社会工程学、网络钓鱼和 Android 恶意软件)组合成一种新颖的攻击场景;我们怀疑诱饵信息被发送到随机电话号码并诱骗了三家银行的客户。
根据ESET 品牌情报服务数据,该组织自 2023 年 11 月起在捷克共和国开展活动,使用恶意渐进式 Web 应用程序 (PWA) 和 WebAPK。2024 年 3 月,该组织通过部署 NGate Android 恶意软件改进了技术。
攻击者能够使用 NGate 从受害者的实体支付卡中克隆 NFC 数据,并将这些数据转发到攻击者设备,然后攻击者设备能够模拟原始卡并从 ATM 中提取资金。
这是我们第一次发现具有此功能的 Android 恶意软件在野外被使用。
受害者无需获取其设备的权限。
此次攻击的主要目的是帮助受害者在未经授权的情况下从 ATM 提款。攻击者利用 NGate Android 恶意软件,通过受感染的 Android 智能手机将受害者实体支付卡的近场通信 (NFC) 数据转发到攻击者的设备,从而实现攻击。然后,攻击者使用这些数据执行 ATM 交易。如果此方法失败,攻击者还有一个后备计划,即将资金从受害者的账户转移到其他银行账户。
我们之前发现的任何 Android 恶意软件中都没有见过这种新型 NFC 中继技术。该技术基于一种名为NFCGate的工具,该工具由德国达姆施塔特工业大学的学生设计,用于捕获、分析或更改 NFC 流量;因此,我们将这种新的恶意软件系列命名为 NGate。
概述
受害者被骗后下载并安装了恶意软件,他们以为他们正在与银行通信,并且他们的设备已被入侵。事实上,受害者之前通过一条关于潜在纳税申报单的欺骗性短信中的链接下载并安装了一款应用程序,从而在不知情的情况下入侵了自己的 Android 设备。以下视频提供了此次攻击的简短描述。
值得注意的是,NGate 从未在官方 Google Play 商店中提供。
NGate Android 恶意软件与自 2023 年 11 月以来在捷克共和国活动的威胁行为者的网络钓鱼活动有关。但是,我们认为,在 2024 年 3 月逮捕一名嫌疑人后,这些活动被搁置。
我们首先注意到威胁行为者从 2023 年 11 月底开始针对捷克知名银行的客户。该恶意软件通过冒充合法银行网站或 Google Play 商店提供的官方手机银行应用程序的短暂域名进行传播,如图 1 所示。这些欺诈性域名是通过ESET 品牌情报服务识别的,该服务可监控针对客户品牌的威胁。同月,我们向客户报告了我们的发现。
受害者学
在调查过程中,我们发现了六个不同的 NGate 应用程序,这些应用程序在 2023 年 11 月至 2024 年 3 月期间专门针对捷克三家银行的客户。
捷克警方取得了重大突破,逮捕了一名 22 岁的男子,他一直在布拉格的 ATM 机上偷钱。被捕时,嫌疑人身上有 160,000 捷克克朗,相当于 6,000 多欧元(约合 6,500 美元)。被捕者的国籍尚未披露。据捷克警方称,从嫌疑人身上追回的钱只是从最后三名受害者那里偷来的,因此,这一计划背后的威胁者偷走的总金额可能要高得多。
攻击场景的演变
攻击者利用了渐进式 Web 应用 (PWA) 的潜力,后来通过使用更复杂的 PWA 版本(称为 WebAPK)来改进其策略。最终,该行动以部署 NGate 恶意软件告终。
值得注意的是,在所有本文描述的攻击场景中,受害者的设备都不需要被 root,只有攻击者的设备才需要模拟接收到的 NFC 流量。
渐进式 Web 应用
最初,这些欺诈网站滥用了 PWA 技术。该技术允许用户通过受支持的浏览器从网站安装应用程序;安装可以通过弹出通知自动触发,也可以通过从浏览器菜单中选择“安装应用程序”选项手动触发。在 Android 上,受支持的浏览器包括 Chrome、Firefox、Edge 和 Opera。安装后,智能手机主屏幕上会添加一个带有小浏览器徽标的新图标,该图标位于右下角,基本上充当网站链接。图 2 显示了一个例子,我们将左侧的 PWA 图标与右侧的标准应用程序图标进行了比较。
PWA 本质上是一种应用,但与从应用商店下载和安装的传统应用不同,PWA 可直接在网络浏览器中访问和使用。它们使用常见的网络编程语言构建,例如 HTML(用于结构)、CSS(用于设计)和 JavaScript(用于交互),这些技术与创建网站所用的技术相同。PWA 以其兼容性和灵活性而闻名,因为它们旨在适用于具有符合标准的网络浏览器的任何设备。这意味着,无论是使用台式电脑、笔记本电脑、平板电脑还是智能手机,用户都可以访问同一个 PWA,而无需为每台设备下载单独的应用。
如果 PWA 是从钓鱼网站安装的,其图标可能会模仿合法的银行应用程序,并略微添加一个小浏览器图标。启动此恶意 PWA 后,会显示一个全屏钓鱼网站,要求用户提供银行凭证。
WebAPK
随后,威胁行为者改进了这种攻击场景,继续以之前相同的银行客户为目标,但使用了一种更高级的 PWA,即 WebAPK。WebAPK是Android 应用程序,当用户将 PWA 添加到 Android 设备的主屏幕时,Chrome 浏览器会自动生成这些应用程序。为了区分这两者,PWA 是使用 Web 技术构建的应用程序,而 WebAPK 使用一种技术将 PWA 集成为原生 Android 应用程序。WebAPK 的不同之处在于,它们看起来比典型的 PWA 更像原生 Android 应用程序,因为它们的图标没有 PWA 图标所具有的小浏览器徽标。没有浏览器徽标可能会导致用户误认为恶意 WebAPK 是合法应用程序,如图 3 所示。
分发方案保持不变——用户可以从钓鱼网站下载并安装独立应用程序,而不仅仅是 PWA 网络快捷方式。WebAPK 需要手动安装;但是,由于这不是常规应用程序,因此不会要求用户明确授予安装来自未知来源的应用程序或允许浏览器安装未知应用程序的权限。因此,用户可能没有意识到他们正在安装来自不受信任来源的应用程序。图 4 显示了当用户访问钓鱼网站时要求他们更新和安装恶意 WebAPK 的示例。
一旦安装并打开,恶意应用程序就会请求银行凭证。有关使用 PWAs 和 WebAPKs 的网络钓鱼活动的更多详细信息,我们在之前的博客文章中进行了讨论。
NGate 恶意软件
2024 年 3 月 6 日,我们发现 NGate Android 恶意软件在之前用于促进传播恶意 PWAs 和 WebAPK 的网络钓鱼活动的同一分发域上可用。
安装并打开后,NGate 会显示一个虚假网站,要求用户输入银行信息,然后将这些信息发送到攻击者的服务器。除了网络钓鱼功能外,NGate 恶意软件还附带一种名为 NFCGate 的工具,该工具被滥用于在两台设备(受害者的设备和犯罪者的设备)之间传递 NFC 数据。NFCGate 工具是由德国达姆施塔特工业大学安全移动网络实验室的学生开发的,可在GitHub上获取。NFCGate 的主要功能是通过服务器将 NFC 信号从一台 Android 设备传输到另一台可以模仿或仿真该信号的 Android 设备,如图 5 所示。
NFCGate 是一种可以与设备上的 NFC 流量交互的工具。在安装了 NFCGate 的设备上,它可以:
1. 从使用 NFC 的应用程序捕获 NFC 流量。
2. 将此 NFC 数据从一台设备传递或中继到另一台设备。
3. 在另一台设备上模仿或重播其先前拦截的数据。
其中一些功能仅适用于 root 设备;但是,非 root 设备也可以中继 NFC 流量。NGate 恶意软件仅滥用 NFCGate 的一项功能。它不会干扰受感染设备上的其他数据,也不会试图模仿它。它滥用 NFCGate 只是为了将 NFC 数据从一个设备传递到另一个设备。
然而,NGate 还会提示受害者输入敏感信息,如银行客户 ID、出生日期和银行卡 PIN 码。它还要求受害者打开智能手机上的 NFC 功能。然后,受害者被指示将支付卡放在智能手机背面,直到恶意应用程序识别该卡。
幕后发生的事情是,受害者银行卡的 NFC 数据通过服务器发送到攻击者的 Android 设备。本质上,这允许攻击者在自己的设备上模仿受害者的银行卡。这意味着攻击者现在可以在他们的 Android 设备上使用这些复制的卡数据进行付款并从使用 NFC 的 ATM 机上取款。
具有备份解决方案的完整攻击场景
捷克警方的公告显示,攻击场景始于攻击者向潜在受害者发送有关纳税申报单的短信,其中包括一个冒充银行的钓鱼网站链接。这些链接很可能指向恶意 PWA。一旦受害者安装应用程序并输入其凭据,攻击者便可以访问受害者的帐户。然后,攻击者打电话给受害者,假装是银行职员。受害者被告知他们的帐户已被盗用,很可能是由于之前的短信。攻击者实际上是在说实话——受害者的帐户被盗用了,但这个事实随后又导致了另一个谎言。
为了“保护”他们的资金,受害者被要求使用移动应用程序 NGate 恶意软件更改他们的 PIN 码并验证他们的银行卡。下载 NGate 的链接通过短信发送。我们怀疑受害者会在 NGate 应用程序中输入旧 PIN 码来创建新 PIN 码,然后将他们的卡放在智能手机背面以验证或应用更改。
由于攻击者已经可以访问受感染的账户,因此他们可以更改提款限额。如果 NFC 中继方法不起作用,他们可以简单地将资金转移到另一个账户。但是,使用 NGate 可以让攻击者更轻松地访问受害者的资金,而不会在攻击者自己的银行账户上留下痕迹。攻击序列图如图 6 所示。
其他可能的攻击场景
NGate 恶意软件或定制版 NFCGate 的使用为更多攻击场景提供了可能性,特别是在威胁行为者具有物理访问权限并可能克隆 NFC 标签或支付卡的情况下。要执行和模拟以下可能的攻击,攻击者需要一台已 root 且定制的 Android 设备。
通过 NFC 标签获取访问权限
NFC 标签或令牌是一种紧凑的非接触式设备,能够存储和传输数据。这些标签可用于多种用途,包括身份识别和数据传输。NFC 标签可用作公共交通卡、用于建筑物门禁的员工 ID 卡、可穿戴健康/患者监测设备等。
每个 NFC 标签都有一个唯一 ID (UID) 和一个存储密钥的数据部分。当这些标签靠近读卡器时,就会发生握手,以验证标签是否具有正确的授权密钥。但是,有些读卡器只验证令牌的 UID 以进行授权,而无需密钥。UID 通常为四个字节长。
任何未 root 的 Android 设备都可以读取符合ISO/IEC 14443的 NFC 标签。但是,只有某些 root 的 Android 设备才能模拟 NFC 标签的 UID。因此,如果读取器仅验证令牌 UID,则可以使用 NFCGate 来中继和模拟标签。如果读取器还需要密钥(存储在数据部分中)进行身份验证,NFCGate 无法复制它们,因此在这种情况下无法克隆 NFC 标签。
这意味着攻击者可以复制 NFC 访问令牌的 UID,无论是通过物理访问受支持的 NFC 标签,还是通过诱骗用户将标签放置在安装此恶意应用程序的智能手机背面。然后,攻击者可以使用该 UID 模拟 UID,从而访问禁区、建筑物、工作场所和类似区域。
在我们的测试中,我们成功地从 MIFARE Classic 1K 标签中中继了 UID,该标签通常用于公共交通票、身份证、会员卡或学生证以及类似用例。使用 NFCGate,可以执行 NFC 中继攻击,以读取一个位置的 NFC 令牌,并通过模拟其 UID 实时访问不同位置的场所,如图 7 所示。
然而,当我们尝试模拟 UID 时,NFCGate 向读取器发送了不同的 UID,而不是中继的 UID。我们发现我们的测试设备(OnePlus 7 Pro)在不支持 UID 克隆的设备列表中。因此,我们使用NFC Card Emulator Pro (Root)应用程序并手动输入 UID 以成功克隆它。
这种攻击场景具有很强的针对性,这意味着攻击者需要已经知道令牌可以在哪里使用。
通过支付卡进行小额非接触式支付
除了 NGate 恶意软件使用的技术外,拥有支付卡物理访问权限的攻击者还可能复制和模仿这些卡。攻击者可以利用这种技术,通过无人看管的钱包、背包或装有卡的智能手机外壳来读取卡,尤其是在公共和拥挤的地方。
然而,这种情况一般仅限于在终端点进行小额非接触式支付,具体取决于发卡银行设定的限额,而不适用于 ATM 取款,因为后者需要攻击者拥有卡的 PIN。
另一个理论上的场景是克隆存储在智能手机钱包应用中的支付卡。可以从配备钱包应用(例如 Google Wallet)的 Android 智能手机中继 NFC 信号。但是,自 2024 年 4 月起,Google 要求用户对每笔 NFC 付款进行验证。因此,即使使用已解锁的设备,用户仍需要在付款前在 Google Wallet 应用中提供验证。同样,Apple Wallet 应用也会在处理付款之前请求授权。这些安全措施使得使用 NFCGate 工具从 Google 和 Apple 钱包应用中中继和模拟支付卡变得更具挑战性。
NGate 恶意软件的技术分析
初始访问
最初,攻击者通过诱骗受害者安装恶意应用来获取设备访问权限,通常以受害者可以索回多缴的所得税为幌子。此请求通常通过短信发送,我们认为这些短信是发送到随机电话号码的。遗憾的是,我们无法获取这些短信的样本,捷克当局也没有公开提供任何截图。
如果受害者下载该应用并输入其凭证,攻击者就会假扮银行职员拨打电话。他们会通知受害者其账户已被盗用,并建议他们更改 PIN 码并使用其他应用验证银行卡。这个通过另一个短信链接提供的新应用包含 NGate 恶意软件。我们分析的所有恶意应用均未在 Google Play 上提供。
我们发现了两个域名,分别模仿捷克 Raiffeisenbank(如图 8 所示)和 ČSOB 银行,NGate 可以在这两个域名上下载。截至撰写本文时,这两个域名均未处于活跃状态:
-
raiffeisen-cz[.]eu
-
app.mobil-csob-cz[.]eu
工具集
在我们分析的所有六个样本中,NGate 恶意软件都表现出统一的特征。每个样本都使用相同的软件包名称 ( rb.system.com ),并使用相同的硬编码钓鱼 URL,该 URL 通过唯一 ID(位于关键查询参数中)进行唯一标识,以显示特定的 Web 内容。所有样本均使用相同的开发人员证书进行签名(SHA-1 指纹:0C799950EC157BB775637FB3A033A502F211E62E)。这六个样本的这种一致模式表明它们的开发和部署具有一致性。
所有样本都具有相同的硬编码钓鱼 URL(https://client.nfcpay.workers[.]dev/?key=8e9a1c7b0d4e8f2c5d3f6b2);但是,每个应用程序都有一个与之关联的不同密钥。此唯一密钥对应于向潜在受害者显示的特定银行钓鱼网站。给定的链接仅用作重定向到预期的钓鱼网站。从分析的样本中,我们能够识别出五个不同的钓鱼网站,即:
-
rb.2f1c0b7d.tbc-app[.]life
-
geo-4bfa49b2.tbc-app[.]life
-
rb-62d3a.tbc-app[.]life
-
csob-93ef49e7a.tbc-app[.]life
-
george.tbc-app[.]life
每个样本的图标和名称都经过设计,模仿特定的目标银行应用程序,进一步增强了它们的欺骗性。
启动后,NGate 恶意软件会在 WebView 中向受害者展示一个钓鱼网站。WebView 本质上是应用程序本身内的窗口或迷你浏览器。它用于显示 Web 内容或网页,而无需离开应用程序或打开单独的 Web 浏览器。在这种情况下,网站会请求用户的个人信息,例如客户端 ID 和出生日期,如图 9 所示。
欺骗性钓鱼网站不仅会引导受害者输入银行卡的 PIN 码,还会引导受害者在其设备上启用 NFC 功能。然后,受害者会被指示将银行卡放在智能手机背面,为 NFC 中继攻击做好准备。
与传统恶意软件不同,NGate 不会从命令和控制 (C&C) 服务器接收特定指令。相反,受感染的设备通过钓鱼网站进行控制。这是通过使用触发某些 Android 功能的 JavaScript 接口来实现的。这些功能包括检索有关设备的信息(例如型号和 NFC 状态)、设置将 NFC 流量重定向到的服务器以及发起 NFC 中继攻击。
图 10 展示了一个函数的代码片段,该函数的任务是建立 NFC 中继服务器并使设备能够读取并转发 NFC 流量。
NGate 使用两个不同的服务器来协助其运作。第一个是钓鱼网站,旨在诱骗受害者提供敏感信息,并能够发起 NFC 中继攻击。第二个是 NFCGate 中继服务器,负责将 NFC 流量从受害者的设备重定向到攻击者的设备。在我们对 NGate 样本的初步分析中,我们发现可以根据钓鱼网站的响应来设置 NFC 服务器。然而,在后续样本中,这些服务器似乎被硬编码到 NGate 恶意软件中。
如果受害者遵循 NGate 发布的所有指令,攻击者就能够中继受害者支付卡的 NFC 流量。这样攻击者就可以使用受害者的财务信息提取资金或在非接触式终端付款。
预防
要确保免受此类复杂攻击,需要采取某些保护措施来抵御网络钓鱼、社会工程和 Android 恶意软件等手段。这些步骤包括:
-
检查网站的真实性。可以通过查看 URL 来确保网站不是真实网站的假冒版本。
-
仅从官方来源(例如 Google Play 商店)下载应用程序。这种预防措施可大大降低在不知情的情况下安装有害软件的风险。
-
保密支付卡 PIN 码。这一重要信息应始终妥善保管。
-
在移动设备上使用安全应用可以阻止下载和安装潜在的有害软件和恶意软件(如 NGate)。这些安全应用通过持续扫描和监控威胁来增加额外的防御层。
-
在不需要时关闭设备上的 NFC 功能。此步骤有助于防止任何通过 NFC 进行的未经授权的访问或数据传输。
-
使用射频识别 (RFID) 卡的保护套或保护器。通过创建阻止不必要的 RFID 扫描的屏障,可以阻止任何人窃取卡中的 NFC 数据。
-
在智能手机上使用实体卡的数字版本。这些虚拟卡安全地存储在设备上,并可以通过生物识别身份验证等其他安全措施进行保护,使其成为传统塑料卡更安全、更方便的替代品。
结论
ESET 研究人员调查了一种新颖独特的攻击场景,该场景结合了网络钓鱼等众所周知的方法和一种新的恶意软件技术,即将 NFC 流量从受害者的实体支付卡中继到攻击者的 Android 移动设备。在过渡到我们称之为 NGate 的新恶意软件来中继 NFC 流量之前,攻击者以前使用 PWA,然后是 WebAPK,窃取受害者的银行凭证。这种演变展示了攻击者在执行欺诈操作方面的决心和加大的力度。
虽然我们已经确定并彻底检查了一个特定的攻击场景,但必须注意的是,理论上可能存在其他滥用情况。这些可能涉及克隆实体卡或访问 NFC 令牌,这可能会加剧威胁及其影响。
此次犯罪软件活动主要针对捷克,目前暂停,可能是因为逮捕了一名犯罪嫌疑人。但是,不能排除其扩展到其他地区或国家的可能性。此外,逮捕一名携带大量现金的参与者,为这些“虚拟”犯罪在现实世界中造成的后果提供了切实的证据。因此,必须时刻警惕社交工程策略,保持谨慎上网,并使用强大的移动安全应用程序。
https://www.welivesecurity.com/en/eset-research/ngate-android-malware-relays-nfc-traffic-to-steal-cash/
原文始发于微信公众号(独眼情报):Android 恶意软件利用前所未见的技术窃取支付卡数据
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论