装了大模型代理“龙虾” 结果四个代码仓库全被投毒
在开源生态高度繁荣的今天,一行代码、一个权限、一款插件,都可能成为引爆供应链安全危机的导火索。本文作者亲历了自己维护 8 年的知名开源项目 Neutralinojs 遭遇恶意攻击,且他的经历并非个例,而是一个典型信号:供应链攻击已经从“攻击代码”,演变为“攻击信任关系”。它不再依赖传统Bug,而是潜伏在协作者权限、开发流程乃至 AI 插件生态之中,悄无声息地发生。原文链接:https://levelup.gitconnected.com/my-8-year-old-open-source-project-was-a-victim-of-a-major-cyber-attack-24af7eb3a82b
作者 | Shalitha Suranga
最近,Suranga就亲身经历了这一切。我在 GitHub 上维护的一个热门开源项目,卷入了一场大规模软件供应链攻击。而这次被攻破的原因非常特殊 —— 竟是我们开发工作流里的一个Bug。
如果你也是开发者,那么这种事情完全有可能发生在你身上。运气差一点,你耗时十年的心血可能在一天之内毁于一旦,项目口碑也会彻底崩塌,再也无法挽回。
下面,就是Suranga开源生涯中最惊险的一次事故,以及他是如何在安全团队和一点点“运气”的帮助下,救回这个 8 年老项目的。
这个项目叫 Neutralinojs。它是一个轻量级的跨平台桌面应用开发框架,2018 年Suranga和其他几位开发者一起启动了这个项目,但很快就变成了我一个人维护。
过去几年,Suranga投入了大量时间打磨这个项目,并逐步建立起社区生态,它曾三次入选 Google Summer of Code(GSoC):2022、2024、2026 年。
简单来说,它的定位就是:Electron 的轻量替代方案。如今已有成千上万的跨平台应用基于它构建,开发者社区还在持续壮大,核心贡献者也一直在积极推动项目迭代。
这个项目一直强调两件事:极简设计和性能优先。对于很多程序员来说,Neutralinojs 不仅是工具,更是一种工程理念。
3 月 5 日早上,Suranga收到了一条来自 OpenSourceMalware(OSM)安全团队成员的 LinkedIn 私信。内容大概是:
“你的主代码仓库已经被植入恶意 JavaScript 代码,我们已经提交了一个 PR 用于清除它。”
看到这条消息,Suranga整个人直接懵了。因为我最担心的事情就是:自己误合并了带恶意代码的 PR,所以甚至连 GitHub Dependabot 自动生成的 PR,我都会仔细 review。
他的第一反应是:他的 GitHub token 被盗了?还是账号被入侵了?但我对安全一向很谨慎,自认账号几乎不可能出问题。
但很快,他就确认代码库是真的被入侵了:项目四个核心仓库全部被注入恶意 JavaScript 代码。而且攻击手法非常隐蔽:这些恶意代码经过重度混淆,还利用大量空格巧妙隐藏,在 GitHub 代码查看器里,肉眼几乎无法察觉异常。
显然,这不是普通攻击,这是精心设计的供应链攻击。Suranga立刻和 OSM 成员协作,第一时间保障贡献者、应用开发者和用户的安全。
根据 OSM 的报告 + 他的分析,最终结论如下:
攻击发生在 3 月 2 日很短一段时间内;
只有 Neutralinojs 组织下的 4 个仓库被强制推送、篡改历史 Git 提交,其他仓库安全;
所有 GitHub 发行版和 NPM 包都是干净的;
只有在 3 月 2–5 日之间 pull 代码的人可能中招;
攻击源头来自朝鲜,恶意代码会连接 C2(指挥控制)服务器(部署在 Vercel,已被移除)。
换句话说:这是一场差一点就炸掉整个生态的攻击!
幸运的是,在 OSM 团队支持下,我通过清理 Git 记录、开启 GitHub 分支保护规则,彻底解决了这次危机。
一开始以为是自己的某个 GitHub Token 被盗,但事实并非如此。Suranga发现:注入恶意代码的强制推送,来自 Neutralinojs 组织非常早期的一位“老成员”,而且他的 GitHub 账号竟然还拥有所有仓库的写入权限!
Suranga立刻吊销了他的权限,重新检查所有仓库,并同步给 OSM 团队。
随后,Suranga在他的个人 GitHub 仓库里也找到了同款恶意 JavaScript 载荷——真相大白:是他的账号被攻陷了,不是Suranga的 Token 或账号泄露。
Suranga马上联系他,他回复:
“我刚装了 OpenClaw,还给了 GitHub 权限,可能就是这个原因。”
事后,OSM 发布了最终报告,重新扫描所有仓库后确认:Neutralinojs 代码库已完全安全。Suranga也同步通知了所有贡献者,并给可能受影响的开发者提供了修复方案。
一天后,这位账号被黑的“老成员”确认:他是最近名为 ClawHavoc 供应链攻击的受害者之一,病毒通过被入侵的 OpenClaw 插件扩散。目前,同款恶意 JavaScript 载荷仍在通过其他被盗账号在 GitHub 上扩散,并且出现了多个变种。
据 OSM 披露:该恶意软件会从区块链交易中获取 C2 服务器地址。即便主服务器被 Vercel 下架,攻击者依然可以新建服务器,并把地址写入区块链,继续控制受害者电脑。
谨慎使用 AI,使用前必须花时间了解它的工作原理。在Suranga看来,OpenClaw 的插件生态设计非常“危险” —— 居然把原始系统命令存在 Markdown 文件里来扩展 AI 能力!
页:
[1]