开源供应链遭史上最大规模投毒攻击

发布于 2026年05月25日

上周二凌晨,我在 VSCode 里盯着一行 import 看了很久。

它看起来太正常了。正常到你不会多看第二眼。那行代码来自一个开源插件,下载量上万,作者头像是一只微笑猫,简介写着:“让 AI 开发更简单。”

我在自己的项目里用了它三个月。

直到 GitHub 公开披露,我才知道,这个插件跟一个叫 TeamPCP 的黑客组织有关。他们诱导开发者安装恶意扩展,再借开发者本地环境和仓库权限往里走,最后渗进 GitHub 的 CI/CD 管道。至少 3800 个仓库的源代码被卷走。

最刺眼的不是那行代码,是我装插件时完全没犹豫。

他们盯上的不是漏洞,是习惯

这类攻击已经不稀奇了。2024 年第四季度,软件供应链攻击的频率接近每周一次。

TeamPCP不是第一个,也不会是最后一个。它的手法并不新鲜:把恶意代码塞进开发者会主动安装的东西里,比如 VSCode 扩展、npm 包、pip 包。名字起得友好一点,头像做得无害一点,README 写得勤快一点,剩下的就交给下载量和信任感。

VSCode 插件市场没有逐行代码审计。任何开发者都可以上传一个“提高效率”的扩展。工程师们太忙了,

配图

通常只看三样东西:下载量、评分、README 是否像样。

这正是入口。

GitHub 的披露里提到,攻击者先感染开发者本地环境,再利用开发者对仓库的 push 权限继续深入,最终碰到 GitHub 自家的 CI/CD 管道。3800 个仓库被带走,这只是已经说出来的数字。

TeamPCP 后来在 BreachForums 上叫卖这些数据,话说得很轻松:“一切都有,欢迎买家来验证真伪。”

不是恐吓。是售前服务。

4000 万个账号,不可能靠肉眼守住

中国开发者在 GitHub 上很活跃,保守估计有 4000 万个账号。

这件事离国内公司不远。大量内部项目会引用开源组件,开发工具本身又成了入口。VSCode、npm、pip,这些东西平时像水电一样存在,没人会每天怀疑水管里是不是被人下了药。

更麻烦的是,AI 代码训练数据也大量来自开源仓库。

2023 年有研究团队发现,多个公开代码数据集里已经出现被投毒的样板文件。这些文件不是为了直接攻击某个项目,而是为了教模型在特定条件下输出后门代码。

也就是说,你拿来训练模型的代码,可能一开始就不干净。

中国的《数据安全法》和《网络安全法》早就要求做供应链安全审查。问题在执行上:谁来审计一个下载量几千次的 Python 包?谁来盯着一个半年没动、突然更新的小依赖?很多时候,审计成本比开发成本还高。

我上周刚换掉一个用了半年的 npm 包。原因很小:它突然发了一个新版本,README 里多了个笑脸。

以前我会觉得作者心情不错。

这次我没笑出来。

那只猫还在笑

TeamPCP 在论坛上说过一句话:他们的目的之一,是制造对开源生态的不信任。

这句话很恶心,但有效。

现在我每次给 VSCode 装扩展,都会点开评论区、更新记录、发布者主页。哪怕那个插件只有 4 行代码,我也会多看两眼。

可问题就在这里:恶意代码未必长得像恶意代码。它可以藏在 config 文件里的一个环境变量注入里,藏在测试脚本里的一段网络请求里,甚至藏在注释里加密过的 payload 里。

你项目里的第 318 个依赖,可能没人真的读过。

微软和 GitHub 现在能做的,是加强代码扫描和人工审核。但插件数量太多,更新太快。十万个插件,每周上百次更新,靠扫描和人工追着跑,跑不完。

我关掉那个插件页面时,又看了一眼作者头像。

那只微笑猫下面,还有 187 条“感谢作者”的评论。
其中至少一条,可能来自黑客自己。



评论