← 返回 2026-07-16

从受控走向真实:面向真实场景的渗透测试智能体评估协议 From Controlled to the Wild: Evaluation of Pentesting Agents for the Real-World

Pedro Conde, Henrique Branquinho, Valerio Mazzone, Bruno Mendes, André Baptista, Nuno Moniz 📅 2026-07-14 👍 2 2026-07-16 18:30
LLM-as-Judge 二部图匹配 智能体评估 渗透测试 漏洞发现 评测协议

把评估单元从夺旗任务转向漏洞发现,配LLM匹配与二部图解析。

前置知识

渗透测试 (Penetration Testing / Pentesting)

由安全工程师对目标系统进行的授权模拟攻击,目的是在真实攻击者之前发现可被利用的漏洞。它不是一次性问答,而是一个开放式的探索过程:扫描攻击面、解读零散证据、决定优先攻哪条路径、把多步动作串成利用链。本文关注的是 AI 化的自动化渗透测试智能体(agentic pentesting agents),即用大模型驱动的工具去替代/辅助人类完成上述流程。

论文的核心场景就是 pentesting,必须先理解它为何'开放式、多漏洞、带不确定性',才能理解作者为何批评现有 CTF/RCE 基准'过度受控'、以及为何提出 finding 级别的评估。

LLM-as-a-Judge(大模型作为评判者)

用一个 LLM 来代替人工,对两个文本(如智能体上报的漏洞描述与 ground-truth 漏洞条目)做语义层面的匹配判断。本文在 findings-to-ground-truth 管线里用它做'一对多'的候选匹配:给定一个 finding,让它列出所有语义上可能对应的 ground-truth 条目,而不是强制一一对应。论文通过 50 条人工标注的 sanity-check(25 个 TP、25 个 FP)对比了多个 LLM,最终选 GPT 5.4 Mini 作为判官。

整个评估协议的自动化基础就是 LLM-as-Judge,理解它的'宽松匹配 + 后续二部图消歧'两段式设计,是读懂方法章节的关键。

二部图最大匹配与匈牙利算法 (Bipartite Matching / Hungarian Algorithm)

把'智能体上报的 findings'与'ground-truth 漏洞条目'看成二部图的两个顶点集,LLM 产生的候选匹配作为边。匈牙利算法在多项式时间内求出最大匹配,保证每个 ground-truth 条目至多被记一次分、每个 finding 至多对应一个真漏洞,从而避免重复上报或泛化描述导致的分数虚高。形式上是求 $|M| = \max$ 的匹配 $M$。

这是协议把'候选匹配'转换成'可信真正例计数 TP'的核心机制,没有它,Precision/Recall 就会被重复报告污染。

Precision / Recall / F1 / F0.5

经典检测指标:$\text{Precision} = TP/(TP+FP)$ 衡量上报里有多少是真的,$\text{Recall} = TP/(TP+FN)$ 衡量真漏洞里被报出多少,$F1 = 2PR/(P+R)$ 是两者调和。$F0.5 = (1+0.25)PR/(0.25P+R)$ 给 Precision 更高权重,pentesting 场景下更看重误报成本,所以论文重点报告 $F0.5$。

论文所有结果都用这些指标表达,尤其要分清 F1 与 F0.5 的区别才能看懂 PentAGI-Sonnet 累积后 F0.5 反而下降的现象。

Cohen's d 与 Welch's t 检验

用于在重复实验少(low-replication)时做成对比较。Welch's t 检验比较两组均值是否显著不同,且不假设两组方差相等;Cohen's $d = (\bar{x}_1 - \bar{x}_2)/s$ 量化差异的'效应大小'(相对标准差的倍数)。论文建议两者一起报:p 值告诉你差异是否'难以用零假设解释',d 告诉你差异是否'大到有实际意义'。

因为跑一次 agentic pentesting 又贵又随机,作者只能做少量重复,理解 d 与 p 的分工才能理解为什么作者反对只看显著性。

CTF 与 exploit-reproduction 基准

Capture-the-Flag(夺旗)把任务简化为'拿到 flag 字符串',远程代码执行(RCE,如 TermiBench)把成功等价于'在某主机上执行任意代码',漏洞复现(如 CVE-Bench、BountyBench、CyberGym)用'漏洞版 vs 修补版'对比来验证 PoC。它们评分便宜、可复现,但都把成功绑死在单一预定目标上。

这些是论文要超越的'受控基准'对照系,理解它们的成功定义才能理解作者为什么说它们不能反映真实 pentesting。

研究动机

