攻击者其实不需要在网页里写命令。

11 月 3 日,Technion 团队在 arXiv 放出论文《Voluntary Servitude》(自愿的奴役),标注被 NeurIPS 2026 主会接收。它研究的是 AI 智能体最公共的入口:读评论页、论坛帖、榜单页,再替用户做推荐、排序和下单建议。论文原文

围绕"间接提示注入"的攻防建立在一个共同假设上:攻击者必须在抓到的内容里写下命令,防御方的检测器去筛命令句式。这篇论文说,这个假设反而替攻击者清出了路。

载荷里没有一句命令

攻击者做的事很朴素:在目标品类的评论页、论坛和列表页上发几条普通评论,带用户名、日期、标题,结构跟周围真实评论一模一样。特殊的是里面那句断言——比如"这家在一场医疗急救里抛下了一家人"。整个载荷没有一句是对模型说的。

论文把攻击分成三族:安全族(编造危险,靠避险倾向)、权威族(伪造机构背书,靠对机构的顺从)、属性族(讲对方哪点更好)。安全族在无过滤时和指令注入基本打平:60.4% 对 66.0%。

关键不是"有指控",是"有危险"

论文的对照只换断言内容,位置、条数、版式都不变。换成"这家道德败坏"这种不涉及安全的指控,成功率 8.2%;换成纯粹好评、只推攻击者的目标,6.8%,两者统计上分不出来(p=0.14);不投毒时,目标是 0.7%。

"负面"本身不推动智能体,"危险"才推动。安全族比指控族高出 22.8 到 84.4 个百分点,在十个品类、四个模型上都成立。触发点不在指控,在避险。

检测器为什么放过它

论文在两个商用检测器上测了通过率。两者会标出 46% 到 84% 的指令注入载荷,但对安全族最多只标出 22%;Lakera Guard 更极端,安全族 78% 被判为良性。真正像攻击的,是指令;而这条载荷读起来像旅行者间的证词。

把通过率乘成功率,得到过滤后的有效成功率:ProtectAI 下安全族 60.4 对指令注入 35.7,Lakera 下 47.1 对 10.6。在部署了检测器的系统里,这条绕开指令的攻击比大家一直在防的那条强 1.7 到 4.4 倍。

它靠淘汰取胜,不是靠说服

智能体要么"淘汰"——把正当商家直接划掉,让攻击者的目标成为剩下的那个;要么"比较"——保留所有选项但把目标排第一。安全族在六个模型中有四个靠淘汰取胜,占成功案例的 97% 到 99%;权威族最高 64%,属性族最高 28%。在 Claude Haiku 4.5 上,成功的权威和属性攻击没有一次淘汰。

模型顺序也反直觉:最不吃普通说服的 Grok 4.3 更吃安全框架(属性族 73.6%、安全族 53.7%);最顽固的 Claude Haiku 4.5 是安全族 22.5%、属性族 9.3%;Gemini 3.1 Flash Lite 的安全族高达 86.5%。避险倾向强的模型不一定更抗打,只是换个入口更好进。

已经打到真在用的产品里

论文把攻击搬到了四个生产级浏览器智能体上:Edge 的 Copilot 每次都选了攻击者的目标(指令注入 20%),Perplexity 的 Comet 是 60%(指令注入一次没中),OpenAI 的 Codex 浏览器 20%(同样没中),Brave 的助手在两种攻击下都是每次命中。安全载荷在三个上优于指令注入。

再往下一层是检索管道。BM25 取前三页时端到端成功率 57.0%,稠密检索取一页只有 1.0%,而把被污染的页面直接塞进上下文是 98.0%。但只要那一页真被检索到,智能体选中攻击者目标的比例稳定在 49.0% 到 66.0%。分工很清楚:检索器决定污染页面多久露一次面,模型决定看到后怎么反应。

另两项独立研究给出同一条路的背景:一项扫描 1.2B 个 URL、24.8M 台主机,在 11.7K 个页面上找到有效的间接注入,约 70% 藏在机器才读到的标记里;另一项发现,给一个被频繁检索的用户生成页面追加 13 个词,就能让攻击者的内容出现在 38% 到 51% 的报告里。

修法不是加过滤器,是改证据标准

论文给的防御是一条系统提示里的额外要求:安全相关的断言如果只出现在少数来源、或提出它的账号在措辞和时间上高度相似,就当作未证实;未证实的断言不得单独用来淘汰选项,必须先有独立佐证。

不需要重训,不需要额外组件。三个模型上的合并成功率从 68.4% 掉到 3.6%(95% 置信区间 2.2% 到 5.7%),约等于去掉 95% 的暴露面。更值得看的是它起效的位置:智能体有提示时仍然引用被植入的危险内容(98.4% 对 99.8%),但几乎不再因此淘汰商家(4.0% 对 90.9%)。它继续读,只是不再照着读。

代价也被标了出来:面对知道规则的对手,攻击者可以伪造互相独立的佐证,这一项留作开放问题;真正来自单一来源的真警告也会被拖住。

所以呢

这篇论文最值得带走的不是数字,而是:每一种被对齐灌进模型的行为,都是一条会读取外部证据的决策规则,而外部证据不可信。避险、顺从机构、重视他人证词,每一条都能当杠杆。所以做智能体安全,不能只盯着"文本里有没有命令",得更追问"模型拿什么当证据、几个来源才算够"。

论文自己也留了口子:实验只在旅游消费服务场景、单次选型决策上做,模型是三月到五月间经 OpenRouter 调用的快照,防御部分只测了不会随机应变的攻击者。