遇见数据集

A Manually-Curated Dataset of Fixes to Vulnerabilities of Open-Source Software

收藏
arXiv2019-03-19 更新2024-06-21 收录
官方服务:

资源简介:

本数据集名为‘A Manually-Curated Dataset of Fixes to Vulnerabilities of Open-Source Software’,由SAP安全研究团队创建,专注于收集和整理开源软件中的漏洞及其修复提交。数据集包含624个漏洞,涉及205个不同的开源Java项目,共有1282个修复提交。创建过程历时四年,通过持续监控安全公告和代码仓库实现。该数据集主要用于训练自动识别代码仓库中安全相关提交的分类器,旨在简化手动识别新漏洞披露修复的复杂问题,提高软件安全性。

This dataset, titled "A Manually-Curated Dataset of Fixes to Vulnerabilities of Open-Source Software", was developed by the SAP Security Research Team. It focuses on collecting and curating vulnerability records and their corresponding fix commits in open-source software. The dataset contains 624 vulnerabilities spanning 205 distinct open-source Java projects, with a total of 1,282 fix commits. It was developed over a four-year period through continuous monitoring of security advisories and code repositories. This dataset is primarily intended for training classifiers that automatically identify security-related commits in code repositories, aiming to simplify the complex manual task of identifying fixes for newly disclosed vulnerabilities and enhancing software security.

提供机构:
SAP安全研究
创建时间:
2019-02-07
搜集汇总
数据集介绍
A Manually-Curated Dataset of Fixes to Vulnerabilities of Open-Source Software 数据集图片
构建方式
在软件供应链安全日益受到关注的背景下,该数据集源自SAP安全研究团队在运营开源漏洞评估工具Vulas过程中的实践积累。构建过程融合了双重数据源:一方面持续追踪美国国家漏洞数据库(NVD)的公开披露信息,另一方面主动监控超过50个特定项目的安全公告网页。针对每一条漏洞记录,研究团队均通过人工审核方式,在受影响项目的代码仓库中精准定位对应的修复提交(fix-commit),最终从205个具有实际工业应用价值的Java开源项目中,提取出624个公开漏洞与1282个修复提交之间的映射关系,并整理为四元组结构(漏洞标识符、仓库地址、提交哈希、类别标签)。
特点
该数据集的核心价值在于其工业相关性与人工精校的可靠性。与依赖自动化抽取的同类数据集不同,本数据集中超过70%的漏洞在NVD页面中并不包含源代码仓库链接,这些缺失条目经由人工从项目专属渠道补全。数据集覆盖了SAP产品及内部工具中实际使用的开源组件,确保了样本的实践代表性。此外,数据中包含了29个无CVE编号的漏洞以及46个虽已分配CVE但尚未在NVD发布的条目,显著扩充了现有安全数据的边界。每个漏洞对应的修复提交数量从1个到23个不等,反映了修复过程的复杂性与多分支回传实践。
使用方法
为便于研究者复用,数据集以CSV格式发布并附带Apache 2.0开源许可,同时提供了Jupyter Notebook与Python脚本作为辅助工具。利用这些脚本,用户可以自动从Git仓库中获取修复提交的完整内容,并基于Git标签计算从修复提交到新版本发布的时间延迟,从而评估安全响应的效率。在机器学习应用场景中,脚本支持通过随机采样为每个正例(安全修复提交)从同一仓库中抽取k个非安全提交作为负例,经人工筛选去重后可形成可用于训练的平衡数据集。该数据集已成功用于训练基于自然语言处理的补丁分类器与日志消息分类器,实现了对安全相关提交的自动识别。
背景与挑战
背景概述
在开源软件广泛应用的背景下,软件供应链的安全性成为关键议题。SAP安全研究团队于2014年起持续开展漏洞分析工作,并于2019年由Serena E. Ponta、Henrik Plate等研究人员在IEEE/ACM国际软件仓库挖掘会议(MSR)上发布了这一人工精选数据集。该数据集的核心研究问题在于,如何通过代码级别的漏洞修复信息,提升自动化识别与缓解开源软件漏洞的能力。数据集覆盖了205个具有实际工业相关性的Java开源项目,映射了624个公开漏洞与1282个修复提交,其构建过程严格依赖人工审核,确保了数据的高质量与可靠性。该数据集已被成功用于训练自动识别安全相关提交的分类器,对推动软件安全领域的实证研究具有重要影响力。
当前挑战
该数据集面临的挑战涵盖领域问题与构建过程两个层面。在领域问题方面,其核心挑战在于如何从海量代码提交中准确识别出真正修复安全漏洞的提交,而非普通功能变更或重构。由于安全修复提交在全部提交中占比极低,且常与多个分支的向后移植混淆,导致分类任务面临严重的数据不平衡与标签噪声问题。在构建过程中,挑战则体现在数据来源的多样性与不一致性上:超过70%的漏洞在NVD中缺乏源码仓库链接,需从超过50个项目特定网站手动追踪;同时,部分旧漏洞信息缺失或仓库已迁移,需投入大量人工精力进行核实与去重,以确保数据集的完整性与准确性。
常用场景
经典使用场景
在软件安全研究领域,该数据集被广泛用于训练和评估自动识别安全相关代码提交(commit)的分类器。研究人员利用其提供的624个公开漏洞与1282个修复提交的精确映射关系,结合配套脚本自动获取提交内容,构建正负样本均衡的训练集。通过分析提交的代码变更模式与日志文本特征,训练出能够区分安全修复与非安全变更的机器学习模型,为自动化漏洞数据库维护提供了基准测试平台。
衍生相关工作
该数据集催生了多项经典衍生工作,例如Sabetta和Bezzi基于其早期版本提出的安全提交自动分类方法,通过结合补丁分类器与日志分类器的投票机制,在不依赖漏洞公告的前提下实现了高精度识别。Pashchenko等人利用该数据分析了开源依赖中实际可被利用的漏洞数量,推动了代码中心化漏洞影响评估方法的发展。此外,该数据集还作为基准被用于对比不同机器学习架构在安全提交检测任务上的表现,促进了自然语言处理技术在软件安全领域的交叉创新。
数据集最近研究
最新研究方向
在开源软件安全领域,该数据集为自动化漏洞修复识别开辟了新的前沿方向。随着软件供应链安全日益成为全球关注的焦点,特别是近年来Log4j漏洞等重大安全事件频发,业界对精准定位安全修复提交的需求愈发迫切。该数据集通过人工精标624个真实漏洞及其1282个修复提交,覆盖205个具有工业相关性的Java开源项目,为基于机器学习的漏洞修复检测提供了高质量基准。其独特价值在于不仅包含NVD收录的漏洞,还涵盖了29个无CVE标识的漏洞和46个已分配CVE但未在NVD发布的案例,显著拓展了安全研究的覆盖范围。该数据集已被成功应用于训练分类器自动识别代码仓库中的安全相关提交,推动了从元数据依赖向代码级分析的范式转变。其开源发布策略更促进了学术界、工业界与开源社区的协同维护,为构建持续更新的安全知识库奠定了实践基础。
相关研究论文
  • 1
    A Manually-Curated Dataset of Fixes to Vulnerabilities of Open-Source SoftwareSAP安全研究 · 2019年
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务