当前位置: 首页 > news >正文

MoreFixes

MoreFixes数据集 2024.9

MoreFixes 数据集是通过增强的仓库发现方法,从多个开源项目中收集的大规模CVE(公共漏洞和暴露)修复数据集。它包含来自 7,238 个 GitHub 项目29,203 个唯一 CVE,这些 CVE 修复涉及 35,276 次唯一提交39,931 个修复补丁文件。这些数据为漏洞检测和软件安全研究提供了强大的支持,尤其是在软件修复过程的分析和自动化修复生成方面。

该数据集提供了一个丰富的结构化数据集,包含与每个 CVE 相关的修复提交的详细信息,修复后的代码变化,以及相关的仓库元数据等。通过这个数据集,研究人员可以深入分析漏洞修复的模式、趋势和修复的有效性,进而推动漏洞检测技术的发展。


数据集字段介绍

MoreFixes 数据集以关系型数据库的形式组织,包含多个表格,每个表格对应特定的抽象层次,以下是对各个表字段的详细介绍:

数据集字段描述表格

表名字段名字段描述
fixescve_idCVE 的 ID(例如:CVE-2022-1575)
repo_url修复提交所在的仓库 URL
hash提交的哈希值,用于唯一标识提交
score修复提交的评分(衡量修复质量)
fix_date修复提交的日期
commit_message提交消息
commitshash提交的哈希值
commit_date提交日期
author提交作者
message提交信息
file_changefile_change_id文件变化的唯一 ID
hash与提交相关联的哈希值
filename文件名
num_lines_added增加的行数
num_lines_deleted删除的行数
code_before修复前的代码
code_after修复后的代码
method_changemethod_change_id方法更改的唯一 ID
file_change_id文件变化 ID(与 file_change 表关联)
method_name方法名
num_lines_added添加的行数
num_lines_deleted删除的行数
code_before修复前的方法代码
code_after修复后的方法代码
cvecve_idCVE 的 ID
descriptionCVE 描述
cwe_idCWE(通用弱点枚举)ID
publish_dateCVE 发布日期
cwe_classificationcve_idCVE ID(与 cve 表关联)
cwe_idCWE ID(与 cve 表关联)

数据库核心数据存储方法

MoreFixes 数据集中,核心数据主要存储在以下几个表格中:

  • fixes 表:该表是数据集的核心,记录了每个 CVE 的修复提交,包括修复提交的 CVE ID、提交的 仓库 URL、提交的 哈希值、修复的 评分 等关键信息。

  • commits 表:该表记录了所有修复提交的详细信息,包括 提交的哈希值、提交日期、作者 和 提交信息。

  • file_change 表:该表记录了每个修复提交所涉及的文件修改,包括 文件名、添加和删除的行数、修复前后的代码差异。

  • method_change 表:该表记录了每个修复提交中涉及的具体方法更改,包括 方法名、添加和删除的行数、修复前后的方法代码。

  • cve 表:该表存储了 CVE 的详细信息,包括 CVE 描述、CWE ID 等。

  • cwe_classification 表:该表记录了每个 CVE 对应的 CWE 分类,帮助进一步分析漏洞类型。

表之间的连接关系

  • fixes 表 是数据集的核心表,记录了每个 CVE 的修复提交。通过 cve_id 字段,fixes 表 与 commits 表 连接,能够获取每个提交的详细信息。

  • file_change 表 和 method_change 表 分别记录了与每个修复提交相关的文件和方法更改,这两个表与 commits 表 通过 hash 字段连接,确保每个提交的文件和方法更改信息能够准确地与提交记录关联。

  • cve 表 提供了 CVE 的详细信息,和 fixes 表 通过 cve_id 进行关联,使得每个修复记录可以与对应的 CVE 信息进行匹配。

  • cwe_classification 表 则进一步为每个 CVE 提供了 CWE 分类,通过 cve_idcve 表 关联,使得用户可以通过该表了解每个 CVE 的漏洞类型。


