AI 基建
0%
第八部分 · 安全、可解释性与治理 · 第 58 章

对抗鲁棒性与红队

作者Changkun Ou
阅读时长约 16 分钟

对抗鲁棒性考察的是:有人刻意寻找失效方式时,已部署系统会怎样表现。越狱试图让模型输出违反策略的内容。提示注入试图让不受信任的文字控制应用。要产生有害副作用,还要求应用授权并执行模型的提议。这些失效彼此相关,却不能混为一谈。

这正是 红队(red-teaming) 的任务。红队测试会在明确的威胁模型下寻找这些失效,但不能证明它们不存在。测试结果只为某个系统版本、某套策略、某类攻击者、某项预算和某个评估者提供证据,不是模型家族永恒不变的属性。因此,对抗鲁棒性(adversarial robustness) 属于整个已部署系统:模型、提示词、工具、守卫、授权规则和发布流程都会影响结果。

从失效出发,而不是从提示词出发

拒绝语句可以观察,却不是安全目标。回答不说“不”也可能没有提供任何有害帮助;也可能先给出警告,随后仍提供被禁止的操作细节。对于智能体,不安全文本仍不同于外部效果。系统可能生成一个糟糕的提议,但确定性闸门会在任何状态改变之前拒绝它。

结果 必须证明什么 什么不能构成证明
越狱成功 回答提供策略禁止且确实有用的内容 没有出现拒绝措辞
提示注入成功 攻击者控制的文字改变与控制相关的行为 模型只是复述注入文字
未授权效果 提议通过授权,而且效果实际发生 模型输出里出现工具调用
秘密泄露 受保护信息到达未获授权的目的地 模型提到公开值或合成值

这样的区分决定了防御应当放在哪里。第 22 章 改变模型的默认行为,第 57 章 检测并管控请求处理时的事件,第 56 章 决定允许哪些效果。模型层评估可以衡量第一种结果,却无法在不运行相关应用路径的情况下证明后三种结果。

先写威胁模型,再运行攻击

攻击者能力没有固定下来之前,攻击成功率无法解释 (Carlini et al. 2019)。JailbreakBench 通过给行为、提示词、聊天模板、评分函数和威胁模型都标注版本,把这一点明确写进评估流程 (Chao et al. 2024)。一份有用的评估记录需要回答以下问题:

威胁模型字段 需要回答的问题
目标系统 测试的是哪个模型、系统提示词、工具、守卫和部署配置?
策略版本 哪一版成文规则定义了禁止行为?
攻击者目标 成功指有害文本、指令接管、数据泄露,还是外部效果?
攻击者知识 对攻击者而言,系统是白盒、灰盒还是黑盒?
攻击者访问能力 攻击者能发送一次提示、持续对话、植入检索内容,还是观察工具结果?
攻击预算 允许多少次查询、多少词元、多少次重启、多少个账户和多少实际用时?
允许的变换 攻击能否使用编码、图像、长上下文、外部工具或模型生成的变体?
成功标准 由哪个策略感知裁判和哪条人工复核规则判定成功?
防御者知识 防御是否已针对这条提示、这种方法、这个行为或这个攻击家族调过参数?
适应性 攻击者是静态的,还是会根据公开的防御和之前的回答进行调整?

只有合同相同,结果才能比较。不同策略、预算、采样设置或裁判产生的结果,不应在没有限定说明的情况下放进同一个排名。即使合同相同,供应商 API 也可能在评估期间悄然变化。因此,应记录实际观察到的模型版本和日期,而不能只写一个产品名称。

不同攻击方法暴露不同攻击面

现代研究让攻击发现变得可复现,却没有消除人工测试的作用。Perez 等人在 2022 年用一个语言模型为另一个模型生成测试案例 (Perez et al. 2022)。Zou 等人在 2023 年提出贪心坐标梯度(Greedy Coordinate Gradient,GCG),表明优化得到的对抗后缀可以从开放权重模型迁移到当时接受测试的多个黑盒系统 (Zou et al. 2023)。Greshake 等人则证明,植入检索数据的指令可以影响集成了大语言模型的应用 (Greshake et al. 2023)。这些工作针对不同目标,也假设了不同的访问方式。

