赞
踩
这是18NDSS vuldeepecker 所用的数据集。主要包括两种漏洞类型 CWE-119(缓冲区错误)和CWE-399(资源管理错误),从NVD和SARD中收集。对于CWE-119,从520个开源软件的源码和相应的diff文件中得到了8122个样本。对于CWE-399,从320个开源软件的源码和相应的diff文件中得到了1729个样本。
这些数据的原文件是以C/C++文件的形式存在的。在这些文件中既有包含漏洞的函数,也有不含漏洞的函数,但是哪个函数是漏洞函数没有明显的标记。(因为作者是从中提取code gadget来对这些code gadget进行标记)
如果要从中标记漏洞函数,还需要比较麻烦的步骤。
https://github.com/CGCL-codes/VulDeePecker
这是18年 ICMLA 上一篇在函数粒度进行漏洞检测的文章中的数据集。此数据集主要包括了4种类型的漏洞函数以HDF5的形式进行存储,CWE-119、CWE-120、CWE-469、CWE-476、CWE-other。
train:
CWE-119 | CWE-120 | CWE-469 | CWE-476 | CWE-other | |
---|---|---|---|---|---|
positive | 19286 | 38019 | 811 | 9694 | 27959 |
negative | 1000185 | 981452 | 1018660 | 1009777 | 991512 |
test:
CWE-119 | CWE-120 | CWE-469 | CWE-476 | CWE-other | |
---|---|---|---|---|---|
positive | 2452 | 4891 | 278 | 1192 | 3490 |
negative | 124946 | 122528 | 127141 | 126227 | 123929 |
validation:
CWE-119 | CWE-120 | CWE-469 | CWE-476 | CWE-other | |
---|---|---|---|---|---|
positive | 2419 | 4750 | 252 | 1208 | 3579 |
negative | 125057 | 122726 | 127224 | 126268 | 123897 |
可以发现漏洞函数以字符串的形式存于HDF5文件中,因此如果要使用,首先要将这些字符串变成一个C/C++文件。
import h5py
h = h5py.File('VDSIC_train.hdf5','r')
keys = h.keys() #这里的keys有6个,CWE-119、CWE-120、CWE-469、CWE-476、CWE-other、functionSource
func_label = h["CWE-119"][0] #这个表示第一个函数是否为CWE-119,只有True、False两种,functionSource的顺序各label的顺序是一致的
https://osf.io/d45bw/
SySeVR: A Framework for Using Deep Learning to Detect Vulnerabilities
从1591个NVD开源程序和14000个SARD开源程序收集,包含了126中CWE漏洞类型,这个其实和下面的vuldeepecker-comparative study的源数据应该是差不多的。
https://github.com/SySeVR/SySeVR
从368个NVD 开源程序CVE和14000个SARD开源程序,包含了126种CWE漏洞类型。
CWE-015, CWE-020, CWE-022, CWE-023, CWE-036, CWE-078, CWE-080, CWE-088, CWE-089, CWE-090, CWE-114, CWE-119, CWE-120, CWE-121, CWE-122, CWE-123, CWE-124, CWE-126, CWE-127, CWE-129, CWE-134, CWE-170, CWE-176, CWE-188, CWE-190, CWE-191, CWE-194, CWE-195, CWE-196, CWE-197, CWE-222, CWE-223, CWE-242, CWE-244, CWE-252, CWE-253, CWE-256, CWE-259, CWE-272, CWE-284, CWE-319, CWE-321, CWE-325, CWE-327, CWE-338, CWE-345, CWE-362, CWE-363, CWE-364, CWE-366, CWE-367, CWE-369, CWE-377, CWE-398, CWE-400, CWE-401, CWE-404, CWE-412, CWE-414, CWE-415, CWE-416, CWE-426, CWE-427, CWE-457, CWE-459, CWE-464, CWE-467, CWE-468, CWE-469, CWE-475, CWE-476, CWE-479, CWE-489, CWE-506, CWE-510, CWE-526, CWE-534, CWE-535, CWE-543, CWE-562, CWE-571, CWE-587, CWE-588, CWE-590, CWE-591, CWE-605, CWE-606, CWE-609, CWE-617, CWE-620, CWE-663, CWE-665, CWE-666, CWE-672, CWE-674, CWE-675, CWE-680, CWE-681, CWE-682, CWE-685, CWE-688, CWE-690, CWE-704, CWE-758, CWE-761, CWE-762, CWE-765, CWE-771, CWE-773, CWE-774, CWE-775, CWE-780, CWE-785, CWE-789, CWE-805, CWE-806, CWE-821, CWE-822, CWE-824, CWE-828, CWE-831, CWE-833, CWE-834, CWE-835, CWE-839, CWE-843
每个程序文件基本上都有漏洞版本和补丁版本,因此可以根据这个来进行标记漏洞函数。
https://github.com/VulDeePecker/Comparative_Study
这个是vuldeepecker的升级版,作者对数据的处理进行了升级。源数据集应该是和SySeVR一样的。
https://github.com/VulDeeLocator/VulDeeLocator
这个是同样是vuldeepecker的升级版,作者对数据的处理进行了升级,变为多漏洞类型的检测。源数据集应该是和SySeVR 一样。
这主要从6个开源软件 FFmpeg, LibTIFF, LibPNG, Pidgin, Asterisk and VLC Media Player以及NVD中提取的真实数据。不同于SARD中是人工编造的一些数据集不具备真实性。
https://github.com/DanielLin1986/TransferRepresentationLearning
这个是17年CCS上的论文数据。主要从FFmpeg、LibTIFF、LibPNG三个开源软件中搜集的漏洞函数。
数量不多,以C/C++文件的形式保存每个函数。
https://github.com/DanielLin1986/function_representation_learning
这个是19NIPS 上的论文提供的数据。里面直接有生成好的CPG和原始的数据。
https://github.com/epicosy/devign
https://sites.google.com/view/devign
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。