five

ReposVul

收藏
arXiv2024-02-08 更新2024-06-21 收录
下载链接:
https://github.com/Eshe0922/ReposVul
下载链接
链接失效反馈
官方服务:
资源简介:
ReposVul是哈尔滨工业大学深圳研究院创建的第一个仓库级别的高质量漏洞数据集,包含6,134个CVE条目,代表236种CWE类型,跨越1,491个项目和四种编程语言。该数据集通过集成大型语言模型和静态分析工具,有效区分了与漏洞修复相关的代码变更,捕捉了漏洞间的调用关系,并通过基于跟踪的过滤模块识别了过时的补丁。ReposVul不仅提高了数据质量,还为软件安全领域提供了丰富的多粒度信息,支持从仓库级到行级的漏洞检测,旨在解决软件安全面临的挑战,提升漏洞检测的准确性和效率。

ReposVul is the first high-quality repository-level vulnerability dataset created by the Harbin Institute of Technology Shenzhen Research Institute. It contains 6,134 CVE entries, representing 236 CWE types, spanning 1,491 projects and four programming languages. This dataset integrates large language models and static analysis tools to effectively distinguish code changes related to vulnerability fixes, capture the calling relationships between vulnerabilities, and identify outdated patches via a trace-based filtering module. ReposVul not only improves data quality but also provides rich multi-granularity information for the field of software security, supporting vulnerability detection from repository-level down to line-level. It aims to address the challenges in software security and enhance the accuracy and efficiency of vulnerability detection.
提供机构:
哈尔滨工业大学深圳研究院
创建时间:
2024-01-24
搜集汇总
数据集介绍
main_image_url
构建方式
ReposVul数据集的构建涉及三个主要模块:漏洞解缠模块、多粒度依赖提取模块和基于追踪的过滤模块。漏洞解缠模块利用大型语言模型(LLMs)和静态分析工具共同识别与漏洞修复相关的代码更改,以解决现有数据集中存在的混乱补丁问题。多粒度依赖提取模块旨在捕获整个存储库中漏洞之间的过程间调用关系,为每个漏洞补丁构建多粒度信息,包括存储库级、文件级、函数级和行级信息。基于追踪的过滤模块通过文件路径追踪和提交时间追踪,识别并过滤过时的补丁,确保数据集的时效性。
特点
ReposVul数据集的特点在于其高质量、多粒度和全面性。它包含了6,134个CVE条目,涵盖了236种CWE类型,涉及1,491个项目和四种编程语言。ReposVul不仅提供了详细的漏洞修复信息,还包括了CVE描述、CVSS评分和补丁提交历史等丰富的额外信息。此外,ReposVul通过集成LLMs和静态分析工具的决策,实现了对漏洞修复相关文件的高精度识别,并通过追踪分析过滤掉了过时的补丁。
使用方法
使用ReposVul数据集时,首先需要了解其多粒度信息结构,包括存储库级、文件级、函数级和行级。研究人员可以利用这些信息进行多粒度的漏洞检测,例如检测过程间和过程内的漏洞。此外,ReposVul还提供了丰富的CVE描述、CWE解决方案和CWE方法等信息,有助于开发人员更好地理解漏洞的成因和修复方法。在进行模型训练或评估时,应注意数据集的粒度和标签质量,以充分利用ReposVul的优势。
背景与挑战
背景概述
开源软件(OSS)中的漏洞给软件安全带来了巨大挑战,并对社会构成潜在风险。近年来,随着开源软件规模和复杂性的增加,开源软件漏洞的影响也日益放大,例如,思科在2023年发现了一个WebUI的安全漏洞,被识别为CVE-2023-20198,该漏洞允许未经授权的远程攻击者获得提升的权限。目前,已有超过41,000台相关设备受到威胁,给企业带来了巨大损失。准确及时地识别漏洞对于缓解潜在风险至关重要,引起了工业界和学术界的广泛关注。现有的漏洞检测方法大致可分为两类:基于程序分析的方法和基于深度学习(DL)的方法,其中基于深度学习的方法已被证明更为有效。然而,基于深度学习的方法的性能往往依赖于训练的漏洞数据集的质量。例如,Croft等人发现广泛使用的漏洞数据集如Devign和BigVul包含了噪声、不完整和过时的数据。低质量的数据可能会偏置模型的训练和评估过程。因此,高质量的真实世界漏洞数据集对于漏洞检测任务而言至关重要,但尚未得到充分探索。在本文中,我们通过减轻现有数据集的以下局限性来构建高质量的漏洞数据集:(1)混乱的补丁:漏洞补丁可能包含与漏洞修复无关的代码更改,导致混乱的补丁。现有数据集[11-13]通常认为一个补丁提交中的所有代码更改都与漏洞相关,从而引入了自然的数据噪声。对于如图1(a)所示的示例,来自CVE-2012-0030的补丁包括关于路径修改的代码更改,其中函数webob.Request.blank()的请求路径参数已被更改(第2-3行)。此类与漏洞无关的更改可能与代码重构或新功能的实现有关,难以区分。因此,从单个补丁中的多个文件中识别与漏洞修复相关的文件是一个挑战。
当前挑战
现有的漏洞数据集通常包含以下局限性:(1)混乱的补丁:开发人员可能会提交与漏洞修复无关的代码更改,导致混乱的补丁。(2)缺乏跨过程漏洞:现有的漏洞数据集通常包含函数级和文件级漏洞,忽略了函数之间的关系,从而使方法无法检测跨过程漏洞。(3)过时的补丁:现有的数据集通常包含过时的补丁,这可能会在训练过程中偏置模型。为了解决上述局限性,本文提出了一种自动数据收集框架,并构建了第一个基于存储库的高质量漏洞数据集,命名为ReposVul。所提出的框架主要包括三个模块:(1)漏洞解缠模块,旨在从混乱的补丁中区分与漏洞修复相关的代码更改,其中大型语言模型(LLMs)和静态分析工具被联合使用。(2)多粒度依赖关系提取模块,旨在捕获漏洞之间的跨过程调用关系,其中我们为每个漏洞补丁构建了多粒度信息,包括存储库级、文件级、函数级和行级。(3)基于跟踪的过滤模块,旨在过滤过时的补丁,利用基于文件路径跟踪的过滤器和基于提交时间跟踪的过滤器构建一个最新的数据集。构建的基于存储库的ReposVul包含6,134个CVE条目,代表236种CWE类型,涵盖1,491个项目和四种编程语言。全面的数据分析和人工检查表明,ReposVul具有很高的质量,并缓解了以前漏洞数据集中混乱和过时补丁的问题。
常用场景
经典使用场景
在开源软件(OSS)安全领域,ReposVul 数据集广泛应用于自动化漏洞检测研究。该数据集提供了高质量的漏洞数据,包括 6,134 个 CVE 条目,涵盖了 236 种 CWE 类型,涉及 1,491 个项目和四种编程语言。研究人员可以利用 ReposVul 数据集训练和评估深度学习模型,以提高漏洞检测的准确性和效率。
衍生相关工作
ReposVul 数据集的构建方法和技术为开源软件安全领域的研究提供了新的思路和方向。例如,该数据集的多粒度信息提取技术可以用于构建更精确的漏洞检测模型,而基于追踪的过滤技术可以用于构建更可靠的漏洞数据集。
数据集最近研究
最新研究方向
针对开源软件(OSS)中漏洞检测的挑战,ReposVul 数据集的研究方向集中在提高数据集的质量和实用性上。该数据集通过解决现有数据集中存在的混乱补丁、缺乏跨过程漏洞以及过时补丁等问题,为深度学习(DL)方法提供了高质量的训练数据。ReposVul 的研究框架包含三个模块:漏洞解耦模块、多粒度依赖提取模块和基于跟踪的过滤模块。这些模块的结合使用,使得 ReposVul 能够提供包含文件级、函数级和行级信息的多粒度漏洞数据,以及识别和过滤过时补丁的能力。ReposVul 的构建不仅有助于提高漏洞检测模型的性能,还为漏洞修复和管理提供了丰富的信息资源。
相关研究论文
  • 1
    ReposVul: A Repository-Level High-Quality Vulnerability Dataset哈尔滨工业大学深圳研究院 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作