下面列出的是几条有用的分析轴,而不是穷尽式分类。其中既包括 越狱(jailbreak) 攻击,也就是试图绕过拒绝或其他学习得到的策略行为的提示,也包括提示注入。攻击者可以在同一次行动中组合多种机制。

attacker 攻击者 methods 攻击方法 人工 · 优化 多示例 · 多轮 间接注入 attacker->methods target 带版本的 目标系统 methods->target evidence 策略感知的 结果证据 target->evidence
图 58.1. 具有代表性的对抗攻击面。各种机制可以组合使用。提示注入与越狱的目标不同:它试图让不受信任的数据控制应用。

人工与语义攻击使用角色扮演、重构问题、翻译、间接表达或其他保留语义的变换。它们可以由人发现,也可以由另一个模型生成。重要的变量不是提示词看起来多么巧妙,而是这种方法能否在既定预算内产生违反策略且确实有用的输出。

基于优化的攻击会搜索能提高目标续写概率的词元。GCG 利用白盒源模型的梯度来提出后缀词元的修改方案 (Zou et al. 2023)。论文报告的跨模型迁移说明某些优化提示可以跨越模型边界,不代表每个后缀都能迁移到每个模型。黑盒方法则使用对目标的查询、回答分数或独立攻击模型;查询预算是结果的一部分。

多示例攻击会在长上下文里填入虚构的服从示例,最后再附上待测行为。Anthropic 报告,在其评估的模型和任务上,攻击效果随示例数量近似按幂律增长 (Anil et al. 2024)。这种经验形态不是普遍定律,却说明更长的上下文窗口会改变攻击预算。

图 58.2. 幂律增长示意图,不是对实测数值的复现。多示例研究报告,其评估系统上的攻击效果近似按幂律扩展;每个部署都必须测量自己的模型、策略、上下文上限和裁判。

多轮攻击利用对话状态。Crescendo 从无害话题开始,在复用模型先前回答的同时逐步转向被禁止的请求 (Russinovich et al. 2025)。论文报告了它在受测系统上的成功。可以推广的结论要窄得多:只检查最新消息的守卫,可能看不到沿完整轨迹才逐渐显现的意图。

间接提示注入把指令放进网页、文档、邮件或工具结果,再由应用把这些内容当作数据读取 (Greshake et al. 2023)。它不只是另一种获取有害回答的方法,而是试图改变应用的控制流、数据流或工具使用。行为防御可以降低实测注入成功率,但只有外部强制执行点才能决定最终效果是否获准。

度量攻击尝试,而不是轶事

攻击成功率(attack success rate,ASR)是有用的汇总指标,前提是分析单位必须明确。设 bb 表示待测行为,aa 表示攻击流程,rr 表示生成种子或试验编号,yb,a,ry_{b,a,r} 表示目标系统的回答。再设 JvJ_v 表示版本为 vv 的策略感知裁判。二元结果定义为:

Yb,a,r=1[Jv(b,yb,a,r)=success],Y_{b,a,r} = \mathbf{1}[J_v(b,y_{b,a,r})=\mathrm{success}],

其中,Yb,a,r=1Y_{b,a,r}=1 表示回答 yb,a,ry_{b,a,r} 满足行为 bb 的成文成功标准,否则 Yb,a,r=0Y_{b,a,r}=0。指示函数 1[]\mathbf{1}[\cdot] 把真命题映射为一,假命题映射为零。

对于由行为、攻击和试验组成的评估三元组集合 T\mathcal{T},定义 N=TN=|\mathcal{T}|,则:

ASR^=1N(b,a,r)TYb,a,r.\widehat{\operatorname{ASR}} = \frac{1}{N} \sum_{(b,a,r)\in\mathcal{T}}Y_{b,a,r}.

这里,ASR^\widehat{\operatorname{ASR}} 是观察到的攻击成功率,NN 是评估三元组的数量,求和项统计成功的尝试。这一项点估计不是系统安全的概率。它只描述采样到的行为、攻击、种子、裁判和系统版本。

