技术

GitHub强化npm和GitHub Actions防御供应链攻击

GitHub回顾了过去几个月在npm和GitHub Actions中实施的一系列变更,旨在切断软件供应链攻击常用的路径,涵盖从入侵开发者账户到窃取凭据和传播恶意软件的各个环节。

2026-07-28
1 分钟阅读
10 浏览量
فريق تحرير certi.news
GitHub强化npm和GitHub Actions防御供应链攻击

GitHub回顾了过去几个月在npm和GitHub Actions中实施的安全变更,旨在阻断软件供应链攻击中的常见手段并减轻其影响。这些措施包括保护高影响力的npm账户、收紧Actions工作流的默认行为、降低凭据被窃取的风险,以及提供更快速的事件响应工具。

这些措施出台之际,利用软件包仓库以及持续集成和部署系统漏洞、向数百个开源项目传播恶意软件的攻击日益增多。据Greg Ose和Zachary Steindler介绍,这类攻击通常遵循一系列阶段:首先获取项目的初始访问权限,然后提升权限、窃取凭据,最终扩散到其他项目和用户。

降低初始入侵机会

2026年6月,npm在高影响力账户更改电子邮件地址或使用令牌恢复双因素身份验证时,将其置于只读状态72小时。这段缓冲时间让账户管理员有机会发现并应对钓鱼企图,然后再由攻击者利用该账户发动攻击。

同月,GitHub更改了actions/checkout操作的默认行为,在容易遭到利用的触发器中,阻止从来自分叉仓库的拉取请求获取不受信任的代码;在完成风险审查后,也可以取消这一限制。该变更同样涵盖该操作的旧版本。

GitHub还提供了组织、机构或仓库级别的策略,用于控制哪些主体可以运行工作流,以及哪些类型的触发器可被接受。此外,可信度较低的工作流修改与其他工作流共享的缓存的能力也受到限制,从而切断一条曾被用于从权限受限的代码执行转向窃取高权限凭据的路径。

限制凭据窃取和恶意软件传播

2026年4月,npm为可信发布功能增加了对CircleCI的支持,使项目能够通过可信主体进行发布,而不必使用攻击者可能从持续集成环境中提取的长期凭据。

GitHub还在技术预览阶段测试网络防火墙,用于记录GitHub Actions运行过程产生的出站流量。这有助于发现下载恶意代码或将凭据发送至新域名等行为。GitHub计划随后增加网络出站流量的限制和策略,以阻止这些活动。

通过npm于2026年5月推出的分阶段发布功能,仅凭凭据无法直接发布新版本;版本会停留在等待阶段,直到通过npm界面或npmjs.com完成批准和双因素身份验证。

npm v12还准备进行一项会破坏既有行为的变更,默认禁用安装期间的运行脚本,同时允许在批准特定脚本后重新启用它们。依赖Git仓库或远程URL的依赖项也将默认被禁用,以限制安装期间执行代码的路径。

延迟非安全更新并改善响应

2026年7月开始,通过Dependabot进行的版本更新将在软件包发布后至少等待三天,再创建拉取请求。这为检测信号提供了出现的时间,使其能够在恶意版本进入项目之前被发现;而安全更新仍会立即创建,以免关键修复被延误。

在响应方面,GitHub于6月增加了自助工具,可撤销某个用户在机构内的所有凭据;此外,GitHub于3月扩大了凭据撤销API的支持范围,加入GitHub OAuth令牌和App Tokens。此前,该支持已于2025年4月开始覆盖个人访问令牌。GitHub表示,这些功能有助于快速使泄露的数据失效,并缩短其可能被滥用的时间。

GitHub确认,这些变更是持续提升npm和GitHub Actions默认安全性工作的一部分,其他改进仍在陆续推出,并将通过变更日志和博客文章持续跟进。

新闻来源
ف
作者

فريق تحرير certi.news

同一分类

你可能还喜欢

查看所有新闻