five

eyeballvul

收藏
arXiv2024-07-13 更新2024-07-29 收录
下载链接:
https://github.com/timothee-chauvin/eyeballvul
下载链接
链接失效反馈
官方服务:
资源简介:
eyeballvul数据集由Timothée Chauvin创建,旨在评估语言模型在大规模环境中检测安全漏洞的能力。该数据集包含超过24,000个真实世界中的漏洞,来源于开源仓库中的CVEs,并每周更新以保持时效性。数据集大小超过55GB,涉及多种编程语言,适用于测试和改进静态应用安全测试工具。创建过程中,数据集通过重新包装现有的CVEs数据,确保每个修订版本关联已知漏洞,以真实反映漏洞检测的实际情况。该数据集主要用于提升模型在实际应用中识别和分类安全漏洞的能力。

The EyeballVul dataset was created by Timothée Chauvin, aiming to evaluate the capability of language models to detect security vulnerabilities in large-scale environments. This dataset contains over 24,000 real-world vulnerabilities sourced from CVEs in open-source repositories, and it is updated weekly to maintain timeliness. With a size exceeding 55 GB, it covers multiple programming languages and is applicable for testing and improving static application security testing tools. During its creation, existing CVE data was repackaged to ensure that each revised version is associated with known vulnerabilities, thus realistically reflecting the actual scenario of vulnerability detection. This dataset is primarily used to enhance the ability of models to identify and classify security vulnerabilities in real-world applications.
提供机构:
未提及
创建时间:
2024-07-12
原始信息汇总

eyeballvul 数据集概述

数据集简介

eyeballvul 是一个开源基准测试数据集,旨在评估基于语言模型的静态应用安全测试(SAST)漏洞检测工具。该数据集每周从开源仓库的 CVE 流中更新,确保其在未来一段时间内保持相关性。

数据集内容

eyeballvul 包含 24,643 个漏洞,分布在 6,525 个修订版本和 5,974 个仓库中。每个漏洞对应于 osv.dev 数据库中的一个条目(通常是一个 CVE),并可能存在于多个仓库修订版本中。每个修订版本代表仓库在特定提交时的状态,并可能与多个漏洞相关联。

数据模型

数据集中的数据分为两种类型:漏洞修订版本。漏洞包含 ID、发布日期、修改日期、详细信息、严重性、仓库 URL 等信息。修订版本包含提交哈希、仓库 URL、日期、语言分布和大小等信息。

使用方法

数据集的使用通常包括以下步骤:

  1. 选择一个包含至少一个在某个日期之后发布的漏洞的仓库和修订版本列表;
  2. 在每个修订版本的源代码上运行 SAST 工具(通常基于 LLM);
  3. 将 SAST 工具的结果与每个修订版本的已知漏洞列表进行比较,特别是那些在训练数据截止日期之后发布的漏洞。

安装与导入

可以通过以下命令安装和导入数据集: bash pip install eyeballvul

python from eyeballvul import download_data download_data()

如果需要特定版本的数据,可以使用 download_data(date="YYYY-MM-DD") 命令。

数据查询

数据集提供了多个查询函数,如 get_projectsget_commitsget_revisionsget_vulns,用于获取项目列表、提交列表、修订版本列表和漏洞列表。这些函数支持按日期、项目和提交哈希进行过滤。

示例

以下是一个使用数据集的示例,展示了如何获取特定项目的漏洞和修订版本信息: python from eyeballvul import get_vulns, get_revision import json

vulnerability = get_vulns(project="https://github.com/gnome/nautilus")[0] print(json.dumps(vulnerability.to_dict(), indent=2))

revision = get_revision(vulnerability.commits[0]) print(json.dumps(revision.to_dict(), indent=2))

