[控场AI]
· 6 分钟阅读· 3,239 字

AI编程工具成新攻击面:伪造Claude扩展窃取开发者信息

AI编程工具成新攻击面:伪造Claude扩展窃取开发者信息

伪造Claude扩展在Cursor市场上架11小时感染5000名开发者,暴露AI工具供应链风险。

一个伪装成Claude代码扩展的恶意插件在Cursor扩展市场上架约11小时,估计感染多达5000名开发者。该扩展窃取主机名、用户名、Git邮箱和公网IP,并向authorized_keys植入攻击者SSH公钥,同时设置每60秒重试的持久化机制。反向隧道虽因权限要求通常失败,但SSH密钥和持久化配置已落地,卸载扩展无法清除。事件揭示AI编程工具以开发者完整权限运行,伪造工具相当于通过可信商店递送的万能钥匙。文章提供三步自查方法(检查authorized_keys、排查持久化机制、运行清理脚本并轮换凭证)和四条防御原则(优先官方渠道、最小化权限、监控异常外联、定期审计持久化配置)。

AI编程助手正成为攻击者的新跳板。一个伪装成Claude代码扩展的恶意插件曾出现在Cursor的扩展市场中,在约11小时内感染了多达5000名开发者,窃取主机名、用户名、Git邮箱和公网IP,并植入攻击者的SSH密钥与持久化后门。这起事件揭示了一个被长期忽视的风险:AI工具以开发者的完整权限运行,一旦被伪造,就是一把通过可信商店递送的万能钥匙。

事件回顾:11小时的供应链攻击

据YouTube频道「Bots leave logs」披露,10月29日,一个经过篡改的Claude代码扩展出现在Cursor的扩展市场。该扩展有两个版本,均非Anthropic官方构建。Cursor估计受影响用户最多达5000人,恶意版本在架时间约11小时。

It was live for about 11 hours.

攻击者的操作并不复杂,却足够精准:扩展运行后,会将开发者的主机名、用户名、Git邮箱和公网IP发送至外部服务器,随后向目标机器的authorized_keys文件添加攻击者的SSH公钥,并尝试建立反向隧道。为维持访问,恶意代码还设置了每60秒重试一次的机制。

and tried to open a reverse tunnel.

值得庆幸的是,反向隧道通常因需要管理员权限而失败。但坏消息是,SSH密钥和持久化配置已经落地——简单卸载扩展并不能清除它们。这意味着即使受害者发现异常并移除插件,攻击者仍可能保留再次进入的通道。

为什么AI编程工具是“新攻击面”

这起事件的核心教训不在于某个扩展的疏漏,而在于AI编程工具的运行模式。与普通编辑器插件不同,AI编程助手需要读取你的代码库、访问终端、调用云服务凭证,甚至代表你执行命令。它继承的是开发者的完整权限——你的代码、你的密钥、你的云环境。

This is the new attack surface.

攻击者正是看中了这一点。一个伪造的AI工具不需要利用复杂的漏洞,它只需要被信任的商店收录,就能以“合法工具”的身份获得用户主动授予的高权限。这种攻击路径绕过了传统边界防御,直接瞄准开发者工作流中最柔软的部分:对效率工具的天然信任。

从供应链角度看,扩展市场的审核机制面临挑战。攻击者上传的版本并非官方构建,却能在短时间内获得曝光。11小时的窗口虽短,但对于自动化恶意脚本而言,足以完成信息窃取和持久化布置。

供应链攻击是指攻击者不直接攻击最终目标,而是通过入侵其信任的第三方组件、工具或分发渠道来间接达成目的。在软件领域,典型形式包括篡改开源依赖包、劫持更新服务器、向官方扩展市场提交伪造插件等。此类攻击之所以危险,是因为它利用了用户对“可信来源”的天然信任,绕过了防火墙、杀毒软件等传统边界防御。本文事件即属于典型的软件供应链攻击:恶意扩展并非通过漏洞利用传播,而是借助 Cursor 扩展市场的收录机制,以“合法工具”身份被用户主动安装。

立即自查:三步确认是否中招

如果你在10月29日前后安装过Claude相关的Cursor扩展,建议立即执行以下检查。

检查authorized_keys文件

