[论文学习]AgentDojo:用于评估LLM智能体提示注入攻击与防御的动态环境
AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents论文重点AgentDojo是由ETH Zurich和Invariant Labs联合提出的动态评估框架旨在系统性地衡量LLM智能体在执行工具调用时的对抗鲁棒性。该框架包含97个真实任务和629个安全测试用例覆盖邮件管理、在线银行、旅行预订等场景为提示注入攻击与防御研究提供了首个可扩展的标准化评估平台。核心研究内容问题定义LLM智能体通过结合文本推理与外部工具调用来解决复杂任务但这一设计范式存在根本性的安全缺陷LLM直接处理文本缺乏区分“指令”与“数据”的形式化能力。提示注入攻击正是利用这一漏洞——攻击者将恶意指令嵌入第三方数据如邮件正文、网页内容、API返回结果当智能体通过工具获取这些数据时恶意指令便可能劫持智能体的行为执行攻击者指定的操作。现有基准测试要么局限于静态场景要么依赖LLM模拟环境状态无法准确反映智能体在真实动态环境中的行为。AgentDojo填补了这一空白。创新方法AgentDojo的核心创新体现在以下几个层面1. 动态、有状态的评估环境与传统的静态测试集不同AgentDojo是一个可扩展的交互式环境。智能体需要在此环境中动态地调用多个工具且每次工具调用都会改变环境状态。这意味着攻击和防御的效果必须在完整任务执行的上下文中进行评估而非孤立地判断单次模型输出。2. 基于环境状态的正式效用与安全度量AgentDojo不依赖LLM来“模拟”环境或判断任务是否完成。相反它通过对环境状态进行形式化检查来计算任务完成度utility和攻击成功率security。例如判断“邮件是否已发送”或“敏感数据是否被泄露”直接检查环境中的邮件记录或文件系统即可避免了LLM作为评判者可能带来的偏差和不稳定性。3. 任务-攻击-防御的正交化设计AgentDojo将任务user task、攻击attack和防御defense三个维度解耦。同一组用户任务可以搭配不同的攻击策略和防御机制进行测试从而系统性地评估各种组合下的效用-安全权衡utility-security tradeoff。这种设计使得研究人员可以独立地改进某一个维度而不需要重新设计整个实验。4. 可扩展的架构AgentDojo被设计为可扩展的框架而非封闭的基准。研究人员可以轻松添加新的任务套件task suite、新的攻击范式、新的防御机制甚至新的智能体架构。这使其能够跟随LLM智能体领域的发展而持续演进。研究成果论文通过大量实验揭示了几个关键发现智能体基础能力不足。即使在完全没有攻击的情况下最先进的LLM智能体在许多任务上仍然失败。这表明当前智能体的基础任务执行能力本身就有很大的提升空间安全问题只是冰山一角。现有攻击效果有限。现有的提示注入攻击能够破坏部分安全属性但并非全部。这意味着没有一种攻击是“万能”的不同的攻击策略在不同场景下效果差异显著。AgentDojo构成双重挑战。对于攻击者而言在保持智能体正常执行用户任务的同时实现攻击目标是一个高度复杂的优化问题。对于防御者而言在不显著损害任务效用的前提下抵御攻击同样极具挑战性。论文还报告了该框架已被美国和英国AISIAI安全研究所用于评估Claude 3.5 Sonnet的提示注入漏洞。实际落地应用的可行性AgentDojo的实用性已在多个层面得到验证。首先它获得了ML Safety SafeBench竞赛一等奖证明了其在AI安全评估领域的学术认可度。其次US和UK AISI已将其用于实际的智能体安全评估说明该框架已从学术研究走向实际应用。对于企业而言AgentDojo可用于在上线前评估智能体系统的安全风险对比不同防御策略的效用-安全权衡持续监控智能体系统在对抗环境下的表现技术细节框架架构AgentDojo的核心工作流程如下任务定义每个任务包含用户指令user task、初始环境状态以及用于判断任务完成的形式化条件utility checks。安全测试定义每个安全测试包含攻击者目标attacker goal和注入端点injection endpoint。智能体执行智能体在环境中逐步调用工具每一步都可能触发注入。结果评估通过检查最终环境状态分别计算效用得分和安全得分。任务套件AgentDojo首个版本包含三个任务套件套件场景描述任务数量Workspace邮件客户端与文件系统管理多种日常办公任务Banking在线银行操作转账、查询等金融操作Travel旅行预订机票、酒店预订等攻击范式AgentDojo实现了多种提示注入攻击策略包括直接注入在工具返回的数据中直接嵌入恶意指令间接注入通过第三方数据源如网页、文档传递恶意内容带工具知识的攻击攻击者了解可用工具及其参数构造更精准的注入防御范式框架内置了多种防御机制供对比评估提示增强Prompt Enhancement在系统提示中重复用户指令强化其优先级检测过滤Detection Filter使用专门模型检测并过滤注入内容工具过滤Tool Filter隔离函数调用与智能体的主要规划组件代码示例以下是通过AgentDojo运行基准测试的命令行示例# 在workspace套件上运行任务0和1使用gpt-4o模型工具过滤防御带工具知识的攻击python-magentdojo.scripts.benchmark\-sworkspace\-utuser_task_0-utuser_task_1\--modelgpt-4o-2024-05-13\--defensetool_filter\--attacktool_knowledge# 在所有套件和任务上运行python-magentdojo.scripts.benchmark\--modelgpt-4o-2024-05-13\--defensetool_filter\--attacktool_knowledge安装方式pipinstallagentdojo# 如需使用提示注入检测器pipinstallagentdojo[transformers]研究设定硬件与软件要求AgentDojo本身是轻量级的Python框架核心逻辑不依赖特定硬件。主要要求包括Python环境Python 3.8LLM后端支持OpenAI API如GPT-4o、Anthropic API如Claude以及本地部署的开源模型如Llama可选依赖如需使用内置的提示注入检测器需安装transformers库实验设计论文中的实验采用以下设定智能体测试了多种SOTA LLM作为智能体的推理引擎任务集97个真实任务覆盖三个场景套件攻击集629个安全测试用例评估指标效用Utility任务是否成功完成基于环境状态的形式化检查安全Security攻击目标是否达成同样基于环境状态检查对比基线多种攻击策略 × 多种防御策略的组合综合分析AgentDojo的出现标志着LLM智能体安全评估从“静态问答”走向“动态交互”的重要转变。以下几个角度值得深入思考第一指令与数据的根本性冲突。AgentDojo揭示的问题根植于LLM的本质特性——文本输入中无法区分“这是指令”和“这是数据”。这个问题在传统计算系统中早已解决代码与数据分离但在LLM范式中被重新打开。AgentDojo的价值在于它迫使研究者直面这一根本性矛盾而非回避它。第二效用-安全权衡的现实性。论文发现SOTA模型即使在无攻击情况下也会失败这揭示了一个深刻的现实安全防御不能以牺牲基础能力为代价。如果一个防御机制让智能体在99%的无攻击场景中都无法完成任务那它在实际部署中毫无价值。AgentDojo通过同时评估效用和安全迫使研究者正视这一权衡。第三基准的动态性至关重要。提示注入攻击和防御都在快速演进。静态基准很快会过时——攻击者会找到绕过方法防御者会找到新的防护手段。AgentDojo的可扩展设计理念而非封闭测试集是应对这一挑战的正确方向。第四实际部署的复杂性。AgentDojo的任务场景邮件、银行、旅行虽然已经是真实任务的简化版本但已足够揭示智能体安全的高度复杂性。在实际部署中智能体可能面临更复杂的工具集、更不可预测的数据来源以及更智能的自适应攻击者。AgentDojo提供了一个起点但远非终点。实践应用基于对AgentDojo的分析以下是对研究人员和工程实践者的具体建议对于研究人员优先提升基础能力在追求安全之前确保智能体在无攻击场景下有足够高的任务完成率。一个连正常任务都做不好的智能体谈安全没有意义。系统性评估防御使用AgentDojo同时报告效用和安全指标避免“为了安全而牺牲一切”的片面优化。探索架构级防御提示增强和检测过滤等表层防御效果有限。更根本的解决方案可能需要在架构层面将“指令处理”与“数据处理”分离。关注自适应攻击AgentDojo支持设计新的攻击策略。研究防御时应考虑攻击者会针对你的防御进行调整的场景。对于工程实践者上线前必做安全评估使用AgentDojo或类似框架在智能体系统上线前系统性地评估其对抗鲁棒性。US和UK AISI的实践已证明这一做法的价值。建立持续监控机制提示注入攻击的手段在不断演进。一次评估通过不代表永远安全。建议将AgentDojo集成到CI/CD流程中作为持续安全测试的一部分。理解防御的代价任何防御机制都会带来效用损失和成本增加。在实际部署中需要根据具体场景的风险等级选择合适的防御强度。关注社区动态AgentDojo已有多个后续工作在其基础上发展了新的防御方法。跟踪这些进展可以帮助你及时采用更优的防护方案。参考资料原始论文AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM AgentsGitHub仓库ethz-spylab/agentdojo项目文档agentdojo.spylab.ai论文作者Edoardo Debenedetti, Jie Zhang, Mislav Balunović, Luca Beurer-Kellner, Marc Fischer, Florian TramèrETH Zurich Invariant Labs发表会议NeurIPS 2024 Datasets and Benchmarks Track