返回安全研究

间接提示注入与 RAG 知识库安全

AI 安全专题 · EP.03 · 2026-08-22

上海见形信息科技有限公司 · 灵御(Aegis)安全实验室

外部数据如何影响 Agent 行为

AI Agent 会读取网页、邮件、文档与 API 返回结果。间接提示注入把指令放进这些外部材料,等待 Agent 在正常任务中读取。攻击者可以控制一份产品手册、一条工单或一段工具输出,通过数据通道影响模型接下来的回答与工具调用。

RAG(Retrieval-Augmented Generation)把内部 Wiki、产品手册、客户附件和工单转换为可检索的知识。攻击面同时存在于原始文档、解析结果、分块元数据、向量索引和召回排序。仅检查对话框中的用户输入,无法覆盖这些路径。

维度直接提示注入间接提示注入
指令入口用户输入网页、附件、知识库与工具结果
触发条件模型接收当前输入正常业务检索或工具调用
持续时间取决于会话与记忆机制污染文档或记忆持续存在时可反复触发
影响对象当前任务及其后续动作使用同一数据源的多个任务
检查位置输入与输出数据进入、检索、上下文和动作执行全过程

工具输出中的持续传播

恶意指令可能在上下文与工具输出之间反复传播:外部材料进入模型上下文,模型将其中的操作要求写进回复、任务记录或下一次工具参数,这些结果随后又被读取。

例如,产品手册的页脚出现一段要求改变退款流程的文字。客服 Agent 召回该章节后,可能把这段内容当成业务规则,再把异常要求写入工单回复。若工单回复继续进入知识库,同一要求就可能影响后续任务。

风险由三个因素共同放大:材料具有业务相关性;Agent 可以执行具有外部影响的工具;生成结果能够重新进入知识或记忆系统。清除原始文档时,还需要检查衍生工单、索引版本、缓存和长期记忆。

RAG 的三类污染路径

文档投毒

被接管的 Wiki 编辑账号、合作伙伴附件、客户上传的工单材料,都可能成为污染入口。文件来自常见业务渠道,只能说明它有业务用途;内容的完整性与操作权限仍需分别检查。

应记录文档来源、提交者、审批记录、版本和允许访问的用户范围。客户上传内容与内部审定手册需要有独立的数据分类及访问规则。

分块污染

HTML 注释、零宽字符、Unicode 控制字符、页脚与元数据可能在解析后进入分块。文件名、作者、标签和更新时间也可能被用于影响相关性排序。

解析过程应规范化可疑控制字符,并保留原始材料供复核。每个 chunk 需要关联原始文档、章节、版本与访问权限。内容安全检查既要覆盖正文,也要覆盖参与检索的元数据。

召回劫持

攻击者可以重复上传高度相关的材料,挤占 top-K 结果;也可以利用更新时间、来源权重和标签,让污染文档排在可信材料之前。

检索层需要执行访问权限过滤、来源分级、重复内容检测和结果来源记录。高相关性只代表检索匹配程度,业务规则的有效性仍需由受控来源确认。

产品手册场景中的攻击过程

以下为用于威胁建模的场景示例:客户支持 Agent 接入 Confluence、PDF 手册、工单查询和邮件工具。

阶段数据与操作需要检查的位置
材料进入合作伙伴发送含异常页脚的产品手册来源、版本、审批和附件内容
自动索引PDF 被解析、分块并写入向量库隐藏内容、元数据与 chunk 来源
正常检索客户询问退款,污染内容被召回权限过滤、来源等级和结果排序
行为改变Agent 把页脚中的要求用于回复数据与执行指令的边界
工具调用Agent 试图向新收件人发送业务信息收件人、发送目的、授权和敏感字段
再次传播回复或任务记录重新进入检索系统写回审核、版本追踪与污染清理

四个阶段的防御措施

数据进入前:来源和权限

  • 内部受控手册需要作者审计、版本管理和变更审批。
  • 合作伙伴与客户材料需要扫描和审核,可疑内容进入隔离区。
  • 公开网页与用户生成内容需要携带不可信来源标记。
  • 检索权限继承原始文档权限,并在每次召回时重新检查。

解析与分块:完整性和追踪

  • 统一处理 HTML 注释、控制字符和不可见内容,保留原始文件及转换记录。
  • 对正文、文件名和参与检索的元数据执行一致的安全检查。
  • 为 chunk 保存文档 ID、版本、章节与来源记录。
  • 对索引更新保留审核记录,使污染发生时间和影响范围可以查询。

召回之后:上下文边界

外部内容应带有明确的数据标记。系统规则、用户要求、工具结果和文档引用使用可辨认的结构,工具输出中的指令不得获得更高权限。

上下文分隔符与检测模型可以提供辅助信号。实际动作仍需由应用执行权限检查。长期任务应限制旧工具结果与记忆的使用范围,并对写入长期记忆的内容执行审核。

工具执行前:授权与审计

邮件外发、代码修改、命令执行、敏感数据读取和付款审批,需要检查调用者身份、目标资源、参数和当前任务的授权。高影响操作设置人工复核节点。

Agent 的工具清单应限制到业务需要的范围。审计记录覆盖检索来源、工具名称、参数、授权结果与执行结果,敏感字段需要脱敏处理。

运营检查项目

  1. 建立数据源清单与来源分级,为外部材料设置审核和隔离流程。
  2. 检查检索权限、索引版本与 chunk 来源记录能否连接到原始文档。
  3. 检查工具权限是否与 Agent 的业务职责一致。
  4. 演练污染材料删除、索引恢复、衍生记录清理和凭证撤销。
  5. 使用真实业务流程开展提示注入评估,检查外发、越权读取和记忆污染是否被阻止。

相关研究与参考资料