five

CWE-Bench-Java|Java安全漏洞数据集|软件安全数据集

收藏
github2024-07-27 更新2024-07-28 收录
Java安全漏洞
软件安全
下载链接:
https://github.com/Liby99/cwe-bench-java
下载链接
链接失效反馈
资源简介:
CWE-Bench-Java是一个手动验证的数据集,用于检测Java项目中的安全漏洞。该数据集包含120个CVE,涵盖4种CWE类型,每个CVE包括有问题的和修复后的源代码,以及修复文件和函数的信息。数据集提供了项目信息、构建信息、修复信息等CSV文件,以及相关的补丁和安全公告信息。
创建时间:
2024-07-23
原始信息汇总

CWE-Bench-Java 数据集概述

数据集简介

CWE-Bench-Java 数据集包含 120 个 CVE,涵盖 4 种 CWE(路径遍历、OS 命令注入、跨站脚本和代码注入)。每个 CVE 包含项目的有缺陷和修复后的源代码,以及修复文件和函数的信息。

项目标识

每个项目通过 Project Slug 唯一标识,包含仓库名称、CVE ID 和项目缺陷版本的标签。例如:

DSpace__DSpace_CVE-2016-10726_4.4 ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^ | | | |--> 版本标签 | | |--> CVE ID | |--> 仓库名称 |--> Github 用户名

数据包内容

数据集包含以下文件和目录:

  • data/
    • project_info.csv
    • build_info.csv
    • fix_info.csv
  • patches/<project_slug>.patch
  • advisory/<project_slug>.json

Project Info

data/project_info.csv 文件包含每个项目的详细信息,字段如下:

  • id: 项目编号(1 到 120)
  • project_slug: 项目唯一标识
  • cve_id: CVE 标识符
  • cwe_id: CWE 标识符(CWE-022, CWE-078, CWE-079, CWE-094)
  • cwe_name: CWE 名称
  • github_username: Github 用户名
  • github_repository_name: Github 仓库名称
  • github_tag: 版本标签
  • github_url: Github 仓库 URL
  • advisory_id: Github 安全公告数据库中的公告 ID
  • buggy_commit_id: 缺陷提交的哈希值
  • fix_commit_ids: 修复提交的哈希值集合(按顺序排列,用分号分隔)

Fix Info

data/fix_info.csv 文件包含每个 CVE 修复的 Java 方法和类,字段如下:

  • project_slug: 项目唯一标识
  • cve_id: CVE 标识符
  • github_username: Github 用户名
  • github_repository_name: Github 仓库名称
  • commit: 包含修复的提交哈希值
  • file: 修复的 .java 文件
  • class: 修复的类名
  • class_start, class_end: 类的起始和结束行号
  • method: 修复的方法名
  • method_start, method_end: 方法的起始和结束行号
  • signature: 方法签名(可能包含多个重载方法)

获取和构建项目

提供脚本用于获取、打补丁和构建项目。需要 Linux x64 系统,并确保有足够的存储空间。脚本需要 git, wget, python3 和 Java 开发工具(如 Maven 和 Gradle)。

构建信息

构建信息存储在 build-info 目录中,每个文件是一个 .json 文件,包含使用的 Java 版本和 Maven/Gradle 版本,例如: json {"jdk": "8u202", "mvn": "3.5.0"}

仅获取不构建

如果不想构建项目,可以运行以下命令: bash $ python3 scripts/setup.py --no-build

选择性获取/构建

可以使用以下参数选择要构建的项目: bash $ python3 scripts/setup.py --cwe CWE-022 CWE-078 # 仅构建 CWE-022 和 CWE-078 的项目 $ python3 scripts/setup.py --filter keycloak # 仅构建 keycloak 项目 $ python3 scripts/setup.py --exclude apache # 不构建任何 apache 相关项目

