弱到强越狱攻击:低成本黑盒突破大模型安全护栏

发布时间:2026/9/28 14:20:13
弱到强越狱攻击:低成本黑盒突破大模型安全护栏 1. 大模型越狱技术背景与为什么要在意 Weak-to-Strong1.1 越狱问题的现状与痛点先聊聊圈子里一直存在的一件事大模型越狱。无论你把对齐做得再怎么细致RLHF 跑得再多轮DPO 调参调得再丝滑只要模型还能接受任意文本输入就永远存在一类刁钻的 prompt 能绕过安全护栏。这不是危言耸听而是过去两年红队测试、安全评测反复验证过的现实。我在实际做安全项目时也亲眼见过一些看起来人畜无害的输入组合愣是让模型输出完全违背自身训练目标的内容。越狱问题的痛点在于三个层面。第一攻击面广输入空间是离散且连续的词元组合几乎无穷无尽人工去扫相当于大海捞针。第二攻击自动化程度低过去很多经典越狱样本靠手工构造换一个模型就失效换一种语义表达也失效复用性差。第三评估不统一一个攻击成不成功不同团队判定口径差异很大导致很多研究结论没法直接对照。这三个痛点叠加起来会让“确保模型安全”这件事变得很棘手。社区一直在找更系统性的攻击与防御方法。但常规做法通常盯着“如何增强攻击复杂度”比如更长更绕的提示词、更隐蔽的编码方式。大家默认思路是攻击越复杂越容易成功。而最近 ICML2025 接收的这篇 Weak-to-Strong Jailbreaking on Large Language Models 显然不是这个套路它用一种“反直觉”的路径拿到了很高的攻击成功率——让弱模型来教强模型露出破绽。刚看到这个标题时我转过好几个弯才完全理解它的意义。1.2 Weak-to-Strong 跃入视线的时机为什么在 2025 年这个节点Weak-to-Strong 攻击会被顶会接收并引发热议一个重要原因是纯靠堆算力的攻击方式已经出现了瓶颈。比如白盒攻击需要模型梯度在闭源 API 场景下根本不现实而黑盒攻击如果想靠大量枚举API 调用成本和限流又会把你卡死。大家都在找更“经济”的攻击范式。另一个原因是安全防御侧进步显著新发布模型的护栏越来越硬简单模板、角色扮演这类老招数很快被训练数据吸收并修补。于是红队和研究者开始琢磨能不能让攻击具备“自动发现新盲区”的能力Weak-to-Strong 提供了一个很自然的答案用较小、较弱、训练不完善的模型去探索目标强模型的脆弱边界。因为弱模型本身安全护栏稀疏更容易“脱轨”而这些“脱轨”输出恰好能充当高价值攻击候选样本。从时机上看这项工作恰好补上了自动化红队测试里“低成本、高迁移、黑盒可用”的那块拼图。写作时看到的实验数据里弱模型生成的对抗样本在多个强模型上都表现出可观的攻击成功率且迁移性比预想中稳定。这是它的价值所在。这篇博文我不打算逐句翻译论文而是站在一名常年做安全对齐和大模型评测的工程师视角把它的原理、复现要点、与其它攻击路线的差异以及对我自己攻防实践的影响一次说清楚。2. Weak-to-Strong Jailbreaking 核心原理拆解2.1 “弱到强”攻击的基本逻辑理解这项技术先要忘掉“攻击越复杂越好”的惯性。Weak-to-Strong Jailbreaking 的核心逻辑是一个未对齐或弱对齐的模型其对安全边界的偏离方式恰好可以用来制造对抗性扰动使强模型在推理时更容易脱离自身的对齐约束。注意这里并不是要求弱模型直接输出一个“完整可成功”的恶意提示而是让弱模型的生成分布作为一种搜索分布目标是把强模型推向“识别不出这是危险请求”的状态。打个比方就像你要测试一座新城的安保系统不需要自己设计一套复杂的潜行方案你只需要让一个不懂安保规则的路人到处乱走乱试看他走出的哪些轨迹能意外触发安保盲区再把这些轨迹整理成正式的渗透测试报告。弱模型就是这个“不懂规则的路人”它的无知和粗糙恰恰是优势。从技术上讲弱模型有两种用法。第一种是直接当作提示生成器弱模型产生大量多样化的文本片段用评分函数筛选出能绕过强模型的高危候选。第二种是把弱模型微调成“弱对齐”状态刻意让它更加无视安全策略从而扩大搜索覆盖。论文里的做法偏向第二种先小幅破坏弱模型的对齐再以此为起点去探测强模型。这个“预破坏”动作不是为了让弱模型更危险而是为了让它的生成空间更自由、更发散。2.2 算法流程与关键步骤如果按我理解的工程实现来拆整个流程可以分成五个关键步骤。第一步选弱模型。一般会选与目标强模型同源的较小开源模型。比如目标是 Llama 系列的大尺寸版本弱模型就用同系列的 7B 或 8B 版本目标是 Qwen 系就用对应生态里体积最小的开源底座。选同源模型的理由很简单词元分布、表示空间、解码风格都足够接近弱模型找到的盲区更容易迁移到强模型上。第二步对弱模型做轻微“去对齐”微调。这一步不能用力过猛否则弱模型直接“崩坏”生成质量变差反而无法产出有意义的提示。通常实践做法是用 LoRA 加少量无安全护栏的指令数据微调 1 到 3 个 epoch让弱模型更少调用“拒绝”行为。我自己的体会是学习率要压低1e-4 这个量级比较稳太高的学习率会把模型的语言能力冲散。第三步用微调后的弱模型生成候选 prompt。这一步要控制生成温度让输出保持多样性的同时不胡言乱语。我会用 temperature1.0top_p0.9max_new_tokens512一口气生成几千条候选。数量不能太少否则后续评分环节筛选不出有效攻击。第四步把候选 prompt 批量送去目标强模型这一步可以并行调用 API。记录目标模型的完整输出同时判断输出是否“安全拒绝”。评分环节非常关键直接决定你能不能从几千条里捞出高杀伤样本。最后第五步按评分排序保留攻击成功的那批候选。更进一步还可以拿这些成功的 prompt 去微调弱模型形成迭代式搜索每一轮都能逼近更强的攻击盲区。从复现的角度看这套流程的计算成本很低弱模型推理只需要一块消费级显卡强模型侧只做推理不做优化成本也比白盒攻击低一个数量级。2.3 代价评估与成功判定通常我们在评估攻击方法时会算一笔总账计算成本、发起的查询次数、最终达到的攻击成功率。Weak-to-Strong 在查询次数上的优势非常明显。因为弱模型是本地推理所谓的开销主要是候选生成和强模型推理调用不需要梯度回传也不需要维护复杂的优化器状态。相比 GCG 那种每轮都要对 token 做梯度更新的白盒方法整体成本可能低 10 倍不止。至于成功判定论文里一般使用攻击成功率ASR即候选提示中被强模型接受并输出违规内容的比例。实际操作里判定是否违规绝对是个容易出偏差的环节。用规则去查关键词会被绕过的表达骗过去用人去标注几千条数据标到眼花。最稳妥的做法是用另一个强模型作为裁判并且把裁判模板设计成三段式先判断响应是否完整拒绝再判断是否包含不安全内容最后给出二值结论。这是我对“自动化攻击评测”里最想强调的一点——如果判定器不可靠你筛出来的高危样本可能只是一堆噪声。3. 与主流越狱方法的对比分析3.1 GCG 与分词级攻击的限制前面提到GCG 是典型的白盒攻击通过梯度信号微调提示词里的离散 token不断迭代去找最大化攻击成功率的 token 组合。它的缺点显而易见首先要拿到模型的权重和梯度这在闭源 API 时代基本行不通其次迭代一次要跑很多步反向传播计算开销惊人最后它修出来的往往是“长相怪异”的 token 序列人类看起来极不自然碰到有输入过滤的部署环境很容易被拦截。所以我一直觉得GCG 更适合作为科研基线而不是实战工具。分词级攻击也类似。它把敏感词做字符拆分、拼音替换、Unicode 变体目的是绕开简单的关键词屏蔽。这类方法实现起来确实简单但防御方只需要在预处理阶段做一遍正则归一化或者训练时加入对抗样本就能轻易堵上。没有一个防御方会蠢到只做字面匹配所以这类花招的生命周期越来越短。Weak-to-Strong 则完全不同它不依赖特定词法而是利用模型的表征盲区天然对各种输入过滤器更鲁棒。3.2 多轮与上下文攻击的局限除了离散优化还有一类典型攻击是多轮对话式越狱比如渐进式提问每一轮都让模型放松一点警惕。这类攻击在交互场景里效果不错但致命弱点是查询次数太多一次性成本太高。防御方也容易设计策略来缓解比如对连续会话做风险累计检测到达阈值就终止对话。此外上下文攻击往往依赖精心编排的会话流程迁移性差换一个模型就又要重新编排。像 Crescendo 这类多 Agent 攻击虽然能在多轮交互中慢慢诱导模型但每一次对话都会留下痕迹容易被对端日志审计发现。对于追求低成本和单次命中的攻击场景这类方法是笨重的。Weak-to-Strong 的优势在于它是一轮攻击“一发入魂”弱模型负责想出来强模型只回答一次就暴露不需要长期上下文铺垫。这个特性决定了它在真实黑盒环境中更实用。3.3 Weak-to-Strong 的独特优势把几种方法摆在一起之后Weak-to-Strong 的差异化就清晰了黑盒可用不需要梯度单轮完成不需要长对话生成侧成本低弱模型本地推理就能跑迁移性好同源弱模型找到的盲区在不同尺寸模型间往往通用。这些都是工程上非常吃香的特性。不过我也要说一句公道话前面那些方法并没有被完全替代。GCG 仍适合在离线环境中探索模型安全上限多轮攻击仍适合评估复杂业务场景。只是当你想快速、低成本地评估一个全新模型对外部对抗输入的鲁棒性时Weak-to-Strong 几乎是最省事的起点。我在团队内部做新模型上岗前安全验收时已经把跑一遍弱到强攻击当成了必备检查项。4. 复现实验设计与参数细节4.1 实验环境与模型选型先说环境标准 PyTorch 训练环境就够了如果弱模型是 7B 到 8B 级别单张 24GB 显存的卡就能覆盖微调和推理。如果弱模型是 14B 或更大但我更推荐从 7B 开始因为训练和推理都轻便迭代速度快。基于常见实践的补充实践上使用 HuggingFace Transformers TRL PEFT 的组合够用不需要自己写训练循环。模型选型上我的建议是优先看目标模型的开源同门。假设你目标是 72B 闭源 API 模型但供应商没开源小模型那就选其他开源生态里体积最小、但语言风格接近的模型。这里有个经验同生态弱模型和跨生态弱模型都有用但同生态的迁移成功率通常高 10 到 20 个百分点。因为你希望弱模型发现的 prompt 模式能精准击中强模型的解码偏好。4.2 超参数设置与关键配置微调阶段我用 LoRA 而不是全参微调核心原因是不想破坏弱模型的基础语言能力。LoRA rank 设 16alpha 设 32Dropout 设 0.05训练 2 个 epoch学习率 1e-4batch size 在显存允许范围内尽量拉大。实际跑下来这些配置不容易让弱模型产生灾难性遗忘又足够让安全对齐弱化。如果你发现微调后的弱模型输出质量变差优先降低学习率其次减少 epoch不要反过来去调 LoRA rank。生成候选提示时温度控制最关键。温度 0.3 以下会让候选变得雷同攻击成功率曲线很快就平了温度 1.5 以上会让输出散成乱码筛选阶段几乎浪费一半样本。我在多个模型上试下来1.0 是一个甜点区间多样性好同时文本仍是连贯的英文或中文指令。单次生成条数建议不低于 1000预算允许就 3000因为最后真正高攻击力的候选可能只有几十条跟抽卡一个道理样本少注定沉底。4.3 数据集与安全评估度量这里我要特别提一个合规问题做这一类实验时不要在公开博文里贴真实敏感攻击样本也不要去互联网上拉真实恶意数据集。我平时做内部复现会构造“模拟高危行为”数据集用抽象指令占位重点验证攻击方法本身的能力流转而不是真实造成伤害。这一条不仅是合规需要也是负责任的安全研究底线。评估度量上我会同时看两个指标攻击成功率ASR和平均拒绝率下降幅度。光看 ASR 可能被裁判模型噪声干扰所以我会把目标强模型输出分三档彻底拒绝、部分响应、完全响应然后把后两档都算成潜在越狱。这样可以避免因为裁判过严或过松导致的误判。另外每次实验固定随机种子并在多轮验证中保持一致否则你对比不同防御模型时分不清是攻击能力变化还是随机噪声。5. 安全防御启示与评测体系影响5.1 防御手段面临的新挑战Weak-to-Strong 这类方法给防御方提了个醒你辛辛苦苦把模型对齐拉满但攻击者只需要一个弱对齐的小模型就可能在你的护栏上凿出一个洞。这意味着防御时不能只盯着“输入文本是否恶意”还要考虑输入的统计分布是否异常。比如通过差异性检测识别哪些 prompt 会是弱模型自动生成的也就是给输入侧增加一层分布外检测。更实际的防御路线是对抗性训练把弱到强攻击发现的候选 prompt 作为额外训练数据混入对齐训练集。但要提醒一句直接混入可能会影响模型正常能力。我看到不少团队的做法是单独维护一个“安全增强冷启动池”先用少量数据做 PPO 或 DPO 预热再逐步混合。这条路走通后模型的鲁棒性提升是比较明显的代价是训练流程多一道工序。换句话说强弱攻击的攻防本质上是动态博弈防御方要去修补每一个被发现的盲区而攻击方只用重新跑一遍弱到强搜索就可能在下一个版本里再找到新的盲区。我觉得短期内不可能一劳永逸防御方需要建立常态化红队流程。5.2 对红队测试与安全评测的启示以前的红队测试主要靠人工构造样本或调用现成攻击库成本高、覆盖面有限。Weak-to-Strong 提供了一个低成本的自动化初筛方案先用轻量弱模型跑一大轮候选把高风险 prompt 筛出来再让安全专家针对这些高危样本做精细分析和加固建议。这样一套“机器初筛 人工研判”的流程既控制了成本也保留了专业判断。评测体系上我强烈建议各团队把 Weak-to-Strong 攻击作为一个标准安全评测基线。现在很多模型基准测试里静态安全性题目占主导模型背答案就能拿高分但真实世界的输入分布远比这复杂。加入弱到强攻击后评测会从静态题库向动态对抗方向倾斜这才能反映模型面对新攻击的真实韧性。6. 实操中的常见问题与避坑建议问题现象可能原因排查与解决套路弱模型微调后输出大量乱码候选提示不可用学习率过大或 epoch 过多基础能力被破坏降到 5e-5epoch 减到 1检查验证集 loss攻击成功率极低几乎没有模型漏出危险内容候选数量不足或温度过低导致搜索范围太窄把候选条数拉到 3000调高温度为 1.11.2同一批候选在评测时忽高忽低裁判 LLM 判断不一致用三段式裁判提示词多次投票取多数固定 seed候选在弱模型来源上成功换强模型失效弱模型与目标模型生态差异大换成同生态弱模型或混合多个弱模型候选再排序防御方加入新对齐后攻击效果骤降目标护栏强化盲区被临时覆盖重跑一轮弱到强搜索迭代优化要增加多样性API 调用被限流导致生成轮次中断并行请求过猛控制并发加入退避机制拆成小批次重试还有几个我踩过很多次的坑单独拿出来讲。第一不要直接用默认生成配置。HuggingFace 的 greedy decoding 会让候选 prompt 几乎全部雷同安全筛法学不到多样性。一定要显式配置 temperature 和 top_p。第二微调弱模型时不要同时动语言模型的 embedding。LoRA 只作用于线性层这是我认为最安全的微调方式如果去动 embedding模型的原始语义结构被扰动生成风格会漂移严重。第三攻击成功率并不是越高越好。做红队研究时一个极高 ASR 的 prompt 可能对目标模型过度过拟合换一个模型就完全失效。我会更看重“Pareto 最优”也就是 ASR 高同时 prompt 语义仍自然、不是乱码。这样拿到的对抗样本才更有分析和防御价值。最后所有攻击实验都应在被授权的模型和系统上进行遵守相关评测规范。安全研究是为了建设更好护栏不是为了反过来作恶。结尾我自己的经验是在红队自动化工作流里先把 Weak-to-Strong 跑成一道流水线再配合人工研判是最实用的打开方式。攻击方向后续可能还会演化出更多变体比如弱模型的中间表示增强、多弱模型投票等我同样期待防御侧能基于这类方法设计更健壮的对齐策略。每次接触这类攻防技术我都会提醒自己安全研究的意义不在于展示突破本身而在于我们越熟悉攻击才越能设计出经得起考验的系统。如果在安全评测和模型发布流程里更多团队愿意把这类低成本攻击作为常态检查项我相信大模型的可信度会高一个台阶。