跳到正文
原文

AgentDojo:评估 LLM 智能体提示注入攻击与防御的动态环境

AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents

arXiv· arXiv:2406.13352· Edoardo Debenedetti, Jie Zhang, Mislav Balunović, Luca Beurer-Kellner, Marc Fischer, Florian TramèrETH Zurich; Invariant Labs本站收录· 14 天前· 原文发表入选 评测精选关注度40

论文速读

评测与基准

据论文 PDF 整理(AI 生成),以原文为准

作者提出 AgentDojo,一个评测工具调用智能体提示注入攻防的动态环境,含 97 个任务和 629 个安全测试用例;GPT-4o 无防御时 targeted ASR 为 47.69%。

问题
LLM 智能体调用工具处理不可信第三方数据时易被间接提示注入劫持,执行攻击者任务;现有智能体基准不含显式攻击,已有提示注入基准又缺少真实多轮工具调用场景。
方法
作者构建 AgentDojo:四个有状态环境(Workspace、Slack、Travel、Banking),97 个用户任务与注入任务做笛卡尔积得到 629 个安全测试用例,用确定性的 utility/security 函数检查环境状态判定成败,并预置多种攻击与防御。
实验与结果
10 个 LLM 无攻击时 benign utility 均不超过 78.22%;GPT-4o 无防御时 targeted ASR 47.69%,Tool filter 防御将其降到 6.84%;作者称能力越强的模型越易被攻击,注入放在工具输出末尾最有效。
局限与可以继续做的
作者指出当前攻击和防御较简单、任务与效用标准靠人工指定、未覆盖多模态智能体与多任务不重置上下文等场景;防御评测只在 GPT-4o 上进行,论文未报告重复运行次数。
实验设置Claude 3 Opus、Claude 3 Sonnet 等 · AgentDojo(Workspace、Slack、Travel、Banking 四个任务套件) · Benign Utility、Utility Under Attack 等
威胁模型
间接提示注入:攻击者将恶意指令注入智能体工具返回的不可信第三方数据(攻击占位符),目标是让智能体代表用户执行恶意任务(injection task,如窃取数据、转账)。攻击者对用户任务、系统或受害者信息的先验知识可变(论文消融了知道用户/模型名字的影响);受害系统为在 Workspace、Slack、Travel、Banking 四个环境中调用工具的 LLM 智能体。
被测模型
Claude 3 OpusClaude 3 SonnetClaude 3.5 SonnetCommand-R+Gemini 1.5 FlashGemini 1.5 ProGPT-3.5 TurboGPT-4 TurboGPT-4o (gpt-4o-2024-05-13)Llama 3 70B
基准
AgentDojo(Workspace、Slack、Travel、Banking 四个任务套件)
指标
Benign UtilityUtility Under AttackTargeted ASRUntargeted ASR
AI 导读和推荐理由ETH Zurich 等机构的研究者发布 AgentDojo,一个用于评估 LLM 智能体在工具调用中抵御提示注入攻击与防御效果的动态基准环境。该环境包含 Workspace、Slack、Banking 和 Travel 四类场景,共 97 个真实任务和 629 个安全测试用例,并支持扩展新的任务、攻击与防御。在 GPT-4o 上,无防御时定向攻击成功率为 57.7%,工具过滤防御将其降至 6.84%;提示注入检测器虽将攻击成功率降至 7.95%,却把正常效用从 69.0% 降至 41.49%。评测还显示,能力更强的模型往往更容易被攻击,而现有攻击与防御在 AgentDojo 上都面临明显挑战。

