Akamai 收购 LayerX,为所有浏览器提供端到端安全和实时 AI 使用控制。 获取详情

从 Akamai 的视角审视 Polyfill 攻击

寫於

Gal Meiri

July 02, 2024

寫於

Gal Meiri

Gal Meiri 现任 Akamai 高级 AI 安全研究经理。他领导着一支由安全研究员和数据科学家组成的精英团队,全力聚焦于保障生成式 AI 应用以及智能体工作流的安全。他的研究方向涵盖了整个 AI 攻击面上涌现的新型安全威胁;在研发层面,其工作横跨攻防两端,致力于通过构建运行时防护能力来全力确保 AI 交互过程的绝对安全。Gal 还是一位活跃的行业演讲嘉宾,经常在各大顶级安全峰会及行业盛会上分享最新的威胁情报。

 

polyfill.io 供应链攻击暴露出现代 Web 应用程序开发中固有的严重安全漏洞。
polyfill.io 供应链攻击暴露出现代 Web 应用程序开发中固有的严重安全漏洞。

编辑和评论补充:Tricia Howard

polyfill.io 供应链攻击:概述

最近,安全社区对涉及 polyfill.io 的重大 供应链攻击 发出了警告。polyfill.io 是一个为 Web 应用程序提供 polyfills(一段 JavaScript 代码,允许在原生不支持现代功能的旧式浏览器中实现这些功能)的服务。根据详细报告,此次攻击影响了超过 10 万个网站,它通过滥用备受信任且被广泛使用的 polyfill.io 服务来传播恶意代码。

在此次攻击中,一名位于中国的恶意攻击者在数月前获取了一个热门 polyfill 开源项目,并通过将恶意脚本注入分布式 polyfill 感染了 polyfill JavaScript 代码。 该攻击主要以移动设备为目标,对会话进行选择性采样,以保持隐匿并加大了检测难度。攻击者随后使用该恶意代码进行重定向攻击,将用户导向诈骗网站。

开发者将这些遭入侵的 polyfill 集成到其网站时,就无意中将恶意代码引入了其应用程序。在这篇博文中,我们将具体讨论这次攻击(以及供应链攻击),以及我们从 Akamai Client-Side Protection & Compliance 的视角观察到的独家数据。

什么是供应链攻击?

供应链攻击以企业供应链中的漏洞为目标。就在线 Web 应用程序而言,现在网站会加载数十项第三方资源,用以实现一些常规网站功能。这些资源受到网站所有者信任,通常拥有页面的完整访问权限,包括文档对象模型 (DOM)、Cookie 和最终用户输入的敏感信息。

监控和跟踪这些资源极具挑战性,因为它们数量庞大、频繁更改,并且缺乏客户端监测能力。攻击者可能利用这种信任,使用这些第三方服务来入侵 Web 应用程序。这类攻击通常涉及将恶意代码注入合法的第三方库或服务,然后被开发者无意中分发给最终用户。

Akamai 安全情报组进行的研究表明电商网站中使用的 JavaScript 有 50% 来自第三方来源。我们观察到,客户的支付页面上平均包含来自数十个第三方供应商的代码,而这些页面现在需要遵循 最新 PCI DSS v4.0 要求 6.4.3 和 11.6.1

Akamai 视角下的 polyfill 攻击

polyfill 攻击以源自 cdn.polyfill.io的 JavaScript 代码的形式通过目标网站交付。该攻击同时使用服务器端和客户端采样。在服务器端,它检查请求标头(例如 user-agent),以便仅针对具有特定条件的移动设备。对于其他设备,polyfill 服务器会为现代浏览器提供原始 polyfill 代码或空响应。

该采样过程不限于服务器端。在执行过程中,该代码还会在客户端使用其自己的 JavaScript 验证设备类型。此外,它还会根据页面推荐者和本地设备时间选择目标。当恶意 JavaScript 执行其攻击时,它会与网址为 googie-anaiytics[.]com 的服务器交流。

我们成功监控了恶意 JavaScript 在网页上的执行,包括其与服务器的沟通。 检测到可疑活动时,将为受影响的客户触发提醒。处理任何威胁的关键都在于敏捷性:快速响应能力对于限制攻击影响范围至关重要。