总结

  • MoreFixes 数据集以 PostgreSQL 数据库格式存储,包含多个表格,每个表格记录不同层次的修复信息。

  • 通过表之间的 外键连接(例如,cve_idhash 等),这些表格可以协同工作,提供丰富的修复信息,支持复杂的查询和分析。

  • 核心表格fixes,它包含了 CVE 修复提交的关键数据。其他表格(如 file_changemethod_change)记录了具体的代码更改信息,通过提交的 哈希值fixes 关联。


如何使用数据集

  1. 下载数据集

    • 下载论文源代码
      https://github.com/JafarAkhondali/Morefixes

    • 下载数据集和补丁文件
      https://zenodo.org/records/13983082(包含 postgrescvedumper-2024-09-26.sqlcvedataset-patches.zip

  2. 恢复数据库

    • 下载并解压 postgrescvedumper-2024-09-26.sql 文件。

    • 使用 Docker 运行数据库:

      sudo docker-compose up -d
      
    • 默认的数据库凭证:

      • 用户名postgrescvedumper

      • 数据库名postgrescvedumper

      • 密码a42a18537d74c3b7e584c769152c3d

  3. 使用数据

    • 数据恢复后,您可以使用 SQL 查询来访问数据。例如,查询特定 CVE 的修复提交:

      SELECT * FROM fixes WHERE cve_id = 'CVE-2022-1575';
      
  4. 运行工具

    • 为了分析新提交的 CVE 修复数据,您可以运行如下命令来更新数据库并获取最新的修复数据:

      bash Code/run.sh
      

以下是 MoreFixes 数据集相关的可复制链接:

  • 论文链接:https://dl.acm.org/doi/abs/10.1145/3663533.3664036

  • GitHub 仓库链接:https://github.com/JafarAkhondali/Morefixes

  • Zenodo 仓库链接:https://zenodo.org/records/13983082

  • 数据库表与字段详情:https://github.com/JafarAkhondali/Morefixes/blob/main/Doc/DataDictionary.md

http://www.dtcms.com/a/544482.html

相关文章:

  • 工业厂区人数进出显示屏让排班更科学
  • 分数阶微积分有限差分法求解
  • 软件设计师知识点总结:面向对象技术(面向对象基础+UML)
  • 【案例教程】从入门到精通-AI支持下的-ArcGIS数据处理、空间分析、可视化及多案例综合应用
  • 低压配电系统的AI进化(系统篇)
  • 注册网站代码装修平台网络推广公司
  • vue需要学习的点
  • Kotlin保留小数位的三种方法
  • GXDE OS 25.2.1 更新了!引入 dtk6,修复系统 bug 若干
  • Java 反序列化中的 boolean vs Boolean 陷阱:一个真实的 Bug 修复案例
  • Kotlin 类和对象
  • 内核里常用宏BUG_ON/WARN_ON/WARN_ONCE
  • 中断编程概念
  • EG1151 四开关升降压电源管理芯片技术解析
  • 腾讯云做网站教程专门做三国战纪的网站叫什么意思
  • 引航科技提供网站建设柳州企业网站建设公司
  • 钢铁行业数字化利器,TDengine 时序数据库荣获金恒科技“年度卓越供应商”
  • 分布式奇异值分解(SVD)详解
  • 线程局部存储(Thread-Local Storage, TLS)
  • 勇立潮头:优艾智合打造“一脑多态”工业具身智能新范式
  • 怕故障?怕扩展难?分布式可视化控制:给足场景安全感
  • HTML5 Audio(音频)
  • 返利网一类的网站怎么做网站设计与网页制作模板
  • CMD 的 echo 不支持像 Linux 那样用引号输出多行内容
  • 网站建设的优缺点域名换了网站需要备案么
  • 高级Web前端开发工程师2025年面试题总结及参考答案【含刷题资源库】
  • 关于 Flink 程序打包与分布式执行的详细指南
  • mysql8.4.6 LTS 主从架构搭建
  • C#实现智能提示输入,并增色显示
  • CommunityToolkit.Mvvm框架