随着 LLM 走向 agentic 行为(规划、工具调用、迭代推理、环境交互),AI 渗透测试智能体已具备真实进攻安全能力。然而现有评估几乎都锚定在过度受控目标上:CTF 类把成功简化为拿 flag;TermiBench 用 RCE 作单一目标;PACEbench 虽引入干扰项与防御但仍靠 flag 评分;PentestEval/PentestJudge 用轨迹相似度或行为 rubric 打分;CVE-Bench/BountyBench/CyberGym 虽用真实 CVE 与'漏洞版/修补版'对比提升了 oracle 质量,但仍只评估单个 PoC 或单一漏洞类别。它们奖励的是'闭世界单一目标完成',无法反映真实 pentesting 所需的开放探索、多漏洞发现、优先级判断与策略决策。更糟的是它们很少把评估当'运营问题':ground truth 不完整、智能体随机性、重复执行成本、运行时与金钱开销都被忽略,部分方法还默认白盒(能看源码),与真实黑盒/灰盒委托脱节。结果是:CTF 上高分的系统,可能在实际多漏洞目标上沉默失败。

本文的目标是本文的目标是给出一套可被不同目标类别复用的'实操化评估协议',把评估单元从'任务完成/轨迹相似'迁移到'已验证的漏洞发现(validated vulnerability discovery)'。具体地,作者希望协议能:(1) 在足够复杂、跨多个攻击面与漏洞类别的目标上评估;(2) 通过结构化的 finding-to-ground-truth 管线,在描述模糊时仍可靠地计分;(3) 把 ground truth 当作持续维护的'活资源'而非静态答案;(4) 用重复 + 累积两种方式处理智能体随机性;(5) 把运行时与金钱成本作为一等等指标纳入比较;(6) 完全基于上报的 findings 评分,因此与测试模态(白盒/灰盒/黑盒)无关。这样评估不只是衡量进步,更能帮决策者选出真正值得部署的系统。

与已有工作不同的是,作者最独特的切入角度是把'评估的原子单元'从 flag / 单一 exploit 目标 / rubric 合规,换成了'finding 本身'。这带来一组前人未组合的设计:finding 与 ground-truth 之间先做宽松的 LLM 语义一对多匹配以保留歧义,再用匈牙利算法做二部图消歧防止重复上报虚高分数;ground truth 被当作与目标理解、智能体行为共同演化的资源,由专家周期性 triage 未匹配 findings 来反哺;随机性不靠'多跑求均值'草草了事,而是同时报告 Welch t 检验与 Cohen's d,并引入'累积评估'把多次运行的去重 findings 当成一次战役来评分。这种'发现为中心 + 可消歧 + 可维护 + 可累积 + 关注效率'的组合,是相对于 CTF/RCE/轨迹相似度工作的本质区别。

核心方法

协议围绕四个核心理念展开。第一,使用'足够真实'的目标——需要探索与战略决策、跨多个攻击面与漏洞类别,而不是单目标 CTF。第二,建立结构化的 finding-to-ground-truth 评估管线,由三段组成:构造 ground-truth、用 LLM-as-Judge 做语义匹配、用二部图消歧。第三,把 ground truth 视为'持续维护的活资源',通过专家周期性 triage 未匹配 findings 来补充和精炼条目。第四,用'重复运行'与'累积运行'两种方式处理智能体随机性。在此之上还有两块运营性设计:把运行时 $\text{runtime}$ 与金钱 cost 作为一等等指标追踪;用历史数据驱动地选出'代表性子集',在 $\sum_{t \in S} c_t \leq B$ 的预算约束下使子集与全基准的 Pearson $r$(主)与 Spearman $\rho$(次)最大化,从而支持可持续的频繁实验。整条管线对内部轨迹与源码访问零依赖,因此跨白/灰/黑盒一致。

最核心的创新是把'评估单元'从任务/轨迹降级为'finding',并配套三个前所未有的机制。其一,'一对多语义匹配 + 二部图消歧'两段式:先用 LLM 宽松地保留所有似是而非的对应,再用匈牙利算法求最大匹配 $M$,保证每个 ground-truth 条目至多计一次、重复上报不会虚高 TP——这解决了 CTF 类基准无法处理'同一漏洞被多次/多路径上报'的死结。其二,'活 ground truth':承认真实目标的完整漏洞集合评估时不可知,因此把未匹配 findings 的专家 triage 纳入协议本身,让答案键随目标理解演化。其三,'累积评估':把 $k$ 次运行的 findings 合并去重后当一次战役评分,从而把随机性从'噪声'转化为'探索多样性的红利',这是单次均值永远看不到的性质。

方法步骤详情

