PRIMEVUL
收藏github2024-03-27 更新2024-05-31 收录
下载链接:
https://github.com/DLVulDet/PrimeVul
下载链接
链接失效反馈官方服务:
资源简介:
PRIMEVUL是由哥伦比亚大学、华盛顿大学及谷歌DeepMind等机构联合创建的一个新的安全漏洞检测数据集,旨在提升代码语言模型(Code LMs)在实际漏洞检测中的性能评估。该数据集包含6,968个易受攻击的函数和228,800个良性函数,覆盖了140种常见的缺陷枚举(CWEs)。PRIMEVUL采用了一套新颖的数据标注技术,实现了与人工验证基准相当的标注准确性,同时显著扩大了数据集规模。此外,PRIMEVUL还实施了严格的数据去重和按时间顺序划分数据的策略,以缓解数据泄露问题,并引入了更现实的评估指标和设置。此数据集不仅为研究人员提供了更具挑战性的评估平台,也揭示了现有模型在应对现实世界漏洞时的不足,凸显了在安全领域加强Code LMs训练的紧迫性。
PRIMEVUL is a novel security vulnerability detection dataset jointly created by institutions including Columbia University, the University of Washington, and Google DeepMind, aiming to improve the performance evaluation of code language models (Code LMs) in real-world vulnerability detection. This dataset contains 6,968 vulnerable functions and 228,800 benign functions, covering 140 common Common Weakness Enumerations (CWEs). PRIMEVUL adopts a novel set of data annotation techniques, achieving annotation accuracy comparable to human-validated benchmarks while significantly expanding the dataset scale. Additionally, PRIMEVUL implements strict data deduplication and chronological data partitioning strategies to mitigate data leakage issues, and introduces more realistic evaluation metrics and experimental settings. This dataset not only provides researchers with a more challenging evaluation platform, but also reveals the shortcomings of existing models when addressing real-world vulnerabilities, highlighting the urgency of strengthening the training of Code LMs in the field of cybersecurity.
提供机构:
哥伦比亚大学、华盛顿大学、谷歌DeepMind等
创建时间:
2024-03-27
原始信息汇总
数据集概述
数据集名称
- 名称: PrimeVul
- 目的: 用于训练和评估代码语言模型在现实世界漏洞检测场景中的表现。
数据集特点
- 数据多样性: 包含约7,000个漏洞函数和约229,000个良性函数,来源于真实的C/C++项目,覆盖超过140种常见弱点列举(CWEs)。
- 标签准确性: 采用创新的标签技术,达到人类级别的标签准确性,比现有自动标签方法准确度高出3倍。
- 数据纯净性: 通过彻底的数据去重和时间序列数据分割,最小化数据污染。
评估方法
- VD-Score: 衡量在不使开发者被误报淹没的情况下,遗漏安全缺陷的风险。
- 配对样本分析: 分析模型捕捉细微漏洞模式的能力,以及区分漏洞代码与其修复版本的能力。
数据集获取
- 获取方式: Google Drive链接
搜集汇总
数据集介绍

构建方式
PRIMEVUL数据集通过整合和重构现有的漏洞检测数据集,构建了一个包含约7000个漏洞函数和229000个良性函数的多样化数据集。该数据集源自真实的C/C++项目,涵盖了140多种常见弱点枚举(CWEs)。其构建过程中采用了新颖的标签技术,确保了标签的准确性,相较于现有的自动标签方法,准确率提升了三倍。此外,数据集通过彻底的去重和时间顺序的数据分割,最大限度地减少了数据污染。
特点
PRIMEVUL数据集的显著特点在于其数据多样性和标签的精确性。数据集不仅包含了大量的漏洞和良性函数,还通过详细的元数据提供了丰富的上下文信息,如项目URL、提交信息、CVE描述等,便于用户进行深入分析。此外,数据集通过配对样本的设计,能够有效评估模型在捕捉细微漏洞模式和区分漏洞代码与其修复版本方面的能力。
使用方法
PRIMEVUL数据集的使用方法灵活多样,用户可以通过提供的元数据进行定制化的训练和评估。数据集的文件级元数据存储在单独的文件中,用户可以通过函数哈希值快速定位相关文件信息。实验部分提供了详细的代码示例,展示了如何使用该数据集进行模型训练和评估,包括标准二分类、加权二分类和对比学习等多种实验设置。此外,数据集还支持使用OpenAI模型进行漏洞检测,并提供了计算漏洞检测得分(VD-S)的脚本。
背景与挑战
背景概述
PRIMEVUL数据集是由Yangruibo Ding等人于2024年创建,旨在通过代码语言模型(Code Language Models)进行漏洞检测的研究。该数据集的核心研究问题是如何在现实环境中训练和评估代码语言模型,以提高漏洞检测的准确性和效率。PRIMEVUL包含了来自真实C/C++项目的约7,000个漏洞函数和229,000个良性函数,覆盖了140多种常见弱点枚举(CWEs)。其独特的标签技术使得标签准确性达到人类水平,比现有自动标签方法高出三倍。该数据集的发布不仅推动了漏洞检测领域的研究,还为评估模型在处理细微漏洞模式和区分漏洞代码与修复代码方面的能力提供了新的标准。
当前挑战
PRIMEVUL数据集在构建和应用过程中面临多项挑战。首先,数据集的构建需要处理大量来自不同项目的代码,确保数据的多样性和充足性,同时进行严格的数据去重和时间顺序分割,以减少数据污染。其次,标签的准确性是一个关键挑战,尽管采用了新颖的标签技术,但仍需确保标签的精确性和一致性。此外,评估模型的性能时,如何在减少误报和提高检测率之间找到平衡,是一个现实且复杂的挑战。最后,数据集的扩展和更新,特别是如何持续获取和整合新的漏洞信息,也是一个长期的技术和资源挑战。
常用场景
经典使用场景
PRIMEVUL数据集在漏洞检测领域中具有广泛的应用,尤其是在训练和评估代码语言模型(Code Language Models)方面。该数据集包含了来自真实世界C/C++项目的约7000个漏洞函数和229000个良性函数,涵盖了140多种常见弱点枚举(CWEs)。通过使用PRIMEVUL,研究人员可以有效地训练模型,使其能够识别代码中的潜在漏洞,并评估模型在实际漏洞检测任务中的表现。
解决学术问题
PRIMEVUL数据集解决了漏洞检测领域中长期存在的数据不足和标签不准确的问题。通过提供多样化且充足的数据,以及采用新颖的标签技术,该数据集显著提高了漏洞检测模型的训练效果和评估准确性。此外,PRIMEVUL通过引入VD-Score和配对样本分析,帮助研究人员更好地理解模型在实际应用中的性能,从而推动了漏洞检测技术的进步。
衍生相关工作
PRIMEVUL数据集的发布和应用已经催生了一系列相关研究工作。例如,该数据集被用于评估Gemini-1.5模型在漏洞检测中的表现,并被广泛应用于代码语言模型的训练和评估。此外,PRIMEVUL的标签技术和数据分割方法也为其他漏洞检测数据集的构建提供了参考,推动了整个领域的发展。
以上内容由遇见数据集搜集并总结生成



