自动化 Jailbreak:GCG、AutoDAN 与 BPJ

1. 论文信息

本文讨论三种自动化 Jailbreak 方法:

方法 论文 公开实现
GCG Universal and Transferable Adversarial Attacks on Aligned Language Models llm-attacks/llm-attacks
AutoDAN AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models SheltonLiu-N/AutoDAN
AutoDAN-Turbo AutoDAN-Turbo: A Lifelong Agent for Strategy Self-Exploration to Jailbreak LLMs SaFoLab-WISC/AutoDAN-Turbo
BPJ Boundary Point Jailbreaking of Black-Box LLMs 未完整开源

三种方法都在自动搜索 Jailbreak prompt,但它们面对的攻击面和可用反馈并不相同:

GCG 使用梯度搜索 token suffix;AutoDAN 使用遗传算法搜索可读的自然语言策略;BPJ 只依赖分类器的二值反馈,在黑盒决策边界附近构造优化信号。

GCG 和 AutoDAN 主要攻击模型自身的 refusal behavior,BPJ 则研究部署在主模型外部的 classifier。三者并不是同一条技术路线的三个版本,也不能只根据 ASR 直接比较强弱。

维度 GCG AutoDAN BPJ
搜索对象 Adversarial suffix 自然语言 Jailbreak prompt Adversarial prefix
主要攻击面 主模型 refusal 主模型 refusal 外置 classifier
优化反馈 梯度与 likelihood Likelihood-based fitness FLAG / NO FLAG
搜索方法 Greedy coordinate search Hierarchical genetic algorithm Curriculum + boundary points + evolution
文本形态 常呈高困惑度乱码 可读自然语言 随机性+有限语义性
Universal 支持 支持 支持
Agentic 不是核心实验 不是核心实验 不是

三者最核心的区别是优化信号:

GCG 解决“有梯度时如何搜索 token”,AutoDAN 解决“如何搜索自然、隐蔽的 Jailbreak strategy”,BPJ 解决“只剩二值反馈时如何继续优化”。

2. Jailbreak 是一个优化问题

手工 Jailbreak 依赖攻击者反复改写 prompt。自动化 Jailbreak 则把这个过程转化成搜索问题:

1
2
3
4
5
6
7
生成候选 prompt

提交给目标系统

观察攻击反馈

保留更好的候选并继续修改

差别在于,攻击者能从系统中得到什么反馈。

在白盒模型上,攻击者可以读取 logits、计算 loss,并反向传播到输入 token;在较弱的黑盒设置中,攻击者可能只能看到回答内容;如果系统前面还有外置 classifier,攻击者甚至可能只观察到 blocked / not blocked。

现代 LLM 系统也不只有一层安全机制:

1
2
3
4
5
6
7
8
9
User Prompt

Input Classifier

Main Model

Output Classifier

Response

“模型拒答”和“请求被 classifier 拦截”是两个不同事件。GCG、AutoDAN 主要改变主模型的生成倾向,BPJ 则直接寻找外置分类器的判断盲区。

本文中的 classifier 主要指 semantic classifier & topical classifier:它从语义/主题层面判断请求是否属于特定风险领域。BPJ 通过 adversarial prefix 和二值反馈搜索这类 classifier 的黑盒决策边界。

更强的实现可以使用 activation classifier。它是在模型 hidden states 上训练轻量 probe,根据输入经过模型参数计算后产生的中间层参数激活进行分类。由于模型要理解并完成任务,相关风险语义通常仍会在内部表征中被激活,因此 activation classifier 一般比直接读取文本的分类器更难通过表面改写绕过。

2.1 Universal 与 Agentic Jailbreak

Universal Jailbreak 强调攻击覆盖面:同一段 suffix、prompt 或 prefix 能迁移到多个未参与优化的请求。它不要求对所有请求都成功,也不表示攻击可以持续任意轮次。

Agentic Jailbreak 强调攻击持续性:模型在多轮交互中继续执行任务,能够调用工具、读取 observation,并在长链任务中保持被绕过状态。

