红队:PAIR 与自动化攻击
Chao、Robey、Dobriban、Hassani、Pappas、Wong(NeurIPS 2023, arXiv:2310.08419)。PAIR——Prompt Automatic Iterative Refinement——是经典的自动化黑盒越狱。一个带红队系统提示的攻击者 LLM,迭代地为目标 LLM 提议越狱方案,把尝试和响应累积进自己的对话历史,当作上下文反馈。PAIR 通常在 20 次查询内成功,比 GCG(Zou et al. 的 token 级梯度搜索)高效几个数量级,而且不需要白盒访问。如今 PAIR 已是 JailbreakBench(arXiv:2404.01318)和 HarmBench 里的标准基线,与 GCG、AutoDAN、TAP、Persuasive Adversarial Prompt 并列。
类型: Build 语言: Python(标准库,针对玩具目标的模拟 PAIR 循环) 前置要求: 阶段 18 · 01(遵循指令)、阶段 14(智能体工程) 预计时间: ~75 分钟
学习目标
- 描述 PAIR 算法:攻击者系统提示、迭代精化、上下文反馈。
- 解释为什么当目标是黑盒时,PAIR 严格比 GCG 高效。
- 说出另外四种自动化攻击基线(GCG、AutoDAN、TAP、PAP),并说出各自的一个区别特征。
- 描述 JailbreakBench 和 HarmBench 的评估协议,以及「攻击成功率」在各自定义下是什么意思。
问题背景
红队曾经是一项手工活动。少数专家测试者构造对抗提示,并追踪哪些管用。这不可规模化:攻击成功率需要统计样本,而每发布一个模型,目标都在移动。PAIR 把红队操作化成一个带黑盒目标的优化问题。
核心概念
PAIR 算法
输入:
- 目标 LLM T(我们要攻击的模型)。
- 裁判 LLM J(评判一个响应是否构成越狱)。
- 攻击者 LLM A(红队优化器)。
- 目标串 G:「以 [有害指令] 来回复。」
- 预算 K(通常 20 次查询)。
循环,对 k 取 1..K:
- 用目标 G 和到目前为止的(提示, 响应)对历史来提示 A。
- A 产出一个新提示 p_k。
- 把 p_k 提交给 T;收到响应 r_k。
- J 就目标给 (p_k, r_k) 打分。
- 若分数 >= 阈值,停止——找到越狱。
- 否则,把 (p_k, r_k) 追加进 A 的历史;继续。
实证结果(NeurIPS 2023):对 GPT-3.5-turbo、Llama-2-7B-chat 的攻击成功率 >50%;到成功的平均查询数在 10-20 区间。
为什么 PAIR 高效
GCG(Zou et al. 2023)按梯度在对抗 token 后缀上搜索;它需要白盒模型访问,并产出不可读的后缀。PAIR 是黑盒的,产出能跨模型迁移的自然语言攻击。PAIR 的上下文反馈让攻击者能从每次被拒中学习;GCG 没有等价物(每次新的 token 更新都得重新发现先前的进展)。
相关的自动化攻击
- GCG(Zou et al. 2023, arXiv:2307.15043)。 对抗后缀的 token 级梯度搜索。白盒、可迁移、产出不可读的字符串。
- AutoDAN(Liu et al. 2023)。 在提示上做进化搜索,由一个分层目标引导。
- TAP(Mehrotra et al. 2024)。 带剪枝的攻击树——分叉出多条 PAIR 风格的 rollout。
- PAP(Zeng et al. 2024)。 Persuasive Adversarial Prompts——把人类说服技巧编码成提示模板。
JailbreakBench 与 HarmBench
两者(2024)都把评估标准化:
- JailbreakBench(arXiv:2404.01318)。100 种有害行为,覆盖 10 个 OpenAI 政策类别。以攻击成功率(ASR)为主指标。需要一个裁判(GPT-4-turbo、Llama Guard,或 StrongREJECT)。
- HarmBench(Mazeika et al. 2024)。510 种行为,覆盖 7 个类别,带语义和功能两种危害测试。把 18 种攻击对照 33 个模型做比较。
ASR 通常在固定查询预算下报告。比较攻击需要匹配预算;200 次查询下的 90% ASR 跟 20 次查询下的 85% ASR 不可比。
为什么这对 2026 年的部署重要
如今每家前沿实验室在发布前都会拿 PAIR 和 TAP 攻打生产模型。ASR 轨迹出现在模型卡(第 26 课)和安全论证附录(第 18 课)里。这种攻击不稀奇——它是标准基础设施。
这在阶段 18 里的位置
第 12 课是自动化攻击的基础。第 13 课(多样本越狱)是一种互补的长度利用。第 14 课(ASCII 艺术 / 视觉)是一种编码攻击。第 15 课(间接提示注入)是 2026 年的生产攻击面。第 16 课讲防御工具对手(Llama Guard、Garak、PyRIT)。
al-pair-loop实际使用
code/main.py 造了一个玩具 PAIR 循环。目标是一个模拟分类器,它拒绝「显眼的」有害提示(关键词过滤)。攻击者是一个基于规则的精化器,会尝试改写、角色扮演框定、编码。裁判给响应打分。你会看着攻击者在约 5-15 次迭代内攻破关键词过滤,而对语义过滤失败。
拿去用
本课产出 outputs/skill-attack-audit.md。给定一份红队评估报告,它审计:跑了哪些攻击(PAIR、GCG、TAP、AutoDAN、PAP)、各自在什么预算下、用哪个裁判、在哪个有害行为集上(JailbreakBench、HarmBench、内部集)。
练习
运行
code/main.py。测量三种内置攻击者策略到成功的平均查询数。解释每种利用了哪一条目标防御假设。实现第四种攻击者策略(比如翻译成另一种语言、base64 编码)。报告它对关键词过滤目标和语义过滤目标的新「到成功平均查询数」。
读 Chao et al. 2023 图 5(PAIR vs GCG 对比)。描述两个尽管 PAIR 有效率优势、仍更偏好 GCG 的场景。
JailbreakBench 报告针对固定目标集的 ASR。设计一个额外指标,测量攻击多样性(成功提示的方差)。解释为什么多样性对防御评估很重要。
TAP(Mehrotra 2024)用分叉 + 剪枝扩展 PAIR。勾画一个对
code/main.py的 TAP 风格扩展,并描述计算成本与成功率之间的权衡。
关键术语
| 术语 | 大家嘴上怎么说 | 它实际是什么 |
|---|---|---|
| PAIR | 「自动化越狱」 | Prompt Automatic Iterative Refinement;攻击者 LLM + 裁判 LLM 循环 |
| GCG | 「梯度越狱」 | 对抗后缀的白盒 token 级梯度搜索 |
| 攻击成功率(ASR) | 「k 次查询的越狱百分比」 | 主指标;必须连同查询预算和裁判身份一起报告 |
| 裁判 LLM | 「那个打分器」 | 评判响应是否满足有害目标的 LLM |
| JailbreakBench | 「那个评估」 | 带标记类别的标准化有害行为集 |
| HarmBench | 「那个更广的基准」 | 510 种行为,功能 + 语义危害测试 |
| TAP | 「攻击树」 | 带分叉 + 剪枝的 PAIR;以更高算力换更好 ASR |
延伸阅读
- Chao et al. — Jailbreaking Black Box LLMs in Twenty Queries (arXiv:2310.08419) —— PAIR 论文,NeurIPS 2023
- Zou et al. — Universal and Transferable Adversarial Attacks on Aligned LLMs (arXiv:2307.15043) —— GCG 论文
- Chao et al. — JailbreakBench (arXiv:2404.01318) —— 标准化评估
- Mazeika et al. — HarmBench (ICML 2024) —— 更广的评估