完整流程分七步。一 ground-truth 创建:为每个目标写一份 jsonl,每行一个已知漏洞含 name/category/description,特异性要'恰好'——太泛无法判定命中,太严会拒绝走不同路径的有效发现。二 LLM 匹配:对每个 finding,让 LLM-as-Judge 对照所有条目列出语义上可能的候选(允许一对多)。三 二部图消歧:把候选建成二部图,用匈牙利算法求最大匹配得可信 TP。四 算指标:基于 TP/FP/FN 算 Precision、Recall、$F1$、$F0.5$,以及重复计数、严重性、覆盖率与 CWE 覆盖率。五 持续维护:周期性 triage 未匹配 findings,真实漏洞补进 ground truth,反复匹配多 finding 的条目做精炼并校准判官。六 随机性:每个配置跑多次重复报均值±标准差,成对比较同时报 Welch's t 与 Cohen's d。七 累积评估:合并 $k$ 次运行 findings 按同一管线去重评分,可区分'无/带跨次记忆、目标运行间被修补'等设置。最后用历史数据在预算约束下选代表性子集供频繁实验。

技术新颖性

技术新颖性体现在四处。第一,把评估单位下沉到'finding'而非 flag/exploit/trajectory,这是相对 CTF([9][49][27])、RCE(TermiBench)、轨迹相似度(PentestEval、PentestJudge)与单 PoC 验证(CVE-Bench、BountyBench、CyberGym)的根本性差异——前人都把成功绑死在单一预定目标或预定工作流上。第二,'宽松匹配 + 二部图消歧'组合解决了一个前人回避的问题:真实目标里同一漏洞会被多路径/多描述反复上报,朴素计数会虚高,而匈牙利算法给出有理论保证的去重计数。第三,'活 ground truth'承认评估时完整漏洞集合不可知,把专家 triage 内化为协议的一部分,使指标随目标成熟度收敛,这在闭世界基准里是无需考虑的。第四,'累积评估'把随机性从负面噪声翻转为正面资产,并用 $F0.5$ 等 Precision 加权指标显式刻画'重复评估是否仍可操作'——这是对单次均值报告方法的直接补充。

Findings-to-ground-truth matching system comparison with human triaged findings as baseline across 3 runs, with mean values and standard deviation.
Figure 1: Findings-to-ground-truth matching system comparison with human triaged findings as baseline across 3 runs, with mean values and standard deviation.
High-level illustration of the proposed evaluation framework (Appendix B).
Figure 4: High-level illustration of the proposed evaluation framework (Appendix B).

实验结果

实验用 3 系统(Strix、PentAGI、Claude Code)×4 LLM 后端(Sonnet 4.6、GPT 5.4、DeepSeek v3.1、Qwen 3.6 Plus),3 目标各跑 3 次。ground truth 共 108 个漏洞:vuln-bank 60、paygoat 28、xben-090 20。sanity-check 挑 50 findings(25 TP + 25 FP)对比判官(Figure 1),GPT 5.4 Mini 平均仅约 1 误判被选作判官。Figure 2 显示所有配置都'高假阴性':无 setup 能单次覆盖全部已知漏洞。Figure 3 累积评估最关键:合并 3 次 findings 后所有 setup 的 $F1$ 都因 Recall 上升而提升,但分化巨大——PentAGI-Sonnet 累积后 Precision 明显下降,累积 $F0.5$ 反低于单次均值;而 Strix-Sonnet 累积后 Precision 稳定、Recall 近乎翻倍,取得所有配置中最高的累积 $F0.5$,表明其随机性在重复评估下反而是优势。

Overall comparison for all experimental setups, averaged across 3 runs on all targets, with mean values and standard deviation.
Figure 2: Overall comparison for all experimental setups, averaged across 3 runs on all targets, with mean values and standard deviation.
First row – comparison considering findings accumulated across 3 runs for all targets. Second row – (i) Δ% between cumulative results and averaged ones (Figure 2) and (ii) overlap of TPs between runs, for the setups with highest (first) and lowest (second) ΔF1 (absolute).
Figure 3: First row – comparison considering findings accumulated across 3 runs for all targets. Second row – (i) Δ% between cumulative results and averaged ones (Figure 2) and (ii) overlap of TPs between runs, for the setups with highest (first) and lowest (second) ΔF1 (absolute).
查看结构化数据
任务指标本文基线提升
finding-to-ground-truth 匹配可靠性 sanity-check 与人工 triage(25 TP + 25 FP,共 50 findings)的一致性,跨 3 次运行的误判数 GPT 5.4 Mini 平均仅约 1 个误判(TP 被误判为 duplicate) 其他候选 LLM 判官(含 Gemini 3 Flash,亦可靠) 选定 GPT 5.4 Mini 作为协议默认判官,保证后续自动匹配可信
整体漏洞发现与运营效率(图2,所有配置均值) Precision / Recall / F1 / F0.5 / 重复计数 / 严重性 / CWE 覆盖率 / runtime / cost Strix-Sonnet 在 Precision 与累积 Recall 上最均衡,累积 F0.5 最高 PentAGI-Sonnet 单次表现尚可但累积 Precision 下降;其他配置在 Recall 与 FP 间各有取舍 证明真实 finding 级评估能暴露 CTF 二元成功指标隐藏的 trade-off
累积评估(3 次运行合并,图3) 累积 F1 / 累积 F0.5 / ΔF1(累积 vs 单次均值)/ 跨次 TP 重叠度 Strix-Sonnet 累积后 Precision 稳定、Recall 近乎翻倍、累积 F0.5 最高 PentAGI-Sonnet 累积 Precision 明显下降,累积 F0.5 低于单次均值 首次量化'随机性作为重复评估红利',区分'累积友好'与'累积有害'的智能体

