Jailbreak 是让模型违反自身训练策略,受害者是厂商;Prompt Injection 是让模型听从第三方内容,受害者是用户。更好的对齐模型能减少 jailbreak 但对 injection 效果有限——因为 injection 不需要模型「做它认为错的事」。
本页只列出这些类别,不再进一步展开。它不会列出当前可用的 prompt,因为那份列表在一次模型更新后就过时了,而防御者并不需要它——防御者需要的是这类攻击的形态,这样他们的防御措施就不必依赖识别出其中的某一个具体案例。
两者经常被混为一谈,但它们攻击的目标不同,这意味着它们需要不同的防御手段。
实际结果是:一个对齐更好的模型能显著减少越狱攻击,但对注入攻击的效果相对有限,因为注入并不需要模型做任何它认为错误的事情。购买"更安全的模型"是一个真正的越狱防御手段,但对注入防御却很弱。
几乎所有流通中的技术都是这些类别之一,而每个类别的存在都源于模型训练和服务方式的一个结构性特征——这就是为什么不断有新的变体出现。
将请求重新表述为虚构内容、假设场景、翻译任务、角色扮演或据说有不同规则的身份。之所以存在这类攻击,是因为拒绝是上下文敏感的,而模型必须能够讨论它不会主动去做的事情。
用安全训练中接触较少的形式来表达请求——比如另一种语言、编码、密码、字符替换或低资源语言脚本。之所以存在这类攻击,是因为安全对齐在输入分布上的覆盖是不均匀的,而能力泛化的范围比安全对齐更广。
将被拒绝的请求拆分成多个单独无害的步骤,然后在模型外部组合结果。之所以存在这类攻击,是因为策略评估是逐轮进行的,而模型无法看到完整的组合。
用大量材料填满长上下文,使目标行为看起来像是已建立的模式。Anthropic 在 2024 年 4 月将这类攻击公布为"多示例越狱"(many-shot jailbreaking),发现效果随着上下文示例数量的增加而增加——这是长上下文窗口的一个新兴代价。
针对模型优化一个后缀或释义,直到拒绝停止。Zou 和同事在 2023 年展示了基于梯度的可迁移对抗后缀攻击("Universal and Transferable Adversarial Attacks on Aligned Language Models")。这类攻击对防御者最为重要,因为它将人类从攻击循环中移除:你的过滤器面对的是一个搜索过程,而不是一个人。
先通过几轮良性交互建立框架,然后在后续轮次中才提出请求。之所以存在这类攻击,是因为训练强调单轮拒绝,而对话会被重新阅读为一个整体序列。
将请求承载在图像、音频或模型会读取的文档中。之所以存在这类攻击,是因为安全训练和输入预处理在不同模态上的成熟度并不对等。
直觉上的反应是收集有效的 prompt 并将它们屏蔽。这不会收敛,有三个原因值得明说。
空间是无界的。 每个类别都是一个语义等价类,拥有无限多个成员。屏蔽一个字符串只是屏蔽了一个字符串。屏蔽一个释义类别需要一个语义分类器,而分类器有误报率,攻击者可以探测。
攻击者的循环比你更快。 自动化搜索持续且廉价地生成候选 prompt。人工维护的屏蔽列表最多每周更新一次。
收紧策略有代价,而你会在他们之前感受到。 每次提高严格程度都会在合法流量上增加误报——医疗问题、安全研究、小说、翻译 Past a point, the refusals your own users hit exceed the harm prevented, and nobody measures that trade unless they set it up deliberately.
超过某个临界点后,你的用户遇到的误报会超过被阻止的危害,除非有人刻意设置,否则没有人会去衡量这个取舍。
明确你实际在保护什么。 如果你的应用根本不需要拒绝某个话题,底层模型的越狱可能不会让你付出任何代价。将控制范围限定在真正的危害上——触达其他用户的输出、触发操作的输出、带有你品牌标识的输出。
过滤输出,而不仅仅是输入。 输出是危害发生的地方。它比"人们可能提问的所有方式"这个空间更小、更具体,而且能同时捕获所有类别。
尽可能把策略放在模型外部。 如果某个能力永远不应该被用于某个目的,就删除那条路径的能力,而不是依赖拒绝。
为反复探测设置监控。 单个异常请求只是噪音。一个密钥在十分钟内发出四十个变体才构成搜索过程,这种模式即使每个单独请求都无可疑也能被检测到。
准备响应路径。 先限流,再增加摩擦,然后暂停。没有后果的越狱是对继续迭代的邀请。
公开的越狱率说的是别人的系统在其他版本的模型上的情况。如果你需要一个数字,就在自己的技术栈上生成:构建一组小型标记 prompt 集,代表你实际关心的危害,在每次模型和 prompt 变更时运行它,并追踪趋势而非绝对值。公开的基准测试套件存在于此,是合理的起始语料库;其价值在于回归信号,而非分数。
做到这一点后,"我们的 prompt 变更是否让我们更不安全了"就变成了一个可回答的问题,这比任何分类法能给你的都多。构建这套测试机制的细节在内容安全层页面中。