大语言模型在漏洞检测中的泛化挑战:Top 25 CWE弱点识别效果分析

本文探讨了基于漏洞数据集训练的大语言模型在检测MITRE Top 25最危险CWE弱点时的泛化能力。研究揭示了现有数据集存在标签错误率高、重复数据多及关键CWE覆盖不足等问题,导致模型在独立测试数据上性能下降高达40.6%。作者提出了包括高质量数据集构建和多代理LLM验证框架在内的解决方案,显著提升了模型泛化性能。

大语言模型在漏洞检测中的泛化挑战: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类型合成上下文感知的漏洞示例。

评估结果

我们的评估显示了每个组件在缩小泛化差距方面的优势:

  1. BenchVul揭示自我测试局限性:在现有数据集(如BigVul和PrimeVul)上训练的模型在BenchVul上性能下降(从0.776降至0.519,从0.567降至0.337)

  2. TitanVul提升泛化能力:在TitanVul上训练的模型性能从同一数据集评估的0.584提升至BenchVul测试的0.767

  3. RVG数据补充带来额外增益:使用RVG生成数据补充TitanVul后,模型性能进一步提升14.0%至0.874

结论

本研究揭示了当前漏洞检测数据集存在的严重泛化问题,并提出了有效的解决方案。通过高质量数据集构建和创新框架设计,我们显著提升了大语言模型在真实场景中的漏洞检测能力,为自动化安全检测领域提供了重要进展。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计