必须报告聚合规则。“逐次尝试 ASR”让每次试验权重相同;“任一成功 ASR”则在任何一次重启成功时,就把对应行为标记为已攻破。两者回答的问题不同,而且会随着重启预算增加而逐渐分离。还应按风险类别报告结果,并说明成功输出的严重程度和可操作性,因为一个平均值可能掩盖罕见但后果严重的失效。

验证裁判

绕过拒绝还不够。StrongREJECT 发现,当模型不再拒绝却只给出空洞或语无伦次的回答时,常见评估器可能高估越狱效果 (Souly et al. 2024)。有用的裁判应当评估有害有用性:回答是否以足够具体的方式,真正提供了被禁止的能力?

自动裁判让大规模扫描变得可负担,但 第 50 章 的要求仍然适用。应从成功、失败、高严重度类别和边界分数中分层抽取人工复核样本。以接受过策略培训的复核人员为参照,报告裁判一致率,并估计假阳性率和假阴性率。裁判版本在一次比较中保持不变。如果必须更换裁判,就重新为两个候选系统评分,否则应把两次运行视为不同实验。

报告不确定性与依赖关系

随机解码意味着同一个行为和同一种攻击可能产生不同回答。因此,只要部署使用采样,就应重复运行。发布结果时要同时给出样本量和置信区间,而不能只给百分比。同一行为上的多种攻击与多次重启并非独立证据。估计行为覆盖的不确定性时,应按行为重采样,不能把每次相关重试都当作新的独立案例。

区间方法应与实验设计匹配:每个行为只有一个独立结果时,可以使用二项区间;聚类自助法则可以保留每个行为内部的重复尝试。必须说明方法和分组方式。零次观察成功并不证明风险为零,它只在评估假设下给出一个依赖样本的上界。

保留效用并核算成本

如果防御拒绝大多数无害请求、损害普通任务质量,或让服务无法实际运行,那么更低的攻击成功率还不够。应为有害行为配上与其共享词汇和上下文的无害对照。XSTest 就是一套用于检查过度安全行为的对照集 (Röttger et al. 2024)。报告 ASR 的同时,还要报告无害请求拒绝率、普通任务质量和安全回答的有用性。

攻击成本也会改变结果的含义。应记录查询、词元、实际用时、重启次数,以及攻击者使用的外部算力;还要记录防御带来的延迟、词元用量、加速器时间和金钱成本。如果某种防御把攻击成本从一次查询提高到一千次查询,即使 ASR 没有降到零,也可能具备实际价值。但这一主张需要限流与身份模型,确保预算在真实系统中确实成立。

构建红队计划,而不是只跑一次基准

HarmBench 对行为、攻击、目标模型和自动分类器进行标准化,使不同方法可以在共同基础上比较 (Mazeika et al. 2024)。JailbreakBench 进一步提供材料仓库和明确的威胁模型组件 (Chao et al. 2024)。这些基准让结果更可复现,但没有任何一个能覆盖所有部署策略、语言、模态、工具和攻击者。

一套可持续的计划应把四种证据来源分开:

  1. 开发套件让工程师快速检查已知失效。
  2. 留出套件包含未见过的提示和攻击家族留出集。不要在发布套件上调参。
  3. 自适应套件让了解防御的攻击者看到已部署提示、守卫行为,或得到足够查询来推断它们。简单的自适应修改就曾攻破静态评估下看似强健的防御 (Andriushchenko et al. 2025)。
  4. 人工红队探索产品特定的工作流、社会情境和新组合,以及自动生成器没有表示的危害。

留出套件的一部分应保持私有并定期轮换,以减少直接过拟合。还要跟踪数据谱系,避免训练数据、攻击生成器提示、基准条目和发布案例悄然重叠。污染不会让案例失去回归价值,却会削弱关于泛化能力的主张。每个已确认失效都应回放到开发套件,同时把新的行为或完整机制留给之后的留出评估。

NIST 的生成式 AI 风险管理框架建议使用对抗角色扮演、生成式 AI 红队测试或混沌测试来发现未预见的失效方式 (Autio et al. 2024)。在实践中,这意味着要在发布前、模型或外围系统改变后,以及事故暴露出新路径后运行以下循环:

