[控场AI]
· 4 分钟阅读· 2,071 字

删了插件也没用?Claude Code扩展被投毒事件复盘

删了插件也没用?Claude Code扩展被投毒事件复盘

Claude Code扩展在Cursor中被投毒11小时,植入SSH密钥,卸载后风险仍在。

据YouTube频道披露,两个版本的Claude Code扩展在Cursor编辑器内被植入恶意代码,于10月29日通过正常更新渠道发布并在线约11小时。受影响开发者遭遇窗口自行弹出、文件自动滚动等异常,系统还被写入未经授权的SSH密钥,用于建立持久化远程访问。Cursor称可能触达多达5000名开发者,但真实人数未知,这正是供应链攻击的典型不确定性。更关键的是,删除扩展后仍有窗口自行打开,Cursor官方警告卸载可能不足以清除威胁,因为恶意代码运行期间可能已完成持久化。官方建议彻底擦除机器或执行五项检查,事件凸显AI编程工具生态中“官方市场+自动更新”信任假设的脆弱性。

据YouTube频道披露的一起供应链安全事件,两个版本的Claude Code扩展在Cursor编辑器内被植入恶意代码,于10月29日发布并持续在线约11小时。一位开发者在午休前点击更新,回来后发现电脑在无人操作的情况下自行打开窗口、滚动文件,甚至在列表中悄然植入了一个新的SSH密钥。更令人不安的是,即便她删除了扩展,屏幕看似恢复平静,角落里却又弹出一个窗口——Cursor官方的警告,措辞与意图都很明确:卸载扩展可能并不足够。

The laptop doesn't.

事件回顾:11小时的投毒窗口

根据视频描述,被污染的构建版本通过正常更新渠道分发,在Cursor中作为Claude Code扩展运行。从发布到被察觉,窗口期约为11小时。Cursor自身的统计称,受影响的构建可能触达多达5000名开发者,但视频明确指出,真实数字无人知晓。这种不确定性本身就是供应链攻击的典型特征:你无法从官方渠道获得确切的暴露范围。

Nobody knows the real number.

攻击者的操作并非粗暴破坏,而是留下了可被察觉的异常行为:窗口自行弹出、文件自动滚动,以及最关键的——一个未经授权的SSH密钥被写入系统。SSH密钥意味着持久的远程访问权限,这通常是攻击者建立后门的第一步。

供应链攻击(Supply Chain Attack) 是指攻击者不直接攻击最终目标,而是入侵其信任的上游环节——如软件分发渠道、构建系统、依赖包仓库或更新服务器——借由合法的分发路径将恶意代码送达受害者。此类攻击之所以危险,在于它绕过了“我从官方渠道下载”这一常规安全假设。 SolarWinds、Codecov 以及 npm 生态中的多起事件均属此列。在本案中,被污染的构建版本通过 Cursor 的正常更新机制推送,开发者在点击“更新”时不会预期到风险,因此检测窗口极短、暴露范围难以界定。

删除扩展之后,为什么风险仍在?

视频中最具警示性的细节是:开发者删除扩展后,屏幕短暂安静,随后又有一个小窗口自行打开。这呼应了Cursor官方警告的核心——卸载扩展可能不足以清除威胁。原因在于,恶意代码在运行期间可能已经完成了持久化操作,例如写入SSH密钥、修改系统配置或植入其他启动项。扩展本身只是一个入口,一旦恶意逻辑被执行,其影响范围就超出了扩展目录。

And somewhere in the list, a new SSH key plants itself.

这解释了为什么官方建议要么彻底擦除整台机器,要么至少执行五项检查。视频没有逐条列出这五项检查的具体内容,但明确传达了处理原则:不要因为界面恢复整洁就认为风险已经解除。

It looks clean.

持久化(Persistence) 是攻击者在初次入侵后维持访问权限的技术总称,常见手段包括写入 SSH 公钥至 ~/.ssh/authorized_keys、创建系统服务或计划任务、修改 shell 启动脚本、植入浏览器扩展或登录项等。其目的是使攻击者在原始入口(如被删除的扩展)消失后仍能远程控制目标机器。本案中未经授权的 SSH 密钥正是典型的持久化操作:只要该密钥未被移除,攻击者便可随时通过 SSH 协议重新登录,与扩展是否还在无关。这也是官方警告“卸载可能不足”的技术根源——清除入口不等于清除所有落地痕迹。

SSH 密钥认证 是远程登录服务器最常用的方式之一,客户端持有私钥,服务端在 ~/.ssh/authorized_keys 中保存对应的公钥,匹配即可免密登录。对攻击者而言,向目标机器写入自己的公钥等同于开了一扇长期有效的后门:无需密码、不易触发告警,且可跨重启存活。开发者应定期审计 authorized_keys 文件,检查是否存在不认识的条目;若发现可疑密钥,应立即删除、轮换所有相关凭据,并视情况重装系统,因为写入密钥的恶意进程可能还留下了其他未被发现的持久化机制。

对开发者的实际启示

这起事件并非孤例,但它把AI编程工具生态中的一个结构性问题摆到了台面上:开发者对编辑器扩展的信任,往往建立在“官方市场”和“自动更新”两个假设之上。当更新渠道本身被污染,这两个假设同时失效。对于日常使用Cursor、Claude Code等工具的开发者,视频传达的信息很直接:遇到类似异常行为,不要止步于卸载扩展;如果无法确认持久化痕迹是否清除,重装系统是更稳妥的选择。

供应链安全的成本从来不只是技术成本,更是注意力成本。一个午休的时间差,就足以让一台看似干净的机器继续为攻击者工作。

#Claude Code#Cursor#供应链攻击#SSH密钥#扩展安全#开发者安全#投毒事件
分享:

相关推荐