1
2
Universal:同一个攻击能覆盖多少不同任务
Agentic:绕过能在多长的执行链中持续

GCG、经典 AutoDAN 和 BPJ 的核心实验主要属于单轮内容绕过。BPJ 找到的 prefix 可以迁移到 unseen harmful queries,因此具有 universal 性质,但它不是多轮 agentic Jailbreak。

3. GCG:用梯度搜索 Adversarial Suffix

GCG 来自论文 Universal and Transferable Adversarial Attacks on Aligned Language Models。它在用户请求后附加一段 adversarial suffix:

1
[harmful instruction] + [adversarial suffix]

攻击目标不是提前写出完整回答,而是让模型以肯定式前缀开始生成,例如:

1
Sure, here is ...

论文将目标前缀的 negative log likelihood 作为 loss。只要模型更倾向于生成目标前缀,loss 就会下降。

3.1 Greedy Coordinate Gradient

GCG Algorithm 1

输入 token 是离散变量,不能像连续向量一样直接做普通梯度下降。GCG 的做法是先计算 loss 对每个 token 位置的梯度,再用梯度估计“把当前位置替换成哪些 token 最可能降低 loss”。

每轮搜索大致分成四步:

1
2
3
4
5
6
7
随机选择一个 suffix 位置

根据梯度选出 Top-k 候选 token

生成一批单 token 替换后的候选 suffix

实际计算 loss,保留最优候选

梯度在这里不是直接修改 token,而是缩小离散搜索空间。真正决定下一轮 suffix 的,仍然是候选替换后的实际 loss。

这种搜索经常得到类似乱码的高困惑度 suffix。它未必对人类有明确语义,但 token 组合能够改变模型内部对后续回答的概率分布。

3.2 从单个请求到 Universal Suffix

GCG Algorithm 2

只针对一个 harmful instruction 优化,容易得到只适用于该请求的 suffix。GCG 的 universal optimization 会同时维护多个训练请求,并以同一段 suffix 在这些请求上的聚合 loss 作为优化目标。

1
2
3
4
5
同一个 suffix
├── harmful behavior 1
├── harmful behavior 2
├── harmful behavior 3
└── ...

随着参与优化的请求增加,suffix 不再只记住一个问题,而是寻找多个 refusal 场景共享的薄弱点。论文还在多个开源模型上联合优化,再把得到的 suffix 迁移到闭源模型。

这里的 universal 表示同一 suffix 能覆盖多个未参与训练的请求,不表示对所有请求和所有模型都能 100% 成功;transferable 也只是说明攻击具有跨模型迁移能力,不意味着目标闭源模型完全复现了 surrogate 上的效果。

4. AutoDAN:搜索可读的 Jailbreak Strategy

GCG 搜索的是对模型有效的 token,但这些 token 未必构成人类可读的语言。高困惑度 suffix 容易被 perplexity filter 或人工审查发现。

经典 AutoDAN 来自论文 AutoDAN: Generating Stealthy Jailbreak Prompts on Aligned Large Language Models。它将搜索对象换成结构化的自然语言 Jailbreak prompt,希望同时保留攻击效果、可读性和语义连贯性。

AutoDAN overview

上图对应 2023 年提出、发表于 ICLR 2024 的经典 AutoDAN。后续的 AutoDAN-Turbo 沿用了自动搜索自然语言 Jailbreak strategy 的目标,攻击设置和优化方法已经发生变化。

4.1 Hierarchical Genetic Algorithm

AutoDAN 从人工编写的 DAN prompt 出发,将其改写成一组初始个体。每个个体都是一段完整、可读的自然语言 prompt。

1
2
3
4
5
6
7
8
9
Handcrafted DAN prompt

生成初始种群

计算 fitness

selection / crossover / mutation

生成下一代 prompt

它同样可以使用目标回答前缀的 likelihood 计算 fitness:模型越倾向于生成肯定式回答,候选 prompt 的适应度越高。