ETH Zurich 等机构的研究者发布 AgentDojo,一个用于评估 LLM 智能体在工具调用中抵御提示注入攻击与防御效果的动态基准环境。该环境包含 Workspace、Slack、Banking 和 Travel 四类场景,共 97 个真实任务和 629 个安全测试用例,并支持扩展新的任务、攻击与防御。在 GPT-4o 上,无防御时定向攻击成功率为 57.7%,工具过滤防御将其降至 6.84%;提示注入检测器虽将攻击成功率降至 7.95%,却把正常效用从 69.0% 降至 41.49%。评测还显示,能力更强的模型往往更容易被攻击,而现有攻击与防御在 AgentDojo 上都面临明显挑战。

推荐理由论文给出了 AgentDojo 的任务设计与基线评测,可用于比较不同智能体和提示注入防御在效用与安全之间的权衡。

相关热点

15 个事件 · 28 条新闻提到

提到这篇论文的新闻

DeepMind论文称智能体集群攻破所测模型

Composio介绍智能体防火墙拦截提示注入

Scale AI 提出 MRT 框架测试智能体监控可靠性

再看 25 条

AppSec中的本地LLM:哪些工作可放心交给开放工具和模型

  • Хабр引用了论文编号或链接
    AppSec 中的本地 LLM:哪些工作可以放心交给开放工具和模型
    записи — разные возможности причинить ущерб. Поэтому в исследованиях безопасности агентов оценивают сразу две вещи: удалось ли атакующему добиться своей цели и сохранила ли система способность

AI渗透测试智能体:能验证漏洞,难从零发现

伯克利提出提示注入防御方案PromptArmor

Adversa AI 汇总 11 月 AI 智能体安全资源

  • Adversa AI提到论文的名字
    2026 年 11 月 AI 智能体安全资源汇总
    A declarative source trust policy decides most effects and holds ambiguous ones for a bounded oracle, cutting AgentDojo attack success from 47.0% to 2.7% with benign utility at the undefended level.

HoS:学习式注意力门控防御提示注入

SRFT自我反思微调提升智能体抗提示注入能力

研究揭示保留词元编码放大提示注入攻击

研究揭示多智能体系统边界洗白攻击并提出multi-CaMeL

Reflection 开放 Beam 权重并发布安全报告

  • Reflection写出了论文标题
    Reflection 发布 Beam 安全技术报告
    AgentDojo: A dynamic environment to evaluate prompt injection attacks and defenses for LLM agents (arXiv Publication No. 2406.13352). arXiv. https://doi.org/10.48550/arXiv.2406.13352 Cited by: 1438

NVIDIA 提出 NXDirection 防御提示注入

Adversa AI 发布 10 月 GenAI 安全资源汇总

