1. SARD+NVD
简介:Li 等人[4] 从国家漏洞数据库 (NVD) 和软件保障参考数据集 (SARD)中收集了 15150 个程序,包括 2821 个真实世界程序和 12329 个人工合成程序。从 NVD 中收集到的程序附有差异(diff)文件,以程序在修补相关漏洞前后的差异代码的位置作为漏洞行号标签;从 SARD 收集到的程序附有标签,标明这些程序是否存在漏洞。该数据集过滤了代码长度少于 500 行的程序,因为这些程序过于简单,对于真实漏洞检测任务不太适用。
数据集链接:VulDeeLocator/data/programs at master · VulDeeLocator/VulDeeLocator · GitHub
标注:函数级和行号级
类别:人工合成,真实项目数据集
数据格式:.C / .CPP 源文件
项目地址:GitHub - VulDeeLocator/VulDeeLocator
2.Devign (FFmpeg+Qemu)
简介:Zhou 等人[1] 从 4 个大型 C 语言开源项目(包括 Linux Kernel、Qemu、Wireshark 和 FFmpeg)中收集并人工标注函数,构成了该数据集,它包含 12460 个存在漏洞的函数和 14858 个不存在漏洞的函数,属于一个较为平衡的数据集。
数据集链接:function.json - Google 云端硬盘
标注级别:函数级
类别:真实项目数据集
数据文件:function.json
项目地址:原作者没有开源项目,这里列出第三方复现代码:GitHub - epicosy/devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networks
3.Reveal (Chrome + Debian)
简介:Saikat 等人[2] 从 Chromium 和 Debian 项目的开发者/用户报告的漏洞中整理出一个真实世界数据集,它包含 2240 个存在漏洞的函数和 20494 个不存在漏洞的函数,更接近于漏洞代码在真实世界中的分布情况。
数据集链接:Chromium_And_Debian_Vulnerability_Data - Google 云端硬盘
标注级别:函数级
类别:真实项目数据集
数据文件:vulnerables.json(漏洞样本)和 non-vulnerables.json(非漏洞样本)
项目地址:GitHub - VulDetProject/ReVeal
4 BigVul
简介:Fan 等人[3] 从 348 个开源 Github 项目中收集,包括从 2002 年到 2019 年的 91 个不同的 CWE,188636 个 C/C++ 函数。其中漏洞函数比例为 5.7%(即 10,900 个漏洞函数),以及 5,060,449 个 LOC,漏洞行比例为 0.88%(即 44,603 条漏洞行)。在这 10,900 个易受攻击的功能中,易受攻击线路的比率从 2.5%(第一四分位数)到 20%(第三四分位数)不等,中位数为 7%。
数据集链接:MSR_20_Code_vulnerability_CSV_Dataset/all_c_cpp_release2.0.csv at master · ZeoVan/MSR_20_Code_vulnerability_CSV_Dataset · GitHub
标注级别:行号级
类别:真实项目数据集
数据格式:all_c_cpp_release2.0.csv
项目地址:GitHub - ZeoVan/MSR_20_Code_vulnerability_CSV_Dataset: A C/C++ Code Vulnerability Dataset with Code Changes and CVE Summaries
5 Real-Vul
该数据集基于 Big-Vul 构建,选取了漏洞数量最多的前10个项目,且运用了一些数据增强技术,确保了数据集的多样性和代表性,同时解决了标签不一致问题,更贴近实际使用场景。该数据集共包含 5528 个漏洞函数和 1682713 个不确定函数。
1. 数据集链接:realvul/RealVul · Datasets at Hugging Face
2. 标注:行号级
3. 类别:真实项目数据集
4. 数据格式: .csv
5. 项目地址:Revisiting the Performance of Deep Learning-Based Vulnerability Detection on Realistic Datasets (zenodo.org)
6 DIVERSEVUL
提出了一种新的漏洞源代码数据集——DIVERSEVUL,并通过爬取安全问题网站、提取修复漏洞的提交和源代码等方法进行构建。该数据集包含18,945个脆弱函数,覆盖了150个CWE(软件漏洞分类)和330,492个非脆弱函数,来自7,514个提交。与之前的数据集相比,该数据集涵盖了更多的项目。
1. 数据集链接:https://drive.google.com/file/d/12IWKhmLhq7qn5B_iXgn5YerOQtkH-6RG/view?usp=sharing
2. 标注:行号级
3. 类别:真实项目数据集
4. 数据格式: .json
5. 项目地址:https://surrealyz.github.io/files/pubs/raid23-diversevul.pdf
7 参考文献
[1] Zheng Y, Pujar S, Lewis B, et al. D2a: A dataset built for ai-based vulnerability detection methods using differential analysis[C]//2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP). IEEE, 2021: 111-120.
[2] Zhou Y, Liu S, Siow J, et al. Devign: Effective vulnerability identification by learning comprehensive program semantics via graph neural networks[J]. Advances in neural information processing systems, 2019, 32.
[3] Chakraborty S, Krishna R, Ding Y, et al. Deep learning based vulnerability detection: Are we there yet?[J]. IEEE Transactions on Software Engineering, 2021, 48(9): 3280-3296.
[4] Fan J, Li Y, Wang S, et al. AC/C++ code vulnerability dataset with code changes and CVE summaries[C]//Proceedings of the 17th International Conference on Mining Software Repositories. 2020: 508-512.
[5] Li Z, Zou D, Xu S, et al. Vuldeelocator: a deep learning-based fine-grained vulnerability detector[J]. IEEE Transactions on Dependable and Secure Computing, 2021, 19(4): 2821-2837.
[6]Chen Y, Ding Z, Alowain L, et al. Diversevul:用于基于深度学习的漏洞检测的新型易受攻击源代码数据集[C]//第 26 届攻击、入侵和防御研究国际研讨会论文集。2023: 654-668.