文本天然具有层次结构。段落由句子组成,句子又由词组成,如果只随机替换 token,很容易破坏原有语义。因此 AutoDAN-HGA 分两个层级搜索:

  • 段落级搜索重组不同 prompt 中的句子结构。
  • 句子级搜索替换局部词语,继续降低 loss。

其中 crossover 负责组合高适应度个体中的有效策略,mutation 则利用 LLM 对句子进行语义连贯的改写。论文还使用 momentum word dictionary 保留过去搜索中效果较好的词级替换。

4.2 AutoDAN 与 GCG 的区别

GCG 优化的是一段 token suffix,搜索方向主要来自梯度;AutoDAN 优化的是自然语言 Jailbreak strategy,搜索过程由 selection、crossover 和 mutation 驱动。

AutoDAN 的优势不是简单地“比 GCG 更强”,而是生成结果更像正常语言。相应地,它需要维护种群并反复调用模型做 mutation,搜索成本和实现复杂度也更高。

两者通常都在白盒模型或 surrogate 上获得 likelihood-based fitness,再测试生成 prompt 对其他模型的迁移能力。对目标闭源模型的攻击可以是黑盒的,但 prompt 的优化过程并不等于纯黑盒搜索。

4.3 AutoDAN-Turbo:面向黑盒的策略探索

AutoDAN-Turbo: A Lifelong Agent for Strategy Self-Exploration to Jailbreak LLMs 将攻击目标改成了黑盒模型。攻击者不需要读取目标模型的参数、梯度、logits 或 token likelihood,只需要通过 API 获得目标模型的回答。

1
2
3
4
5
6
7
8
9
根据已有策略生成 Jailbreak prompt

查询黑盒目标模型

Judge 评估目标回答是否越狱成功

从成功和失败案例中总结策略

更新 strategy library,进入下一轮探索

AutoDAN-Turbo 不再使用经典 AutoDAN 的 hierarchical genetic algorithm。它将攻击过程组织成一个 lifelong agent:从 strategy library 中检索已有策略,生成针对当前请求的 prompt,再根据 judge feedback 总结、组合和改进策略。新策略会被写回 library,用于后续请求和其他目标模型。

方法 优化反馈 目标模型条件
经典 AutoDAN 目标回答 token 的 likelihood 白盒模型或可提供概率的 surrogate
AutoDAN-Turbo 目标模型回答 + judge feedback 黑盒 API

两者虽然都叫 AutoDAN,但核心区别不只是“Turbo 更自动化”:

经典 AutoDAN 使用 likelihood 驱动自然语言种群演化;AutoDAN-Turbo 使用 response-based feedback,在黑盒环境中持续探索和积累 Jailbreak 策略。

5. BPJ:只有二值反馈时如何优化

GCG 能读取梯度,AutoDAN 至少需要一个可以计算候选 fitness 的模型。如果攻击目标是部署在 API 前面的外置 classifier,攻击者可能看不到 score、logits 或梯度,只能观察:

1
FLAG / NO FLAG

BPJ 来自论文 Boundary Point Jailbreaking of Black-Box LLMs,研究的就是这种 deterministic binary classifier 场景。它的目标是寻找一段 universal adversarial prefix,使多个 harmful queries 不再被 classifier 标记。

Boundary Point Jailbreaking

5.1 二值反馈为什么难以优化

如果一个 harmful query 明显位于 classifier 的拦截区域,那么对 prefix 做许多轻微修改,反馈可能始终是:

1
FLAG → FLAG → FLAG → FLAG

攻击者知道所有候选都失败,却不知道哪一个距离成功更近。连续 classifier score 可以提供方向,单个二值标签则没有这种信息。

BPJ 用两个机制解决这个问题:

  1. Curriculum Learning:把困难的目标请求拆成由易到难的中间目标。
  2. Boundary Points:主动寻找对微小攻击变化敏感的评估样本。

5.2 Curriculum via Noise Interpolation