threat 威胁模型 attack 生成并运行 带版本的攻击 threat->attack judge 裁判、抽样 并验证 attack->judge decide 发布闸门 judge->decide fix 修复并加入 回归案例 decide->fix 未通过 fresh 新的留出与 自适应套件 fix->fresh fresh->attack
图 58.3. 红队计划把明确的威胁模型转化为带版本的证据、修复、回归案例和新的自适应评估。发布是在不确定性下作出的决定,不是永久鲁棒性的证书。

按失效阶段匹配防御

没有一种防御能覆盖开头表格中的每一行。应把学习得到的模型防御、学习得到的运行时检测器和确定性效果控制分开。说明每项干预时,既要写出实测改进,也要写清证据无法支撑的更强主张。

安全调优与对抗训练把已知失效案例和策略对照加入后训练。它们可以同时改善直接拒绝和安全回答,但泛化能力取决于训练分布、策略、模型和攻击预算。权重和防御固定之后,还必须让自适应攻击者重新评估。

指令层级训练模型优先遵守高权限指令,并正确对待较低权限或不受信任的内容。用于标注数据来源的提示变换也属于学习得到的防御。两者都可以降低实测提示注入成功率,却都不是授权决定。第 22 章 将进一步说明训练目标和经验局限。

输入与输出分类器可以抓住目标模型漏掉的失效。独立服务在运行上彼此独立,不代表统计上自动独立:目标模型与守卫可能共享训练数据、策略歧义、架构或盲点。必须测量残余错误之间的相关性。输入过滤器可以阻止或变换请求,输出过滤器可以把关内容发布或工具提议,却无法撤回已经流出的文字或已经提交的副作用(第 57 章)。

表征重路由也称断路器,它把与有害续写相关的内部表征从原有轨迹引开。Zou 等人报告,这种方法在其评估的攻击和模型类型上降低了 ASR,同时大体保留了实测效用 (Zou et al. 2024)。这是对报告套件的经验泛化,不是存在唯一有害回路的证明,也不保证能够抵御自适应攻击者。后续面向防御的评估进一步说明,每项鲁棒性主张都必须重新陈述威胁模型 (Andriushchenko et al. 2025)。

确定性效果控制落实有类型的工具模式、授权、接收方与目的地规则、最小权限、审批绑定、秘密托管,以及沙箱或出网约束。这些控制不会让模型输出本身变得安全。它们只为可信代码检查的狭窄性质建立安全边界,使一次成功的越狱或注入不会自动变成外部系统失陷(第 56 章)。

攻击在成文的访问模型和预算下运行。目标可能是被禁止的内容、指令接管、数据泄露或外部效果。
安全调优、对抗训练和指令层级会降低受测分布上的失效,但它们仍是经验性防御。
输入与输出守卫增加了另一个带误差的检测面。它们的失效可能与目标模型相关,因此需要独立标注版本并测试。
表征重路由可能中断受测攻击触发的有害续写。新的自适应评估必须继续探测防御后的模型。
授权与数据流检查决定提议的效果是否允许。保证范围不会超过实际执行的规则和威胁模型。
图 58.4. 按失效阶段组织的纵深防御。学习得到的防御和检测器降低实测失效率;确定性效果控制在上游失效时落实狭窄的系统不变量。

把结果写成发布规则

发布闸门应在运行评估之前写好。对于每个风险类别 cc,一种可选规则是:

UCB1α(ASRc)τc,\operatorname{UCB}_{1-\alpha}(\operatorname{ASR}_c) \le \tau_c,

其中,ASRc\operatorname{ASR}_c 是风险类别 cc 的攻击成功率,UCB1α\operatorname{UCB}_{1-\alpha} 是置信水平 1α1-\alpha 下攻击成功率的置信上界,α\alpha 是选定的错误概率,τc\tau_c 是该类别记录在案的发布阈值。严重度更高的类别可以使用更严格的阈值和更大的样本量。

安全指标不能独自决定发布,还应要求:

