防御不变量把模型输出当作不可信建议,把 Tool 权限和数据出口当作真正安全边界;评测以业务影响为终点,不以模型是否说出恶意内容为终点。

注入本质是指令与数据共享解释通道

直接注入由用户消息承载,间接注入来自网页、文档、邮件、检索片段、Tool 返回或其他 Agent。隐藏文本、编码、多模态内容与跨轮片段都可能在模型解释时获得影响力。System Message 的较高权威能改善正常冲突处理,却不是加密隔离,也不能保证模型在所有对抗输入下维持边界。

OWASP LLM01:2025明确指出 RAG 和微调不能完全缓解 Prompt Injection。NIST AI 100-2 E2025也把直接与间接 Prompt Injection 纳入生成式 AI 对抗分类。工程结论是把“模型不受影响”降级为一层概率控制,并在执行层建立确定性约束。

危险来自注入与能力的组合

同一段注入在只读问答中可能只造成错误回答,在具备邮箱、代码执行和云管理权限的 Agent 中却可能升级为凭据读取、消息发送或生产变更。完整路径包含入口、内容解释、目标或计划改变、Runtime 接纳、能力调用、业务影响和逃避检测;任何一个执行点都可以切断路径。

注入攻击链与纵深控制:内容层降低成功率,能力层限制影响
内容进入来源识别、解析、最小抽取和信任标记。
决策偏移目标不变量、计划约束与异常检测。
能力请求最小权限、Schema、资源授权与审批。
数据外发接收方、字段、域名和累计出口策略。

风险计算不能只统计“越狱率”。需要分别度量指令服从、敏感数据读取、未授权 Tool 请求、策略放行、外发成功和不可逆副作用。这样才能知道是模型层退化,还是执行层已经失守。

内容层减少指令混淆

进入 Context 的片段携带来源、租户、抓取时间、内容类型、信任级别和用途。系统指令明确外部内容只能作为数据,检索只返回完成当前任务所需字段;HTML 解析处理隐藏元素、元数据、重定向与附件嵌套,并保留原始来源用于审计。对固定任务优先用确定性解析器抽取标题、金额、日期等字段,而不是把整页原文交给模型。

分隔符、转义、关键字过滤、分类器和内容清洗都能降低常见攻击成功率,但它们与模型共享不确定性,也会被编码、翻译、分片或多模态绕过。清洗后的内容仍保持低信任标签,不能因“扫描通过”升级为系统指令。若解析器无法确认内容边界,默认缩小任务或要求人工确认。

Why Not:依赖秘密 System Prompt攻击者不需要完整知道 Prompt 才能影响行为。把权限规则、密钥或不可公开政策仅藏在 Prompt 中,既无法形成确定性授权,也会把 Prompt 泄露误当控制失效的唯一条件。

执行层决定攻击能造成多大影响

每个 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 或人工判断,应明确漏检、延迟和不可观测边界,不能用一次测试通过替代持续运营。

主动提取:为什么“模型识别出这是一段注入”仍不能放行?
识别本身是概率输出,后续生成仍可能受内容影响。低信任标记必须贯穿到计划、Tool 授权和出口策略,关键动作由确定性控制决定。
迁移判断:只读知识 Agent 是否可以省略所有 Tool 控制?
它可以缩小副作用面,但仍可能跨租户检索、泄露敏感数据、污染 Memory 或通过链接和 Artifact 外发。控制重点从动作授权转向检索权限、Context 最小化和出口治理。

资料与事实边界

以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。

  1. OWASP Top 10 for LLMs 2025:LLM01 Prompt Injection — 直接与间接注入、RAG/微调边界和纵深缓解
  2. NIST AI 100-2 E2025 — 生成式 AI 的直接/间接注入、滥用、隐私和可用性攻击分类
  3. OWASP Agentic AI Threats and Mitigations 1.1 — 推理、Memory、Tool、身份、多 Agent 与人类交互的控制组合
  4. MITRE ATLAS — LLM Prompt Injection、Agent Tool Invocation、Context Poisoning 与 Exfiltration 技术