
针对埋藏在正常工具输出中的真实 AI Agent 攻击,现有开源检测器的防御效果如何?一项基于 AgentDojo 数据集的最新基准测试给出了严峻答案:在测试的 10 款主流开源检测器中,没有任何一款能够在不阻断大量正常流量的前提下,有效捕获大多数攻击。
核心结论:最佳平衡点仅捕获半数攻击
该测试模拟了代理防火墙的实际工作场景,将 629 个真实的注入攻击隐藏在普通的工具输出中,并混入 97 个良性案例作为对照。测试结果显示,表现最好的检测器 jailbreak-detector-large 也仅实现了 51% 的攻击捕获率,同时保持了 2% 的低误报率。这意味着,即便使用最优方案,仍有一半以上的攻击会被漏放。
其他检测器的表现则呈现两极分化:要么完全失效,要么过度敏感。例如,Meta 推出的 Prompt Guard 2 在上下文环境中仅捕获了 1% 的攻击;而 deepset-deberta 和 fmops-distilbert 虽然实现了 100% 的捕获率,但其误报率高达 98%,几乎标记了所有安全工具输出,导致无法正常业务运行。
三大失效模式解析
深入分析表明,这些检测器主要在三个维度存在缺陷:
1. 无法识别伪装措辞
以 Prompt Guard 2 为例,当攻击指令单独出现时,模型能准确识别其恶意性(概率超过 0.99)。然而,AgentDojo 中的真实攻击往往伪装成普通用户请求,如“将钱转账至账户 US13...”或“删除 ID 为 13 的文件”。从文本表面看,这些指令毫无可疑之处,导致模型在上下文环境中完全失效,捕获率跌至 0%-3%。
2. 上下文信号稀释
ProtectAI 和 LLM Guard 等分类器在独立评分时能识别全部 27 种攻击文本。但当这些攻击嵌入正常的账单、邮件或评论后,周围良性的工具输出淹没了恶意信号,导致其在实际场景中的捕获率骤降至 20%-23%。
3. indiscriminate 阻断
部分检测器采取了“宁可错杀”的策略。deepset 和 fmops 阻断了 98% 的正常流量;preamble-defense 和 testsavant-defender 也分别阻断了 47% 和 48% 的良性请求。这种高误报率使得它们在生产环境中几乎不可用。
测试局限性与防御建议
需要指出的是,本次测试仅涵盖文本级检测,未涉及实时 Agent 的运行成本及策略执行层面。测试发现,单纯依赖文本分类无法可靠区分攻击者指令与用户指令,因为真实的 Agent 攻击往往位于文本分类器的薄弱环节——即看似普通的数据中包含着看似普通的指令。
因此,构建有效的 Agent 防火墙不能仅靠检测器,更需转向基于策略的执行。防御体系应关注指令的来源以及工具调用的具体行为,对每个工具和参数实施允许、拒绝或审批机制。例如,通过跟踪参数(如 IBAN、电子邮件、URL)是来自用户输入还是工具输出,从而实现更精准的门控防御。
本次基准测试代码已开源,支持开发者添加新的检测器进行复现与对比。但鉴于 AgentDojo 数据集的特定模板限制,测试结果应被视为一种模式参考,而非普遍常数。