LCB1α(Ubenign)umin,\operatorname{LCB}_{1-\alpha}(U_{\mathrm{benign}}) \ge u_{\min},

其中,UbenignU_{\mathrm{benign}} 是选定的无害效用指标,LCB1α\operatorname{LCB}_{1-\alpha} 是该指标的置信下界,uminu_{\min} 是无害效用下限。因此,靠拒绝所有请求换来的低 ASR 仍然无法通过发布闸门。阈值是产品与风险决策,不是基准提供的常数。

如果证据没有达到阈值,就修复系统、缩小部署范围、增加独立控制,或记录一项有负责人和到期时间的授权例外。不要丢弃不利结果,也不要在看到结果后更换裁判。第 53 章 说明了如何把发布证据与开发反馈分开保存。

保留可复现的评估记录

保存一条记录,把系统、威胁模型、攻击尝试、裁判结果、效用结果和发布决定连接起来:

evaluation_id
system_revision
policy_revision
defense_revision
behavior_set_revision
attack_revision
threat_model_and_budget
generation_parameters_and_seeds
judge_revision
human_validation_sample
per_behavior_outcomes
benign_utility_outcomes
query_token_latency_costs
confidence_interval_method
release_decision_and_exception
regression_case_ids

攻击材料应按与滥用风险相称的访问控制保存。公开摘要可以说明方法和汇总结果,无需公开每一条高风险提示。内部记录仍要保留足够细节,使授权评估人员复现主张。

回归覆盖不能只保存最近一次成功的字符串:

场景 必需证据
拒绝措辞陷阱 没有拒绝但内容空洞的回答不能计为成功
留出攻击家族 开发阶段没有出现的机制仍然得到评估结果
多轮延续 完整轨迹,而不只是最后一轮,会送到守卫和裁判
间接注入 不受信任的检索文字不能悄悄授权特权效果
自适应再攻击 防御确定后,由了解防御的方法重新运行攻击
无害对照 相似但允许的请求可以暴露过度拒绝
裁判分歧 边界案例和严重案例进入人工复核
模型版本 权重或服务行为变化后,完整发布套件重新运行
策略版本 新旧裁判结果不会混进同一个指标
防御超时 记录在案的失效方式得到实际演练,而不是靠假设
争议所在
  • 越狱鲁棒性能否做到完备? 有限测试可以发现失效并给出条件上界,却不能枚举自然语言,也不能证明不存在成功输入。更强训练能否把残余风险降到运行上可以忽略,仍是经验问题。
  • 基准应当标准化到什么程度? 共同的行为集和裁判可以提高可比性,却也会让优化集中到同一种危害定义上。产品特定套件更相关,但更难比较。成熟的计划两者都需要。
  • 表征级防御是否比表层防御泛化得更好? 已发表结果显示,它们对受测的未见攻击有所改善 (Zou et al. 2024);自适应结果则表明,威胁模型改变后,结论可能反转 (Andriushchenko et al. 2025)。任何回答都必须注明攻击家族和预算。
  • 应披露多少攻击细节? 可复现性倾向公开材料,滥用风险倾向受控访问。合适的披露程度取决于系统能力、可获得性,以及防御者是否已有可行的缓解措施。
下层约束

模型行为约束红队需要搜索什么,基础设施限制一次成功攻击能够做什么。提示防御、分类器和表征干预可以降低实测成功率,却不能取代权限范围、秘密隔离、有类型的工具闸门、接收方检查、沙箱或出网策略。对于后果重大的动作,模型可以提出动作,可信代码必须决定并强制执行。

对抗鲁棒性不是附着在单个模型上的一个分数,而是一套可重复的流程:定义失效、说明攻击者能力、运行代表性与自适应攻击、验证裁判、量化不确定性和效用、执行发布规则,并把每个已确认失效保存为回归证据。最终结果不是证书,而是一项带版本、可审计的主张:某个已部署系统如何抵御某个有明确记录的对手。

