你面前站着一个严守纪律的保安,他的任务是:任何试图获取机密信息的人,一律拒绝。你手里只有一张纸条,上面是一句精心设计的话。你递过去,他看了一眼,摇头:不行。纸条作废。

但如果你的口袋里藏着一个私人助理,能听到保安每次拒绝时的措辞,分析他为什么拒绝,然后立刻递给你一张新纸条。多试几次,你进门只是时间问题。
这就是自适应越狱(Adaptive Jailbreak)的核心:攻击者不靠一个固定提示词去撞运气,而是根据目标模型的每一次回复,实时调整攻击策略。
2023年9月,宾夕法尼亚大学团队把这件事做成了系统。他们的论文标题就是《Jailbreaking Black Box Large Language Models in Twenty Queries》——用另一个LLM当“攻击者”,去诱导早期的GPT-4输出有害内容,平均20次对话内,成功率达到了84%。
静态越狱像念咒语,念错一次就废了
我最早接触越狱时,以为这跟黑客写exploit差不多:一个聪明人,冥思苦想,写出一句“魔法咒语”,比如让模型扮演DAN,或者用梯度算法算出一串乱码后缀(GCG)。这类方法有一个共同点:提示词是静态的。
静态意味着什么?第一,成败完全取决于这一句词;第二,被拒绝之后,它不会自我改进;第三,它往往依赖特定模型版本里某个具体的漏洞。打个补丁,咒语就失效了。
自适应攻击的思路完全不同:把“写一个提示词”变成“跑一轮优化”。目标模型的每一次拒绝,都不是失败,而是反馈。
| 维度 | 静态越狱 | 自适应越狱 |
|---|---|---|
| 提示词来源 | 人类专家或预生成脚本 | 攻击LLM根据响应实时生成 |
| 失败反馈 | 没有,失败就是失败 | 每一次拒绝都是优化信号 |
| 对模型了解要求 | 常需要白盒或可迁移攻击 | 只需黑盒API |
| 固定特征 | 有(独特句式/后缀) | 无(每轮都在变) |
PAIR:让一个LLM去“说服”另一个LLM
PAIR(Prompt Automatic Iterative Refinement)是三件套:攻击者LLM、目标LLM、评分器。攻击者LLM的任务只有一个:生成能让目标LLM说出禁忌内容的提示词。
攻击循环拆开来看很简单:
- 攻击者LLM根据任务描述生成第一版提示词。
- 提示词发给目标LLM,得到回复。
- 评分器判断回复是否已包含禁忌内容。是,攻击结束。
- 否,攻击者LLM拿到目标模型的回复文本,分析它为什么拒绝,修改提示词。
- 回到第2步,直到成功或触发查询预算上限。
整个设计最微妙的地方,是攻击者LLM自己的系统提示。PAIR论文里,攻击者被描述成参与“安全测试”的角色,它被告知(大意):
你的目标是构造一个提示词,诱导目标模型输出属于禁止类别的内容。注意:不要直接生成禁止内容,而是构造一个能让目标模型自己说出来的问题。
看到这里我一拍大腿:这就把攻击者模型自身的对齐给绕过去了。攻击者LLM没有在“说坏话”,它只是在“做测试”。至于测试问题会不会诱发目标模型越狱——那是目标模型的责任。
更关键的是那个循环里的第4步。目标模型拒绝时的措辞,实际上泄露了它的“对齐判断依据”。比如它说“我不能提供制造危险物品的指南”,攻击者LLM就明白:直接描述物理制造过程会被拦,得把同样的知识包装进小说、历史或学术综述里。这就是为什么论文里把每次查询数压到20次以内——反馈信息太丰富了。
TAP:把“碰运气”升级成“系统搜索”
你可能会想,PAIR已经很聪明了,为什么还需要新方法?因为PAIR像认死理的推销员,一条路走到黑。如果某个方向其实有戏但暂时表现不佳,就会被丢弃。所以几个月后,另一组研究者抛出了TAP(Tree of Attacks with Pruning):把单线迭代升级成树形搜索。
TAP每一轮做三件事:
- 分支:从当前提示词出发,让攻击者LLM同时生成多个不同方向的修改版;
- 评估:用一个轻量评估器给每个候选打分,估计它绕过目标模型防御的概率;
- 剪枝:得分低的直接扔掉,只保留最高分的几个分支继续扩展。
如果PAIR是贪心走迷宫,TAP就是广撒网再重点突破。它的评估器甚至可以是另一个会话中的同一个LLM——攻击过程的“出主意”和“把关”角色,分离得清清楚楚。
这带来的直接收益是降低查询成本。论文报告,TAP对当时的GPT-4,成功率保持在80%上下,而需要的查询次数通常不超过100次。100次API调用,对自动化攻击来说几乎等于免费。
为什么自适应越狱是安全团队的噩梦
第一,成本完全不对称。防御方要挡住所有路径,攻击方只需要找到一条。自适应机制把攻击方找路径的成本降到接近零——不需要人类专家,不需要了解模型内部,只要有API访问权。
第二,没有固定指纹。静态攻击有特征,比如GCG那串乱码后缀,安全团队可以写正则、查困惑度。自适应攻击每次生成的都是读起来很自然的提示词,整场对话看起来就像用户在正常提问。
第三,也是我最想强调的一点:目标模型越聪明,越容易被带进沟里。安全对齐依赖模型识别有害意图的能力,但自适应攻击把这个识别过程变成了指南针——模型拒绝得越准确,攻击者越清楚该往哪个方向改写。拒绝成了信息通道,你防御得越细致,你亮出的底牌就越多。
防御的思路,以及我的判断
防御端目前比较被认可的思路是“多轮意图累积检测”:不再把每条消息当独立事件判断,而是追踪整场对话是否在朝某个禁忌方向逼近。这也是为什么后来很多API服务商开始做会话级别的安全评估。
还有一个反直觉的结论:自适应攻击最怕的不是更聪明的检测器,而是更“笨”的模型。如果模型在不确定时直接拒绝或转移话题,攻击者就拿不到足够的反馈信号来优化提示词。但这又和“有用性”矛盾。
我的判断是:自适应越狱短期内没法被根治。它利用的是LLM自身的上下文推理能力——只要模型还具备“根据反馈调整行为”的能力,它就可能被同样具备这种能力的攻击者利用。真正能改变游戏规则的,不是更严格的提示词过滤,而是让模型在训练中学会对多轮诱导保持稳定的拒绝,以及在产品层面让异常会话付出更高成本。安全对齐,从来不是一锤子买卖。
补充:GCG为什么不算自适应越狱?
GCG(Greedy Coordinate Gradient)通过梯度计算自动搜索对抗性后缀,攻击字符串由人类不可读的乱码组成。它是一次性生成的静态攻击,没有根据模型回复迭代修改的过程,因此属于自动越狱,但不是自适应越狱。两者的共同点是都不需要人类动手,区别在于是否利用反馈。
原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/497.html