大语言模型在漏洞检测中的泛化挑战:Top 25 CWE弱点识别效果分析
摘要
自动化漏洞检测研究已取得显著进展,但其实际影响仍然有限。当前漏洞数据集存在标签错误率高达20-71%、大量重复数据以及关键CWE类型覆盖不足等问题。这些问题导致严重的"泛化差距":模型通过利用虚假相关性而非学习真实漏洞模式,在自我测试(使用训练同一数据集的保留数据)中取得误导性性能。我们的分析显示,许多模型在独立数据评估中性能下降高达40.6%,有时甚至低于随机猜测。
解决方案
为解决这些局限性,我们提出了一个三部分解决方案:
1. BenchVul测试数据集
我们引入了手动策划的测试数据集BenchVul,覆盖MITRE Top 25最危险CWE类型。
2. TitanVul训练数据集
我们构建了高质量训练数据集TitanVul,通过聚合七个公共来源并应用新颖的多代理LLM框架进行去重和验证,包含35,045个函数。
3. RVG框架
我们提出了现实漏洞生成(RVG)框架,通过模拟开发工作流程为代表性不足但关键的CWE类型合成上下文感知的漏洞示例。
评估结果
我们的评估显示了每个组件在缩小泛化差距方面的优势:
-
BenchVul揭示自我测试局限性:在现有数据集(如BigVul和PrimeVul)上训练的模型在BenchVul上性能下降(从0.776降至0.519,从0.567降至0.337)
-
TitanVul提升泛化能力:在TitanVul上训练的模型性能从同一数据集评估的0.584提升至BenchVul测试的0.767
-
RVG数据补充带来额外增益:使用RVG生成数据补充TitanVul后,模型性能进一步提升14.0%至0.874
结论
本研究揭示了当前漏洞检测数据集存在的严重泛化问题,并提出了有效的解决方案。通过高质量数据集构建和创新框架设计,我们显著提升了大语言模型在真实场景中的漏洞检测能力,为自动化安全检测领域提供了重要进展。