← 返回题库
第 223 题 · Agent · 困难

如何防御 Agent 的间接 Prompt Injection 和工具滥用?

核心必会 这代表什么?
✓ 资料核验 来源说明:Datawhale 公开真实面试题整理;答案依据安全论文和 OWASP 官方文档原创整理
Prompt InjectionLeast PrivilegeTool Security
评论与补充 ↓
口述训练

先用自己的话答,再看参考说法

60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。

别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。

面试时怎么答

这题的关键态度是:Prompt Injection 不能只靠系统提示解决。把邮件、网页和检索片段视为不可信数据,模型提出的动作还要经过服务端工具白名单、参数策略、最小权限和高风险审批。追问数据外泄时,补充敏感信息按用途隔离,不能因为网页文字要求就改变授权边界。

可以这样答:

间接 Prompt Injection 是不可信内容试图改变 Agent 的指令或诱导其调用工具,单靠“忽略恶意提示”无法形成安全边界。网页、邮件和检索内容只能作为数据;真正的动作由服务端根据工具白名单、调用者身份、参数规则和最小权限再次校验。涉及敏感数据或不可逆操作时,还要做用途隔离和人工确认。

核心回答

间接 Prompt Injection 是把恶意指令藏在网页、邮件、文档或工具结果中,诱导 Agent 偏离用户目标并调用高权限工具。不能只靠系统 Prompt 或关键词过滤防御,因为模型同时处理自然语言指令与数据。系统应把外部内容视为不可信数据,在模型之外执行身份授权、最小权限、参数校验、网络出口限制和高风险确认,并让每个动作重新绑定原始用户意图。

展开说明

防护需要多层组合:

  1. 信任分层:系统规则、用户请求和外部内容标注不同来源,外部文本不能获得更高指令优先级。
  2. 最小权限:按任务临时授予细粒度工具和资源范围,读工具与写工具分离。
  3. 确定性策略:在执行器检查租户、对象所有权、参数范围、允许域名和业务前置条件。
  4. 高风险确认:付款、删除、授权、发送和公开发布在执行前展示规范化动作及影响。
  5. 数据与执行隔离:读取不可信内容的组件不直接持有高权限工具;必要时只向执行组件传递结构化、可验证结果。
  6. 输出与记忆防护:阻止敏感数据通过工具参数或链接外泄,未经验证的外部指令不能持久化到记忆。

Guardrail 模型和注入检测器本身也可能被绕过,只能作为纵深防御的一层。

工程实践

建立含网页隐藏指令、恶意邮件、RAG 投毒、工具描述污染和跨租户资源 ID 的红队集。日志记录动作提议、策略判定和执行结果,但不记录密钥。为高风险工具设置 Kill Switch、速率上限和只读演练环境,并定期验证授权撤销是否立即生效。

常见追问

  1. 直接 Prompt Injection 与间接 Prompt Injection 有什么区别? 直接注入由用户在输入中要求越过规则;间接注入藏在网页、邮件或文档等工具返回内容中,Agent 读取后被诱导执行。
  2. 为什么把外部内容放在分隔符中仍不能构成安全边界? 分隔符只是提示模型区分文本,没有强制执行能力;模型仍可能把其中内容解释为指令。
  3. 怎样让 Agent 能读邮件但不能被邮件指令诱导付款? 邮件读取工具只给只读权限,付款能力放在独立受控域,必须通过业务规则、明确用户授权和二次审批才能调用。

一句话复习

防御 Agent 注入要把不可信内容与执行权限隔离,并用模型外的授权和动作校验守住最终边界。

参考资料

无需账号 · 原地交流

评论与补充

评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。

正在加载评论…