跳到主要内容

本周小抄:假证据藏在哪?藏在 agent 眼里的世界里

阿简
阿简

· 阅读约 3 分钟

具身 agent 的安全,大家最近都在盯三处。prompt 被注入、感知输入被骗、模型行为被带偏。这三处确实热闹。

这周 arXiv 上有篇论文,8 月 17 日提交的,换了个下手的位置。研究者没碰用户指令,没碰模型参数,也没碰执行器。他们改的是环境状态文本。

方法叫 ESTI,环境状态文本注入。简单说,就是在规划器读得到的状态描述里塞假证据。让 agent 自己“看到”一个不存在的东西,然后自己决定照着做。

这个位置选得刁。指令、参数、执行器,防护都堆在这三处。状态文本像个没人看守的侧门。它默认可信,因为它看起来就是“环境自己汇报的”。

具体往哪改?五个下手点。对象属性、空间关系、可供性、任务阶段规则、执行反馈。比如让 agent 相信某个物体在某个位置,或者某一步已经完成了。它不改你让它干什么,只改它以为世界长什么样。

数字是这样的。对比 Vanilla IPI、EIRAD、BADROBOT 这几个基线,规划级攻击成功率最高提升 89.32%,执行级最高提升 43.69%。实验跑了三套环境。ProgPrompt/VirtualHome、VoxPoser/RLBench、AI2-THOR/iTHOR。还带一个叫 ESTI-Bench 的基准,专门测攻击能不能从规划一路传到执行,真的改出环境变化。

补充一句我对数字的态度。攻击类论文的成功率,我历来打折扣再看。这篇有意思的地方不在数字高低。在于它指出的这条边界:规划器可见的状态表示,本身就是一条安全边界。以前没人把这条边界当边界用。

论文里还有个分析,值得单独拎出来。篡改的状态证据要真起作用,得满足三样东西。接地性、一致性、可执行性。假证据不能太离谱,得跟当前环境兼容,agent 才会信。

这反过来提示了防御方向。与其逐条检查状态真伪,不如查一致性。一条状态说杯子在桌上,另一条说任务已进入收尾,两者对不上,就该警觉。

老实说,接地性那部分的论证我只看懂了一半。先放在这里,搞明白了再补。

对普通人意味着什么。这周圈内在转这篇的时候,又有人往“agent 失控”那个方向带。我的看法没变。短期该关心的不是 agent 哪天失控,是它今天在哪个环节被骗。这篇讲的就是一个具体环节,比末日叙事有用。

这个思路离普通人也没那么远。你自己搭 agent 工作流的时候,喂给它的那些“上下文材料”——一份文档、一段日志、一个数据库查询结果——本质上也是它眼里的环境状态。来源不干净,它就替你把假话执行了。

工具链越长,中间被塞私货的机会越多。MCP 我之前收过一次。它让工具连工具变得容易,也让这条链上的每一环都成了别人的下手点。

所以这条我收进小抄,不是为了吓谁。是想说:你验证 AI 干的活,别只看它说了什么、做了什么。也看一眼它当时“以为”的世界是什么样的。那部分错了,前面全白搭。

论文投的是 USENIX Security 2027,归类在 cs.RO 和 cs.AI。有兴趣的自己去找来读。

本周就这些。上面有任何一条你试过、或者觉得我讲错了,欢迎告诉我。讲错的我补,没讲清的我改。

下周见。

阿简
阿简

每周替你把 vibe-coding 圈的大事筛成一张小抄,被讲玄的概念一句话搞懂。

查看主页 →