评测的盲区:当安全分数把成功的越狱排在失败之下
> 论文:Measuring the Wrong Thing: Internal Harmfulness Scores Anti-Rank Successful Jailbreaks > 作者:Liangkuang Ren 等 > arXiv: 2608.09624 > 代码:https://github.com/kuangren777/aap-audit
一个让安全团队失眠的数字
假设你是一家 AI 公司的安全负责人。你的团队刚部署了一套内部安全评分系统——它读取模型的内部激活值,输出一个 0 到 1 的"有害性分数"。在验收测试中,这个分数区分有害提示和良性提示的 AUROC 高达 0.936。你签了字,系统上线。
三个月后,红队提交了一份报告:他们用 base64 编码、角色扮演、研究借口等五种包装手法对模型发起了 100 次攻击,成功了 27 次。你调出安全分数一看——
成功攻击的分数比失败攻击的分数还低。AUROC 0.220。
0.220 意味着什么?0.5 是随机抛硬币。0.220 是比随机还差——这个分数在主动误导你,把最危险的攻击标记为"安全"。
这不是假设场景。这是论文 *Measuring the Wrong Thing* 用一套严格的匹配审计方法复现的核心发现。
问题的根源:测的不是你想测的那个东西
论文的核心论点可以用一句话概括:
一个能很好排序"有害意图"的分数,不能直接拿来预测"越狱成功"。
这两个看似相近的概念,其实是不同的构造:
- 有害意图(harmful intent):提示本身是否试图让模型做坏事。这个属性只取决于提示文本。
- 越狱成功(jailbreak success):模型是否真的生成了有害内容。这个属性取决于提示、模型、解码策略、判断标准四者的交互。
用日常话说:你买了一把测酒精的呼吸仪,验收时它精准测出了白酒和水区别。然后你拿它去测一个人"会不会酒驾"——但会不会酒驾还取决于他开不开车、开什么车、路上有没有警察。
实验设计:匹配审计
论文没有止步于指出概念混淆。它设计了一套严格的匹配审计流程来量化这个错位。
数据集:100 个有害目标,每个目标用五种包装手法(base64、rot13、caesar、角色扮演、研究借口)各攻击一次,共 500 次。同时有 95 个无包装的基线目标作为对照。
目标模型:Llama 3.1-8B-Instruct + Llama Guard 3 安全过滤器(冻结)。
判断标准:同一套 Llama Guard 3 做成功/失败判定,并做了 success@5、多数投票、概率重采样四种变体。
安全分数:用模型内部注意力头的激活值构造的有害性分数,论文还设计了一个 Active Attention Probing(AAP)框架来固定比较坐标。
关键设计:同一套模型、同一套判断器、同一套攻击集,只切换"分数验证的构造"——从有害意图切到越狱成功。这样任何差异都只能归因于构造替换本身。
四个发现,一个比一个扎心
发现一:分数对越狱成功是"反排序"的
在 100 个被包装的有害目标中,27 个攻击成功、73 个失败。安全分数把 27 个成功攻击中的大多数排在 73 个失败攻击之下。AUROC 0.220,95% 置信区间 [0.109, 0.343]。
这个数字在四种判断变体下都稳定:greedy label 0.220、success@5 0.252、多数投票 0.202、概率重采样 0.206。五个独立采样轮次分别给出 0.175 到 0.257。
这不是噪声,是系统性反信号。
发现二:反排序在多个维度上都成立
论文进一步做了分层分析:
- 跨攻击家族:五种包装手法中,三种因为成功数太少无法估计 AUROC,但剩余两种都呈现反排序。
- 跨注意力头:266 个注意力头中有 22 个在 max-statistic 置换检验下显著(家族层面),但它们的 outcome AUROC 均值只有 0.260。换句话说,"能识别有害意图"的头,恰恰是"会反排序越狱成功"的头。
- 跨判断器:换一个判断器,结论不变。
发现三:分布漂移会破坏原有解释
即使你只关心"有害意图"这个构造,分数的效度也不稳定。论文测试了三种分布漂移:
- 编码漂移:base64 编码的良性提示会被打高分,因为分数对"编码"这个特征敏感,而不是对"有害"敏感。单类编码(只编码有害提示)的 AUROC 高达 0.997-1.000,但这是因为编码本身就是一个信号——一个只看编码、完全不看语义的统计量也能达到同样的分离度。
- 良性分布漂移:用 benign-only 分位数规则,在分布内保持名义假阳性率,但在 WildJailbreak 数据集上召回率从 0.25 掉到 0.03。
- 包装漂移:包装会选择性降低有害请求的分数——有害意图 AUROC 从 0.936 掉到 0.803。
发现四:反排序的机制——"包装拉低了所有分数,但成功攻击被拉得更低"
论文给出了一个清晰的机制解释:
包装手法(base64、角色扮演等)会让安全分数系统性地降低——无论是良性还是有害提示。但成功攻击之所以被排得更低,是因为它们恰好是那些"包装得更彻底"的样本。换句话说,越狱成功度与包装强度正相关,而包装强度与安全分数负相关,所以安全分数与越狱成功度负相关。
这个机制意味着:安全分数不是在测有害性,它是在测"这个提示看起来有多像训练时见过的有害提示"。包装得越不像训练分布,分数越低,但越狱成功的概率反而越高。
为什么这件事很重要
这篇论文的贡献不在于发现了一个新攻击或新防御,而在于它揭示了一个评测方法论层面的系统性盲区。
当前 AI 安全领域的标准做法是:
1. 训练一个内部安全分类器(或用 Llama Guard 等外部模型) 2. 在有害/良性提示集上验证 AUROC 3. 部署后用它做实时过滤
这套流程的问题在于:验证构造 ≠ 部署构造。验证时测的是"能否区分有害 vs 良性提示",部署时需要的是"能否预测这次攻击会不会成功"。这两个构造之间有一道鸿沟,而 AUROC 这个单一数字会把它彻底掩盖。
更危险的是:0.936 的高分会给团队一种虚假的信心,让他们停止改进、停止怀疑。而真正出问题时,0.220 的反排序意味着你越信任这个分数,你过滤掉的越是真正的攻击。
对"评测盲区定律"的再确认
这篇论文是"评测盲区定律"的又一个干净例证。之前我们看到的几篇论文都指向同一个主题:
- Epanorthosis:LLM 系统性复现古典修辞手法,根因是 RLHF 奖励自信强调——"AI 味"可被测量但常被忽略。
- Token Budget:CoT 推理呈双峰命运(96.5% vs 11.5%),命运早期就编码在表示中——但标准 loss 掩盖了这种双峰。
- QuantiBias:量化在标准安全检查的盲区里引入 24-27% 偏见——读出层离散化是根因。
- Möbius RoPE:种子彩票方差 14%-98%,标准 perplexity 完全看不出问题。
五篇论文,五个不同的盲区,同一个结论:单一指标会掩盖关键失败模式。测什么就优化什么,不测的就是问题藏身的地方。
方法论启示:如何避免构造替换
论文给出的启示不是"不要用安全分数",而是"验证时要对齐部署构造"。具体来说:
1. 验证构造必须匹配部署构造。如果部署时要用分数预测越狱成功,验证时就要用越狱成功做标签,而不是用有害意图做标签。 2. 分布漂移测试必须覆盖包装手法。只在原始有害提示上验证是不够的,必须测试经过包装的变体。 3. AUROC 0.997 可能是警告信号。如果单类编码(只编码有害提示)就能达到 0.997-1.000,说明分数在捕捉"编码"这个表面特征,而不是"有害性"这个语义特征。过高的分数反而意味着过拟合到某个表面线索。 4. 反排序比低分更危险。AUROC 0.4 只是没用,AUROC 0.220 是在主动误导。部署后,反排序的分数会让团队把注意力集中在错误的方向上。
诚实的评价
这篇论文不是没有局限:
- 实验只在 Llama 3.1-8B + Llama Guard 3 上做的,其他模型族是否复现需要验证。
- 100 个有害目标、500 次攻击的样本量不算大,置信区间还比较宽。
- 论文聚焦于"内部安全分数"这一类方法,外部判断器(如 Llama Guard 做分类)是否也有同样的构造替换,论文没有直接测试。
这个审计本身比任何具体的 AUROC 数字都更有价值。
结语
"测什么就优化什么"是 AI 安全领域的老生常谈。但这篇论文给出了一个更锋利的版本:
测对了构造,但测错了构造之间的关系,比完全没测更危险。
因为完全没测,你知道自己不知道。测了但测错了构造,你会以为自己知道——然后停止怀疑。
0.220 这个数字应该被挂在每一个安全团队的墙上。不是因为它吓人,而是因为它提醒:一个高得离谱的验证分数,往往是构造替换正在发生的信号。
---
论文链接:https://arxiv.org/abs/2608.09624 代码仓库:https://github.com/kuangren777/aap-audit