电子商务网站的流行程度远超以往,人们愈加倾向于在线购物。这导致了一种名为网络窃取web skimming的攻击增长。网络窃取是一种针对电子商务网站的攻击,攻击者会在合法网站中插入恶意代码。其中 Magento 是被攻击者最常针对的平台之一。Magento 之所以受到攻击者的青睐,是因为其存在众多漏洞。然而,这并不意味着其他平台不会成为目标,例如,使用 WooCommerce 的网站也曾遭受攻击。 在这篇文章中,我们将讨论网络窃取攻击的性质及其工作原理。接着,我们将分析一系列从 2021 年 3 月 到现在仍在活动的网络窃取攻击。这些攻击利用了 Google Tag Manager,主要针对位于 阿根廷 和 沙特阿拉伯 的网站。 恶意网络窃取代码的目的是窃取网站客户的支付信息。这种攻击可以简单地与对物理 ATM 的攻击进行比较,攻击者通过恶意代码来窃取支付卡信息,而非使用硬件窃取器。 网络窃取非常危险,因为客户通常无从知晓网站是否已被攻击者入侵。攻击者主要针对安全性较差的小型电子商务网站,但有时大型电子商务网站也会成为受害者。如在 2018 年,英国航空网站曾遭受网络窃取攻击,在 2019 年,forbesmagazine[]com 网站也 遭到感染,支付信息被发送至 fontsawesome[]gq。在 2020 年,出售美容产品的大型在线零售商 wishtrend[]com 也成为另一宗网络窃取攻击的受害者。在 2021 年,另一家大型电子商务网站 storesegway[]com 也遭遇了类似攻击。 我们观察到一网页wishtrend[]com,在 Facebook 上拥有超过 100万 的关注者在 2020 年曾受到网络窃取攻击。随后在 2021 年,该网站又遭遇了模仿 Dropbox 登录的网络钓鱼攻击。 网站可以在客户端和服务器端被破坏和入侵。在 AV反病毒视角下,由于我们保护的是最终客户客户端,并且对服务器端没有可见性,因此我们专注于客户端。恶意代码可能仅隐藏在受感染的网站中,或者更常见的是,攻击分为两个或多个阶段。第一阶段是简单的加载程序,插入到受感染网站的 HTML 中或已存在的 JavaScript 文件中。下面的图像展示了该阶段的外观。 网络窃取攻击的第一阶段,插入网站的恶意代码示例 该代码从攻击者的域加载附加的恶意代码,有时是混淆过的,有时则未进行混淆。在第二阶段,攻击者通常使用 typosquatting 域名来隐藏并充当合法服务。恶意代码获取所有或在某些情况下,特定的输入表单的数据,并将这些数据发送到攻击者的服务器。 为了获取支付信息,攻击者使用以下技术之一: 下图展示了一个假支付表单的示例,红框部分即为。几乎不可能发现异常,因为一些电子商务网站的支付表单看起来完全相同且有效。但在这种情况下,黄色框中提供了一点帮助:“下单时,您将被重定向到 Realex 网站。”这意味着,如果网站声明您将被重定向,那么支付表单不应直接位于电子商务网站上,用户应该期望被重定向到支付网关其他网站以填写支付信息。 受感染网站上的恶意支付表单示例 第二阶段负责窃取并发送被盗支付信息给攻击者的部分也可以有多种表现形式。下面的代码片段即为一个示例。这里攻击者使用 POST 请求来外泄支付信息,但他们也可以使用 GET 请求和 WebSockets。 网络窃取代码示例 被盗的支付信息通常在暗网上出售。由网络窃取攻击生成的信用卡数据集通常是最新的,因此它们更有价值,能以高于例如从数据库中盗取的数据的价格出售,这些数据往往较陈旧。有关盗取卡片销售的更多信息,请参考 Yonathan Klijnsma 的 VB2019 论文:Inside Magecart the history behind the covert cardskimming assault on the eCommerce industry。 在 2021 年第三季度,我们发现了一种利用 Google Tag Manager (GTM) 作为第一阶段的网络窃取攻击。首先,受感染的网页通过插入的脚本从 googletagmanager[]com/gtmjsid=gtmltcodegt 加载一个脚本,如下图所示。 受感染电子商务网站的 indexhtml 代码片段 这种行为并没有什么异常,许多网站均使用 Google Tag Manager,而且看起来与其它网站完全相同不过,如果网站加载了多个 GTM 脚本,可能会有些可疑。但如果我们仔细查看 gtmjs 文件,就会发现其中有可疑代码。下图展示了恶意和干净的 GTM 脚本的对比。在恶意文件中,添加了自定义代码来从 ganalitis[]com 加载另一个 JavaScript 文件。这是 GTM 的一个特性,可以添加自定义脚本随后从 googletagmanagercom 域加载。 正常和恶意的 GTM 代码差异 我们能够根据我们共同的签名和 IP 将 ganalitis[]com 与同一攻击者的类似域名联系起来来自 RiskIQ 的数据。 域名 活动开始时间 IP ganalitics[]com 20210603 193[]203[]203[]240 bingfindapi[]com 20210429 193[]203[]203[]56 webfaset[]com 20210413 193[]203[]203[]56 pixstatics[]com 20210519 193[]203[]203[]56 ganalitis[]com 20211021 91[]242[]229[]96 gstatsc[]com 20211213 91[]242[]229[]96 gstatlcs[]com 20211215 193[]203[]203[]14 gstatuslink[]com 20220102 91[]242[]229[]96 gtagmagr[]com 20220105 193[]203[]203[]14 第二阶段从恶意域下载的文件是名为 favicon 后来更名为 refresh的文件,其中包含约 400 行 的混淆 JavaScript 代码。我们发现这些代码随着时间的推移而变化,以避免被检测。下方展示的去混淆代码表明,400 行代码中几乎全部只是混淆了。这个文件隐藏了负责通过 WebSockets 下载最终阶段的恶意代码。 恶意软件的最终阶段是通过 WebSockets 下载的。首先,网页发送其主机名,然后根据这些信息接收对应的恶意 JavaScript。下方的图像展示了这种通信。 恶意 JavaScript 代码大约有 1k 行格式化后,与上一个阶段一样,它也经过了混淆。这段代码负责窃取支付信息。在混淆后的 JavaScript 代码的末尾见下图是针对每个受感染网店的不同配置。底部红框内显示了假支付表单将插入受感染网站 HTML 文件中的配置。 第三阶段文件末尾的配置内容 黄色框中的代码在白框中被解码。它是一个字典,键 E528330211747l 包含与受感染网页上的输入表单字段名称匹配的表单字段名。最后一个键包含编码为 base64 的外泄 URL。下图中的代码来自被感染网站,其中我们可以看到电子邮件字段的 IDcustomeremail在其中。 假支付表单中缺失的字段名称存储在变量 a00x11ac38 中。该变量为数组,包含以下字段: 下图展示了嵌入在受感染网站上的假支付表单。上方是受感染的网页,下方是正常的网页外观。 带有假支付表单的电子商务网站 被盗的支付信息包括姓名和地址等细节通过 WebSockets 以 base64 编码的形式发送给攻击者。 下图展示了受影响用户最多的国家。榜首是 阿根廷,因为 prune[]com[]ar 网站被新的恶意域 gstatlcs[]com 感染。 第二个是沙特阿拉伯的电子商务网站 souqtime[]com。根据 RiskIQ 数据,我们可以看到该电子商务网站在一段时间内至少被感染了七个不同的网络窃取域。 目前,Avast 监测到恶意域 gstatuslink[]com 在 souqtime[]com 上。 总体来看,攻击者利用 Google Tag Manager 来规避检测。同时,他们能够随着时间的推移更改加载恶意代码的域名,也不断更改恶意代码本身以避开杀毒软件的检测。 一些网站被感染了数月之久例如 souqtime[]com。用户很难发现网站是否被感染。例如,如果用户在网站上填写付款表单后被重定向到支付网关网页的另一个支付表单,则可能会引起怀疑。但在支付表单通常直接出现在电子商务网站上,并且攻击者从这个合法的表单中窃取支付信息的情况下,真的很难发现网站被感染。因此,我们建议使用第二因素如移动应用或 SMS 代码来确认网络支付,如银行支持此项服务。 网站所有者应保持软件更新,监控日志以发现任何可疑活动,使用强密码,并使用 Web 应用防火墙。 恶意域的 IOC: pixstatics[]comganalitics[]combingfindapi[]comwebfaset[]comganalitis[]comgstatsc[]comgstatlcs[]comgstatuslink[]comgtagmagr[]com 标签:分析、Magento、恶意软件、窃取 共享:XFacebook网络窃取攻击概述
网络窃取攻击的工作原理
使用 Google Tag Manager 的网络窃取
受影响用户
结论