理解AI编程智能体与GitHub这一"现场"
要正确理解此事,首先需要掌握现代软件开发是由怎样的"零部件组合"构成的。如今的应用程序,并非由开发者一行一行亲手编写。其实质是从世界各地他人编写的无数开源组件(软件包)中取来、拼装而成的"组装产品"。面向JavaScript的零部件仓库称为npm,面向Python的称为PyPI,这些公开注册表中,一个Web应用引入数百乃至数千个组件、层层递进地依赖,并不罕见。保存这些组件设计图和历史记录的全球最大托管平台,正是微软于2018年收购的GitHub。
这种"组装产品"的结构虽然高效,却存在致命弱点。只需在一个常用组件中植入毒素,毒素便会一齐蔓延至取用该组件的下游数万名开发者和企业。这就是所谓的"软件供应链攻击",是近年来网络安全领域被视为最为严峻的攻击类型。攻击目标不再是单个企业,而是所有人共同使用并信赖的"水龙头"本身。
2026年,这一格局中又加入了新的角色——"AI编程智能体",包括Claude Code(Anthropic出品)、Cursor(Anysphere出品)、Gemini CLI(Google出品),以及VS Code上的GitHub Copilot(Microsoft出品)。它们不仅仅是输入补全工具,而是能够代替开发者读取代码、制定计划、执行命令、乃至运行测试的自主工作者。关键在于,这些智能体在开始工作时,会读取项目文件夹中存放的"配置文件",并按照其中的指令自动运行。具体而言,Claude Code参照.claude/settings.json,Cursor参照.cursor/rules目录下的规则,VS Code参照.vscode/tasks.json等文件。这些文件本是为"会话开始时运行初始化脚本"、"打开文件夹时执行构建任务"等便捷功能而设计的。
用具体例子来理解会更直观。某位开发者从GitHub上取来了他所信赖的微软示例仓库,随手用Cursor或VS Code"打开"。就这么简单的一步,混入文件夹的配置文件便触发了启动机制,脚本在后台悄然运行——开发者甚至没有点击任何按钮。此次Miasma攻击所利用的,正是这个"打开瞬间自动运行"的、AI智能体时代特有的全新入口。
事件概述:105秒内73个代码库消失了
事件浮出水面是在2026年6月5日(周五)。综合供应链安全公司StepSecurity及OpenSourceMalware、Snyk、Cloudsmith等研究人员的分析,攻击首先从一个早已被盗用的贡献者账户入手,向Azure/durabletask仓库强行推入了恶意提交。durabletask是用于Azure Functions等场景下处理长时间运行工作流的"Durable Task"框架的核心组件,是微软云端开发体系的基础性部件。
当GitHub的自动违规检测系统做出响应时,事态以字面意义上的秒级速度展开。多家媒体(The Register、OpenSourceMalware、BankInfoSecurity)的报道一致指出,GitHub在协调世界时(UTC)6月5日16时00分50秒至16时02分35秒的105秒内,分两波共停用了73个仓库。第一波在约38秒内停用了39个仓库,随后第二波仅用11秒便停用了另外34个仓库。被停用的仓库分布于Azure、microsoft、Azure-Samples、MicrosoftDocs四个微软官方GitHub组织。此外,据报道攻击者还试图将提交时间戳伪造(回溯)为"2020-03-09",以此延迟被检测到的时间。
总而言之,全球最受开发者信赖的企业之一——微软的官方仓库群,被其自身所拥有的平台(GitHub)的自动防御机制,在人类尚未察觉之前便集体"关停"了。颇具讽刺意味的是,这种近乎严酷的自动响应速度,恰恰印证了此次攻击的严重性,以及威胁蔓延之快已远超人力所能应对的现实。
攻击是如何运作的:「配置文件」变成了执行按钮
其技术核心,正如StepSecurity与Hive Security的分析所详述的那样。恶意提交在仓库中植入了5个文件。针对Claude Code的.claude/settings.json与针对Gemini CLI的.gemini/settings.json中,嵌入了"SessionStart"钩子——该钩子会在用户进行任何操作之前、代理启动后立即触发。针对Cursor的.cursor/rules/setup.mdc中植入了提示注入(指令注入),用以驱使AI执行非法操作;针对VS Code的.vscode/tasks.json则设置了在"folderOpen(打开文件夹时)"自动执行的任务。而这些触发器所调用的主体,是存放于.github/setup.js中、高达4,643,745字节(约4.6兆字节)的混淆JavaScript载荷。
一旦该载荷被激活,便会从受感染开发者的机器上全面窃取认证信息。据StepSecurity称,攻击目标涵盖AWS、Azure、GCP、Kubernetes等主流云平台的密钥,以及超过90种开发者工具的配置,包括GitHub与npm令牌、SSH密钥、Vault令牌,乃至密码管理器的CLI保险库。若盗取的令牌拥有发布权限,蠕虫便会借此将自身复制到其他软件包或仓库,在受害者之间自动传播。正如其名"Miasma(瘴气)"——源自希腊神话——感染的设计便是如瘟疫般蔓延。
此次攻击与传统供应链攻击的本质区别,在于Hive Security所指出的"删除软件包也无法消除"的持久性。以往的npm恶意软件惯于潜伏在安装时执行的node_modules中,卸载恶意包即可消除威胁。然而AI代理的配置文件并非存储于node_modules,而是驻留在项目本体——即纳入版本控制(Git)管理的目录之中。即便开发者发现问题包并将其删除,残留在.claude/或.vscode/中的后门依然存活,并会通过Git提交作为正常变更被带入其他仓库。借用Hive Security的话来说:"后门已经逃脱了包管理器的管辖。"AI代理"受到信任、拥有强大权限、常驻后台、在用户操作前即可运行,并能访问包含云认证信息的环境变量"——对攻击者而言,这是再理想不过的立足点。
影响范围:停止的CI/CD、受波及的开发者
73个代码库的停用,远不止是"页面无法访问"那么简单。被停用的库中包含Azure/functions-action——这是在GitHub Actions上将应用自动部署至Azure Functions的官方组件。正如The Register所报道的,该组件的突然消失,导致全球各地将其集成到自身流程中的组织的CI/CD(持续集成/持续交付)管道相继崩溃。那天早上,许多与此次攻击毫无关联、没有改动过任何代码的开发团队,也以"构建失败""部署报错"的形式被波及其中。受影响的代码库涵盖Azure Functions宿主、Python Worker、microsoft/durabletask-dotnet等,范围横跨Azure无服务器基础设施、开发者工具及技术文档的广泛领域。
此次事件的核心危害,与其说在于代码库的临时停用,不如说在于"可能已经摄入了毒害内容的开发者"一侧。在恶意提交被推入、到GitHub将其停用的这段时间窗口内,凡是拉取了相关代码库并在AI智能体或IDE中打开的开发者,都有可能在不知情的情况下遭到凭据窃取。微软发言人Ben Hope在接受TechCrunch采访时表示:"作为调查的一部分,我们已通知了少数可能从受影响代码库中获取过内容的客户。"受影响客户的确切数量尚未公开披露。各安全公司强烈建议使用Azure Functions相关组件的组织,立即轮换(重新签发)云端及开发者工具的凭据,并对代码库完整性进行核查。
此外,被停用的大多数代码库,在微软与GitHub完成初步调查并清除恶意代码后,已陆续恢复上线。Ben Hope表示:"为调查潜在的恶意内容,我们临时下线了部分代码库。其中一些在审查后已完成恢复,但由于工作仍在进行中,部分库可能暂时维持离线状态。"
侵权原因:为何"第二次"会发生
OpenSourceMalware将此事件描述为"Durable Task项目的再次入侵(re-compromise)",这一表述切中了问题的核心。此次攻击并非突如其来,而是约三周前发生的首次入侵"留下的尾巴"所引发的后果。
事件时间线如下:2026年5月19日,同一个被入侵的账户,在短短35分钟内,相继向Microsoft的durabletask包的PyPI(Python注册表)版本发布了三个恶意版本。这便是第一次入侵。StepSecurity的Ashish Kurmi指出,第一次事件中泄露的令牌并未被完全吊销(失效)。结果,攻击者握着窃取的凭据持续潜伏,进入6月后使用相同的凭据,成功向GitHub端的Azure/durabletask仓库植入了恶意提交。也就是说,直接原因并非零日漏洞之类的高超技术,而是"一度被盗的密钥,未能全部更换到位"这一极为经典的运营漏洞。
这一事实也表明,本次事件无法被简单归结为"Microsoft的失职"这一单家公司的问题。XDA-Developers一针见血地指出,攻击链条全程穿越了Microsoft所掌控的基础设施——凭据窃取发生在npm(GitHub旗下),恶意代码的分发渠道涉及Visual Studio Marketplace及其自动更新功能(均为Microsoft产品),而最终被植入的目标仓库则托管于GitHub(Microsoft所有)。该媒体评论称:"一家掌控整个软件开发栈的企业,通过自身产品留下的缝隙遭到了入侵。"垂直整合带来便利的背后,一个环节的松动波及全链的结构性风险由此暴露无遗。StepSecurity记录显示,Microsoft最初将此事定性为违反GitHub政策的问题,随后将说明改口为正在调查中的"内部管控问题"。
Miasma蠕虫的谱系:从Shai-Hulud到"AI智能体常驻型"
Miasma并非凭空突变,而是拥有清晰"家谱"的威胁。其起点是2025年9月,一个震撼npm生态系统的自我繁殖型蠕虫"Shai-Hulud"。这个以《沙丘》中沙虫命名的蠕虫,将恶意包的入侵与再分发自动化,被认为将npm攻击从"恶作剧"时代推向了"高危害"时代。由此衍生出"Mini Shai-Hulud",网络犯罪组织TeamPCP于2026年5月12日在GitHub上全面公开了其源代码,并在BreachForums上号召各方自行发起独立攻击活动。Snyk、Sonar、Vorlon等多家研究机构分析认为,Miasma正是以这份公开的Mini Shai-Hulud为基础的派生版本(fork)。
这一谱系清晰地揭示了攻击手法的"演化方向"。Mini Shai-Hulud于2026年5月19日污染了@antv命名空间下超过300个npm包。6月1日,Red Hat的@redhat-cloud-services命名空间中有32个包、96个版本遭Miasma植入后门,受信任的公开发布范围这一"合法入口"被滥用。6月5日,攻击终于蔓延至微软的Azure基础设施。据StepSecurity统计,此次攻击活动已波及包括TanStack、Mistral AI在内的超过113个GitHub仓库及数十个账户。检测规避手段也愈发精密——Miasma对每次感染的载荷进行唯一性加密,使得基于哈希值的传统威胁指标(IOC)仅对单一包版本有效。
最为关键的演化,在于Vorlon将其定性为"在真实环境中首个被设计为可跨AI编程代理会话持久驻留的供应链攻击"。过去的蠕虫依赖安装时执行,而Mini Shai-Hulud与Miasma则掌握了"常驻"于Claude Code钩子、VS Code任务及CI/CD流程之中的能力。Snyk报告的"Phantom Gyp"技术,绕开了监控严密的安装脚本,转而利用武器化的binding.gyp,借助node-gyp执行攻击代码——共有57个包受到影响。攻击者不再需要持续运行的进程;只需开发者用其信任的工具"打开"项目,攻击便已触发。
微软及各安全公司的应对与报道
最初发现此事件的并非微软或GitHub,而是Cloudsmith、OpenSourceMalware等外部研究者社区。StepSecurity的Ashish Kurmi指出,此次攻击"始于被入侵的贡献者账户强行推送恶意提交",并披露了技术经过;Snyk则将该蠕虫归类为"Mini Shai-Hulud蠕虫的变种"。在攻击溯源方面,谨慎态度占据主流。Mini Shai-Hulud由TeamPCP开发,但由于其本人公开了源代码,究竟是谁在运行Miasma变种已难以确定——这一局面可谓"凶器已分发至所有人手中"。
微软自身对外的公开表态,起初极为有限。据The Register报道,该公司最初未能即时回应置评请求,其后由公关负责人Ben Hope发表了前述声明。BankInfoSecurity报道称,微软和GitHub均未就恶意代码的清除与仓库恢复这一事实关系之外,提供更详尽的官方说明。系列报道中贯穿的共同基调,是"即便是拥有全球最大开发基础设施的企业,也在短短数周内被同一攻击者两度入侵"这一事实所带来的震撼。Computing与The Register均强调,这是微软在短期内遭遇的"第二次"已知入侵,并总结指出:现代软件开发所依赖的"信任关系"与"自动化功能"本身,已转化为攻击面。
硅谷风投视角:供应链安全这一投资主题
这正是其他新闻网站鲜少深入探讨的论点所在。本次事件不应被视为单一丑闻,而应被解读为硅谷风险投资(VC)数年来押注的两大投资主题——"AI编程智能体的爆炸式普及"与"软件供应链安全"——以最糟糕的方式交汇的历史时刻。
其中,"AI编程智能体"是当今全球资金最为集中的领域之一。据TechCrunch报道,开发Cursor的Anysphere截至2026年4月,正以500亿美元(约合8万亿日元)的估值洽谈逾20亿美元(约合3200亿日元)的融资,由a16z(Andreessen Horowitz)与Thrive Capital主导,Nvidia和Battery Ventures亦在投资方之列。这一估值较2025年11月的293亿美元(约合4.7万亿日元)大幅飙升,据报道该公司ARR(年度经常性收入)有望在2026年内突破60亿美元(约合9600亿日元)。AI智能体将一举推动开发自动化——正是这一期待,让VC们押下了天文数字般的赌注。然而此次Miasma,恰恰利用了这种"被自动化的信任"中的漏洞。智能体无条件信任配置文件并自动执行的设计规格,正是攻击的入口。VC所青睐的便利性与本事件所揭示的风险,不过是同一枚硬币的正反两面。
另一方面,"供应链安全"作为防御侧的投资主题,近年来同样高速增长。其中的代表性企业Chainguard,在由Kleiner Perkins与IVP联合领投的D轮融资中募得3.56亿美元(约合570亿日元),估值达到35亿美元(约合5600亿日元)。其累计融资额为6.12亿美元(约合980亿日元),ARR也正朝着从4000万美元(约合64亿日元)在2026财年内突破1亿美元(约合160亿日元)的目标迈进。总部位于帕洛阿尔托的Endor Labs,则分别在A轮募得7000万美元(约合112亿日元)、B轮募得9300万美元(约合149亿日元),累计1.88亿美元(约合301亿日元),投资方阵容涵盖Lightspeed、Coatue、Salesforce Ventures、Dell Technologies Capital、Section 32及Citi Ventures。涵盖Socket等以开发者为起点的供应链防御方案在内,VC已将这一领域定位为"下一代必备基础设施"。a16z在其播客节目《Securing the Software Supply Chain with LLMs》中正面探讨了这一主题,该公司安全领域合伙人Joel de la Garza明确警告:大规模部署智能体型产品固然能切实强化防御,但对手同样会掌握相同的工具。Miasma每次感染都变换加密方式、并常驻于AI智能体之中的高度进化,正印证了这一"攻防双方皆持AI"的预言。
从VC视角来看,本次事件所揭示的投资含义十分清晰。第一,对AI编程智能体的巨额投资,与如何验证和限制智能体"执行信任"的安全设计密不可分——率先破解这一难题的企业,将成为下一轮竞争的赢家。第二,供应链防御的检测范围,势必从"安装时扫描"延伸至"对智能体配置文件及CI/CD的常驻检测",这既意味着现有工具的加速迭代,也同时创造出新的采购机会。第三,微软等垂直整合型玩家"因掌控全链路而使全链路皆成弱点"的结构性困境,对独立安全企业而言反而是利好。攻击的持续精进,本身就在推高防御侧初创企业的估值——这正是硅谷冷酷而真实的运作逻辑。
未来的动向:何时、将观察到什么
短期内最需警惕的是攻击的"再度复发"。由于根本原因并非高级漏洞,而是"被盗令牌的吊销疏漏",若相关认证凭据的轮换在未来数周内未能彻底落实,第三次入侵的发生也就不足为奇。可能受到影响的开发者和组织,应立即排查Azure Functions相关组件的使用情况,并即刻重新签发云端与开发者工具的认证凭据,这是当前阶段的首道防线。
从中期来看,Mini Shai-Hulud的源代码已公开这一事实影响深远。"凶器"已人人可复制,预计2026年夏秋之际,以npm、PyPI其他知名命名空间及微软以外大型开源组织为目标的变种将持续涌现。在检测层面,针对每次感染加密方式均不同的Miasma,单纯依赖哈希比对已不足够,亟需转向行为检测以及对AI代理配置文件的持续监控。GitHub、npm(微软)、Anthropic、Google、Anysphere等代理服务提供商,将在多大程度上以"用户确认"和签名验证为由强制修订配置文件自动执行规范——其响应公告的时间与内容,将成为下一阶段最受瞩目的焦点。
此外,监管与标准化的动向也值得关注。软件物料清单(SBOM)的完善,以及注册表中可信发布(trusted publishing)机制的强化,将在Red Hat的@redhat-cloud-services"正规发布渠道"遭滥用的教训之后,再度被提上议事日程。从风险投资的角度来看,上述所有防御强化与合规应对措施都将催生新的产品需求。攻击越趋复杂,防御投入随之增加——这一悖论之下,硅谷已将"AI代理安全"视为下一个重量级赛道加以密切关注。此次微软在105秒内痛失73个代码仓库的事实,向全世界表明:这一投资主题已不再是理论设想,而是真实发生在眼前的实际损失。此外,不仅限于此次事件,硅谷已有部分从业者开始逐渐远离GitHub,转而寻求将代码管理基础设施纳入自身掌控,向GitLab自托管(Self-Managed)架构迁移的趋势也已初现端倪。