AI搜集汇总
数据集介绍
main_image_url
构建方式
CWE-Bench-Java数据集的构建基于对120个CVE(Common Vulnerabilities and Exposures)的深入分析,涵盖了四种常见的CWE(Common Weakness Enumeration)类型,包括路径遍历、操作系统命令注入、跨站脚本和代码注入。每个CVE实例均包含项目的有缺陷和修复后的源代码,以及修复文件和函数的详细信息。数据集的构建过程包括从GitHub获取项目、应用补丁以及构建项目,确保了数据的完整性和可复现性。
特点
CWE-Bench-Java数据集的显著特点在于其全面性和精细度。该数据集不仅包含了120个CVE的详细信息,还提供了每个项目的唯一标识符(Project Slug),确保了数据的高可追溯性。此外,数据集还提供了构建和修复信息,包括修复的Java方法和类,以及相关的构建脚本,使得研究人员和开发者能够方便地复现和验证漏洞修复过程。
使用方法
使用CWE-Bench-Java数据集时,用户可以通过提供的脚本自动获取、打补丁并构建项目。首先,用户需要准备相应的JDK、Maven和Gradle版本,并运行`setup.py`脚本以完成项目的获取和构建。对于不需要构建的用户,可以选择仅获取项目源码。此外,用户还可以通过指定CWE类型、项目名称或排除特定项目来定制获取和构建过程,以满足不同的研究或开发需求。
背景与挑战
背景概述
CWE-Bench-Java数据集是由Ziyang Li、Saikat Dutta和Mayur Naik等研究人员于2024年创建的,旨在支持大型语言模型辅助的静态分析,以检测Java代码中的安全漏洞。该数据集包含了120个CVE(Common Vulnerabilities and Exposures),涵盖了路径遍历、操作系统命令注入、跨站脚本和代码注入等四种常见的CWE(Common Weakness Enumeration)类型。每个CVE都包括了存在漏洞和修复后的源代码,以及修复文件和函数的相关信息。CWE-Bench-Java不仅提供了种子信息和获取、修补、构建项目的脚本,还详细记录了每个项目的唯一标识符、CVE ID、CWE ID、GitHub用户名、仓库名称、标签、URL、漏洞提交ID和修复提交ID等关键信息。该数据集的创建对提升Java代码安全分析的自动化和精确性具有重要意义。
当前挑战
CWE-Bench-Java数据集在构建过程中面临多重挑战。首先,收集和整理120个CVE的详细信息,包括漏洞和修复的源代码,需要对大量开源项目进行深入分析和验证。其次,确保每个项目的唯一标识符(Project Slug)的准确性和一致性,以便于后续的分析和处理。此外,提供脚本来自动获取、修补和构建项目,确保在不同环境下的可重复性和稳定性,也是一个技术难题。最后,由于涉及多种JDK、Maven和Gradle版本的管理和兼容性问题,构建过程的自动化和成功率提升也是一大挑战。这些挑战不仅涉及技术实现,还要求对Java安全漏洞的深刻理解和实践经验。
常用场景
经典使用场景
CWE-Bench-Java数据集在软件安全领域中被广泛用于静态分析工具的开发与评估。其经典使用场景包括但不限于:通过对比包含漏洞的源代码与修复后的版本,研究人员可以训练和验证自动化漏洞检测模型,从而提升静态分析工具的准确性和效率。此外,该数据集还支持对不同类型的安全漏洞进行分类和识别,为开发更智能的安全防护系统提供了坚实的基础。
实际应用
在实际应用中,CWE-Bench-Java数据集被广泛用于企业和开发团队的代码审查和安全测试。通过使用该数据集,开发人员可以快速识别和修复潜在的安全漏洞,从而提高软件的整体安全性。此外,安全工具供应商也利用该数据集来验证和优化其产品的漏洞检测能力,确保其工具在实际应用中的有效性。
衍生相关工作
CWE-Bench-Java数据集的发布催生了多项相关研究工作,包括但不限于:基于该数据集的静态分析工具的改进、漏洞检测算法的优化以及自动化修复技术的探索。这些工作不仅提升了现有工具的性能,还推动了新的研究方向,如结合机器学习和深度学习技术来进一步提高漏洞检测的准确性和效率。
以上内容由AI搜集并总结生成
用户留言
有没有相关的论文或文献参考?
这个数据集是基于什么背景创建的?
数据集的作者是谁?
能帮我联系到这个数据集的作者吗?
这个数据集如何下载?
点击留言
数据主题
具身智能
数据集  4099个
机构  8个
大模型
数据集  439个
机构  10个
无人机
数据集  37个
机构  6个
指令微调
数据集  36个
机构  6个
蛋白质结构
数据集  50个
机构  8个
空间智能
数据集  21个
机构  5个
5,000+
优质数据集
54 个
任务类型
进入经典数据集
热门数据集

Figshare

Figshare是一个在线数据共享平台,允许研究人员上传和共享各种类型的研究成果,包括数据集、论文、图像、视频等。它旨在促进科学研究的开放性和可重复性。

figshare.com 收录

Global Firepower Index (GFI)

Global Firepower Index (GFI) 是一个评估全球各国军事力量的综合指数。该指数考虑了超过50个因素,包括军事预算、人口、陆地面积、海军力量、空军力量、自然资源、后勤能力、地理位置等。数据集提供了每个国家的详细评分和排名,帮助分析和比较各国的军事实力。

www.globalfirepower.com 收录

The MaizeGDB

The MaizeGDB(Maize Genetics and Genomics Database)是一个专门为玉米(Zea mays)基因组学研究提供数据和工具的在线资源。该数据库包含了玉米的基因组序列、基因注释、遗传图谱、突变体信息、表达数据、以及与玉米相关的文献和研究工具。MaizeGDB旨在支持玉米遗传学和基因组学的研究,为科学家提供了一个集成的平台来访问和分析玉米的遗传和基因组数据。

www.maizegdb.org 收录

MeSH

MeSH(医学主题词表)是一个用于索引和检索生物医学文献的标准化词汇表。它包含了大量的医学术语和概念,用于描述医学文献中的主题和内容。MeSH数据集包括主题词、副主题词、树状结构、历史记录等信息,广泛应用于医学文献的分类和检索。

www.nlm.nih.gov 收录

胎儿基因组病的NIPT检测及随访数据

本条为14000例标本的高通量测序的检测结果,包括625例高通量测序高风险结果的进一步介入性产前诊断(羊水、脐血穿刺)结果,产前诊断结果包含核型分析结果和微阵列芯片检测结果;以及高通量测序阴性结果的进一步妊娠结局跟踪随访结果。

国家人口健康科学数据中心 收录