CWE-bench v2发布:100个真实漏洞任务,测试AI安全修复能力
Collinear AI发布了CWE-bench v2基准测试,包含100个基于真实开源代码库的安全修复任务。该基准覆盖91种常见漏洞类型,强调自动化评分和可复现性。目前Gemini 4 Argon以67.8%的通过率领先,但仍有近两成任务未被任何模型解决。文章介绍了测试结果、成本效益分析及如何在Hugging Fac
为什么我们需要更硬核的AI安全测试
在AI辅助编程越来越普及的今天,很多开发者开始依赖大模型来查找和修复代码中的安全漏洞。但这带来了一个新问题:我们怎么知道这些模型真的懂安全,还是只是在碰运气?
之前的基准测试往往存在几个毛病:题目太简单,或者评分标准不透明,甚至有的模型靠“背题”就能拿高分。为了解决这些问题,Collinear AI推出了CWE-bench v2。这不是一个玩具数据集,而是一套旨在测试前沿AI网络攻防能力的硬指标。
这次发布的v2版本公开了100个任务,任何人都可以下载并用来评估自己的模型。它的核心逻辑很直接:给AI一个真实的开源代码库副本,再给一段简短的指令,让它找出并修复其中的安全弱点,同时不能破坏原有的功能。整个过程由程序自动评分,结果确定且可复现,不需要额外的人工介入。
这100个任务是怎么来的
如果你是个防御者,你必须预判攻击者所有可能的入侵路径,并且每次都要做对。CWE-bench v2的100个任务覆盖了91种不同的CWE(通用弱点枚举)类型,跨度很大。这意味着模型不能只靠识别某种熟悉的代码模式来蒙混过关,它必须真正理解潜在的攻击面。
为了保证质量,团队对每个任务都进行了极其严苛的检查。他们不仅用了LLM评委面板来优化评分标准,确保其具备足够的难度和公平性,还人工复核了每一个环节。具体来说,每个任务都必须满足以下条件:
- 指令读起来像真实的开发需求,而不是那种一眼假的考试题。
- 所有的评分行为都能从指令中推导出来,没有隐藏陷阱。
- 验证器检查的是代码行为是否正确,而不是看代码结构是否和某个特定答案一模一样。
- 初始代码必须失败,而参考修复方案必须通过。
- 修复后的代码必须保留原有功能。
- 验证器必须能识别并拒绝那些死记硬背的已知上游补丁。
此外,他们还维护了一个未公开的“保留集”,用于跟踪模型在从未见过的任务上的表现。如果你想在这个保留集上测试模型,需要联系官方获取资格。这种做法有效地防止了模型通过过度拟合公开数据来刷分。
谁表现得最好
目前的测试结果可以在Hugging Face上找到。排行榜分为两部分:一部分是针对开源权重模型的,社区可以通过提交PR来更新结果;另一部分则包含了仅限API访问的商业模型,如
Gemini、Claude和GPT系列。
在已评估的11个模型中,Gemini 4 Argon暂时领先。它在pass@1(第一次尝试就成功的概率)指标上达到了67.8%,在pass@4(四次尝试中至少一次成功的概率)上达到了81.0%。紧随其后的是Claude Opus 5.5,pass@1为67.3%,pass@4为78.0%。
有个细节值得注意:在这100个任务中,有95个至少被一个模型成功解决了。这说明这些任务并非不可完成。但是,即使是排名第一的模型,也有19%的任务在所有尝试中都失败了。这表明长尾问题远未解决,AI在处理复杂、隐蔽的安全漏洞时仍有明显的短板。
性价比之选
除了准确率,成本也是企业考虑的重要因素。如果看性价比,DeepSeek V4.1 Flash、Claude Opus 5.5和Gemini 4 Argon构成了当前的帕累托前沿。
DeepSeek V4.1 Flash以每次推理0.04美元的成本,实现了57.0%的pass@1准确率。如果你愿意多花点钱,Claude Opus 5.5每次推理成本1.83美元,能将准确率提升约10个百分点。而Gemini 4 Argon虽然以3.92美元的成本略胜一筹,但边际收益是否在预算范围内,就得看具体应用场景了。
对于大多数日常开发场景,DeepSeek这样的模型可能已经足够好用;但对于金融、基础设施等对安全性要求极高的领域,头部模型的那几个百分点的提升,或许值得更高的投入。
如何自己跑这个基准
CWE-bench v2的另一个亮点是易用性。每个任务都是一个独立的Harbor任务,包含一个Docker化环境、指令和确定性验证器。数据集自带一个`registry.json文件,你不需要手动克隆代码库,可以直接通过Hugging Face仓库运行整个基准测试。
首先,你需要接受数据集页面上的访问条件,因为它是 gated(受控访问)的。然后,保存你的HF Token到git凭证助手中:
hf auth login --token $HF_TOKEN --add-to-git-credential接着,使用Harbor框架运行测试。以下命令会为每个任务运行4次尝试,并计算平均奖励:
harbor run --repo "https://huggingface.co/datasets/collinear-ai/cwe-bench" -d cwe-bench@2.0 -k 4 \
--agent <agent> --model <model> --env docker \
--allow-agent-host <model API host>这里的-k 4表示每个任务跑4次,最终得分是400次试验的平均奖励。这种设置能更好地反映模型的稳定性,避免单次运气的干扰。
值得一提的是,这些任务也被标记为rl-environment。这意味着同样的环境和验证器不仅可以用来评估模型,还可以作为强化学习的奖励信号,用于训练专门的防御型AI代理。这对于希望从头训练安全专用模型的研究团队来说,是一个现成的基础设施。
开放与透明
CWE-bench v2的公开不仅仅是发布一个数据集,更是一种推动行业标准的尝试。通过开源公共集、评分器和测试 harness,Collinear AI希望让更多开发者和研究者参与到评估中来。他们欢迎对任何任务的反馈,也鼓励社区贡献新的任务或改进现有的验证逻辑。
在AI安全这个领域,闭门造车行不通。只有当评估标准足够透明、任务足够真实、结果足够可复现时,我们才能建立起对AI辅助安全修复的信任。目前看来,CWE-bench v2朝着这个方向迈出了扎实的一步。接下来,就看社区如何利用这套工具,去挖掘模型在安全领域的真实潜力了。