Adversa AI 汇总 10 月智能体安全资源

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    如何评测工具调用 LLM 智能体在间接提示注入下的效用与安全性,作者提出动态基准 AgentDojo。

    核心问题:如何量化评测调用工具的 LLM 智能体在间接提示注入攻击下的效用(utility)与安全性(security)。

    • 问题场景:AI 智能体结合 LLM 推理与外部工具调用完成任务,但 LLM 直接处理文本、缺乏区分指令与数据的形式化手段(作者援引 [44, 74])。工具返回的第三方数据可被注入恶意指令,成功攻击可让攻击者以用户名义调用工具,后果包括窃取用户数据、执行任意代码。
    • 现有基准的不足:作者称已有智能体基准要么只评单次函数调用、要么无显式攻击;已有提示注入基准场景简单、不含工具调用;ToolEmu 用 LLM 模拟环境和打分,注入可能同时骗过模拟器与评审模型。
    • 核心设计主张:静态攻击集不适合评测提示注入鲁棒性——现有注入攻击是通用的、不针对具体模型优化,且针对固定攻击容易造出不鲁棒的防御;因此基准应是可扩展的动态环境,支持新任务、新防御和自适应攻击。
    • 论文产出:AgentDojo 框架,首版含 4 个环境、97 个用户任务、629 个安全测试用例、70 个工具(Table 1 注:正文另处写 74 个工具),以及文献中的多种攻击与防御范式。
    • 威胁模型(间接提示注入):
      • 攻击者目标:让智能体完成注入任务(injection task),如把用户的安全验证码发给攻击者邮箱、向攻击者账户转账。
      • 攻击者能力:控制工具返回的不可信数据中的攻击占位符(placeholder),如用户收件箱里的一封邮件、一个网页。
      • 攻击者知识:可变;论文消融了对用户名和模型名的先验知识,正确知识略微增强攻击、错误猜测削弱攻击(Table 2)。
      • 受害系统:在 Workspace、Slack、Travel、Banking 四个模拟环境中调用工具的 LLM 智能体。
  2. 有哪些相关研究?

    相关工作分四组:智能体与工具增强 LLM、提示注入攻击、提示注入防御、智能体与注入基准;本文与 InjecAgent、ToolEmu 最接近。

    AI 智能体与工具增强 LLM

    • ToolFormer [51]、PAL [14]、Chameleon [35]、HuggingGPT [53] 等——让 LLM 调用外部工具完成任务;ReAct [69]、chain-of-thought [60] 等提供推理与规划能力。
    • Gorilla [43]、ToolLLM [47]——大规模 API 调用;多家厂商提供 function-calling 接口 [2, 9, 22]。

    提示注入攻击

    • Willison [62]、Goodside [17]——提出提示注入概念;Perez and Ribeiro [44] 区分直接与间接注入。
    • Greshake et al. [18]、Kang et al. [23]、Liu et al. [33]——展示间接注入可攻陷真实 LLM 集成应用;Pasquini et al. [42] 学习注入触发器。

    提示注入防御

    • 检测类:Lakera ChainGuard [28]、ProtectAI 检测器 [45]、LangChain 的 HF 检测 [29]。
    • 训练/提示类:StruQ [8]、Instruction Hierarchy [59]、Spotlighting 数据分隔 [19];Willison 指出分隔符不能解决问题 [61]。
    • 隔离类:Dual LLM pattern [63]、SecGPT [66]——把函数调用与主规划组件隔离。作者称现有技术都不是万无一失的,可能无法为安全关键任务提供保证 [61, 64]。

    智能体与提示注入基准

    • AgentBench [32]、WebArena [72]、WebShop [68]、Berkeley Function Calling Leaderboard [67] 等——评智能体能力但无显式攻击。
    • ToolEmu [50]——用 LLM 模拟沙盒与打分来评智能体风险;作者指出该做法评提示注入时有问题,因为注入可能同时劫持评审模型。
    • Tensor Trust [57]、HackAPrompt [52]、Liu et al. [34]、Yi et al. [70]——提示注入基准,但场景简单、不含工具调用规划。
    • InjecAgent [71]——与本文最接近,但作者指出它是模拟的单轮场景:直接把一条对抗数据作为工具输出喂给 LLM,不评测模型的规划。

    基线与对比:攻击基线为 "ignore previous instructions" [17]、InjecAgent 注入 [71]、"TODO" 注入及自适应 Max 攻击;防御基线为 Data delimiters [19]、PI detector [45]、Prompt sandwiching [30]、Tool filter(隔离机制 [63, 66] 的简化形式);效用对比 Berkeley Tool Calling Leaderboard [67](Figure 2)。

    作者定位:AgentDojo 要求智能体在有状态、对抗环境中动态调用多个工具,并用形式化的环境状态检查代替 LLM 评审,与上述所有基准区分。

  3. 论文如何解决这个问题?

    AgentDojo 用有状态环境+形式化成败检查构建任务套件,用户任务与注入任务做笛卡尔积,预置可扩展的攻击与防御接口。

    整体思路:把智能体放进有状态的模拟环境中执行真实工具调用,用确定性的状态检查函数分别判定用户任务(utility)和攻击者目标(security)是否达成,避免使用可能被注入劫持的 LLM 评审。

    环境、工具与任务

    • 四个环境:Workspace(邮件/日历/云盘,24 工具、40 用户任务、6 注入任务)、Slack(11、21、5)、Travel(28、20、7)、Banking(11、16、9),合计 70 工具、97 用户任务、27 个注入目标(Table 1)。
    • 状态建模:环境状态是可变对象集合(如收件箱、日历、云盘),预填人工编写或 GPT-4o/Claude 3 Opus 辅助生成、经人工检查的假数据;部分状态被标记为攻击占位符。
    • 工具:以 Python 函数注册(FastAPI 风格),文档加入智能体提示词,输出以 YAML 格式喂给模型。
    • 任务难度:用户任务覆盖中长上下文检索(数据最多 7,000 GPT-4 token、工具描述 4,000 token)和最多 18 次工具调用链;注入任务从 1 步到 20 步,敏感度从发普通邮件到转发双因素验证码。

    成败判定

    • utility 函数:确定性二元函数,输入模型输出及执行前后的环境状态,判定用户任务是否完成;每个用户任务还带 ground truth 工具调用序列,用于把注入放到模型实际会查询的位置。
    • security 函数:同样形式判定攻击者目标是否达成;注入任务也带 ground truth 调用序列,供了解工具 API 的攻击使用。
    • 测试用例:按 Zhan et al. [71] 的做法对每个环境的用户任务与注入任务取笛卡尔积,得到 629 个安全测试用例;用户任务单独运行即为良性效用测试。

    智能体与防御接口

    • agent 接口:只需实现 query 函数,接收用户指令、工具列表和环境状态;支持把 LLM、工具执行循环、注入检测器等组合成模块化 pipeline(附录 Figure 11、12 给出组件与示例)。
    • 预置防御:Data delimiters(按 Hines et al. [19] 给工具输出加分隔符并提示忽略其中指令)、PI detector(ProtectAI 的 BERT 分类器逐工具输出检测、命中即中止)、Prompt sandwiching(每次函数调用后重复用户指令)、Tool filter(隔离机制简化版:先选定所需工具再接触不可信数据)。

    攻击接口与指标

    • attack 接口:攻击函数输入注入任务,为每个攻击占位符返回注入文本;get_injection_candidates 依据用户任务的 ground truth 调用序列找出会被查到的占位符(附录 A)。
    • 三个指标:Benign Utility(无攻击时用户任务完成率);Utility Under Attack(攻击下既完成用户任务又无副作用的比例,其补为 untargeted ASR);Targeted ASR(攻击者目标达成的比例)。
    • 攻击集合:对攻击集合 {A1,…,An},任一攻击成功即记成功,模拟为每个用例选择最佳攻击的自适应攻击者(援引 [6])。
  4. 论文做了哪些实验?

    10 个 LLM 全量评测+GPT-4o 上的攻击/防御消融:无攻击 utility 最高 78.22%,GPT-4o 无防御 ASR 47.69%,Tool filter 降到 6.84%。

    实验设置

    • 被测模型(10 个):Claude 3 Opus、Claude 3 Sonnet、Claude 3.5 Sonnet、GPT-3.5 Turbo、GPT-4 Turbo、GPT-4o、Gemini 1.5 Flash、Gemini 1.5 Pro、Llama 3 70B、Command R+;除 Llama 3 外均用官方 API 的 function calling。
    • 基准:AgentDojo 全量 629 个安全测试用例、97 个用户任务;攻击与防御消融只用 GPT-4o(作者称其 benign utility 最高;Claude Opus 效用相近但访问受限)。
    • 基线攻击:"Important message" 注入(预实验中发现有效),消融中对比 TODO、Ignore previous、InjecAgent 注入及自适应 Max。
    • 基线防御:Data delimiters、PI detector(ProtectAI BERT)、Prompt sandwiching(表中作 Repeat prompt)、Tool filter。
    • 指标与判定:Benign Utility、Utility Under Attack、Targeted/Untargeted ASR,均由确定性 utility/security 函数按环境状态判定,不用 LLM 评审。
    • 误差与成本:报告 95% 置信区间(statsmodels proportion_confint);跑全量 629 用例在 GPT-4o 上约 35 美元,97 个效用用例约 4 美元(附录 D);论文未报告重复运行次数。

    主结果

    据 Table 3(Important message 攻击,95% 置信区间略):

    表格较宽,可左右滑动

    模型Benign utilityUtility under attackTargeted ASR
    Claude 3.5 Sonnet78.2251.1933.86
    GPT-4o69.0050.0847.69
    Claude 3 Opus66.6152.4611.29
    GPT-4 Turbo63.4354.0528.62
    Claude 3 Sonnet53.1033.2326.71
    Gemini 1.5 Pro45.6328.9325.60
    Gemini 1.5 Flash36.0934.1812.24
    Llama 3 70b34.5018.2820.03
    GPT-3.5 Turbo33.8634.668.43
    Command-R+25.4425.120.95
    • 作者称能力更强的模型往往更易被攻击,视为一种 inverse scaling [38];作者解释低效用模型即使注入成功也常无法正确执行攻击者目标。
    • 作者称良性效用与攻击下效用强相关,多数模型攻击下绝对效用损失 10%–25%(Figure 6b)。
    • 作者称良性设置下能力最强的是 Claude 3.5 Sonnet、其次 GPT-4o,且前者在效用-安全权衡上更好。

    攻击消融(GPT-4o)

    • 注入措辞影响大:据 Table 4,targeted ASR 分别为 TODO 3.66%、Ignore previous 5.41%、InjecAgent 5.72%、Important message 57.7%;自适应 Max 的 untargeted ASR 为 68.36%(正文称 Max 把成功率再提高 10%)。
    • 攻击者知识:据 Table 2,基线 45.8%;用户名和模型名都正确时 47.7%(+1.9%);猜错用户或模型名分别降到 23.2% 和 23.7%。作者称先验知识收益有限,猜错则削弱攻击。
    • 注入位置:作者称注入放在工具返回文本末尾最有效,对 GPT-4o 平均成功率最高 70%(Figure 21a);Slack 套件 ASR 达 92%,作者认为可能与攻击者控制较大比例工具输出有关(Figure 21b);Travel 套件注入任务 6 成功率为 0%,作者发现模型常只完成两个不相关恶意子任务之一。

    防御评测(GPT-4o)

    据 Table 5(对最强攻击):

    表格较宽,可左右滑动

    防御Benign utilityUtility w. attackTargeted ASR
    No defense69.0%50.01%57.69%
    Delimiting72.66%55.64%41.65%
    PI detector41.49%21.14%7.95%
    Repeat prompt85.53%67.25%27.82%
    Tool filter73.13%56.28%6.84%
    • 作者称多种防御反而提高良性效用(推测因为更强调原始指令);PI detector 误报多、损害效用。
    • Tool filter 最有效:ASR 降到 6.84%(正文另处写 7.5%);作者指出它在工具无法预先规划、或解题所需工具足以完成攻击时失效(后者占测试用例 17%)。
    • 作者认为 Repeat prompt 对当前攻击有效,但不太可能抵御自适应攻击(如指示模型忽略未来指令的注入)。

    其他消融与分析

    • 难度对比:作者称 AgentDojo 良性任务难于 Berkeley Tool Calling Leaderboard(Figure 2;Llama 3 70B 用了不同提示词)。
    • DoS 攻击:要求停止、脏话、Captcha 等 untargeted 攻击均不如带恶意目标的 targeted 攻击更能使模型脱轨(Figure 20)。
    • 成本:全量安全用例在 GPT-4o 约 35 美元(附录 D)。
  5. 有什么可以进一步探索的点?

    作者列出五项扩展方向(更强攻防、自动化任务生成、更难任务、多模态、注入约束);实验覆盖 10 模型、防御仅测 GPT-4o。

    作者指出的局限与后续方向

    • 攻防较简单(Section 5):当前用的是相对简单的攻击和防御,未来可加入更复杂的防御(如隔离式 LLM [63, 66])和攻击 [15]。
    • 任务靠人工指定(Section 5):要扩展到更多任务与攻击目标,可能需要自动化目前人工指定任务与效用标准的流程,同时不牺牲评测可靠性。
    • 需要更难的任务(Section 5):工具选择防御(或更复杂的隔离机制)无法直接解决的任务尤其值得加入。
    • 不支持多模态(Section 5):可扩展为同时处理文本与图像的多模态智能体,扩大任务与攻击范围。
    • 注入无约束(Section 5):对提示注入加入长度或格式等约束可更好刻画真实攻击者能力。
    • Tool filter 的失效场景(Section 4.3):工具列表无法预先规划、或解题工具足以实施攻击(占 17% 用例)时失效;用户跨时间给多个任务且不重置上下文的场景 AgentDojo 尚未覆盖。

    实验覆盖范围

    • 被测模型共 10 个(Table 3),主攻击为 Important message 注入;攻击措辞消融含 4 种注入加自适应 Max(Table 4)。
    • 防御评测只在 GPT-4o 上进行,含 4 种防御(Table 5);攻击者知识消融也只用 GPT-4o(Table 2)。
    • 每个模型跑全量 629 个安全测试用例与 97 个用户任务;论文报告 95% 置信区间,但未报告重复运行次数。
    • 注入位置分析针对 GPT-4o(Figure 21a);DoS 类 untargeted 攻击在四个套件上做了对比(Figure 20)。
    • 良性难度对比使用 Berkeley Tool Calling Leaderboard 的已报告结果,Llama 3 70B 用了不同提示词(Figure 2 脚注)。
  6. 总结一下论文的主要内容

    AgentDojo:含 97 任务、629 安全用例的动态提示注入攻防基准;现有模型效用与鲁棒性都不足,攻防均有挑战。

    AgentDojo 是一个评测工具调用 LLM 智能体在间接提示注入下效用与安全性的动态基准框架,针对现有智能体基准无显式攻击、注入基准无真实多轮工具调用、LLM 模拟评审易被注入劫持等问题而设计。

    • 要解决的问题:攻击者把恶意指令藏进工具返回的不可信数据,劫持智能体以用户名义执行恶意任务(如窃取数据、转账);如何可靠度量这种威胁下的攻防进展。
    • 方法要点:四个有状态环境(Workspace、Slack、Travel、Banking),70 个工具、97 个用户任务与 27 个注入目标做笛卡尔积得到 629 个安全测试用例;用确定性的 utility/security 函数检查环境状态判定成败;攻击、防御、智能体均为可扩展接口。
    • 主要结果:10 个模型无攻击时 benign utility 最高 78.22%(Claude 3.5 Sonnet,Table 3);GPT-4o 无防御时 targeted ASR 47.69%,而 Command R+ 仅 0.95%(Table 3);作者称能力越强的模型越易被攻击。
    • 攻防发现:注入措辞影响大,Important message 攻击 ASR 57.7%,远高于 InjecAgent 注入的 5.72%(Table 4);注入放在工具输出末尾最有效(最高 70%);Tool filter 防御把 GPT-4o 的 ASR 降到 6.84%,PI detector 降到 7.95% 但良性效用降到 41.49%(Table 5)。
    • 作者结论:AgentDojo 对攻击方和防御方都构成挑战——现有攻击能破坏部分安全性质但非全部,现有防御均不完美;作者认为要抵御更强的自适应攻击,可能需要 LLM 区分指令与数据的能力取得突破,并希望 AgentDojo 作为持续更新的基准衡量进展。

相关论文

共同使用 AgentDojo
再看 3 篇
共同使用 AgentDojo
阅读原文arxiv.org