信用卡窃取活动滥用 Stripe 托管被盗支付信息
- 浏览次数 122
- 喜欢 0
一场新的 Magecart 攻击活动正利用 Stripe 的 API 基础设施来托管信用卡窃取负载以及从结账页面窃取的数据。
整个恶意活动依赖于 Google Tag Manager 和 Stripe 的域名(googletagmanager.com 和 api.stripe.com),这些域名被在线商店无条件信任。
该新型恶意软件家族由电商安全公司 Sansec 的研究人员发现。他们发现恶意代码是从一个 Google Tag Manager(GTM)容器加载的,并在加载该容器的每个页面上执行。
Sansec 表示:「负载和被盗的信用卡数据都通过 api.stripe.com 传输。商店默认允许该域名,因此该刷卡器能够绕过内容安全策略规则和网络过滤器——否则这些规则和过滤器会标记发往未知刷卡器域名的流量。」
GTM 是一个管理系统,允许网站所有者在不修改网站源代码的情况下,添加和管理用于分析、广告和跟踪的脚本。
Stripe 是一个被在线商店广泛使用的支付处理平台,用于接受信用卡、管理客户订单和处理账单。
据 Sansec 称,恶意代码被嵌入到看似正常的 GTM 容器中。当购物者进入结账页面时,该容器被激活,并向 Stripe 的 API 查询一个特定的客户记录(本例中为 cus_TfFjAAZQNOYENR)。从该记录的元数据字段中,它读取 JavaScript 代码,重新组装后使用 new Function() 执行。
该刷卡器针对 Magento/Adobe Commerce 的结账页面,试图捕获支付数据(信用卡号、有效期、CVV 码、客户姓名)以及账单地址、电子邮件地址和电话号码。
被盗数据被拼接成一个字符串,通过 XOR 运算进行混淆,并存储在本地,而不是立即外传。
数据的提取通过一个独立的例程完成。该例程在页面加载后立即执行,之后每分钟执行一次:它将数据块分成两半,创建一个新的 Stripe 客户对象,并将被盗数据存储在元数据字段中。每张被盗的支付卡都会成为攻击者 Stripe 账户中的一个虚假客户记录,从而将 Stripe 变成了被盗数据的存储后端。
数据被复制后,本地文件会被清除,以消除攻击痕迹并防止重复上传。
Sansec 还发现了该攻击的一个变种,其中使用 Google Firestore(一个用于数据存储和实时检索的云数据库服务)代替 Stripe。在该变种中,负载从一个名为 braintree-payment-app 的项目中的 tracking/captcha Firestore 文档中获取。被盗数据则存储在另一个 localStorage 键(_d_data_customer_)中。文档名和项目名有助于恶意软件混入合法的支付和机器人防护流量中。
据称,包含该刷卡器的 Stripe 客户记录创建于 2025 年 12 月 24 日,表明该攻击活动至少从那时起就已经活跃。
用户可以通过使用设有额度限制的一次性虚拟卡来防范此类风险。