GitHub于周一宣布,为应对近期针对npm生态系统的一系列供应链攻击(包括沙伊-胡卢德攻击),将在“不久的将来”更改其身份验证和发布选项。
这包括通过以下步骤来应对令牌滥用和自我复制恶意软件带来的威胁:允许在本地发布时要求双重认证(2FA),使用有效期仅为7天的精细化令牌,以及采用可信发布</b1——这一方式能够借助开放身份连接(OIDC)从持续集成/持续部署(CI/CD)工作流中安全地直接发布npm包。
可信发布除了无需使用npm令牌外,还通过使用短期、特定于工作流且无法被窃取或重复使用的凭据对每次发布进行身份验证,从而建立加密信任。更重要的是,npm命令行界面会自动为包生成并发布来源证明。
“通过可信发布渠道发布的每个软件包都包含其来源和构建环境的加密证明,”GitHub在2025年7月下旬指出。“您的用户可以验证您的软件包是在哪里以及如何构建的,从而增强对您供应链的信任。”
为支持这些变更,这家微软旗下的公司表示将采取以下措施——
- 弃用旧版经典令牌。
- 弃用基于时间的一次性密码(TOTP)双因素认证,将用户迁移至基于FIDO的双因素认证。
- 将具有发布权限的精细令牌的有效期限制为更短。
- 默认情况下,将发布权限设置为禁止令牌,鼓励使用可信发布者或启用双因素认证的本地发布。
- 移除本地包发布时绕过双重认证的选项。
- 扩大可信任发布的合格提供者范围。
这一进展发生在一场代号为“沙虫”(Shai-Hulud)的供应链攻击一周后,该攻击向数百个npm包中注入了一种自我复制的蠕虫病毒,这种病毒会扫描开发者的电脑以寻找敏感机密信息,并将这些信息传输到一个由攻击者控制的服务器上。
GitHub的泽维尔·勒内-科雷尔表示:“如果不是GitHub和开源维护者及时采取行动,这种蠕虫将自我复制与窃取多种类型秘密(而不仅仅是npm令牌)的能力相结合,本可能引发源源不断的攻击。”
GitHub 的这些变化是在 NuGet .NET 包仓库新增对“可信发布”的支持以及 Ruby Central 宣布采取新措施以加强 RubyGems 生态系统的供应链安全之后几天推出的。
“展望未来,只有受雇于Ruby Central或与Ruby Central签订合同的工程师才会拥有RubyGems.org服务的管理权限,”Ruby Central表示。“这包括我们的生产系统和GitHub代码库。短期内,我们将暂时拥有这些项目的管理访问权,同时我们将敲定限制提交和组织访问权限的新政策。”
包含基于二维码技术的Npm包
这一披露发布之际,软件供应链安全公司Socket表示,其发现了一个名为fezbox的恶意npm包,该包能够利用一种新颖的隐写技术窃取浏览器密码。目前该包已无法从npm下载。自2025年8月21日首次发布以来,它总共获得了476次下载。
安全研究员奥利维亚·布朗表示:“在这个软件包中,威胁执行者(npm别名janedu;注册邮箱janedu0216@gmail[.]com)通过二维码执行有效载荷,从浏览器的网络Cookie中窃取用户名和密码凭证。”
Fezbox声称是一个包含常见辅助函数的JavaScript工具。但实际上,它隐藏着秘密代码,用于从远程URL获取二维码、解析该二维码,并执行嵌入其中的经过混淆处理的JavaScript有效载荷。
就其本身而言,该有效载荷尝试读取document.cookie,从Cookie中提取用户名和密码信息,并通过HTTPS POST请求将这些信息传输到外部服务器(“my-nest-app-production>.up.railway[.]app”)。
“大多数应用程序不再在Cookie中存储明文密码,因此很难说这种恶意软件在其目标上会有多成功,”布朗指出。“然而,使用二维码进行进一步混淆是威胁行为者的一个创造性转变。这种技术表明,威胁行为者在不断改进他们的混淆技术,也说明了拥有专门的工具来检查依赖项比以往任何时候都更加重要。”
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。