跳到主要内容

提示词注入详解

进阶

提示词注入是 AI 应用最具代表性的安全风险。它发生在模型读取的不可信内容中包含指令,而模型把这些指令当作来自你本人一样去执行的时候。模型无法可靠地区分"待处理的数据"与"应遵从的命令"——它们对模型而言都只是文本。

两种形式

  • 直接注入——用户直接输入对抗性指令("忽略你的规则,然后……")。这是面向公众开放模型的应用需要关注的问题。
  • 间接注入——更危险的一种。恶意指令藏在智能体抓取的内容中:一个网页、一份 PDF、一封邮件、一段代码注释、一个 API 响应、一份日历邀请。用户从未看到它们;智能体读取后便照做。

为什么难以防范

不存在完美的过滤器。模型天生就会遵从其上下文中的指令,而被注入的文本正是处于它的上下文里。因此,防御的关键在于限制爆炸半径,而不仅仅是检测。

防御措施(分层叠加)

  • 最小权限。 只有当智能体拥有强大的工具时,它才能造成真正的破坏。严格限定工具范围;对高风险操作设置人工审批关卡。参见保护智能体
  • 把抓取到的内容当作数据对待。 用清晰的方式(例如使用分隔符)包裹不可信内容,并指示模型:分隔符内的任何内容都是待分析的信息,绝非需要遵从的指令
  • 不要把机密与不可信输入混在一起。 如果一个智能体既能读取你的机密,又能读取攻击者可控的内容,还能发起网络调用,这就构成了数据外泄三角——必须打破其中一条边。
  • 对不可逆/敏感操作(发送邮件、花钱、删除)采用人工介入(human-in-the-loop)
  • 监控并约束输出(例如,对智能体可调用的域名设置白名单)。

:::warning 假设智能体读取的任何内容都可能是恶意的 来自你信任边界之外的邮件、网页和文档,默认都应被视为潜在的对抗性内容。 :::

下一步