企业 Agent 如何防提示注入?OpenAI 与 Anthropic 给出的共同警告

从网页、邮件、文档和 MCP 工具返回值解释提示注入与数据外泄风险,并给出内容隔离、最小权限、审批和审计的纵深防御方案。

AI 安全提示注入AI AgentMCP

当 Agent 只能生成文字时,提示注入主要影响答案;当 Agent 能读邮件、访问网盘、调用 CRM 和发送消息时,同一种攻击可能导致越权操作或敏感数据外泄。

提示注入的本质,是外部内容中的文字或图像被模型错误地当成高优先级指令。攻击内容可能藏在网页、邮件、PDF、工单、代码注释、图片或工具返回值里,而人类用户未必看得见。

厂商的共同结论:风险仍未解决

Anthropic 在 浏览器 Agent 提示注入防御 中明确指出,没有浏览器 Agent 对提示注入免疫。它使用内容扫描、分类器和模型干预降低攻击成功率,但没有宣称问题已经解决。

OpenAI 在 Agent 点击链接时的数据安全 中讨论了 URL 驱动的数据外泄风险,并采用比简单“可信域名”更细的安全判断。一个合法网站也可能包含用户生成的恶意页面,域名白名单不能证明具体内容安全。

企业的正确结论不是等待一个完全免疫的模型,而是建立纵深防御。

第一层:把外部内容标记为数据

系统提示应明确网页、邮件、文档和工具返回值是不可信数据,不能改变 Agent 的目标、权限或安全规则。内容应保留来源边界,避免把多种来源直接拼接成一段没有出处的上下文。

模型提示可以降低风险,但不能作为唯一防线。攻击者仍可能使用变体、编码、图片或多轮诱导绕过。

第二层:读取与执行分离

负责阅读不可信内容的 Agent 不应同时持有高权限写入凭证。更安全的模式是:读取 Agent 提取结构化事实,策略层验证字段,执行 Agent 只接收经过校验的参数。

例如邮件整理 Agent 可以提出“建议给供应商回复”,但真正发送前应由独立策略检查收件人、附件、敏感词、外部域名和授权人。

第三层:权限绑定用户和任务

不要给所有 Agent 共用管理员 API Key。工具调用应使用用户委托身份或受限服务身份,签发短时凭证,并限制对象、动作、金额、时间和网络范围。

最小权限的作用是把一次模型误判的影响限制在可接受范围。即使提示注入成功,攻击者也无法自动获得系统本来没有授予的能力。

第四层:高风险动作在模型之外审批

转账、删除、发布、外发数据、修改权限和大规模消息发送,应由确定性策略或人工审批控制。模型可以解释为什么需要执行,但不能自己决定绕过审批。

审批页面要展示实际参数和外部影响,而不是只显示 Agent 的自然语言总结。用户需要看到“将向谁发送什么”“将修改哪些记录”。

第五层:记录并检测完整轨迹

日志应串联原始请求、读取来源、模型决定、工具参数、策略结果、审批和最终外部状态。异常检测可以关注未知域名、突然扩大读取范围、敏感数据与外部写入同时出现、重复失败和工具调用爆发。

日志本身也包含敏感信息,必须有访问控制、脱敏、保留期限和审计。

MCP 不是安全边界

MCP 统一了 Agent 发现和调用工具的方式,但协议兼容不代表服务器可信。企业需要审核 MCP 服务器的代码来源、维护者、版本、工具权限、网络访问、凭证存储和返回内容。

员工自行安装的 MCP 服务器可能成为新的软件供应链入口。生产环境应建立允许清单和统一注册中心,并在升级后重新运行安全评测。

发生攻击时如何止损

系统需要能立即暂停 Agent、撤销短时凭证、隔离相关工具、保存证据并回滚可恢复动作。安全团队应定期进行提示注入演练,不只测试模型会不会拒绝,还要验证监控、审批和应急响应是否真正工作。

提示注入不是“提示词写得不够好”,而是 Agent 系统把不可信信息与高价值权限连接后的结构性风险。解决它需要模型防御、内容隔离、权限、策略、审批和审计共同工作。

原始资料Anthropic Prompt Injection Defenses