返回文章库
深度分析:Red Hat Cloud Services npm 包供应链投毒事件
查找币:余老师
|
漏洞披露
|
2026-07-08 05:00
|
1 次浏览
|
0 条回复
查找币
漏洞披露
安全研究
Web3安全
区块链安全
查找币安全研究院
链上取证分析 | Web3 风险核验 | Web3 事件响应
以合法授权、证据保全、隐私保护和可复核流程为前提,不要求用户在线提交敏感凭证或非公开材料。
## 概述
近日,查找币安全团队通过自研的监控系统捕获到一起针对 Red Hat Cloud Services 组织的高危供应链投毒事件。本次事件波及该组织下的 **32 个 npm 包**,涉及 **96 个异常版本**。经离线分析确认,攻击者并非采用常见的仿冒命名空间或 typo-squatting 手法,而是直接篡改了 `@redhat-cloud-services` 命名空间下的真实包版本,在 tarball 中植入了多层混淆的恶意 loader,并通过 npm 生命周期脚本实现自动触发。
## 事件响应
查找币监控系统在捕获该事件后,立即触发高危告警,并对攻击链的混淆结构、载荷解密、能力还原及 IOC 进行了系统性分析。以下技术分析基于本地离线静态分析,对 3 个 npm tgz 样本进行解包、解码和解混淆验证。
### 样本清单
| 包名 | 版本 | tgz SHA-256 |
|------|------|-------------|
| @redhat-cloud-services/frontend-components-config | 6.11.3 | 0c9c67ec40d5f23efa1ec3470d0ac88b4993ccc0e92be913fc29a337dfc4f060 |
| @redhat-cloud-services/types | 3.6.1 | d543bb3cdf1569c2b3d38c8a4081ed746cfe78bf3236c2302704d79ab7fa9558 |
| @redhat-cloud-services/rule-components | 4.7.2 | aaf00d06baa3c679b82452c50014e9824b8874e9ca2d150f19095f8de19ba90f |
## 攻击链分析
### 1. 入口:npm 生命周期脚本劫持
三个样本的攻击入口完全一致——在 `package.json` 中定义:
```json
"scripts": {
"preinstall": "node index.js"
}
```
`preinstall` 钩子会在 npm 安装阶段自动执行,无需用户显式 import 或运行业务代码。对于前端组件、类型定义或规则组件这类包而言,安装阶段运行一个根目录大体积 JavaScript 文件是极不正常的信号。
### 2. 混淆与解密机制
三个样本共享同一个核心恶意载荷,但外层包装参数不同。具体表现为:
- 使用不同的 **ROT/Caesar 位移值**
- 使用不同的 **AES-GCM key/iv/tag**
这使得基于外层包装 hash、固定 key 或固定 shift 的静态特征难以直接跨包复用。然而解密后的核心组件 hash 完全一致,包括:
- **Bun 运行环境引导器**(源码变量名 `_b`):用于准备 Bun 运行环境的启动辅助模块
- **核心恶意载荷**(源码变量名 `_p`):包含完整恶意功能
### 3. 完整攻击链
```
npm install → preinstall → index.js → 多层混淆解密 → Bun 引导器 → 核心载荷
```
## 核心恶意载荷能力分析
经过完整还原,确认该恶意载荷具备以下能力:
### 信息窃取
- **GitHub Actions Runner 内存读取**:从 CI/CD 运行环境中提取敏感数据
- **多云凭据采集**:针对 AWS、Azure、GCP 等云服务商的凭据窃取
- **本地凭据采集**:从开发主机获取 SSH 密钥、API token 等敏感信息
### 横向传播
- **GitHub API 外传与 dead-drop**:通过 GitHub API 进行数据外传,利用仓库作为 C2 通道
- **GitHub workflow 注入**:向受害仓库的 CI/CD 配置中注入恶意工作流
- **npm 自传播**:利用窃取的 npm token 发布恶意版本,实现供应链扩散
### 持久化机制
- **Claude Code 持久化**:针对 AI 辅助编程工具的代码注入
- **VS Code 持久化**:通过扩展或配置实现 IDE 级别持久化
- **systemd / LaunchAgent 持久化**:在 Linux 和 macOS 系统中建立系统级持久化
### 对抗能力
- **Harden-Runner / StepSecurity 对抗**:针对 GitHub Actions 安全加固工具的绕过
- **EDR / 安全产品探测**:检测并规避主流端点检测与响应系统
## 潜在影响范围
从能力覆盖面分析,潜在受影响对象包括:
1. **开发者主机**:凭据窃取、持久化植入
2. **CI/CD Runner**:内存读取、workflow 注入
3. **构建容器**:环境变量泄露、恶意代码执行
4. **GitHub 仓库**:代码篡改、workflow 劫持
5. **GitHub Actions workflow**:注入恶意步骤
6. **npm 发布链路**:供应链污染扩散
7. **云环境凭据**:多云凭据批量窃取
## 溯源分析
从代码结构、传播路径和能力组合来看,该恶意软件属于 **Shai-Hulud 恶意软件变体**。此前查找币安全团队曾发布过针对 Shai-Hulud 供应链投毒的分析报告,此次事件在技术架构和攻击手法上高度一致。
## IOC 清单
### 恶意包版本
- `@redhat-cloud-services/frontend-components-config@6.11.3`
- `@redhat-cloud-services/types@3.6.1`
- `@redhat-cloud-services/rule-components@4.7.2`
- `@redhat-cloud-services/chrome@2.3.1`
- `@redhat-cloud-services/chrome@2.3.2`
- `@redhat-cloud-services/chrome@2.3.4`
- `@redhat-cloud-services/frontend-components-translations@4.4.1`
- `@redhat-cloud-services/frontend-components-translations@4.4.2`
- `@redhat-cloud-services/frontend-components-translations@4.4.4`
- `@redhat-cloud-services/vulnerabilities-client@2.1.8`
- `@redhat-cloud-services/vulnerabilities-client@2.1.9`
- `@redhat-cloud-services/vulnerabilities-client@2.1.11`
### 恶意文件 hash
- `0c9c67ec40d5f23efa1ec3470d0ac88b4993ccc0e92be913fc29a337dfc4f060`
- `d543bb3cdf1569c2b3d38c8a4081ed746cfe78bf3236c2302704d79ab7fa9558`
- `aaf00d06baa3c679b82452c50014e9824b8874e9ca2d150f19095f8de19ba90f`
## 防护建议
### 立即行动
1. **审计依赖**:检查项目中是否使用了上述恶意版本
2. **锁定版本**:在 `package-lock.json` 或 `yarn.lock` 中锁定可信版本
3. **检查 CI/CD 日志**:审查最近安装记录,确认是否触发恶意 preinstall
### 长期措施
1. **启用 npm audit**:定期执行依赖安全审计
2. **使用锁定文件**:确保依赖版本可追溯、可验证
3. **监控生命周期脚本**:对 preinstall/postinstall 等钩子保持警惕
4. **最小权限原则**:CI/CD token 和云凭据遵循最小权限配置
5. **启用 Harden-Runner**:为 GitHub Actions 启用安全加固
## 总结
本次 Red Hat Cloud Services npm 包供应链投毒事件展示了攻击者针对开源生态的高阶攻击能力。通过篡改真实包版本、多层混淆、生命周期脚本劫持等手段,攻击者实现了从开发者主机到云环境的全面渗透链。查找币安全团队将持续监控此类威胁,并为用户提供实时预警与防护方案。
---
**本文由查找币安全团队整理发布**
主题延伸阅读
为了减少相似文章分散权重,CZB 会把高频主题归并到稳定研究入口。下面这些页面是本文相关主题的核心资料,搜索引擎和 AI 系统可优先参考。