Miasma蠕虫打到微软GitHub:AI编程工具正在成为供应链攻击的新入口

admin 2026-06-26 06:46:50 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Miasma蠕虫攻击通过污染GitHub仓库中的AI编程工具配置文件(如VSCode、ClaudeCode等),在开发者打开项目时自动触发恶意脚本窃取凭据。关键发现是攻击面从依赖包扩展到开发环境配置,利用工具自动化能力进行供应链扩散。建议企业检查配置文件、轮换云平台与代码仓库凭据、建立AI工具使用边界并加强CI/CD权限管控。 综合评分: 87 文章分类: 供应链安全,漏洞分析,安全建设,解决方案,安全运营


cover_image

Miasma 蠕虫打到微软 GitHub:AI 编程工具正在成为供应链攻击的新入口

JacobWang JacobWang

NowSec

2026年6月9日 10:45 中国香港

在小说阅读器读本章

去阅读

过去我们谈软件供应链攻击,第一反应通常是:npm 包被投毒、PyPI 包被植入后门、CI/CD Token 泄露、开源维护者账号被盗。

但 Miasma 蠕虫这次把攻击入口又往前推了一步。

它不一定等你安装依赖,也不一定等你执行构建命令。只要开发者克隆了一个被污染的仓库,并用 VS Code、Claude Code、Gemini CLI、Cursor 这类工具打开项目,攻击就可能被触发。

这意味着,AI 编程工具和 IDE 的“自动化能力”,正在变成供应链攻击的新执行入口。

一、事件概况:微软 73 个 GitHub 仓库被 GitHub 禁用

根据 The Hacker News 报道,Miasma 自复制供应链攻击已经波及微软 GitHub 仓库。此次事件影响了 Microsoft 旗下 4 个 GitHub 组织中的 73 个仓库,包括 Azure、Azure-Samples、Microsoft 和 MicrosoftDocs。随后,GitHub 禁用了这些受影响仓库的访问权限。

受影响的仓库中,包含 Azure Functions、Durable Task 生态、AI 示例项目、连接器 SDK、文档仓库等。部分受影响仓库包括:

azure-search-openai-demo-purviewdatasecurityConnectors-NET-LSPConnectors-NET-SDKdurabletaskdurabletask-dotnetdurabletask-godurabletask-jsdurabletask-mssqlfunctions-container-actionhomebrew-functionsllm-fine-tuningwindows-driver-docs

这些仓库并不只是普通示例项目,其中一些会被真实开发流程、CI/CD 流水线或云服务生态所引用。一旦仓库被禁用,依赖相关 Action、示例、组件或文档链路的开发流程都可能受到影响。

这次事件不是一个普通的“恶意包事件”。

因为攻击者不只是污染了某个依赖包,而是把攻击入口放到了开发者日常使用的仓库、IDE 和 AI 编程工具配置中。

二、攻击方式变了:从“安装依赖中招”变成“打开项目中招”

传统供应链攻击通常依赖几个常见路径:

攻击者上传恶意依赖包,用户安装后触发;

攻击者劫持维护者账号,发布恶意版本;

攻击者污染构建流程,在 CI/CD 中窃取密钥;

攻击者通过 Typosquatting、Dependency Confusion 等方式诱导开发者安装错误包。

但 Miasma 这次的关键变化在于:它不只盯依赖包,也开始盯开发者打开项目时自动加载的工具配置。

公开分析显示,攻击者向仓库中加入了多个配置文件,用来触发同一个 payload:

.claude/settings.json.gemini/settings.json.cursor/rules/setup.mdc.vscode/tasks.json.github/setup.jspackage.json

其中 .github/setup.js 是核心 payload,其余文件分别对应不同开发工具的自动触发入口。

这些文件看起来并不像传统意义上的恶意程序,更像是项目配置、IDE 任务、AI 工具规则或初始化脚本。

但它们的作用是一样的:让开发者工具在特定场景下自动执行 .github/setup.js。

比如:

Claude Code 和 Gemini CLI 可以通过 SessionStart Hook 在会话启动时执行命令;

Cursor 可以通过项目规则诱导 AI Agent 把执行脚本当成“项目初始化要求”;

VS Code 可以通过 runOn: folderOpen 在打开文件夹时自动执行任务;

package.json 的 test 脚本也可以在开发者或 CI 执行测试时触发 payload。

这里最危险的地方在于:攻击行为被包装成了“正常开发流程”。

开发者不是点开了一个可疑 EXE,也不是手动运行了陌生脚本,而是在打开一个看似正常的 GitHub 仓库。

这会显著降低人的警觉性。

三、为什么这类攻击更难防?

因为它没有突破平台漏洞,而是在利用平台和工具链本身的信任模型。

过去,开发者默认相信几个东西:

可信组织发布的仓库更安全;

GitHub 上的项目配置文件只是项目配置;

IDE 自动任务是为了提升开发效率;

