five

BinPool

收藏
arXiv2025-04-27 更新2025-04-30 收录
下载链接:
https://github.com/SimaArasteh/binpool
下载链接
链接失效反馈
官方服务:
资源简介:
BinPool数据集是一个包含大量真实世界软件漏洞的公开数据集,旨在用于二进制安全分析。该数据集包含了Debian软件包的易受攻击版本和修复版本,跨越了多个年份,并且每个程序都编译了四个不同的优化级别。BinPool数据集覆盖了603个独特的CVE编号,跨越了89个CWE类别,涉及162个Debian软件包,总共包含了6144个二进制文件。BinPool数据集的构建过程高度自动化,首先从国家漏洞数据库(NVD)和Debian安全跟踪器收集漏洞数据,然后使用Debian包维护工具构建易受攻击和修复版本的软件包,并在四个不同的优化级别上编译。最后,从这些软件包中提取元数据,包括受漏洞影响的文件、函数和代码行。BinPool数据集适用于漏洞发现、二进制函数相似性检测和剽窃检测等多种安全分析工具的评估,为实际的安全研究提供了宝贵的资源。

The BinPool dataset is a publicly available dataset containing a vast number of real-world software vulnerabilities, intended for binary security analysis. This dataset includes both vulnerable and patched versions of Debian software packages, spanning multiple years, with each program compiled under four distinct optimization levels. The BinPool dataset covers 603 unique CVE identifiers, spans 89 CWE categories, involves 162 Debian software packages, and contains a total of 6144 binary files. The construction process of the BinPool dataset is highly automated: first, vulnerability data is collected from the National Vulnerability Database (NVD) and the Debian Security Tracker; then, vulnerable and patched software packages are built using Debian package maintenance tools, and compiled under four distinct optimization levels. Finally, metadata is extracted from these packages, including vulnerability-affected files, functions, and lines of code. The BinPool dataset is suitable for evaluating various security analysis tools such as vulnerability discovery, binary function similarity detection, and plagiarism detection, providing a valuable resource for practical security research.
提供机构:
南加州大学(University of Southern California)
创建时间:
2025-04-27
原始信息汇总

BinPool数据集概述

简介

BinPool是一个用于二进制安全分析的漏洞数据集,包含从历史Debian软件包中提取的易受攻击和已修补的二进制文件,使用四种不同的优化级别编译。该数据集可用于通过机器学习、静态分析等多种方法进行漏洞发现任务。

访问方式

  • 数据集下载地址:Zenodo

主要特征

  • 包含603个唯一CVE和89个CWE
  • 提供每个CVE对应的Debian软件包的修复版本
  • 支持多种编程语言(C、C++、Java、Python、PHP)
  • 提供补丁和二进制版本中的函数和模块名称

数据集统计

测量指标 数值
唯一CVE数量 603
CWE数量 89
Debian文件数量 824
二进制文件总数 6144
Debian软件包数量 162
源代码模块数量 768
源代码函数数量 910
二进制函数数量 7280

常见CWE列表

CWE CWE名称 出现次数
CWE-787 Out-of-bounds Write 71
CWE-476 NULL Pointer Dereference 61
CWE-125 Out-of-bounds Read 54
CWE-190 Integer Overflow or Wraparound 34
CWE-20 Improper Input Validation 28
CWE-416 Use After Free 27
CWE-400 Uncontrolled Resource Consumption 20

数据结构

CVE-ID/ │ ├── vulnerable/ # 易受攻击版本 │ ├── opt0/ # 优化级别0 │ ├── opt1/ # 优化级别1 │ ├── opt2/ # 优化级别2 │ └── opt3/ # 优化级别3 │ └── patch/ # 已修补版本 ├── opt0/ # 优化级别0 ├── opt1/ # 优化级别1 ├── opt2/ # 优化级别2 └── opt3/ # 优化级别3

自动化工具

所有数据收集步骤已自动化:binpool_automation

使用说明

下载数据集后,运行extract_deb_tar.py提取Debian文件到二进制文件,生成的结构与上述数据结构一致。

统计信息提取

运行以下命令提取统计信息: bash python3 extract_statistics.py

开发团队

  • Sima Arasteh - 南加州大学博士生
  • Georgios Nikitopoulos - 达特茅斯学院博士生
  • Wei-Cheng Wu - 达特茅斯学院博士生
  • Nicolaas Weideman - USC ISI博士生
  • Aaron Portnoy - 达特茅斯学院黑客驻校研究员
  • Mukund Raghothaman - 南加州大学助理教授
  • Christophe Hauser - 达特茅斯学院助理教授
