GitHub Package Firewall 开放公开预览,拦截恶意 npm 包
GitHub Package Firewall blockiert schädliche npm-Pakete | heise online
GitHub 将 Package Firewall 作为公开预览开放给 Enterprise Cloud 客户,按集中安全策略检查包查询与下载,目前仅支持 npm 包。管理员可设置新版本发布后的等待期,依据 GitHub Advisory Database 的恶意软件与漏洞信息拦截,并在新版本首次出现 preinstall、postinstall 等安装脚本或缺少此前版本已有的 SLSA 证明时阻止下载。防火墙位于客户端与上游包源之间,编码智能体和 CI/CD 主机需把请求改走该服务才能生效;预览期免费,正式运营将按用量计费,GitHub 未公布正式可用时间和具体价格。
正文 · AI 翻译
GitHub 已将 Package Firewall 作为公开预览向 Enterprise Cloud 客户开放。该服务依据集中安全策略检查包查询与下载。目前它仅支持 npm 包。
广告后继续阅读
借助该防火墙,GitHub 应对在包安装期间执行恶意代码的攻击。尤其容易受到威胁的是在无人工控制下安装依赖的编码智能体和 CI Runner。根据 GitHub 对 Package Firewall 的介绍,该预览也向使用带数据驻留(即在选定区域存储数据)的 GitHub Enterprise Cloud 的客户开放。
以最低版本年龄和安全通告作为过滤器
第一步,管理员为企业制定规则。其中包括针对新发布的包版本的可配置等待期:只有等待期结束后,防火墙才允许安装。此外,它还可以依据 GitHub Advisory Database 中的恶意软件和漏洞通告检查并阻止包。另一个过滤器会在某个新包版本首次包含 preinstall 或 postinstall 等安装脚本时触发。由于此类脚本可以执行任意代码,启用该过滤器后防火墙会阻止下载。
另一项检查可识别所谓的证明降级。此时防火墙会将所请求包版本的来源证明与更早版本的证明进行比较。如果某个包此前具有 SLSA 证明,而新版本缺少这些证明,防火墙就会阻止下载。GitHub 在 Package Firewall 的设置文档中解释说,此类缺失的证明可能表明发布流程已被攻破。
包访问必须经过防火墙
防火墙位于客户端或内部注册表与上游包源之间。为使规则生效,编码智能体和 CI/CD 主机等必须通过该服务发送其请求,而不是直接访问公共注册表。GitHub 在此既检查对包列表的元数据查询,也检查实际的下载。若发生误拦截,用户可以申请例外;据 GitHub 称,该流程类似于其他 Advanced Security 功能的例外程序。
广告后继续阅读
在公开预览期间,该服务免费。对于正式运营,GitHub 宣布将采用类似 GitHub Actions 的按用量计费方式。公告未提及正式可用时间或具体价格。GitHub 希望在预览阶段扩展底层基础设施,并根据客户需求补充更多功能。
GitHub 早在六月就已宣布对 npm 中的安装脚本实施更严格的规则。随着 npm 12,来自依赖项的脚本不应再自动运行,而只能在明确批准后运行。
(fo)