事件背景与影响
近期,网络安全领域监测到一起代号为“Miasma”的供应链攻击事件。攻击者通过攻陷 Red Hat 开发者的 GitHub 账户,向多个核心 npm 包(如 @redhat-cloud-services 系列)中植入恶意代码,从而在开发者机器及 CI/CD 环境中执行恶意操作。
从我们的应急响应经验来看,这类针对开源组件的供应链投毒已成为攻击者的“首选路径”。通过污染开发者日常使用的基础设施,攻击者能够以极低的成本获取高权限凭据,甚至在下游系统中实现自动化传播。
攻击链深度解析
本次 Miasma 攻击链展示了极高的自动化程度与隐蔽性。其核心攻击步骤如下:
首先是初始入侵,攻击者通过窃取的 Red Hat 开发者 GitHub 账户,利用孤儿提交(Orphan Commits)绕过代码审查机制,将恶意代码植入官方包中。
其次是执行与窃取,当开发者安装或运行这些包时,预安装脚本(preinstall hook)会被触发。恶意代码会扫描机器上的 GitHub Actions 凭据、npm 令牌、云服务密钥(GCP/Azure)、Kubernetes 配置文件、SSH 密钥等敏感信息。
最后是外泄与持久化,窃取的数据被加密后外传。该恶意软件还具备检测主流终端安全防护(如 CrowdStrike、SentinelOne 等)的能力,一旦检测到环境,便会采取规避措施。
技术手法揭秘
Miasma 展现了几个值得警惕的技术特征:
一是环境感知与规避,恶意软件包含俄语系统检查逻辑,一旦发现系统配置为俄语,便会停止运行,这与之前的 GlassWorm 攻击手法如出一辙。
二是深度持久化,恶意软件不仅限于内存运行,还会通过修改 VS Code 的 tasks.json 和 Claude Code 的配置文件,实现开发环境的持久化驻留。这一环节是很多企业容易忽视的,仅仅删除 node_modules 目录根本无法清除此类残留。
三是投毒 CI/CD,攻击者通过 GraphQL 查询仓库权限,利用被窃取的令牌自动提交恶意的 GitHub Actions 工作流,使投毒行为看起来像是正常的代码合并,极大地增加了溯源难度。
溯源难点与组织特征
目前关于攻击组织的判定尚无定论。由于此前著名的网络犯罪团伙 TeamPCP 将“Shai-Hulud”蠕虫的攻击工具开源,导致大量模仿者涌入,使得此类攻击的归因变得极其复杂。类似攻击近年来明显增加,开源工具的武器化让防御者面临着“防不胜防”的局面。
安全建议与 Solar 经验
针对此类供应链攻击,Solar 应急响应团队建议企业采取以下措施:
- 立即隔离与排查:对所有安装了受影响 npm 包的开发机进行隔离。切记,删除 npm 包不足以清除持久化后门,务必检查 ~/.claude/settings.json、.vscode/tasks.json 等关键配置文件。
- 凭据全量重置:一旦发现受影响,必须假设所有开发环境中的凭据(GitHub Token、云密钥、SSH 密钥等)已全部泄露,立即执行轮换。
- 强化 CI/CD 安全:暂停受影响的构建流程,对受污染窗口期内产生的生产镜像、构建产物进行溯源审计,防止恶意代码通过“下游传播”进入生产环境。
- 权限最小化:在 CI/CD 环境中实施严格的凭据隔离,避免单个 GitHub Token 拥有跨仓库的写权限。
类似攻击的隐蔽性极高,企业应建立基于行为分析的供应链监控机制,而非仅仅依赖静态的组件扫描。
如果您想了解勒索病毒的最新发展趋势,或在实际业务中遇到类似安全事件,欢迎关注“Solar应急响应团队”。
全国热线:400-613-6816
官网:www.solarsecurity.cn / www.sierting.com
