注入本质是指令与数据共享解释通道
直接注入由用户消息承载,间接注入来自网页、文档、邮件、检索片段、Tool 返回或其他 Agent。隐藏文本、编码、多模态内容与跨轮片段都可能在模型解释时获得影响力。System Message 的较高权威能改善正常冲突处理,却不是加密隔离,也不能保证模型在所有对抗输入下维持边界。
OWASP LLM01:2025明确指出 RAG 和微调不能完全缓解 Prompt Injection。NIST AI 100-2 E2025也把直接与间接 Prompt Injection 纳入生成式 AI 对抗分类。工程结论是把“模型不受影响”降级为一层概率控制,并在执行层建立确定性约束。
危险来自注入与能力的组合
同一段注入在只读问答中可能只造成错误回答,在具备邮箱、代码执行和云管理权限的 Agent 中却可能升级为凭据读取、消息发送或生产变更。完整路径包含入口、内容解释、目标或计划改变、Runtime 接纳、能力调用、业务影响和逃避检测;任何一个执行点都可以切断路径。
风险计算不能只统计“越狱率”。需要分别度量指令服从、敏感数据读取、未授权 Tool 请求、策略放行、外发成功和不可逆副作用。这样才能知道是模型层退化,还是执行层已经失守。
内容层减少指令混淆
进入 Context 的片段携带来源、租户、抓取时间、内容类型、信任级别和用途。系统指令明确外部内容只能作为数据,检索只返回完成当前任务所需字段;HTML 解析处理隐藏元素、元数据、重定向与附件嵌套,并保留原始来源用于审计。对固定任务优先用确定性解析器抽取标题、金额、日期等字段,而不是把整页原文交给模型。
分隔符、转义、关键字过滤、分类器和内容清洗都能降低常见攻击成功率,但它们与模型共享不确定性,也会被编码、翻译、分片或多模态绕过。清洗后的内容仍保持低信任标签,不能因“扫描通过”升级为系统指令。若解析器无法确认内容边界,默认缩小任务或要求人工确认。
执行层决定攻击能造成多大影响
每个 Agent 只获得当前任务所需 Tool,并使用短期、面向目标资源的凭据。Tool Gateway 对 Principal、Audience、租户、资源、动作和参数做授权;Executor 用 Schema、枚举、额度、业务不变量、幂等键和后置条件验证模型建议。生成代码、Shell、浏览器和文件操作进入 Sandbox,并限制网络、文件、进程、时间与资源。
高风险动作先生成可核对预览,展示收件人、金额、资源、字段与不可逆性。审批绑定具体参数和版本,任何关键差异都使旧批准失效。人工审批不是万能控制:批量低风险请求会造成疲劳,攻击内容也可能污染说明文本,因此 UI 必须用权威数据生成差异并限制批量授权。
| 层次 | 控制目标 | 失败时下一层 | 验证证据 |
|---|---|---|---|
| 内容 | 降低低信任指令影响 | 目标与计划约束 | 多来源攻击语料与行为差异 |
| 决策 | 维持任务不变量 | Tool Gateway | 异常计划拒绝与原因码 |
| 能力 | 阻断越权副作用 | Sandbox / 审批 | 负向授权与参数篡改测试 |
| 出口 | 阻断敏感数据离开 | 停止 Run 与事件响应 | DLP 阻断、撤销和对账记录 |
防止不可信内容诱导数据外传
最有效的第一步是不把无关敏感数据放进 Context。检索按主体、租户、用途和字段过滤;模型、子 Agent 与 Tool 只收到最小切片。模型输出、Tool 参数、远程消息、Artifact、图片或 URL 请求都经过同一出口策略,检查接收方、域名、字段分类、用途和一个 Run 内的累计量。
检测必须覆盖跨来源拼接、Base64 等编码、低速分片和允许域名中的路径或查询参数。阻断后停止继续读取,冻结或降低能力,撤销短期凭据,保存去敏 Trace,并由权威数据源确认是否已经外发。日志和错误上报也属于出口,不能把被阻断的敏感正文再次写入告警。
检测信号服务于处置
单独命中“ignore previous instructions”只能作为弱信号。更有价值的是来源异常、目标变化、未计划的 Tool、敏感读取后紧接外发、参数偏离历史范围、反复策略拒绝、审批被修改和用户纠正。信号在 Run、身份和租户维度关联,才能区分恶意链路与正常文档内容。
响应按影响分级:只读回答偏移可拒答并重试安全路径;越权调用请求应停止 Run、降低权限并通知 Owner;疑似泄露或副作用未知则撤销凭据、隔离 Artifact、对账外部系统并进入事件流程。恢复不仅重置会话,还要清理被污染的 Memory、索引、摘要和评测样本。
对抗测试覆盖完整系统
测试矩阵交叉入口、编码、轮次、模态、身份、Tool、数据类别与外发渠道,覆盖 RAG、Memory、MCP、Subagent、Artifact 和浏览器。攻击语料记录来源、预期路径和适用版本;模型随机性用多次运行和置信区间表示,不以一次拒绝宣称安全。
成功标准看业务影响:是否改变批准目标,是否读到未授权字段,是否请求或执行越权 Tool,是否把数据送出允许边界,是否造成重复或不可逆副作用。每个阻断应能在 Trace 中定位到控制、原因码和 Owner;红队发现进入 Golden Dataset 与回归门禁,修复后还要验证没有通过过度拒绝破坏合法任务。
OWASP Agentic 威胁与缓解强调 Agent 推理、Memory、Tool、身份、多 Agent 与人类交互的组合控制。测试也应以组合路径为单位,不能把各层单测通过相加为系统安全。
红队报告最后记录每条路径的控制 Owner、修复状态和残余风险。若检测依赖概率模型、外部 Provider 或人工判断,应明确漏检、延迟和不可观测边界,不能用一次测试通过替代持续运营。
主动提取:为什么“模型识别出这是一段注入”仍不能放行?
迁移判断:只读知识 Agent 是否可以省略所有 Tool 控制?
资料与事实边界
以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。
- OWASP Top 10 for LLMs 2025:LLM01 Prompt Injection — 直接与间接注入、RAG/微调边界和纵深缓解
- NIST AI 100-2 E2025 — 生成式 AI 的直接/间接注入、滥用、隐私和可用性攻击分类
- OWASP Agentic AI Threats and Mitigations 1.1 — 推理、Memory、Tool、身份、多 Agent 与人类交互的控制组合
- MITRE ATLAS — LLM Prompt Injection、Agent Tool Invocation、Context Poisoning 与 Exfiltration 技术