BPJ 使用 noise interpolation,在原始 harmful text 和随机噪声之间构造多个难度等级。高噪声输入更难被 classifier 理解,通常更容易得到 NO FLAG;随着噪声逐渐减少,输入越来越接近真实目标请求。

1
2
3
4
5
6
7
Fully Noised

部分恢复 harmful semantics

继续降低 noise level

Plain Harmful Text

攻击先在容易的 curriculum level 上找到有效 prefix,再把已有结果作为下一层的起点。只有当当前 prefix 在该层达到足够成功率时,算法才降低噪声、推进到更困难的目标。

Curriculum 解决的是目标过难的问题,但在同一个难度等级内,许多 evaluation points 仍可能全部 FLAG 或全部 NO FLAG,无法区分两个相近 prefix 的好坏。

5.3 Boundary Points:把二值标签变成搜索信号

BPJ 在每个 curriculum level 中生成多组 evaluation points,并使用当前攻击种群逐一测试:

  • 如果所有攻击都得到 FLAG,该点太难。
  • 如果所有攻击都得到 NO FLAG,该点太容易。
  • 如果一部分 FLAG、一部分 NO FLAG,该点靠近当前攻击种群对应的 decision boundary。

第三类样本就是 boundary points。

在这些点上,一次 token substitution、insertion 或 deletion 就可能导致标签翻转。因此虽然 API 仍然只返回一个 bit,多个高敏感度 boundary points 上的成功数量却可以作为候选 prefix 的相对 fitness。

1
2
3
4
candidate prefix A:通过 3 / 10 个 boundary points
candidate prefix B:通过 7 / 10 个 boundary points

保留 B

BPJ 没有直接访问 classifier 的连续 score,而是先把样本移动到决策边界附近,再通过一组二值判断制造近似的排序信号。

5.4 完整优化闭环

Figure 3 中的循环可以拆成三个阶段:

1
2
3
4
5
6
7
生成并验证 boundary points

在 boundary points 上对 prefix 做 evolutionary mutation

删除已解决的 boundary points,补充新样本

当前层成功后降低 noise level

当所有候选都能通过某个 boundary point 时,这个点已经不能区分种群,需要被替换。算法持续补充与当前攻击能力匹配的新 boundary points,直到课程推进到 noise level 为 0,即直接面对原始 harmful query。

最终效果类似:

5

5.5 BPJ 实际攻破了什么

论文报告的真实系统实验包括:

  • 2025 年 11 月测试的 Anthropic Constitutional Classifiers,搭配 Claude Sonnet 4.5。
  • 2025 年 11 月测试的 GPT-5 input classifier。
  • 生物风险领域的单轮问答任务。

在 Constitutional Classifiers 实验中,研究者使用一段独立的 human-found jailbreak 处理主模型拒答,再用 BPJ prefix 攻击 classifier。这样可以把“绕过外置 classifier”和“让主模型愿意回答”拆开研究。

BPJ 证明的是:只暴露二值结果的生产级 classifier 仍可能被自动化 boundary search 绕过。

6. 总结

GCG、AutoDAN 与 BPJ 展示了三种不同的信息条件下,自动化 Jailbreak 如何构造搜索方向:

1
2
3
GCG       梯度提供 token 替换方向
AutoDAN fitness 驱动自然语言种群演化
BPJ 决策边界将二值标签转化为相对排序信号

自动化 Jailbreak 的关键并不是某一段固定 prompt,而是攻击者能否从系统响应中获得与安全决策相关的反馈。即使没有梯度和 classifier score,只要能够稳定、大量地查询,并观察安全判断是否翻转,离散反馈也可能被转化为优化信号。

从防御角度看,单个 classifier 不能构成完整安全边界。semantic classifier & topical classifier、主模型自身拒答对齐、activation classifier、 actor-level enforcement 需要组合使用;评估也不能只测试人工 Jailbreak,还需要覆盖自动化、自适应和可迁移攻击。