搜集汇总
数据集介绍
main_image_url
构建方式
eyeballvul数据集的构建方式是通过从开源仓库中获取已发布的漏洞信息,并将其与不同的代码库版本相关联。数据集每周更新,以确保包含最新的漏洞。构建过程涉及将CVE数据下载并按仓库分组,然后确定每个漏洞影响的版本,并选择最小版本的集合。之后,通过Git切换到所选版本的修订版,并计算每个修订版的代码库大小和语言分布,以便于后续评估时进行筛选。最后,使用LLM-based scorer比较模型返回的可能漏洞列表与已知漏洞列表,从而计算精确度和召回率等指标。
使用方法
eyeballvul数据集的使用方法包括:1)将代码库分割成适合模型上下文窗口大小的块;2)使用LLM-based scorer对模型返回的可能漏洞列表与已知漏洞列表进行比较,计算精确度和召回率等指标;3)使用LLM scorer对模型返回的每个可能漏洞进行评分,判断其是否与已知漏洞相对应。
背景与挑战
背景概述
eyeballvul数据集由Timothée Chauvin创建,旨在评估语言模型在漏洞检测方面的能力。该数据集每周从开源仓库中更新的已知漏洞中收集数据,目前包含超过24,000个漏洞,跨越6,000多个修订版和5,000多个仓库。eyeballvul数据集的设计考虑了现实世界的漏洞情况,提供了真实、多样且不断更新的数据,对于评估和改进语言模型在漏洞检测任务中的表现具有重要意义。
当前挑战
eyeballvul数据集在构建过程中面临了多项挑战。首先,如何将现有的CVE数据转换为适合漏洞检测任务的数据格式是一个复杂的问题。其次,由于模型对漏洞的理解和描述可能与CVE描述存在差异,因此需要开发一个基于LLM的评分器来比较模型返回的可能漏洞列表与已知漏洞列表。此外,eyeballvul数据集还面临着如何处理模型返回的虚假警报和如何提高评分器准确性的挑战。
常用场景
经典使用场景
eyeballvul数据集主要用于评估语言模型在检测开源代码库中安全漏洞方面的能力。通过将整个代码库或其大部分内容放入语言模型的环境中,并指令其查找安全漏洞,eyeballvul数据集提供了一个测试这种能力的大规模基准。该数据集包含来自开源仓库的已知漏洞列表,以及每个修订版本中存在的已知漏洞列表。利用LLM评分器,可以将模型返回的可能漏洞列表与每个修订版本中的已知漏洞列表进行比较,从而评估模型的性能。
解决学术问题
eyeballvul数据集解决了当前缺乏评估语言模型在安全漏洞检测方面性能的基准数据集的问题。该数据集具有以下特点:来自开源仓库的大量真实漏洞;模拟实际检测场景;规模庞大;多样性丰富;未来可扩展。这使得eyeballvul数据集成为一个具有重要学术研究意义的基准数据集,有助于推动语言模型在安全漏洞检测方面的研究进展。
实际应用
eyeballvul数据集在实际应用中可以用于评估和改进静态应用安全测试(SAST)工具的性能。通过使用eyeballvul数据集进行测试,开发者可以了解其SAST工具在检测真实世界漏洞方面的能力,并据此进行优化和改进。此外,eyeballvul数据集还可以用于训练和评估安全研究人员,帮助他们提高在开源代码库中检测漏洞的能力。
数据集最近研究
最新研究方向
eyeballvul数据集的引入为评估语言模型在漏洞检测方面的能力提供了一个重要的基准。该数据集每周更新,包含了从开源代码库中发布的漏洞信息,为研究人员提供了一个不断变化的、真实的漏洞检测环境。eyeballvul的创建旨在填补当前漏洞检测领域的空白,它不仅具有现实世界的漏洞来源,还具有真实的检测环境设置。此外,eyeballvul的规模庞大,包含超过6000次修订和24000多个漏洞,总大小约为55GB。这些特点使得eyeballvul成为一个未来-proof的基准,能够适应不断变化的漏洞检测需求。
相关研究论文
  • 1
    eyeballvul: a future-proof benchmark for vulnerability detection in the wild未提及 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作