可信动作清单:2024年防Agent越狱攻击权威实践指南
当AI智能体开始处理邮件、浏览网页并操作工具时,一个关键的安全挑战随之浮现:它是否会因外部内容而执行越权操作?近期一篇题为《PlanGuard: Action-Level Guardrails for Language Agents via Reference Plan Verification》的学术论文,系统剖析了这种“间接越狱攻击”的机制,并提出了一套工程导向的防御框架。
论文链接:https://arxiv.org/pdf/2604.10134
“间接越狱”的核心在于攻击媒介的间接性。用户指令本身可能无害,但智能体在处理被污染的邮件、网页等外部信息时,会被诱导执行越界行为。研究将此类攻击主要归纳为两种模式。
第一类,工具调用劫持。 用户意图可能是阅读或总结内容,但智能体却被诱导调用高风险工具,例如发送邮件、执行系统命令或发起支付。其本质是执行了本不应出现的操作。
第二类,操作参数劫持。 这种攻击更为隐蔽。工具调用本身符合预期,但传入的参数被恶意篡改。例如,删除临时目录的指令被替换为删除系统路径,支付账单的收款方和金额被暗中修改。表面工具调用正确,实际执行目标已偏离用户原意。
因此,从工程安全视角,智能体防护必须解决两个核心问题:当前动作是否被允许执行?该动作的参数是否仍符合用户原始意图? PlanGuard方案正是围绕这两个问题构建其防御体系。
1. 生成“可信动作清单”
PlanGuard的核心机制可概括为“可信动作清单校验”。其逻辑清晰:首先在隔离环境中生成一份“参考计划”;随后,智能体的每一个真实动作都必须与此计划进行比对验证。
第一步:隔离规划。 这是方案的关键设计。引入一个与所有外部内容完全隔离的“规划器”,它仅能访问两项信息:用户的原始指令,以及系统当前可用的工具列表。它无法接触任何邮件正文、网页数据或工具返回结果。
此举目的明确:确保“参考计划”的生成过程绝对不受污染数据影响。规划器需要回答的问题是:仅基于用户原始需求,不考虑任何外部信息,本次任务理论上允许哪些动作? 最终输出一份“可信动作清单”,明确界定本次任务的执行边界:允许调用哪些工具、合理的动作方向、以及哪些工具调用根本不应出现。
这一思路具有启发性。许多现有防御方法依赖于已接触污染上下文的智能体进行自我审查,这如同让被带偏者审判自己,稳定性存疑。PlanGuard则转换视角:既然外部数据可能被污染,那么“定义执行边界”这一关键环节就应完全隔离于污染数据之外。
第二步:实时核对。 获得“可信清单”后,每当智能体尝试调用工具时,PlanGuard不会直接放行,而是先进行比对:欲调用的工具是否在清单内?若在,其参数是否合理?若不在,则直接拦截。
论文将此步骤设计为两层校验:
① 第一层:硬规则校验。 执行最直接的规则匹配。若当前欲调用的工具根本不在参考计划中,则判定为越界并立即拦截。若工具在列但参数与参考动作不完全一致,则进入下一层进行语义判断。此层特点是规则硬、稳定性高、解释性强,能快速拦截大部分明显的越界操作。但其局限性在于:现实中的参数格式常有差异(如“last_week”与“lastweek”),仅依赖字符串级别的刚性匹配容易产生误报。
② 第二层:语义意图校验。 当工具调用合理但参数形式存在差异时,交由一个辅助模型进行判断:此次参数变化属于正常的表达差异,还是已经偏离了用户的任务意图?此层充当“语义复核员”,专门处理“规则不一致但语义可能合理”的模糊情况,旨在提升系统的可用性。
整个流程分工明确:第一层构筑安全基线,第二层保障操作灵活性。这使得该方案更接近一个权衡了安全与可用的工程系统,而非单一的技术技巧。
2. 方法论的价值
该论文的突出价值在于它重新定义了防御的基准依据。
许多安全方案的默认路径是:模型接触恶意内容 → 期望模型能识别 → 期望模型拒绝执行 → 期望模型足够稳定。这条路径的问题在于,它将过多希望寄托于“模型自身的可靠性”。然而,当智能体开始操作真实工具、触及真实资产时,仅依赖“模型应懂得拒绝”是远远不够的。
PlanGuard的思路更贴近系统工程:不预设模型永远可靠,而是先假设外部上下文可能被污染;将“定义执行边界”这一关键任务独立并前置完成;要求后续所有真实工具调用都必须经过这份独立计划的额外核验。这相当于在智能体外部增设了一个“执行控制面”,该控制面不负责内容生成,只专注于回答一个权限问题:当前这一步操作是否有权执行。 从产品与架构视角看,这种思路比单纯“训练一个更强大的防御模型”更具落地可行性。
3. 实验验证
论文使用InjecAgent基准进行评估,任务覆盖多种工具调用场景,包括直接危害操作与隐私数据泄露。
实验结果中一个关键发现是:在无防护状态下,智能体在间接攻击下的越狱成功率相当高。 这表明,只要外部内容设计巧妙,诱导智能体执行未授权操作并非难事。
引入PlanGuard后,攻击成功率被显著压制。特别是第一层硬规则,自身就能拦截大部分明显的越界动作;再结合第二层语义复核,整体误报率也得到明显改善。
这一结果不仅证明了方案的有效性,更揭示了一个核心问题:智能体安全的关键瓶颈,往往不在于模型回答的质量,而在于工具调用前是否设有可靠的检查关口。 对于普通聊天模型,错误回答的风险可能局限于内容层面;但对智能体而言,一次错误的工具调用,风险将直接传导至资产、数据和系统操作层。因此,智能体的防御绝不能仅停留在输入检测与输出审查。
4. 方案的局限性
当然,该方案也存在其局限性。
第一,引入额外开销。 由于增加了隔离规划与分层校验流程,推理次数、时延及Token成本都会相应上升。对于轻量级场景,这可能不是最优选择;但对于涉及高权限、高价值资产的操作,此类成本通常是可接受的。
第二,更擅长拦截“越界动作”,处理复杂参数问题仍有挑战。 某些任务天然依赖外部上下文,例如“支付这封邮件中的账单”、“根据附件内容填写表单”。此时,“是否应调用支付工具”相对容易判断,但“支付对象、具体金额、表单字段值”等参数又必须源自外部上下文。这就形成了张力:参考计划隔离得越彻底,安全性越高,但对复杂参数的核验能力就越弱。因此,该方法更适合作为“动作边界控制层”,而非万能的“上下文真实性验证器”。
第三,第二层的语义判断仍依赖模型能力。 虽然第二层比纯规则更灵活,但其本质仍是一层模型判断。这意味着它能显著改善可用性,但无法提供绝对形式化的安全保证。论文作者对此也持坦诚态度。
5. 实践启示
将论文思路置于实际的智能体落地场景中,可提炼出三点关键启示。
第一,高风险操作应与外部内容“隔离”。 凡是涉及发信、支付、文件修改、命令执行、配置变更或向外部系统提交数据等能力的工具调用,都不应直接由可能被污染的上下文驱动。在执行前,应设立独立的、基于可信计划的核验流程。
第二,工具权限不应仅是静态白名单。 传统权限控制回答“用户能否使用某工具”;而智能体场景还需回答“在当前具体任务中,该工具是否应该出现”。PlanGuard的参考计划,本质是一种动态的任务级白名单,它不是授予用户永久权限,而是为当前任务定义执行边界。这一点尤其适用于企业级智能体、办公助理或多工具工作流场景。
第三,安全校验宜采用分层架构。 仅依赖规则易导致误杀;仅依赖模型则安全边界不够坚实。更工程化的做法是分层处理:先用确定性规则守住明确边界,再用语义校验处理模糊地带,对于极高风险操作则可接入审计、二次确认或人工兜底机制。如此能在保障安全硬度的同时,维持系统可用性。
6. 总结:可信动作清单的价值
归根结底,这篇论文的核心贡献在于提出了“可信动作清单”这一概念。它并非简单地为智能体行为贴上“安全/不安全”的模糊标签,而是提前明确:本次任务允许执行哪些动作?这些动作的合理边界何在? 清单之外的动作一律禁止,接近边界的动作则进入复核流程。
这比常见的“内容安全护栏”更贴近智能体真正的风险点。内容护栏解决的是“说什么”,而可信动作清单解决的是“做什么”。在智能体日益深入现实工作流程的时代,后者的重要性将愈发凸显。


