TL博士
Shai-Hulud 3.0 是 shai-hulud npm 恶意软件的最新演变版本。 自我繁殖的供应链蠕虫 滥用 npm 包窃取凭据、自动传播并进行入侵 CI/CD 环境。与之前的版本不同,Shai-Hulud 3.0 改进了其传播逻辑,针对流行的前端库,并通过维护者令牌滥用加速感染。
因此,这款 shai-hulud 恶意软件再次证明,现代 npm 供应链攻击不再依赖于零日漏洞,而是依赖于自动化、信任滥用和开发者工作流程。
什么是 Shai-Hulud 3.0?
Shai-Hulud 3.0 是继最初的 Shai-Hulud 蠕虫和大规模的 Shai-Hulud 2.0 爆发之后,已确认的 shai-hulud npm 恶意软件活动的第三波攻击。
然而,这个版本并没有引入全新的攻击手段,而是提升了攻击效率、隐蔽性和目标定位能力。换句话说,Shai-Hulud 3.0 优化了供应链攻击模型,而非对其进行彻底的革新。
最重要的是,该恶意软件继续以蠕虫的形式运行,而不是以一次性恶意软件包的形式运行。
Shai-Hulud 3.0 对 npm 安全性的重要性
乍一看,Shai-Hulud 3.0 可能看起来“只是另一个恶意 npm 包”。然而,正是这种误解让这次攻击活动得逞。
因为 npm 生态系统严重依赖于:
- 绝对信任
- 自动化安装
- 维护者凭证
- CI/CD pipelines
一个被攻破的令牌就能迅速演变成整个 npm 供应链的恶意软件爆发。
因此,shai-hulud恶意软件不需要利用漏洞。它利用正常的攻击工作流程。
Shai-Hulud 3.0 攻击途径:npm 恶意软件的传播方式
通过恶意 npm 包进行初始感染
shai-hulud npm 恶意软件通过以合法或被盗用的维护者帐户发布的木马化软件包进入生态系统。
在 Shai-Hulud 3.0 版本中,研究人员观察到病毒通过流行的依赖项传播,包括一些面向前端的软件包,例如:
@vietmoney/react-big-calendar
由于这些软件包在依赖关系图中处于较高位置,因此一次安装即可迅速扩展到各个项目中。
凭证收集和蠕虫繁殖
Shai-Hulud 3.0 一旦安装完成,就会在运行过程中执行恶意生命周期脚本。 install or postinstall.
现阶段,恶意软件:
- 扫描本地文件和环境变量
- 提取 npm 令牌和 GitHub 凭据
- 识别可访问的存储库和软件包
因此,感染会立即从 地方妥协 至 生态系统范围内的传播.
跨维护者组合的自动重新发布
在收集凭证之后, shai-hulud npm 恶意软件 通过程序列出所有由受感染的维护者拥有的软件包。
然后,它:
- 将恶意代码注入新版本
- 自动重新发布这些版本
- 将每个受害者变成一个新的分发点
其结果是, 一个被盗的令牌可以在数小时内感染数十个甚至数百个 npm 包。.
Shai-Hulud 3.0 与前几波相比
Shai-Hulud 3.0 版本有哪些变化?
尽管核心机制仍然熟悉, 沙伊-胡鲁德 3.0 引入了几项重要的改进。
最值得注意的是:
- 更快的传播逻辑
- 更清洁的有效载荷结构
- 更好地与合法软件包更新融合
- 与沙伊-胡鲁德相比,噪音降低 2.0
因此,仅基于声誉或 CVE 的检测将变得无效。
| 方面 | 沙伊-胡鲁德 2.0 | 沙伊-胡鲁德 3.0 |
|---|---|---|
| 初始感染媒介 | 带有预安装生命周期脚本的恶意 npm 包 | 恶意 npm 包滥用受信任的高知名度库和更新路径 |
| 主要目标 | npm 生态系统和 CI/CD pipelines | npm 生态系统,重点关注开发者机器和下游用户 |
| 传播机制 | 凭证被盗后,软件包被自动重新发布。 | 利用凭证重用和依赖信任滥用来更快地扩大覆盖范围。 |
| 运行时滥用 | 即时安装 Bun 运行时 | 重用现有的 Node.js 运行时和可信执行路径 |
| CI/CD 滥用 | 隐藏的 GitHub Actions 工作流和自托管运行器 | 减少 CI/CD 噪音,更注重隐蔽的封装级执行 |
| 有效载荷行为 | 大型混淆 JavaScript 有效载荷和环境扫描 | 更小、更具针对性的有效载荷,侧重于持久性和传播。 |
| 凭证定向 | GitHub 令牌、npm 令牌、云凭证、CI 密钥 | 相同的凭证目标,但可更快地重复使用,且数据泄露更隐蔽。 |
| 运行噪音 | 噪音很大:批量创建仓库、工作流注入、批量上传 | 噪声更低:可见瑕疵更少,更难通过人工审核发现。 |
| 影响半径 | 尺寸较大,但由于尺度和人为因素仍可察觉。 | 由于隐蔽性和受信任包裹滥用,潜在规模可能更大。 |
| 防守挑战 | 停止 CI/CD 滥用和凭证泄露 | 检测看似合法的软件包中的恶意行为 |
为什么这仍然是同一条蠕虫
尽管发生了这些变化, Shai-Hulud 3.0 仍然是同一类 npm 供应链蠕虫.
它依赖于:
- 凭证重用
- 自动重新发布
- 依赖信托
- CI/CD 执行
因此,任何安装 npm 包而没有行为控制的环境都仍然存在风险。
妥协指标
安全团队在调查 shai-hulud 恶意软件时应注意以下信号:
- 意外的软件包版本升级
- 未加理由地添加了生命周期脚本
- 混淆的 JavaScript 代码块
- 安装期间的出站网络请求
- npm 或 GitHub上 安装时访问的令牌
- CI/CD 依赖项更新后作业行为异常
重要的是,这些都不需要 CVE 编号才能存在。
为什么传统的 npm 安全工具会忽略 Shai-Hulud 3.0
基于 CVE 的检测失败
由于 Shai-Hulud 3.0 滥用了合法的工作流程,因此只关注已知漏洞的扫描器不会发现任何问题。
有:
- 没有易受攻击的功能
- 没有不安全的 API
- 无内存损坏
相反,恶意意图被嵌入到了普通的 JavaScript 代码中。
SBOM 仅仅有可见性是不够的
同样, SBOMs 可以告诉你 什么 你依赖,但并非 安装时它的作用.
因此,只有透明度而没有强制执行,并不能阻止供应链蠕虫的蔓延。
Xygeni 如何防止 Shai-Hulud 3.0 npm 供应链攻击
这正是 Xygeni 架构发挥作用的地方。
恶意软件早期预警 (MEW):在发布时阻止 npm 恶意软件
Xygeni 的恶意软件预警 (MEW) 实时持续扫描新发布的 npm 包。
MEW检测到:
- 混淆的有效载荷
- 可疑的生命周期脚本
- 凭证收集行为
- 异常文件系统写入
- 意外的网络活动
最重要的是,MEW 可以自动阻止构建,从而防止 shai-hulud npm 恶意软件进入系统。 CI/CD.
Guardrails强制执行安全依赖行为
西吉尼 Guardrails 内部执行严格的政策 pipelines.
他们:
- 阻止恶意或可疑的 npm 包
- 阻止隐藏的安装脚本执行
- 构建过程中停止运行时下载
- 强制执行锁文件完整性
结果, pipeline 在蠕虫执行之前停止。
CI/CD 安全:保护 Pipeline来自虐待
因为 Shai-Hulud 3.0 经常转向 CI/CDXygeni 显示器 pipeline用于:
- 未经授权的工作流程变更
- 异常执行模式
- 权限滥用
- 依赖触发式工作流注入
如果出现危险行为,Xygeni 会阻止这种行为。 pipeline 立即切断横向移动。
机密保护:缩小爆炸半径
由于 shai-hulud 恶意软件会主动窃取凭证, Xygeni 也专注于秘密。
Xygeni:
- 检测暴露的秘密 SDLC
- 自动轮换高风险凭证
- 强制执行更安全的代币实践
因此,即使恶意软件运行,被盗的机密信息也会迅速失去价值。
沙伊-胡鲁德3.0为何印证了长期趋势
最终,Shai-Hulud 3.0 证实了一个更广泛的现实。
现代 npm 供应链攻击:
- 自动传播
- 速度比人工审核更快
- 利用信任,而非漏洞
- 目标 pipeline不仅仅是代码
因此,防御 shai-hulud npm 恶意软件需要行为检测和强制执行,而不仅仅是扫描。
结语:为什么 Shai-Hulud 3.0 仍然重要
尽管 Shai-Hulud 3.0 没有引入炫目的新漏洞,但它代表了一种成熟、可重复且可扩展的攻击模型。
换句话说,这不会是最后一波浪潮。
依赖被动安全措施的团队将继续疲于应对感染。而及早阻止恶意行为的团队则能彻底遏制蠕虫病毒的传播。
那是区别。





