prompt injection
间接注入、混淆代理、lethal trifecta 的机制与防御思路
核心要点:
- 直接注入走用户输入,间接注入走外部内容
- 混淆代理:低信任内容驱动高权限操作
- tool poisoning:工具描述里藏恶意指令
- lethal trifecta:私密数据 + 不可信内容 + 对外通信
- 防御:最小权限 + 数据指令分离 + 沙箱
本文讲通用 prompt injection。记忆作为一类攻击面见 03-记忆系统/08-记忆安全,沙箱隔离见 03-沙箱隔离。
prompt injection 为什么难防?
核心问题:注入攻击为什么不能像 SQL 注入那样靠转义解决?
因为 LLM 把指令和数据放在同一个 token 流里,无法在原理上区分"该执行的指令"和"该处理的数据"[1]。任何能送进上下文的文本,模型都可能当成指令执行。
这与传统注入有本质不同:SQL 有明确的代码/数据边界可转义,LLM 没有。OWASP 把它列为 LLM01——首要风险。下面看它在 agent 场景的具体形态。
间接注入和混淆代理是什么?
核心问题:攻击者不直接跟 agent 对话,怎么注入?
间接注入通过 agent 读取的外部内容(网页/邮件/文档/工具返回)投递恶意指令,混淆代理则是 agent 被低信任内容骗去执行高权限操作[1]。两者常组合出现。
- 间接注入:攻击者把指令藏进 agent 会读到的网页或文档,无需直接接触 agent。
- 混淆代理(confused deputy):agent 持有高权限,却被它读到的低信任内容支配——本质矛盾是"读不可信数据"和"有高权限"同时存在。
- tool poisoning:把恶意指令嵌进 MCP 工具的 description/schema,常用 Base64/hex 编码绕过人工审查(供应链视角见 04-MCP供应链)。
什么时候一次注入就能酿成数据外泄?
核心问题:注入成功后,什么条件让它从"捣乱"升级为"窃取"?
当 agent 同时具备私密数据访问、不可信内容接触、对外通信三种能力时,一次注入即可完整外泄数据——Simon Willison 称之为 lethal trifecta[2]。三者缺一不可,凑齐就致命。
- 私密数据访问:agent 能读敏感信息。
- 不可信内容接触:agent 会处理外部可控内容(注入入口)。
- 对外通信:agent 能把数据发出去(外泄出口)。
Microsoft 365 Copilot、GitHub MCP、Slack AI 都有公开的 trifecta 漏洞案例。可借鉴的判断:设计 agent 时检查这三项是否同时存在,能砍掉一项就砍掉——这是比事后过滤更可靠的架构级防御。
怎么防 prompt injection?
核心问题:既然无法在 token 层区分指令与数据,防御从哪下手?
从架构层分离信任边界,而非寄望于检测恶意 prompt。OWASP 推荐特权最小化 + 外部内容隔离 + 高风险操作人工确认[1]。更强的方案在架构上分离信任:
- Dual LLM:用特权 LLM 和隔离 LLM 分工,隔离 LLM 处理不可信内容、不持有权限。
- CaMeL:在架构层实现 P-LLM/Q-LLM 分离 + taint tracking(污点追踪),提供可证安全保证,AgentDojo 实测任务完成率 77%,防御代价约 7 个百分点[3]。
可借鉴的核心思路:把"处理不可信数据"和"持有高权限"拆给不同组件,让混淆代理无从发生。配合沙箱(见 03-沙箱隔离)和最小权限,构成纵深防御。
Takeaway
| 知识点 | 核心结论 |
|---|---|
| 难防根因 | 指令与数据共享 token 流,无原理性边界 |
| 间接注入 | 经外部内容投递,攻击者不接触 agent |
| 混淆代理 | 高权限 agent 被低信任内容支配 |
| lethal trifecta | 私密数据 + 不可信内容 + 对外通信凑齐即致命 |
| 防御 | 最小权限 + 信任边界分离(Dual LLM/CaMeL)+ 沙箱 |
参考资料
- OWASP. LLM01:2025 Prompt Injection. 2025. https://genai.owasp.org/llmrisk/llm01-prompt-injection/
- Simon Willison. The lethal trifecta for AI agents: private data, untrusted content, and external communication. 2025. https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/
- Debenedetti et al. Defeating Prompt Injections by Design (CaMeL). arXiv:2503.18813, 2025. https://arxiv.org/abs/2503.18813
延伸阅读
- 04-MCP供应链 — tool poisoning 的供应链视角
- 03-记忆系统/08-记忆安全 — 记忆作为注入的持久化攻击面