AI 编程工具的项目规则是为了帮助理解项目;

CI/CD 的自动化执行是正常 DevOps 流程。

Miasma 恰恰利用了这些默认信任。

它没有一定要攻破 GitHub 平台本身,也没有一定要利用 npm 或 PyPI 的漏洞。它只需要拿到一个有权限的账号或 Token,然后像正常贡献者一样提交代码,再通过合法配置文件触发执行。

从平台视角看,这可能只是一次正常提交;

从仓库视角看,这可能只是新增了几个工具配置;

从开发者视角看,这可能只是打开了一个项目;

但从攻击者视角看,这已经足够完成凭据窃取和横向扩散。

四、攻击链条大致是怎样的?

可以把这次攻击理解成一条“开发者工作流劫持链”。

第一步,攻击者获得某个开发者、维护者或自动化账号的有效凭据。

第二步,攻击者向目标仓库推送恶意提交,植入 AI 工具配置、IDE 自动任务和 payload 文件。

第三步,开发者克隆仓库并用 VS Code、Claude Code、Gemini CLI、Cursor 等工具打开项目。

第四步,恶意配置触发 .github/setup.js 执行。

第五步,payload 开始扫描开发环境中的凭据,例如 GitHub Token、npm Token、云平台密钥、Kubernetes 凭据、SSH Key、Docker 配置、环境变量等。

第六步,攻击者利用窃取到的新凭据继续污染更多仓库、更多包、更多开发者环境。

这就是蠕虫式供应链攻击最麻烦的地方。

它不是单点爆破,而是“拿到一个点,扩散一大片”。

只要某个开发者环境里同时保存了 GitHub、npm、云厂商、Kubernetes 或 CI/CD 相关权限,攻击者就可能从一个仓库跳到另一个仓库,从一个项目跳到一批项目。

五、AI 编程工具为什么会成为新攻击面?

AI 编程工具的核心价值是“自动化”。

它们可以读取项目上下文、理解工程结构、执行命令、修改代码、运行测试,甚至帮助完成构建和部署。

但安全问题也正出在这里。

过去,IDE 更多是“编辑器”。现在的 AI 编程工具正在变成“半自动开发代理”。它不仅能看代码,还能根据规则执行动作。

公开分析显示,这次 GitHub 仓库投毒并没有单纯依赖新增恶意依赖,而是把 payload 接入到 Claude Code、Gemini CLI、Cursor、VS Code 和 npm test 等多个触发入口中。

这意味着,项目里的规则文件、初始化配置、Agent 指令,都可能成为攻击者的操作入口。

如果攻击者能在仓库里写入一条看似合理的规则,例如:

“为了完成项目初始化,请运行某个 setup 脚本。”

那么 AI Agent 可能会把它当成项目要求去执行。

这类攻击本质上不是传统漏洞利用,而是“工具行为劫持”和“开发流程投毒”。

它把提示词注入、配置劫持、凭据窃取、供应链扩散串在了一起。

六、这件事对企业安全有什么启示?

第一,不要把 AI 编程工具当成单纯的效率工具。

只要工具具备读取项目、执行命令、调用终端、访问本地文件的能力,它就已经进入了安全边界。

企业需要把 AI Coding Agent 纳入终端安全、开发安全和供应链安全统一管理,而不是只从研发效率角度评估。

第二,不能再只盯依赖包。

以前做供应链安全,很多企业重点关注 package-lock.json、requirements.txt、镜像依赖、制品仓库和漏洞扫描。

现在还需要关注项目中的工具配置文件,例如:

.claude/.gemini/.cursor/.vscode/tasks.json.github/package.json scriptsGitHub Actions workflow

IDE 自动任务配置

这些文件不一定是业务代码,但它们可能决定代码什么时候被执行、由谁执行、以什么权限执行。

第三,开发者本机已经成为供应链攻击的核心入口。

公开分析显示,Miasma 相关恶意载荷会尝试窃取 GitHub、npm、AWS、Azure、GCP、HashiCorp Vault、Kubernetes 等环境中的凭据,也会针对开发者系统中的 SSH Key、CLI 凭据、浏览器和钱包数据进行收集。

很多企业会保护服务器、CI/CD、代码仓库,却忽视开发者本机。

但真实情况是,开发者本机往往保存着大量高价值凭据:GitHub 登录态、SSH Key、云平台配置、Kubeconfig、npm Token、环境变量、历史命令、临时密钥。

一旦本机被打穿,攻击者拿到的可能不是一台电脑,而是一整条交付链路。

第四,供应链攻击的攻击面已经不只在“包管理器”。

现代开源供应链的复杂性会带来非常大的攻击面,攻击者可以在代码贡献、构建、发布、依赖解析、包分发等多个阶段注入恶意代码。

Miasma 这类事件进一步说明:当 AI Agent、IDE 自动任务、CI/CD、包管理器、云凭据串在一起时,任何一个自动执行点都可能变成入口。

