破坏供应链攻击:NPM和GitHub Actions
探索我们在过去几个月中对npm和GitHub Actions所做的更改,以破坏供应链攻击技术并限制其影响。2026年7月28日 | 7分钟分享:在过去的一年中,出现了一种针对包仓库和CI/CD系统弱点的供应链攻击模式,以快速将恶意软件传播到数百个开源项目。这种恶意软件旨在外泄凭证,以便广泛传播攻击,并用于后续的利用。我们多次撰写了关于增强供应链安全的计划:2025年9月针对更安全的npm供应链的计划,2025年12月加强供应链安全:为下一个恶意软件攻击活动做准备,以及2026年3月我们GitHub Actions 2026安全路线图的内容。在这篇文章中,我们将更新您有关我们实施的直接打乱一些最常见且影响最大的供应链攻击技术的更改。供应链攻击的剖析供应链攻击将多个弱点串联在一起,并且没有单一的安全能力可以阻止它们。解决这些问题需采取整体的方法,优先考虑那些打断攻击链中最具影响力环节的缓解措施。我们的团队一直在研究这些攻击,以部署多项改进,以中断它们并限制其影响。这得益于与安全研究和开发社区的合作。这些攻击在软件生态系统中传播的方式各不相同。然而,大多数攻击遵循类似的技术,以获取项目的初步访问权限、提升权限,并在用户和软件之间传播。在过去几个月中,我们对npm和GitHub Actions所做的改进,重点是切断特定的常见技术,并为客户提供识别和响应这些攻击的方法。初步妥协攻击始于妥协单个项目,通常是通过直接妥协维护者的帐户或通过针对项目的操作工作流。npm为高影响力帐户添加了预防性帐户保护(2026年6月):攻击通常始于针对维护者的网络钓鱼活动。通过这一更改,高影响力的npm帐户在更改电子邮件或使用2FA恢复码时,会被设置为只读模式72小时。这个延迟允许维护者在其帐户被用于发起攻击之前,及时响应并恢复帐户。GitHub Actions checkout的更安全pull_request_target默认值(2026年6月):项目的CI/CD管道中的一个常见漏洞是“控件请求”,即工作流程在来自分叉的拉取请求上触发,然后执行来自该分叉的用户提交的和不受信任的代码。我们更改了actions/checkout的默认行为,以防止在常见的利用触发器中从分叉检查不受信任的代码,除非您明确选择退出(在审查您的风险后)。这一更改及其对旧版本的反向移植,切断了导致GitHub Actions CI/CD工作流程中代码执行和初步项目妥协的最常见漏洞代码模式之一。控制谁以及什么触发GitHub Actions工作流程(2026年6月):也许您希望完全选择退出这些危险的动作触发器,或限制谁可以触发它们。此新控制允许您在企业、组织或仓库级别设置政策,以确定谁被允许触发工作流程,以及允许什么触发类型。这些工作流程执行政策提供了一层可管理和可定制的最小权限,以减少您的CI/CD基础设施的攻击面。针对不受信任触发器的只读Actions缓存(2026年6月):在攻击者成功在Actions工作流程中执行代码后,他们将寻找通过污染在工作流程之间共享的缓存条目来升级为更特权工作流程(从而获取凭证)。通过这一更改,我们限制了不太可信的工作流程修改与其他工作流程共享的缓存的能力。这直接关闭了一条攻击者利用限量影响的漏洞转变为泄露高度特权凭证(这些凭证用于发布和发布工作流程)的常见路径。一旦攻击者访问到一个单一的包,他们便会专注于检测和提取凭证,以获取进一步的访问权限,并在后期的利用中跨生态系统使用。npm受信任的发布现在支持CircleCI(2026年4月):阻止这些攻击的首要措施是从您的CI/CD管道中删除长期存在的凭证。受信任的发布是一种很好的方式,可以在没有长期存在凭证的情况下授权发布到您的包仓库。通过将CircleCI添加为受信任的发布提供者,我们使更多人能够移除这些攻击试图提取的凭证。Actions网络防火墙(技术预览中):此技术预览记录所有外发网络流量...
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