打开你的SSH授权密钥文件(通常位于~/.ssh/authorized_keys),查找是否包含带有“SVC telemetry”标识的密钥条目。攻击者使用的密钥往往带有此类伪装性注释,以降低被发现的概率。

Look for an SVC telemetry key

authorized_keys 是 OpenSSH 用于免密登录的核心配置文件,通常位于用户主目录下的 ~/.ssh/authorized_keys。文件中每一行代表一个被授权登录该账户的公钥,格式为 [选项] 密钥类型 公钥内容 注释。一旦攻击者的公钥被写入此文件,其持有对应私钥的客户端即可直接通过 SSH 登录目标主机,无需密码或二次验证。由于该文件属于用户级配置,普通用户权限即可修改,因此成为恶意脚本植入持久化后门的首选目标之一。攻击者常通过添加注释(如伪装成 "SVC telemetry")来降低被人工审计发现的概率。

排查持久化机制

检查系统中是否出现新的启动代理(launch agents)或计划任务(scheduled tasks)。恶意扩展设置了每60秒重试的持久化逻辑,这类配置通常会留下痕迹。macOS用户可查看~/Library/LaunchAgents和/Library/LaunchAgents,Linux用户可检查crontab和systemd单元。

持久化机制是指攻击者在首次入侵后,为确保系统重启或恶意进程终止后仍能恢复访问而部署的一系列配置。常见形式包括:macOS 的 Launch Agents(位于 ~/Library/LaunchAgents 或 /Library/LaunchAgents 的 plist 文件)、Linux 的 cron 定时任务与 systemd 服务单元、Windows 的计划任务与注册表自启动项。恶意扩展设置的“每60秒重试”逻辑通常通过此类机制实现——即使初始进程被终止,系统也会在短时间内重新拉起恶意代码。审计这些位置是事件响应中的标准步骤,因为仅删除恶意扩展文件往往无法清除已注册的持久化配置。

运行清理脚本并轮换凭证

Cursor官方提供了清理脚本,建议受影响的用户尽快运行。但仅靠清理脚本不够——由于Git邮箱、用户名和公网IP可能已经泄露,且SSH密钥已被植入,务必轮换所有相关凭证,包括但不限于代码托管平台令牌、云服务访问密钥和SSH密钥对。

凭证轮换是指在确认凭证可能已泄露后,主动废止旧凭证并生成新凭证的过程。对于开发者而言,需要轮换的凭证通常包括:代码托管平台(如 GitHub、GitLab)的个人访问令牌与 SSH 密钥对、云服务商(如 AWS、Azure、GCP)的访问密钥与临时会话令牌、CI/CD 系统的部署密钥、以及数据库连接字符串中的密码。轮换的核心原则是“假定已泄露”——即使没有直接证据表明某凭证被使用,只要它曾存在于受影响主机上,就应视为不可信。仅运行清理脚本而不轮换凭证,相当于锁上门却把钥匙留在了攻击者手中。

开发者该如何防御这类攻击

这起事件给所有使用AI编程工具的人提了个醒:便利性与安全性之间存在真实的张力。以下是几条可操作的防御原则。

优先选择官方渠道。 扩展市场中的第三方构建需要额外警惕。安装前确认发布者身份,优先使用工具官方直接分发的版本。

最小化权限授予。 审视AI工具请求的权限范围。如果一个代码补全插件要求访问你的云凭证或SSH目录,这本身就是一个危险信号。

监控异常外联。 反向隧道和周期性重试会产生网络流量特征。部署主机层监控,对非常规外联行为告警,可以在数据外泄前发现异常。

定期审计持久化配置。 启动项、计划任务和authorized_keys是攻击者维持访问的常见落脚点。将这些位置纳入例行安全检查,而非只在事件发生后临时排查。

结语

AI编程工具正在重塑开发效率,但也把开发者的本地环境和云端资产暴露在更复杂的威胁模型之下。伪造扩展事件不是孤例,而是一个信号:当AI以你的身份运行时,信任的边界必须重新划定。检查你的机器,轮换凭证,并且在下一次点击“安装”之前,多问一句——这个工具,真的来自它声称的发布者吗?

#AI编程工具安全#伪造Claude扩展#Cursor扩展市场#供应链攻击#SSH后门#开发者安全#AI工具攻击面
分享:

相关推荐