我们定义了 Client-Side Protection & Compliance 脚本行为策略来阻止这种通信,使得攻击无法通过这一途径继续进行。图 1 是这方面的真实示例:激活策略后,立即实时阻止了这一攻击途径。

脚本行为策略 图 1:Akamai Client-Side Protection & Compliance 脚本行为策略

攻击前后的 polyfill.io 使用趋势

我们观察到超过 40 家客户拥有从 polyfill.io 加载的资源。其中一些客户每天受影响的页面都会高达数万个(图 2)。这一数字包括直接使用来自 polyfill.io 的 JavaScript 资源的客户、将此代码加入其执行的第三方,以及源自最终用户浏览器扩展程序的资源。

我们观察到超过 40 家客户拥有从 polyfill.io 加载的资源。其中一些客户每天受影响的页面都会高达数万个(图 2)。 图 2:从 polyfill.io 加载的资源的信标趋势

我们的数据来自 Akamai Client-Side Protection & Compliance,该产品会主动实时监控和分析 JavaScript 执行,从而缩短补救时间,无论是第一方还是第三方皆是如此。

Akamai 正与其客户密切合作,有效应对和减轻该攻击的影响,包括通过有关该攻击的安全公告通知相关客户。这种主动式方法已使源自受影响域名的资源大幅减少,从而减少 Akamai 客户暴露在风险下的情况。

需要有关抵御供应链攻击方面的帮助?

Akamai Client-Side Protection & Compliance 旨在保护客户免受源自第一方和第三方来源的客户端攻击,包括供应链攻击。

该解决方案会监控 Web 应用程序中的 JavaScript 资源,实时分析其执行情况,并确定其行为是否可疑。它还会检测脚本行为异常,为 Web 应用程序中加载和执行的每项 JavaScript 资源提供详细分析。

另外,Client-Side Protection & Compliance 还提供实时抵御功能,只需数秒,即可阻止恶意脚本执行。由于无需更改 Web 应用程序的代码来阻止可疑行为,因而安全团队可以显著改善攻击响应时间。该解决方案能够检测 polyfill.io 攻击和受影响的用户会话,然后阻止攻击执行。

在浏览器内检测和抵御威胁的优势

此次攻击的目标只有少量会话,特别是通过不常见的 user-agent 浏览器筛选的会话,因此只对网站进行综合扫描的解决方案可能无法检测到该攻击流。Akamai Client-Side Protection & Compliance 的主要优势之一在于, 它在浏览器内运行并可检测每个用户会话;即使在这些目标会话启动后,它也检测到了恶意 JavaScript 执行。更重要的是,一旦激活保护策略,它便在页面上阻止了攻击的执行(图 3)。

Akamai Client-Side Protection & Compliance 图 3:Akamai Client-Side Protection & Compliance 为客户网站中检测到的每项 JavaScript 资源提供详细分析

结论

polyfill.io 供应链攻击暴露出现代 Web 应用程序开发中固有的严重安全漏洞。即使配备了所有适当的保护措施,依赖第三方资源仍可能在无意间引入安全风险。此次事件涉及超过 10 万个网站,这充分反映了受信任的服务是多么容易遭到入侵并分发恶意代码,进而降低用户安全性和信任感。

监控这类威胁,为我们的客户乃至整个安全界作出贡献,是 Akamai Security Intelligence Group 的宗旨。我们将继续观察威胁生态系统,并对观察结果进行后续报道。如需获取实时更新, 请关注我们的微信公众号,或查看我们的 安全研究 页面。



寫於

Gal Meiri

July 02, 2024

寫於

Gal Meiri

Gal Meiri 现任 Akamai 高级 AI 安全研究经理。他领导着一支由安全研究员和数据科学家组成的精英团队,全力聚焦于保障生成式 AI 应用以及智能体工作流的安全。他的研究方向涵盖了整个 AI 攻击面上涌现的新型安全威胁;在研发层面,其工作横跨攻防两端,致力于通过构建运行时防护能力来全力确保 AI 交互过程的绝对安全。Gal 还是一位活跃的行业演讲嘉宾,经常在各大顶级安全峰会及行业盛会上分享最新的威胁情报。