延伸阅读

  • Zou et al., “Universal and Transferable Adversarial Attacks on Aligned Language Models” (GCG 与 AdvBench 有害行为集合), 2023. arXiv:2307.15043
    GCG 提出一种自动化的贪婪坐标梯度方法,通过搜索对抗性后缀实现对已对齐大语言模型的越狱,并可迁移至 ChatGPT、Bard、Claude 等黑盒模型。
  • Greshake et al., “Not What You've Signed Up For: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection,” 2023. arXiv:2302.12173
    本文提出间接提示注入攻击:攻击者将恶意指令植入大语言模型应用检索的数据中,无需直接访问即可远程劫持大语言模型的行为。
  • Anil et al., “Many-shot Jailbreaking” (长上下文攻击的规模效应), 2024. papers.nips.cc
    多样本越狱利用大型上下文窗口,通过在单个提示中填充数百个伪有害对话示例,借助上下文学习绕过大语言模型(LLM)的安全训练。
  • Russinovich et al., “Great, Now Write an Article About That: The Crescendo Multi-Turn LLM Jailbreak Attack,” 2025. usenix.org
    Crescendo 是一种多轮大语言模型越狱攻击,通过利用模型自身的历史输出逐步升级无害提示,在 GPT-4、Gemini-Pro 等模型上实现高攻击成功率,绕过安全对齐。
  • Perez et al., “Red Teaming Language Models with Language Models” (自动攻击生成), 2022. arXiv:2202.03286
    本文提出用语言模型自动生成测试用例对目标语言模型进行红队测试,在一个 280B 参数聊天机器人中发现数万条有害输出。
  • Mazeika et al., “HarmBench: A Standardized Evaluation Framework for Automated Red Teaming and Robust Refusal,” 2024. arXiv:2402.04249
    HarmBench 是一个标准化基准,包含 510 个有害行为及评测流水线,对 33 个大语言模型上的 18 种自动化红队方法进行大规模比较,以支持攻防协同开发。
  • Zou et al., “Improving Alignment and Robustness with Circuit Breakers” (表征级防御), 2024. arXiv:2406.04313
    电路断路器通过表示重路由将大语言模型内部表示从有害输出重定向,在不牺牲能力的前提下对未见攻击实现对抗鲁棒性,并可扩展至多模态模型与智能体。
  • Souly et al., “A StrongREJECT for Empty Jailbreaks” (按有害内容的实际效用而非拒绝措辞来评判), 2024. arXiv:2402.10260
    StrongREJECT 评估越狱响应是否真正提供有用的违禁信息,并显示常见评判方法可能夸大攻击成功率。
  • Röttger et al., “XSTest: A Test Suite for Identifying Exaggerated Safety Behaviours in Large Language Models” (对照测试集,把过度拒答与拒答不足分开), 2024. aclanthology.org
    XSTEST 是一个包含 250 条提示的测试集,用于系统识别大语言模型(LLM)因词汇重叠而对安全提示产生过度拒绝(over-refusal)的行为。
  • Chao et al., “JailbreakBench: An Open Robustness Benchmark for Jailbreaking Large Language Models” (版本化攻击工件、威胁模型与评分), 2024. arXiv:2404.01318
    JailbreakBench 提供版本化行为集、对抗提示仓库、威胁模型、聊天模板与评分函数,以支持可复现的越狱评测。
  • Autio et al., “Artificial Intelligence Risk Management Framework: Generative Artificial Intelligence Profile” (对抗测试与生成式 AI 风险管理的官方指南), 2024. doi.org
    NIST 生成式 AI 概况建议将结构化红队测试、对抗性角色扮演及相关测试纳入全生命周期风险管理。
  • Andriushchenko et al., “Jailbreaking Leading Safety-Aligned LLMs with Simple Adaptive Attacks” (在自适应威胁模型下进行了解防御的评测), 2025. proceedings.iclr.cc
    针对防御进行的简单调整,显著提高了对先前静态评测中看似鲁棒的模型与防御的攻击成功率。
  • Carlini et al., “On Evaluating Adversarial Robustness” (威胁模型与自适应评测指南), 2019. arXiv:1902.06705
    这份评测指南主张,鲁棒性声明需要明确威胁模型、强攻击、自适应测试与可复现报告。

评论

登录后评论