技术

网页可往“下载”文件夹塞一个文件,Claude Code和Codex就照它的指令行事

Susan Hill
在 Google 中添加我们

如今,网站只要把一个文本文件保存到你的“下载”文件夹,就能向你电脑上的 AI 编程代理发号施令。Forever Security 的研究人员在一名客户的电脑上发现了一份被植入的 AGENTS.md——这是 OpenAI Codex 等工具启动时会读取的纯文本指令文件;文件指示代理安装一款已知恶意软件。如果你曾在“下载”文件夹中打开 Claude Code 或 Codex,想整理文件,或处理刚下载的内容,那就等于把这个文件夹视作自己的项目目录一样信任。

按照它自身的规则,代理并没有做错事。AGENTS.md 及 Claude 对应的 CLAUDE.md 都是为了让项目告诉代理该使用哪些工具、如何运行测试而设,代理本来就会遵循这些指令。研究人员指出,“下载”文件夹是唯一一个网络可以自行填入内容的文件夹。他们写道:“这里没有什么需要 OpenAI 或 Anthropic 修补的。代理遵循所在文件夹里的 AGENTS.md,做的正是它被设计来做的事。”

那份真实文件是一份 13 KB 的文档,标题伪装成工程规范,攻击指令埋在接近末尾的位置,语气则像一则平静的设置说明。它要求 Codex 在配置中添加一个“项目工具”服务器,并安装一个名为 function-color 的 npm 软件包。研究人员称,这是一款恶意软件,来自一场持续约两年都未被发现的攻击活动。Forever 的软件在代码运行前就拦截了安装。在团队的测试中,他们大多使用无害的替代文件,仅让它打开计算器;Codex 在超过 90% 的尝试中照做,而真实软件包也曾在隔离虚拟机中运行一次。相关改动会写入 Codex 的全局设置文件,因此此后每次启动 Codex,无论在哪个文件夹里,都会加载攻击者的服务器。

Claude Code 没那么容易上当。团队编写了自己的 CLAUDE.md,诱使 Claude 把 API 流量转发到攻击者控制的服务器,并将其伪装成公司的网关。这个设置会泄露 Claude 的登录令牌;研究人员随后将令牌重放到 Anthropic 的真实 API 上,冒充受害者行事。它还会让假服务器伪装成模型作出响应,在关闭沙箱的情况下发回指令。Claude 会要求用户批准这类设置更改,而且经常会拒绝,但相关写入仍在约一半的尝试中成功完成。

要把文件放进电脑,所需操作比你想象的少得多。Chrome、Edge 和 Firefox 默认会直接把下载内容保存到这个文件夹,不会询问保存位置;网页还能自行指定文件名和内容。报道这一发现的 BleepingComputer 访问了研究人员的概念验证页面,并看到页面放下了一份无害的 AGENTS.md。Brave 则会先征求许可。Forever 研究员加尔·魏茨曼(Gal Weizman)告诉该媒体,公司的数百名客户会在“下载”文件夹中运行 Claude Code、Codex 或 Cursor 的命令行代理;仅 Claude Code 就曾在该目录中启动超过 1,300 个会话。

这项研究也有一些未解之处。Forever 无法确认恶意文件是如何进入客户电脑的,而且攻击仍需要有人随后在那个文件夹中启动代理。Chrome、Edge 和 Firefox 确实会显示下载提示,留心的用户可能会注意到。真实攻击载荷是为 macOS 编写的。Forever 也销售 AI 代理监控软件,因此公司在描述这类风险时有商业利益;报告中也没有 OpenAI 或 Anthropic 的回应。相关工具在全球销售,因此开发者使用这些工具的所有市场都面临同样的风险。

防范主要靠养成习惯。不要在“下载”文件夹中启动编程代理;应从代理要处理的项目文件夹启动,这也是 OpenAI 和 Anthropic 已经给出的建议。在代理读取任何你没有编写的 AGENTS.md 或 CLAUDE.md 之前,先仔细检查;同时保持审批提示和沙箱开启。在 Codex 的设置文件中,留意是否有你未添加的服务器条目;在项目的 Claude 设置中,查看是否出现你从未设置过的 API 地址。如果发现异常,就应视登录令牌已被窃取并立即撤销;任何安装过 function-color 的机器也应视为已遭入侵——npm 后来已将这个软件包下架。

Forever 于 10 月 22 日发布报告,BleepingComputer 随后在 10 月 25 日进行了报道。研究人员表示,任何会读取指令文件、又能改写自身配置的代理,都可能以同样方式受到操控;Codex 和 Claude Code 只是这份长名单上的前两个名字。过去,浏览器下载的文件要等有人打开才会造成问题。现在,代理一开始读取文件夹,文件就会自行打开。

标签: , , , , ,

在 Google 中添加我们

讨论

有 0 条评论。