文章总结: Miasma蠕虫攻击通过污染GitHub仓库中的AI编程工具配置文件(如VSCode、ClaudeCode等),在开发者打开项目时自动触发恶意脚本窃取凭据。关键发现是攻击面从依赖包扩展到开发环境配置,利用工具自动化能力进行供应链扩散。建议企业检查配置文件、轮换云平台与代码仓库凭据、建立AI工具使用边界并加强CI/CD权限管控。 综合评分: 87 文章分类: 供应链安全,漏洞分析,安全建设,解决方案,安全运营
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、包管理器、云凭据串在一起时,任何一个自动执行点都可能变成入口。
七、企业应该怎么做?
这类事件不能只靠“提醒开发者小心”解决,需要从流程、工具和权限三个层面收敛风险。
- 对开发者侧做检查
如果近期克隆并打开过受影响仓库,尤其是在 VS Code、Claude Code、Gemini CLI、Cursor 中打开过,应当按高风险处理。
建议检查:
是否存在异常 .claude/、.gemini/、.cursor/ 配置;
是否存在异常 .vscode/tasks.json 自动任务;
是否存在陌生 .github/setup.js 或类似初始化脚本;
是否存在异常 Git 提交;
是否出现未知 Node、Bun 执行痕迹;
是否有异常外联和凭据访问行为。
如果确认接触过可疑仓库,不建议只删除项目目录了事,而应当考虑凭据轮换和终端取证。
- 对凭据做轮换
重点轮换以下类型:
GitHub Tokennpm TokenPyPI TokenAWS Access KeyAzure Service PrincipalGCP Service AccountSSH KeyKubernetes SecretDocker Registry 凭据CI/CD 平台 Token
环境变量中保存的密钥
如果攻击发生在开发者本机,不能只轮换代码仓库 Token。因为攻击者可能已经扫描了本机上的多云凭据和历史配置。
- 对仓库做准入控制
企业内部仓库应当建立配置文件变更审查机制。
以下文件发生变更时,应触发安全审查:
GitHub Actions workflow.vscode/tasks.json.cursor/rules.claude/settings.json.gemini/settings.jsonpackage.json scripts
安装脚本、构建脚本、测试脚本
release workflowdeploy workflow
这些文件看似不是核心业务代码,但它们拥有“改变执行流”的能力。
- 对 CI/CD 做最小权限
CI/CD Runner 不应默认拥有过大的网络访问和凭据访问权限。
建议:
禁止在 CI/CD 中使用长期静态 Token;
优先使用 OIDC 和短期凭据;
按仓库、分支、环境拆分权限;
限制 Runner 出站访问;
监控异常外联和异常制品上传;
对 release、publish、deploy 等动作增加审批和审计。
- 对 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 编程工具正在成为供应链攻击的新入口》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论