搜集汇总
数据集介绍
main_image_url
构建方式
BinPool数据集的构建过程体现了高度自动化和系统化的特点。研究团队通过整合美国国家漏洞数据库(NVD)与Debian安全跟踪器的数据,建立了漏洞与修复版本之间的精确映射。利用Debian软件包维护工具quilt选择性应用补丁,实现了每个程序漏洞版本和修复版本的自动生成。整个过程涵盖从源代码获取、补丁管理到多级优化编译的全流程,最终形成包含603个CVE、89个CWE类别的6144个二进制文件。数据收集与处理均采用Python脚本实现,确保了流程的可重复性和可扩展性。
特点
该数据集最显著的特征在于其真实性和多样性。所有漏洞样本均来自Debian历史软件包,覆盖了162个实际项目中的910个源函数和7280个二进制函数。每个漏洞均提供源代码和二进制级别的精确定位信息,包括受影响文件、函数及行号。特别值得注意的是,每个程序都包含四种不同优化级别编译的版本,这为研究编译器优化对漏洞表征的影响提供了独特资源。数据集还突破了传统漏洞数据集的局限性,首次实现了漏洞版本与修复版本的成对出现,为漏洞检测研究提供了更可靠的基准。
使用方法
BinPool数据集支持多种安全分析场景的应用。研究人员可通过GitHub仓库获取完整的二进制文件及元数据,利用提供的CSV和JSON文件快速定位特定CVE或CWE类别的样本。对于漏洞检测研究,建议结合源代码变更与二进制差异进行跨模态分析;在函数相似性检测任务中,可利用不同优化级别的编译结果评估算法鲁棒性。数据集已成功应用于BinHunter等图神经网络系统的评估,证明其适用于机器学习模型的训练与测试。使用时应特别注意元数据中标注的漏洞位置信息,以确保分析结果的准确性。
背景与挑战
背景概述
BinPool数据集由南加州大学和达特茅斯学院的研究团队于2025年联合创建,旨在为二进制安全分析领域提供高质量的漏洞数据集。该数据集收录了来自162个Debian软件包的603个独特CVE漏洞,涵盖89种CWE类型,包含6144个经过四种不同优化级别编译的二进制文件。其创新性在于通过自动化流程将国家漏洞数据库(NVD)与Debian安全跟踪器关联,精确匹配每个漏洞的修补前后版本,并标注源代码和二进制层面的漏洞位置。作为首个提供如此详尽元数据的公开数据集,BinPool不仅填补了真实世界二进制漏洞样本的空白,更为机器学习驱动的漏洞检测、二进制函数相似性分析等研究提供了重要基准。
当前挑战
构建BinPool面临双重挑战:在领域问题层面,现有数据集普遍存在样本单一(如Juliet数据集使用人工注入漏洞)、缺乏真实场景(如静态分析工具生成的误报样本)或未公开原始数据等问题;在构建过程层面,研究团队需解决Debian历史版本源码追溯、跨数据库(NVD与Debian安全跟踪器)漏洞信息对齐、自动化构建多优化级别二进制文件等技术难题。特别是需要精确提取DWARF调试信息来定位二进制文件中的漏洞内存偏移,这对自动化管道的可靠性提出了极高要求。数据集当前仍存在某些CWE类别样本不足的局限,可能影响机器学习模型的训练效果。
常用场景
经典使用场景
在二进制安全分析领域,BinPool数据集因其包含大量真实世界的漏洞样本而成为研究工具开发的黄金标准。该数据集通过自动化的方式收集了Debian软件包的历史漏洞版本及其补丁版本,涵盖了603个独特的CVE漏洞和89种CWE类别。研究者可以利用BinPool来训练和评估机器学习模型,特别是在漏洞发现和二进制函数相似性检测方面,其多样化的漏洞类型和详细的元数据为模型提供了丰富的学习材料。
实际应用
在实际应用中,BinPool数据集被广泛用于安全工具的开发和评估。例如,BinHunter系统利用该数据集评估了其基于图神经网络的漏洞检测能力。此外,数据集还可用于二进制代码相似性检测和抄袭检测,特别是在跨优化级别和跨架构的二进制分析中。安全公司和研究机构可以利用BinPool来测试其静态和动态分析工具的有效性,从而提升漏洞发现的准确率和效率。
衍生相关工作
BinPool数据集已经衍生出多项重要的研究工作。例如,BinHunter系统利用该数据集进行了漏洞检测模型的训练和评估。此外,数据集还被用于二进制函数相似性检测的研究,如Jtrans等项目的开发。这些工作不仅验证了数据集的实用性,还进一步扩展了其在二进制安全分析中的应用范围。未来,随着数据集的不断更新和扩展,预计会有更多基于BinPool的创新研究涌现。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作