2025 年 11 月,一场影响全球开发者社区的大规模供应链攻击正在持续扩散。恶意软件 Shai-Hulud 2.0(又称 Sha1-Hulud: The Second Coming)已感染超过 700+ npm 包,并影响 25,000+ GitHub 仓库,成为今年最严重、最具破坏性的代码供应链事件之一

这类攻击不再是“某个公司被黑”,而是整个生态链被污染。一旦企业在构建、部署或更新过程中引用到被篡改的依赖,即可能在完全不知情的情况下被黑客控制,导致凭证泄露、代码污染以及潜在的横向扩散。

01 Shai-Hulud 2.0 是什么?为什么危险?

图片

Shai-Hulud 2.0 是一种具备蠕虫 (worm-like) 行为的恶意软件,具有自动复制和持续扩散能力,远比一般恶意 npm 包更隐蔽、传播更快。

感染范围广、速度快

  • 已发现 700+ 被篡改的 npm 包

  • 超过 25,000 个 GitHub 仓库被用于上传窃取的敏感数据

  • 恶意包会不断 republish,使感染呈指数级扩散

在依赖安装阶段即能触发攻击

攻击者在篡改后的包中加入脚本,例如:

  • setup_bun.js

  • bun_environment.js

这些脚本可在如下阶段执行:

  • npm install

  • npm ci

  • preinstall / postinstall

无需运行业务代码,只要安装依赖即可触发攻击。

大规模窃取凭证

恶意脚本会扫描开发环境或 CI/CD 环境中的敏感信息,包括:

  • npm token(.npmrc)

  • GitHub PAT / Git credential

  • AWS/GCP/Azure 云密钥

  • CI/CD 环境变量

  • SSH key 等

一旦凭证泄露,攻击者可以进一步污染更多包和更多仓库。

持久化与破坏行为

攻击者可能:

  • 将机器注册为 GitHub 自托管 Runner,以获得长期访问

  • 若无法传播,甚至可能触发破坏逻辑,例如删除用户 home 目录

0企业应该如何应对?

图片

① 冻结依赖版本(Freeze Dependencies)

  • 使用 package-lock.json / yarn.lock / bun.lockb

  • 禁止动态安装未知版本

  • 尽量使用内部镜像仓库或离线缓存构建

② 对所有项目进行依赖审计(Dependency Audit)

建议使用:

  • npm audit

  • Snyk

  • OWASP Dependency-Check

并对照官方公布的受感染包列表进行手动检查。

③ 立即轮换所有可能暴露的凭证

包括:

  • npm token

  • GitHub PAT

  • CI/CD runner secrets

  • 云平台密钥

  • SSH key(如在 pipeline 中使用)

这是最重要的步骤之一。

④ 加固 GitHub / CI/CD 环境

  • 禁止未知主机注册 self-hosted runner

  • 将构建环境与生产环境完全隔离

  • 在 CI/CD 中禁用 lifecycle scripts(如 preinstall)

  • 使用最小权限 PAT 和短时有效凭证

  • 对 Runner 采用沙箱或容器隔离

⑤ 监控异常活动

持续检查:

  • GitHub 中是否出现陌生仓库

  • 项目是否被自动 republish

  • Runner 是否发生异常注册

  • npm 包是否出现未知版本

03 企业必须采取的供应链安全措施

图片

在数字化环境里,企业不可能完全自建所有系统,不可避免的需要依赖大量供应商、外包团队、开源包与第三方服务。但是企业负责人需要意识到:

  • 你安装的不是“一个 npm 包”,而是一个“供应商提供的软件组件”

  • 供应商是否安全,直接影响你的系统是否安全

  • 没有审计、没有资质的第三方,只需要一个漏洞,就可能影响整个企业

供应商必须具备可验证的安全资质

例如:

  • 通过国际权威机构认证的安全管理体系

  • 完整的安全策略与风险管理流程

  • 安全培训、事件响应制度

  • 正规运维与访问控制流程

所有第三方都必须接受安全评估

包括但不限于:

  • 是否有代码依赖审查

  • 是否有凭证管理规范

  • 是否对构建流程进行安全加固

  • 是否有供应链安全培训

不可依赖“低价”供应商,承担高风险

外包商越便宜,越可能忽视安全流程,最终为企业带来更高成本的大规模事件。

在当下供应链攻击频繁出现的时代,企业不仅需要安全的内部流程,更需要 安全能力强、资质合规、流程透明的技术供应商

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