一场针对开发者凭证的精准供应链攻击,让红帽公司超过30个npm包沦为了恶意软件的传播渠道。安全公司Aikido和OX Security发现,在红帽官方维护的"@redhat-cloud-services"命名空间下,数十个包版本被植入后门,夹带一款名为"Miasma"的新型窃密程序——这实际上是已知恶意软件Shai-Hulud的一个新变种。
被篡改的包每周总下载量达到约11.7万次,波及范围相当广泛。攻击者瞄准的目标清单列得极其"务实":开发者凭证、云服务密钥、SSH密钥、CI/CD令牌,以及其他所有能拿到的敏感信息。用Aikido安全团队的话说,这基本等于"对着开发环境来了一次地毯式搜刮"。
红帽在发给BleepingComputer的一份声明中确认了此事,表示已经将受影响包从npm注册表中移除。不过红帽强调了几个关键点:这次入侵的影响严格限定在内部开发工具范畴。"这些包仅供内部开发使用,恶意代码从未通过console.redhat.com系统提供给客户消费。目前调查仍在进行,但我们尚未发现对客户或合作伙伴环境、以及红帽生产系统造成任何影响。"
至于最核心的问题——攻击者究竟如何攻破了红帽员工的账户——红帽方面没有给出回答,仅表示调查还在继续。但安全公司Aikido已经还原出了攻击链路的核心环节:攻击者据称入侵了一名红帽员工的GitHub账户,随后利用这个身份直接向多个代码仓库推送了恶意提交。
这些提交干了什么?它们添加了一个GitHub Actions工作流和一个脚本,专门滥用npm的发布机制来批量释出被植入后门的包版本。Aikido在技术分析中详细解释了这一套自动化武器化的流程:"当工作流运行时,它会安装Bun并执行index.js,通过OIDC_PACKAGES环境变量传入一份目标包列表。脚本使用id-token: write权限从GitHub请求短期OIDC令牌,然后用这个令牌直接认证npm的可信发布端点,为列表中的每一个包发布被篡改版本。"
开发者一旦安装这些被篡改的包,包里的preinstall脚本就会自动触发,执行一个经过重度混淆的index.js文件。Aikido指出,这个恶意载荷的体积大约4.2MB,功能设计得极其"全面":它会窃取GitHub Actions密钥、AWS凭证、Google Cloud凭证、Azure服务主体凭证、HashiCorp Vault令牌、Kubernetes服务账户令牌、npm和PyPI发布令牌、SSH密钥、Docker凭证、GPG密钥,以及.env文件。换句话说,开发环境里能拿到的几乎所有密钥和凭证,都在它的收割范围之内。
从受影响规模来看,此次事件共涉及32个包、96个包版本,多数是"@redhat-cloud-services"命名空间下维护的客户端库。安全机构的建议直截了当:任何安装了受影响版本的组织,应当立即轮换所有可能泄露的密钥和凭证。红帽的内部工具虽然没直接流向客户生产环境,但那些每周11.7万次的下载量,依然意味着一批数量可观的开发者环境已经被触及。
热门跟贴