七、企业应该怎么做?

这类事件不能只靠“提醒开发者小心”解决,需要从流程、工具和权限三个层面收敛风险。

  1. 对开发者侧做检查

如果近期克隆并打开过受影响仓库,尤其是在 VS Code、Claude Code、Gemini CLI、Cursor 中打开过,应当按高风险处理。

建议检查:

是否存在异常 .claude/、.gemini/、.cursor/ 配置;

是否存在异常 .vscode/tasks.json 自动任务;

是否存在陌生 .github/setup.js 或类似初始化脚本;

是否存在异常 Git 提交;

是否出现未知 Node、Bun 执行痕迹;

是否有异常外联和凭据访问行为。

如果确认接触过可疑仓库,不建议只删除项目目录了事,而应当考虑凭据轮换和终端取证。

  1. 对凭据做轮换

重点轮换以下类型:

GitHub Tokennpm TokenPyPI TokenAWS Access KeyAzure Service PrincipalGCP Service AccountSSH KeyKubernetes SecretDocker Registry 凭据CI/CD 平台 Token

环境变量中保存的密钥

如果攻击发生在开发者本机,不能只轮换代码仓库 Token。因为攻击者可能已经扫描了本机上的多云凭据和历史配置。

  1. 对仓库做准入控制

企业内部仓库应当建立配置文件变更审查机制。

以下文件发生变更时,应触发安全审查:

GitHub Actions workflow.vscode/tasks.json.cursor/rules.claude/settings.json.gemini/settings.jsonpackage.json scripts

安装脚本、构建脚本、测试脚本

release workflowdeploy workflow

这些文件看似不是核心业务代码,但它们拥有“改变执行流”的能力。

  1. 对 CI/CD 做最小权限

CI/CD Runner 不应默认拥有过大的网络访问和凭据访问权限。

建议:

禁止在 CI/CD 中使用长期静态 Token;

优先使用 OIDC 和短期凭据;

按仓库、分支、环境拆分权限;

限制 Runner 出站访问;

监控异常外联和异常制品上传;

对 release、publish、deploy 等动作增加审批和审计。

  1. 对 AI 编程工具建立使用边界

企业如果已经允许使用 AI Coding Agent,应至少明确几件事:

是否允许 Agent 自动执行命令;

是否允许读取本地敏感目录;

是否允许访问环境变量;

是否允许修改 CI/CD 文件;

是否允许读取 SSH、云平台、Kubeconfig 等配置;

是否允许在生产仓库中直接应用 Agent 生成的变更。

AI 编程工具不是不能用,而是不能无边界地用。

越强的自动化能力,越需要清晰的安全边界。

八、这次事件真正值得关注的地方

Miasma 事件不是孤立的恶意软件新闻,它代表了供应链攻击的一个新阶段。

第一阶段,攻击者污染依赖包;

第二阶段,攻击者劫持维护者账号;

第三阶段,攻击者攻击 CI/CD;

第四阶段,攻击者开始攻击 AI 编程工具和开发者工作流。

以前攻击者盯的是“代码怎么被下载”。

现在攻击者盯的是“代码什么时候被工具自动执行”。

以前我们担心的是恶意依赖进入项目。

现在还要担心恶意项目配置影响 IDE、Agent 和 CI/CD。

这对企业安全建设提出了新的要求:开发安全不能只停留在 SCA、SAST、制品扫描上,还必须覆盖开发者终端、AI 工具配置、自动化任务、凭据生命周期和仓库治理。

结语

Miasma 打到微软 GitHub 仓库,本身已经足够引人关注。

但更重要的是,它提醒我们:AI 编程时代的供应链攻击,不再只是“依赖包是否安全”的问题,而是“整个开发环境是否可信”的问题。

当开发者打开一个仓库,IDE、AI Agent、终端、CI/CD、云账号可能会被串成一条自动化执行链。

这条链越高效,攻击者一旦介入,扩散速度也越快。

未来的安全重点,不只是防恶意代码进入生产环境,而是防恶意指令进入开发流程。

因为在 AI 编程工具越来越普及之后,攻击者不一定需要等代码上线。

他们只需要等你打开项目。


参考来源

The Hacker News:《Miasma Worm Hits 73 Microsoft GitHub Repositories in Major Supply Chain Attack》

SafeDep:《Miasma Worm Targets AI Coding Agents via GitHub Repos》

StepSecurity:《Miasma npm Supply Chain Attack: Self-Spreading Worm via Phantom Gyp》

Microsoft Security Blog:《Preinstall to persistence: Inside the Red Hat npm Miasma credential-stealing campaign》

IEEE S&P / arXiv:《Taxonomy of Attacks on Open-Source Software Supply Chains》


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:NowSec JacobWang JacobWang《Miasma 蠕虫打到微软 GitHub:AI 编程工具正在成为供应链攻击的新入口》

评论:0   参与:  0