局限与改进

作者在第 5 节自陈三类局限。其一,本文聚焦协议本身而非新基准套件,没有贡献新目标,协议实用性取决于是否被应用到'足够真实、跨多组件/攻击面、多漏洞'的目标上。其二,虽然协议动机包含累积评估,但实验没有研究'带跨次记忆'或'演化目标'(如运行间被顺序修补的环境)的设置,这些场景下智能体行为可能随时间改变。其三,当前方法只覆盖'已验证漏洞发现 + 效率',未触及安全相关行为——例如智能体是否会避免破坏性动作(guardrail)。从我的独立观察补充:仅 3 个目标、3 个系统、3 次重复属于典型的低重复区,统计结论(即便配合 Cohen's d)仍偏弱;F0.5 的 Precision 加权虽贴合运营,但对'低 Precision 但高 Recall 价值'的资产会系统性低估;判官本身依赖 GPT 5.4 Mini,模型迭代存在漂移风险;xben-090 源自 CTF,虽被改用为 pentest 环境,但其漏洞分布与真实企业目标仍有距离。

独立分析的弱点

独立审视后几个弱点值得改进。第一,目标规模与多样性偏小:仅 vuln-bank/paygoat/xben-090 三个开源目标、共 108 个漏洞,且 xben-090 本质来自 CTF,这会让'代表性子集选择'与低重复统计双重受限,改进方向是扩充到企业级、跨语言/框架、含云配置与权限提升链的真实目标。第二,3 次重复属低重复区,即便报告 Cohen's d 也难做强统计推断,改进方向是引入贝叶斯估计或序贯检验以同等预算提高功效。第三,判官对 GPT 5.4 Mini 的单点依赖有模型漂移与可被诱导风险,改进方向是多判官集成 + 置信度校准 + 对抗性 finding 注入测试鲁棒性。第四,匈牙利算法假设 finding 与 ground-truth 一一对应,但真实漏洞常以'复合链'形式存在(A+B 组合才可利用),强制一对一会漏掉链式发现,改进方向是扩展为超图匹配或允许'组合条目'。第五,没有跟踪'自动 ground-truth 维护'本身的偏差——专家 triage 可能让 ground truth 偏向'智能体易发现的漏洞',改进方向是引入独立红队复核与覆盖率下限约束。

未来方向

作者明确给出三个方向:(1) 创建更多跨多真实漏洞的现实目标,包括在同一系统内智能组合多个真实漏洞的环境;(2) 研究多种形式的 agentic pentesting 长期记忆,并在累积评估设置下评估其效果;(3) 把协议扩展到安全评估,包括智能体能否被有效 guardrail 以避免破坏性行为。基于成果我认为还可延伸:(a) 把协议迁移到防御侧评估——同样的 finding-to-ground-truth 管线可用来评 WAF/IDS 的检出质量;(b) 把'目标演化'做成正式的在线学习 benchmark,量化智能体面对被打补丁的目标时的适应速度;(c) 引入对抗性智能体(主动投放诱饵漏洞)来测判官与 ground-truth 维护的鲁棒性;(d) 把累积评估与多智能体协作结合,研究多个异构智能体的 findings 合并是否会超越单智能体累积上限。

复现评估

复现评估总体较好。代码与专家标注的 ground truth 已开源在 https://github.com/jd0965199-oss/ethibench ,是协议类论文少见的开放度。三个目标均为公开开源仓库,108 个漏洞的 ground truth 由安全研究人员基于仓库披露漏洞迭代标注并随代码发布,数据可获得性高。所用 agentic 系统(Strix、PentAGI、Claude Code)与 LLM 后端大多公开可获取,但 Claude Code 与部分模型 API 闭源且计费。算力方面,作者明确把 runtime 与 monetary cost 作为一等等指标,完整复现 3 系统×4 模型×3 目标×3 次运行的开销不小,论文也在 3.6 节用'代表性子集'降低成本。复现难度主要在三点:判官 GPT 5.4 Mini 的版本漂移会影响匹配;ground truth 的'恰好特异性'需安全专家判断;二部图消歧与累积评估的工程实现需自行编写。综合看,按发布代码复现核心数字可行,但完整复现全部配置矩阵需相当的 API 预算与安全领域判断力。