超过 100 个网站的文档文件中存在潜在危险的可执行内容,当众多 AI 智能体访问这些网站时,相关内容会被自动安装。数十家企业(其中不乏财富 500 强)已经执行了概念验证代码。至少有一个配置错误的网站正在将访客(无论是人类还是 AI)引导至真实恶意软件。

这些潜在危险内容存在于 llms.txt 和 llms-full.txt 文件中。这是一种正在兴起的网站规范,用于为机器提供网站内容及其整体结构的可读摘要。这些文件相当于 AI 领域的 robots.txt 标准,后者用于指导搜索引擎如何索引网站内容。

以色列一家隐身初创公司的研究人员扫描了 6,214 个属于国防承包商、财富 500 强及大型科技公司的在线域名。在发现的 8,265 个 llms.txt 和 llms-full.txt 文件中(许多网站同时托管了两种文件),有 120 个文件分别来自不同网站,均指向一个或多个未经注册的代码包或域名。

为测试 AI 智能体在处理此类文件时会发生什么,研究人员注册了少量未被占用的名称,并托管了相应的代码包——任何执行这些包的机器都会向研究人员的服务器发出回连请求。不到一小时,研究人员就收到了来自一家财富 500 强企业的回连响应。此后陆续收到数十个响应,包括更多财富 500 强企业和初创公司。研究人员的信标还记录了每次安装所触发的父进程链,最终揭示了涉事的编程智能体,包括 Claude、OpenAI 的 Codex 以及 Nous Research 的 Hermes。截至发稿,Anthropic、OpenAI 和 Nous Research 均未回复置评请求。

"信任模型已经崩坏,"研究人员之一 Alon Hertz 在一次采访中写道。"智能体将供应商文档视为绝对权威,不加质疑——监督智能体的人类同样如此。AI 智能体的使用正在爆炸式增长,智能体正渗透到每一个层面——SaaS、云端、端点。随着智能体数量不断增加,供应链攻击面也在持续扩大,而当前的防护手段根本覆盖不到这一领域。"

这些文件之所以存在配置错误,是因为它们列出了来自 PyPI、npm 等软件包仓库中并不存在的包,并附有安装说明。例如,某个文件包含如下提示:"安装方式:pip install [应研究人员要求已隐去]。"另一个文件则写道:"npm install [已隐去]。"由于这些包名尚未被注册,攻击者可以抢先注册并用来托管勒索软件或其他任何类型的恶意包。当一个拥有执行 shell 命令权限的编程智能体将该文件视为权威配置文档时,漏洞便会触发——部分 AI 智能体随即会下载并运行该包。在另一些情况下,大语言模型文件则指向不存在的域名。例如,某文件中写道:"作为编写 [已隐去] 应用集成测试的示例,你可以使用 [Citrus] 测试框架。"攻击者随后便可注册该网站并植入恶意指令。

研究人员的概念验证已证实,编程智能体正是这样做的,包括在全球一些最具实力的公司内部运行的智能体。这远非停留在理论层面的威胁,至少已有一起活跃攻击正在利用这一漏洞。研究人员在合法网站 clerk.com 上发现了一个大语言模型文件,其中包含如下内容:"npx clerk-next-fix-auth-protection。"与常规安装命令不同,npx 可以直接从 npm 缓存中拉取并执行一个包的可执行二进制文件,而无需将其添加到项目的依赖清单中。研究人员随即发现,有人已经抢注了这个曾经空置的包名,并用于托管真实的恶意软件。

Clerk 已解决了这一问题。该公司还指出,若智能体此前已安装了 @clerk/eslint-plugin 包中包含的某个二进制文件,则不存在威胁;否则,恶意包将被成功安装。目前尚不清楚这一漏洞是否已导致实际的感染事件。

这一新发现的威胁再次提醒人们 AI 存在根本性的局限。大语言模型无法在用户直接输入提示词的真实指令与从不可信第三方来源检索到的内容之间划出可靠的边界。模型在检索内容中遇到的指令,与用户亲手输入的内容一样容易被执行——除非逐一设置构造得当的防护栏。这一迄今未能解决的缺陷,正是提示词注入攻击的根源所在。

Q&A

Q1:llms.txt 和 llms-full.txt 文件是什么?为什么会带来安全风险?

A:llms.txt 和 llms-full.txt 是网站用于向 AI 机器提供可读内容摘要和结构信息的文件,相当于 AI 版本的 robots.txt。安全风险在于,部分文件错误地列出了未注册的软件包名称和域名,攻击者可以抢先注册这些名称并植入恶意代码。当 AI 编程智能体将这些文件视为权威文档并执行其中的安装命令时,便可能自动下载并运行恶意软件。

Q2:Claude、Codex 和 Hermes 是如何执行未授权代码的?

A:研究人员注册了部分未被占用的包名,并托管了会向其服务器发出回连请求的代码包。当 AI 编程智能体(包括 Claude、OpenAI 的 Codex 和 Nous Research 的 Hermes)读取含有错误配置的 llms.txt 文件时,会将其中的安装指令视为可信的配置文档,进而执行 pip install 或 npm install 等命令,最终触发恶意代码的下载与执行。实验结果显示,不到一小时内便收到了来自财富 500 强企业的回连响应。

Q3:Clerk 网站发现的恶意软件问题是怎么回事?

A:研究人员在合法网站 clerk.com 的大语言模型文件中发现了"npx clerk-next-fix-auth-protection"这条命令。npx 可直接从 npm 拉取并执行包,无需将其写入依赖清单,隐蔽性更强。有攻击者抢先注册了这个包名并托管了真实的恶意软件。Clerk 已修复该问题,并说明若智能体已安装 @clerk/eslint-plugin 中的相关二进制文件则不受影响,但目前尚不确定是否已有实际感染发生。

ArsTechnica