一篇于 9 月 2 日提交的论文正式化了一种专门针对可复用 agent 技能的供应链攻击:第三方技能能够正确完成其宣称的工作,返回有效输出,并通过检查,同时又悄无声息地将 agent 的决策引向一个未披露的目标。
测得结果
该框架在 agentic commerce 和软件依赖项选择场景中实例化后,针对攻击者偏好的选择率分别达到81.33%和63.33%,同时保持了100% 的效用保持率。最后这个数字正是这类攻击难以防范的原因:用户要求完成的任务仍然会被正确、每次都被完成。没有明显的失败可供察觉。
为什么这不是 prompt injection
这与人们一直在防范的攻击属于不同类别。prompt injection 是把一条指令偷塞进上下文窗口,把 agent 从其任务上劫持走。而这里没有注入命令,也没有劫持——技能确实在做它声称的事,操纵则体现在它如何塑造 agent 推理所依据的决策空间。围绕识别对抗性指令而构建的检测机制没有可对照的目标。
常见表述忽略了什么
有两点需要纠正。首先,把这件事视为“又一篇 jailbreak 论文”忽略了一个事实:根本没有发生越狱。模型并不是被诱导去违反某项政策,而是被诱导在两个都合法的选项之间偏向其中一个。其次,论文报告称,受测的技能扫描器并未标记出这些恶意技能——这只是针对论文条件下所测试扫描器的结果,并不能证明检测不可能。但它确实表明,当前的检查层瞄准了错误的属性:扫描器检查的是技能是否做了不该做的事,而这次攻击的设计恰恰在于它没有这样做。
迁移结果
这些策略在不同的模型后端和 agent 环境之间无需进一步优化即可迁移。攻击者不需要知道哪个模型会消费该技能。这正是它从研究结果转变为供应链问题的原因:一项一次发布的技能,就可以对所有运行它的系统生效。
