“沙虫”自复制蠕虫已入侵npmregistry中的500多个包

admin 2025-12-16 16:25:09 安全新闻 来源:ZONE.CI 全球网 0 阅读模式

美国网络安全与基础设施安全局(CISA)发布了一则紧急安全警报,以应对针对全球最大的JavaScript包注册库npmjs.com的大规模软件供应链攻击。

一种名为“沙虫”(Shai-Hulud)的自复制蠕虫已入侵500多个npm包,并注入了恶意代码。这些恶意代码通过滥用开发者凭证和npm发布流程进行恶性传播。

自我复制的npm供应链威胁

据推测,“沙伊-胡鲁德”(Shai-Hulud)先是通过一个被攻破的维护者账户获得了初始访问权限,随后部署了一个复杂的有效载荷,用于扫描环境变量和本地配置文件中存储的敏感凭据。

这种恶意软件针对GitHub个人访问令牌(PATs)以及亚马逊云服务(AWS)、谷歌云平台(GCP)和微软Azure的API密钥,它利用了常见的持续集成/持续部署(CI/CD)操作中令牌被意外留存的情况。

一旦获取到凭证,这些凭证就会被窃取到攻击者控制的端点,同时通过GitHub/user/repos API上传到名为Shai-Hulud的公共GitHub仓库。

随后,Shai-Hulud利用自动循环,通过被盗的令牌向npm注册表进行身份验证。它借助npm命令行界面,将恶意JavaScript注入到受感染开发者依赖树中其他包的入口文件(通常是index.js)中。

注入后,该蠕虫会执行“npm version patch && npm publish –access public”来发布植入了木马的版本,从而使其得以持续传播。

这种蠕虫的自我复制机制会利用传递依赖:任何依赖于受感染包之一的项目都可能在不经意间成为新的宿主。

缓解措施

CISA建议立即采取行动,检测并补救这一安全漏洞:

  • 检查所有package-lock.json和yarn.lock文件,找出2025年9月16日之后发布的包。使用npm audit和静态分析工具标记意外的代码变更或额外的postinstall脚本。
  • 轮换所有开发者凭证,并撤销暴露的GitHub个人访问令牌(PAT)。对每个开发者账户强制实施防钓鱼的多因素认证(MFA),尤其是针对GitHub和npm registry登录。
  • 实施入侵检测系统/入侵防御系统(IDS/IPS)规则,以监控异常的SSH和HTTPS连接。拦截发往已知可疑端点的出站流量,包括webhook.site域,并审计防火墙日志,查看是否存在意外的DNS查询以及向陌生IP范围的出站连接。
  • 移除不必要的GitHub应用程序和OAuth权限。启用分支保护规则、秘密扫描和Dependabot安全更新。审核webhook和仓库级别的秘密,以检查未授权的更改。
  • 将依赖项固定到2025年9月16日之前发布的已知安全版本。在package.json中设置严格的语义化版本范围(例如,“lodash”:“4.17.21”),以防止无意中更新到受感染的版本。

在整个开发流程中加强警惕对于阻止该蠕虫的传播以及维护npm生态系统的完整性至关重要。

评论:0   参与:  2