DiverseVul

DiverseVul 数据集 2023.10

DiverseVul 是一个用于深度学习漏洞检测的 C/C++ 源代码数据集,专门为研究人员和开发者提供了大量的漏洞样本,用于训练和评估漏洞检测模型。该数据集包含了超过 7,500 次提交,涵盖 150 种常见弱点枚举(CWE)类型,涉及到的项目从开源软件到工业项目都有所覆盖。通过该数据集,研究人员能够深入分析漏洞类型,并基于此开发更智能的自动化漏洞检测工具。

数据集字段介绍

DiverseVul 数据集的核心字段如下,分为 数据集字段元数据字段

数据集字段:
字段名 描述
project 相关的项目名称,例如 libass, gnutls
commit_id Git 提交的唯一标识符,便于追踪特定的代码变更
bug_info 描述该提交修复的漏洞类型,例如 Out-of-bounds Read(越界读取)
func 修复的函数代码,包含详细的代码实现(如加密、解密、填充验证等)
size 函数代码的大小(字节数)
hash 该函数代码的哈希值,用于唯一标识该代码片段
message 提交信息,描述该提交修复或涉及的漏洞类型
元数据字段:
字段名 描述
commit_url 指向具体 Git 提交的 URL
repo_url 项目的 Git 仓库 URL
CWE 漏洞类型的 CWE 编号,如 CWE-476(空指针解引用)
CVE 相关的 CVE 编号(如果有)

数据和元数据的关联

DiverseVul 数据集中,数据(源代码)元数据 是通过 提交 IDcommit_id)和 项目 URLrepo_url)连接的。

  1. 提交 ID (commit_id):唯一标识每次 Git 提交,指向包含漏洞修复的具体代码。通过提交 ID,您可以访问修复前后的代码差异。

  2. 项目 URL (repo_url):提供了项目的完整 Git 仓库地址,便于深入了解项目的背景和其他提交历史。

例如,您可以通过提交 ID 和项目 URL,直接访问修复漏洞的代码及其上下文,从而有效地分析漏洞修复过程。

论文和仓库链接

如何使用 DiverseVul 数据集

  1. 下载数据集

  2. 数据集结构

    • 数据集的主要文件包括漏洞函数和非漏洞函数的代码,适用于训练和测试漏洞检测模型。

    • 元数据提供了关于每个函数的详细信息,如提交 ID、项目 URL、CWE 编号、漏洞描述等。

  3. 文件用途

    • 下载后的数据集可以用于训练深度学习模型,如漏洞检测模型(基于图像识别、自然语言处理等技术)。

    • 元数据文件为研究人员提供了丰富的标签信息,帮助进行更精确的漏洞分析和模型评估。

核心数据存储方法

DiverseVul 数据集的核心数据存储方法是通过记录每个漏洞修复的提交及其相关元数据来构建数据集。具体来说:

  1. 项目收集:首先,从多个开源项目中收集包含漏洞的代码片段。这些项目涵盖了广泛的漏洞类型,从基础库到复杂应用程序均有涉及。

  2. 提交记录:每个漏洞的修复通过 Git 提交记录来表示,便于追溯漏洞的修复历史。每个提交包含了修复该漏洞的代码变更。

  3. 函数级存储:数据集按函数级别进行存储,每个函数都包含了修复前后的代码差异,帮助研究人员分析漏洞修复过程。

  4. 元数据支持:元数据文件提供了提交的详细信息,如提交 URL、CWE 编号、CVE 编号(如有)等,帮助研究人员理解每个漏洞的背景和修复方式。

数据集形式:

元数据形式:

相关推荐
KhalilRuan24 分钟前
UnityCsReference——笔记
java·开发语言·笔记
电子云与长程纠缠27 分钟前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
shangwen12335 分钟前
食品厂无尘车间装修施工工艺笔记:C型钢吊顶加固方案尚文净化
笔记
210Brian35 分钟前
STM32学习笔记(六)EXTI外部中断(下)
笔记·stm32·学习
MartinYeung543 分钟前
[论文学习]Latent Fusion Jailbreak: 融合有害与无害表征以诱导大语言模型产生不安全输出
学习·安全·语言模型
星恒随风44 分钟前
C++ 哈希详解(二):开放定址、哈希桶与 C++ 哈希表底层实现
c++·笔记·学习·哈希算法·散列表
迪丽热爱1 小时前
每日英语-17
学习
2501_926978331 小时前
AGI封锁的物理边界:发现模式决定封锁可行性
人工智能·经验分享·笔记·ai写作·agi
Mr_liu_6662 小时前
Claude非专业入门实战笔记(附录):关闭Telemetry-遥测,消除无用网络请求与日志噪音
linux·笔记·ubuntu·ai编程
打工陈2 小时前
电路理论知识学习--(4)RC、LC、LR低通滤波对比
学习·智能硬件