dataset summary


介绍已收集的相关数据集,包括数据集样本的种类、数量、数据结构和操作方式。


vuldeepecker

这是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

draper

这是18年 ICMLA 上一篇在函数粒度进行漏洞检测的文章中的数据集。此数据集主要包括了4种类型的漏洞函数以HDF5的形式进行存储,CWE-119、CWE-120、CWE-469、CWE-476、CWE-other。

train:

CWE-119CWE-120CWE-469CWE-476CWE-other
positive1928638019811969427959
negative100018598145210186601009777991512

test:

CWE-119CWE-120CWE-469CWE-476CWE-other
positive2452489127811923490
negative124946122528127141126227123929

validation:

CWE-119CWE-120CWE-469CWE-476CWE-other
positive2419475025212083579
negative125057122726127224126268123897

可以发现漏洞函数以字符串的形式存于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

SySeVR: A Framework for Using Deep Learning to Detect Vulnerabilities

从1591个NVD开源程序和14000个SARD开源程序收集,包含了126中CWE漏洞类型,这个其实和下面的vuldeepecker-comparative study的源数据应该是差不多的。

https://github.com/SySeVR/SySeVR

vuldeepecker——comparative study

从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

vuldeelocator

这个是vuldeepecker的升级版,作者对数据的处理进行了升级。源数据集应该是和SySeVR一样的。

https://github.com/VulDeeLocator/VulDeeLocator

μvuldeepecker

这个是同样是vuldeepecker的升级版,作者对数据的处理进行了升级,变为多漏洞类型的检测。源数据集应该是和SySeVR 一样。

TransferRepresentationLearning

这主要从6个开源软件 FFmpeg, LibTIFF, LibPNG, Pidgin, Asterisk and VLC Media Player以及NVD中提取的真实数据。不同于SARD中是人工编造的一些数据集不具备真实性。

https://github.com/DanielLin1986/TransferRepresentationLearning

Poster :Function Representation Learning for Vulnerability Discovery

这个是17年CCS上的论文数据。主要从FFmpeg、LibTIFF、LibPNG三个开源软件中搜集的漏洞函数。

数量不多,以C/C++文件的形式保存每个函数。

https://github.com/DanielLin1986/function_representation_learning

Devign

这个是19NIPS 上的论文提供的数据。里面直接有生成好的CPG和原始的数据。

https://github.com/epicosy/devign

https://sites.google.com/view/devign

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值