介绍
一项新的、复杂的、隐蔽的 Magecart 网页窃取活动已针对 Magento 和 WooCommerce 网站展开。该活动的部分受害者与食品和零售行业的大型组织有关。
根据我们发现的证据,该活动已经持续了几周,在某些情况下甚至更长。该活动采用了一种我们以前从未遇到过的高级隐藏技术,令我们措手不及。
新的活动
Magecart 攻击通常首先利用目标网站的漏洞,或感染这些网站正在使用的第三方服务。在这次活动中,我们检测到的所有受害网站都直接受到攻击,因为恶意代码片段被注入到他们的第一方资源之一中。
在某些情况下,恶意代码被插入到 HTML 页面中;在其他情况下,它隐藏在作为网站一部分加载的第一方脚本之一中。
与许多其他 Magecart 活动一样,此活动的攻击基础设施由三个主要部分组成:加载器、恶意攻击代码和数据泄露(图 1)。
- 加载器——简短、晦涩的 JavaScript 代码片段,负责加载攻击的完整恶意代码
- 恶意攻击代码——执行攻击的主要 JavaScript 代码;它检测敏感输入、读取数据、破坏结帐流程并注入虚假表单
- 数据泄露——将窃取的数据传输到攻击者的命令和控制 (C2) 服务器的方法
图 1:Magecart 攻击基础设施
将攻击分为三个部分的目的是隐藏攻击,使其更难被发现。这样一来,攻击的整个流程就只能在特定目标页面上激活;也就是说,由于攻击者使用了混淆措施,因此只有在攻击者希望执行攻击的地方才会激活完整的攻击流程。这使得攻击更加隐蔽,更难被目标网站上可能安装的安全服务和外部扫描工具检测到。
尽管大多数 Magecart 攻击活动的流程和阶段都相似,但攻击者使用的各种隐藏技术却使各个攻击活动各有不同。这些技术用于掩盖攻击的基础设施、隐藏踪迹、使检测和逆向工程复杂化,并最终延长攻击时间。
活动的 3 个变体
我们发现了此次活动的三种不同变体,展示了攻击的演变以及攻击者为防止此次活动被检测和缓解而不断做出的改进:
- 前两个变体非常相似,仅在加载器部分有细微的差别。
- 第三个版本是独一无二的,因为攻击者使用网站的默认 404 错误页面来隐藏他们的恶意代码;这是一种我们从未见过的创造性隐藏技术。
让我们仔细看看这个新颖的活动的三个变体的技术细节。
变体一
我们的研究始于我们注意到一家大型公司的网站上有一些可疑的代码片段,这些代码片段由我们的威胁情报监控工具检测到。在分析这些代码片段后,我们发现它们是恶意编码的 JavaScript 加载程序,这些加载程序仍然存在并活跃在网站上。这一发现促使我们进一步调查,揭示了整个活动及其变体和对众多网站的影响。
变体一装载机:冰山一角
skimmer 成功将带有onerror属性的畸形 HTML 图像标签注入到被利用的网站(图 2)。此属性包含经过混淆的 Base64 编码的恶意加载程序代码片段。图像标签的 src 属性故意为空,旨在阻止网络请求并触发包含经过混淆的恶意 JavaScript 代码片段的内联onerror回调的执行。