为什么重要
网络安全是目前 LLM 评测里”看着饱和、实际空洞”最严重的方向之一。已有的评测基本是两类:一类考知识(CTF 题、漏洞问答),一类考端到端 Agent 流程(给你一台机器去打)。但真实安全工作里占比最大的那件事——把分析师的意图翻译成一条能直接执行的具体工具命令——两者都没测。
KaliBench 的摘要点得很准:现有 function-calling 基准默认工具是 schema-defined 的,功能和参数都被声明好,模型只需要填槽。而真实的 Kali Linux 有 2,000 多个预装工具,没有统一 schema,全靠手册和约定。
在无 schema 的 CLI 场景下,错误是”不可容错”的:参数顺序错一位、flag 拼错一个字母、用了不存在于该版本的别名、工具选错——任一条都让命令直接失效。这与填槽式函数调用的错误形态完全不同。
KaliBench 是第一个在 schema-free CLI 设置下、以 1,642 个真实安全工具为对象评测 LLM 的基准。它的定位是细粒度:不只看”命令对不对”,而是把命令拆成工具名、可选参数集合、位置参数序列分别打分,从而能定位模型到底错在哪一层。
构建方式
生成。 以 Kali/Linux 工具的原始使用文档为种子,用 LLM 生成候选配对,每条包含五部分:无歧义的自然语言查询、精确的真值 shell 命令、规范化工具名、解析后的可选参数(flag–value 映射)、有序位置参数。硬约束是只允许使用文档里真实存在的工具、flag 与行为。
验证。 四道关卡:
- LLM 校验:判定命令是有效还是幻觉,重点查 flag 是否存在、参数是否正确、功能是否与文档声明的能力对齐,输出二元判定加简短理由;
- 沙箱终端执行:验证可执行性;
- 人工介入修正:人工复核边缘案例;
- 规范化与去重:确定性规范化 + 别名感知评估。
从 27.7K 条生成数据里最后留下 8.5K 条(30.7%),这个留存率本身就是质量信号——三分之二的生成数据是脏的。
切分。 评测集 5,000 条,优先保证覆盖全部 1,642 个工具;训练集 3,504 条覆盖 962 个工具,刻意留出更小的训练切分以研究泛化。这个切分策略值得注意:它牺牲了训练集规模来换取评测集的工具覆盖度,与常见做法相反。
结构。 5 个安全阶段(侦察、武器化、投递、利用、后渗透一类)× 23 个细粒度能力维度。
关键发现
一、工具选得对,命令写不对
最刺眼的读数来自把两个指标并排看。以 DeepSeek-V3.2 为例:工具准确率 75.8%,整条命令完全正确只有 33.0%。GLM-5.2 更好一些:工具准确率 86.3%、EC 41.3%。
这个 40–50pp 的落差说明瓶颈不在”知不知道该用哪个工具”,而在参数构造:可选参数该给哪些、位置参数按什么顺序排、哪个别名在这个版本里才有效。摘要给出的结论是:没有任何开源模型在 Unrestricted 模式下把整条命令写对的比率超过 42%。
二、Hinted 模式把分数抬了 30pp,说明缺的是”接口知识”而非”安全知识”
三个模式的 EC:
| 模型 | Unrestricted | Restricted | Hinted |
|---|---|---|---|
| GLM-5.2 | 41.3 | 52.0 | 74.8 |
| DeepSeek-V3.2 | 33.0 | 40.2 | 84.5 |
| RedSage-K (SFT+GRPO, 8B) | 32.2 | 37.4 | 69.4 |
| Qwen3-8B | 18.3 | 24.1 | 73.1 |
从 U 到 H,模型涨 30–50pp。只是告诉它用哪个工具、关键参数是什么,就能拿到接近翻倍的成绩。这说明卡住模型的不是安全领域的推理能力,而是对这些工具具体接口形态的记忆与掌握——一类高度局部、高度依赖文档的知识。
这一条与 CompMat-Bench 的 2×2 网格结论是同一个现象的两个观测:基准里”给多少提示”这个被钉死的常量,实际上能把分数移动几十个百分点。
三、拒答率把闭源模型的排名彻底改写
这是本基准最有政策含义的发现。闭源三强的 EC 有两个口径:
| 模型 | 已回答题数 | EC(已回答) | EC(全部 5,000 题,拒答记错) | 差值 |
|---|---|---|---|---|
| GPT-5.6-Sol | 4,988 | 61.83% | 61.68% | 0.15pp |
| Claude Opus 5 | 3,675 | 59.89% | 44.02% | 15.87pp |
| Codex (GPT-5.5) | 4,633 | 55.77% | 51.68% | 4.09pp |
按”已回答”算,Opus 5 与 GPT-5.6 Sol 只差 1.94pp;按”全部题”算,差 17.7pp,排名直接从并列第二掉到第三且落后两位数的量级。这 26.5% 的拒答率几乎完全是安全策略造成的,不是能力问题——Opus 5 在被它愿意回答的题目上表现与头名相当。
读这类基准时必须问清楚分母是什么。只报”已回答”口径会让安全策略更严格的模型看起来更强;只报全量口径又会把”拒绝做”与”做不对”混为一谈。本卡两个值都给。
四、8B + RLVR 打平 685B MoE
KaliBench 因为评分是确定性的、不需要运行时,天然可以做免运行时的可验证奖励(runtime-free verifiable reward),直接喂给 RL。结果(Total Score):
| 模式 | RedSage-Ins 基座 | +GRPO | +SFT+GRPO |
|---|---|---|---|
| Unrestricted | 56.36 | 67.40 (+11.04) | 70.31 (+13.95) |
| Restricted | 69.31 | 74.65 (+5.34) | 77.93 (+8.62) |
| Hinted | 89.53 | 88.77 (−0.76) | 89.34 (−0.19) |
两条读法。第一,RLVR 的增益在最难的模式上最大(U 模式 +13.95pp),在 Hinted 模式上反而是微降——因为 Hinted 已经接近天花板(89.5%),可学的空间本来就小。这说明可验证奖励的价值与任务的信息缺口成正比,缺口越大收益越大。
第二,训练后的 8B 在 U 模式拿到 70.31 总分,超过 DeepSeek-V3.2(685B/37B MoE)的 67.2,逼近 GLM-5.2(753B)的 71.0。一个 8B 模型在两个数量级参数差下追平前沿 MoE,靠的是把”接口知识”这一高度局部的能力用可验证奖励硬压进去。这与 KaliBench 自身的定位一致:它测的正是这类可以被 RL 压缩的局部知识。
五、鲁棒性:改写措辞几乎不掉分,但”脏输入”掉 3.2pp
对查询措辞做三种扰动后的 Total Score 变化(八种模型配置平均):
| 扰动 | Unrestricted | Restricted | Hinted |
|---|---|---|---|
| 改写(Paraphrase) | +0.61 | +0.22 | −0.09 |
| 口语化(Informal) | −0.55 | −0.48 | −0.28 |
| 杂乱(Messy) | −3.20 | −1.40 | −1.07 |
语义层面的改写几乎不影响,甚至略正;格式层面的杂乱(拼写、排版、冗余符号)掉 3.2pp,且是三个模式里掉得最多的。有意思的是模式越”帮忙”(Hinted),扰动的影响越小——提示把脆弱性吸收掉了。
六、有些工具所有模型都满分,有些全军覆没
论文给出了跨全部模型评分文件聚合出的最佳/最差代表工具。满分(1.000)的有 d2j-std-apk、rfdump、truecrypt2john 等,jSql 接近满分(0.998)。这些工具的共同点是命令形态单一、参数少、用法在文档里写得直白。
最差的一侧则集中在参数形态复杂、文档示例与实际用法不一致的工具上——这与论文在失败案例里给出的三类典型错误吻合:畸形的 CLI 选项、遗漏查询要求的必需参数、参数使用上的语义错配。
如何读这份榜单
- topResults 按 Unrestricted 模式的 Exact Correct 降序,这是最难也最贴近真实使用的模式;同一格里附该模式的 Total Score 便于对照。
- 闭源三行与开源行的分母不同:闭源行跑的是 5,000 题全量评测集,开源行的 U/R/H 三模式同样基于该集合,可比;但闭源行只做了 Unrestricted 一种模式,没有 R/H 对照。
- 开源三行里 RedSage-K 的三个变体同基座不同训练,占了三席。这不是榜单拥挤,而是论文刻意展示 RLVR 的增益曲线——读它们时请当成一条训练轨迹而不是三个独立系统。
- 8B 排在 80B 前面不代表 8B 更强,只代表它在 KaliBench 训练集上被专门训练过(3,504 条、962 个工具)。这是领域微调的收益,不是通用能力。
局限
论文自己在附录列出的限制包括:数据集由 LLM 生成后经多阶段验证,仍可能残留文档本身已过时的用法;只覆盖 Kali Linux 预装工具,不能外推到 Windows 或云安全工具链;评测只到”命令正确”,不验证命令在真实目标上的效果,也不涉及是否需要授权——这是一个工具使用能力基准,不是攻击能力基准。此外,评测集的工具覆盖优先策略意味着部分工具只有极少样本,工具级统计的置信区间很宽。