Red Hat 遭 npm 供应链攻击:事件始末与安全防护指南
事件概述
就在 IBM 与 Red Hat 联合宣布一项名为 Project Lightwell 的 AI 驱动开源安全计划数天后,Red Hat 自身却成为 npm 供应链攻击的受害者。安全研究公司 Aikido 发现,Red Hat 的 @redhat-cloud-services npm 命名空间下的 32 个软件包 共 96 个版本 被植入了凭据窃取恶意软件,这些受感染包每周累计下载量高达 116,991 次。
攻击细节
攻击者利用一个被攻破的 GitHub 账户,向 Red Hat GitHub 组织维护的包中注入了恶意代码。这些包是前端库,会在 Red Hat 产品构建过程中被编译并打包到容器镜像中。恶意代码通过 npm 预安装钩子 实现:当开发者或构建系统运行 npm install 时,恶意脚本自动执行。
根据微软威胁情报团队的分析,每个受感染包都添加了一个预安装脚本,该脚本运行一个经过重度混淆的 index.js 加载器,随后下载并执行恶意负载,专门窃取 npm、GitHub、AWS、SSH 等环境中的凭据。研究人员将该攻击与基于 Mini Shai-Hulud 蠕虫 的更广泛供应链攻击活动联系起来——该蠕虫此前已被用于多起 npm 供应链事件。
影响与响应
Red Hat 安全团队已确认此次入侵,并迅速移除了受影响包。公司表示,这些包是前端库,在构建过程中被编译并打包进容器镜像,但 最终产品本身并未直接包含恶意代码。然而,任何在其 CI/CD 流程或开发环境中使用这些包的组织,都可能面临凭据泄露风险。
防护建议
- 检查是否使用受影响包:立即审查项目中是否使用了
@redhat-cloud-services命名空间下的任何包,尤其是近期版本。 - 轮换凭据:如果你或你的 CI/CD 系统曾安装过这些包,立即轮换所有可能暴露的密钥、令牌和密码。
- 加强供应链安全:实施软件物料清单(SBOM)管理,使用签名和完整性校验,并限制 npm 包来源。
- 监控异常行为:在构建和部署管道中增加对预安装脚本等可疑活动的监控。
行业启示
此次事件再次凸显开源供应链安全的脆弱性。即使像 Red Hat 这样在安全领域投入巨头的公司,也难逃攻击。IBM 和 Red Hat 的 Project Lightwell 计划虽雄心勃勃,但现实表明,安全建设需要从代码级到供应链级的全面防护。开发者应警惕 npm 生态中持续存在的风险,并将安全左移,从依赖引入阶段就开始管控。
