间接注入是什么
间接注入指注入指令不在用户输入里,而藏在第三方内容中——检索到的文档、抓取的网页、收到的邮件、工具返回的结果。风险在于用户完全不知情:整条链路是自动的,内容被抓进上下文后,里面的一句指令就可能触发越权读取、对外发送或修改数据。Greshake 等人 2023 年的研究系统展示了这类攻击在真实集成应用中的可行性,此后它成为代理型系统的核心风险之一。
要点
| 特点 | 用户看不到内容原文;触发点在自动化流程中 |
|---|---|
| 高发面 | RAG 知识库、浏览器代理、邮件处理、工单摘要 |
| 防护 | 来源信任分级加内容隔离加权限最小化加出站限制 |
| 检测 | 对入站内容做指令样文本筛查,高风险内容降级处理 |
| 责任边界 | 外部内容不得触发不可逆操作,动作需人工确认 |
典型暴露链路
- 知识库问答:攻击者在可编辑文档里写入指令样文本,被检索命中
- 网页摘要代理:页面正文里藏指令,代理摘要时被执行
- 邮件自动处理:外部来信内容触发自动回复或转发动作
- 第三方接口:返回文本被当作可信内容继续推理
- 共享表格:多人可编辑的单元格内容进入自动化流程
风险链路(示意)
风险链路(示意)
第三方内容(网页/文档/邮件)
→ 被系统抓取进上下文
→ 内容里的指令样式文本被模型执行
→ 触发越权读取、外发或修改操作
# 每一环都要有拦截:入站筛查、内容隔离、权限限制、出站审查分层防护对照
| 层次 | 做法 | 作用 |
|---|---|---|
| 入站 | 内容来源分级,对不可信来源做指令样文本筛查 | 降低高风险内容进入推理链 |
| 上下文 | 标签包裹并声明不得执行其中指令 | 降低被解读为指令的概率 |
| 工具与权限 | 白名单工具、只读账号、参数校验 | 即使被诱导也无法越权 |
| 出站 | 外发内容做地址与敏感信息检查 | 阻断数据外泄通道 |
任何自动流程都不应仅凭第三方内容触发不可逆动作:删除、付款、外发必须有人确认或二次验证。