多语言软件漏洞检测数据集
收藏arXiv2025-03-03 更新2025-03-11 收录
下载链接:
https://github.com/soarsmu/SVD-Bench
下载链接
链接失效反馈官方服务:
资源简介:
本研究构建了一个包含Python、Java和JavaScript三种流行编程语言漏洞数据的数据集。数据集由新加坡管理大学提供,包含了8260个Python语言的漏洞函数、7505个Java语言的漏洞函数和28983个JavaScript语言的漏洞函数。这些数据来源于国家漏洞数据库,并通过Git库中的漏洞修复提交记录进行提取和标注。该数据集旨在为大型语言模型在多语言软件漏洞检测任务上的性能评估提供基准,以解决当前软件安全领域中对不同编程语言漏洞检测方法效果缺乏全面研究的现状。
This study constructs a dataset containing vulnerability data for three popular programming languages: Python, Java, and JavaScript. Provided by the Singapore Management University, the dataset includes 8260 vulnerable functions written in Python, 7505 in Java, and 28983 in JavaScript. These data are sourced from the National Vulnerability Database and were extracted and labeled using vulnerability fix commit records in Git repositories. This dataset is intended to serve as a benchmark for evaluating the performance of Large Language Models (LLMs) on multilingual software vulnerability detection tasks, aiming to address the current lack of comprehensive research on the effectiveness of vulnerability detection methods across different programming languages in the software security domain.
提供机构:
新加坡管理大学
创建时间:
2025-03-03
搜集汇总
数据集介绍

构建方式
该数据集的构建方法主要基于从国家漏洞数据库(NVD)中收集的漏洞数据,以及GitHub、GitLab或BitBucket等代码托管平台的漏洞修复提交(VFCs)。研究人员通过CVE条目中包含的“patches”链接来搜索VFCs,并假设这些提交只修改了有漏洞的函数。然后,他们使用Tree-sitter工具从VFCs中提取修改前后的函数,并通过MD5散列进行去重。最终,数据集被分为训练集、验证集和测试集,并按照提交日期进行排序,以确保实验的时效性。
特点
该数据集的特点是包含了三种最流行的编程语言(Python、Java和JavaScript)的漏洞数据,并且提供了大量的漏洞函数。此外,该数据集还考虑了数据的时间特性,通过时间感知的设置来模拟现实世界的漏洞检测场景。数据集的构建方法使得数据集在多样性、规模和时效性方面都具有优势。
使用方法
使用该数据集的方法主要包括:1)使用零样本生成、上下文学习和检索增强生成等方法进行提示工程;2)使用指令调整和序列分类微调等方法进行模型微调;3)使用参数高效的微调技术(如QLoRA)来减少内存使用。此外,研究人员还探索了使用降采样数据集和集成学习方法来提高模型在漏洞检测任务上的性能。
背景与挑战
背景概述
多语言软件漏洞检测数据集的创建是为了填补大型语言模型(LLM)在软件漏洞检测(SVD)领域的知识空白。该数据集由新加坡管理大学计算与信息系统学院的研究团队于2025年3月创建,主要研究人员包括张婷、杨承然等。该数据集的核心研究问题在于评估LLM在多语言SVD任务上的性能,并探索提升其检测准确性的策略。该数据集的创建对相关领域产生了显著的影响,为未来利用生成式AI增强软件安全实践提供了实用见解。
当前挑战
多语言软件漏洞检测数据集面临的挑战主要包括:1) 所解决的领域问题:LLM在SVD任务上的性能提升;2) 构建过程中遇到的挑战:数据集的多样性和不平衡性,以及如何有效地将LLM应用于SVD任务。
常用场景
经典使用场景
多语言软件漏洞检测数据集主要用于评估大型语言模型(LLMs)在软件漏洞检测(SVD)任务中的性能。通过对LLMs进行提示工程、指令微调和序列分类微调等多种方法,研究者可以了解LLMs在不同编程语言中的漏洞检测能力,并为软件安全实践提供实用的见解。
解决学术问题
该数据集解决了现有研究中存在的知识差距,即LLMs在检测各种编程语言中的漏洞方面的有效性尚未得到充分研究。通过评估LLMs在Python、Java和JavaScript三种流行编程语言中的漏洞检测性能,该数据集有助于填补这一空白,并为未来的研究提供基础。
衍生相关工作
该数据集的发布衍生了许多相关的研究工作。研究者可以利用该数据集进行更深入的分析,例如探索LLMs在不同编程语言中的漏洞检测性能差异的原因,以及如何通过调整训练数据或模型结构来提高LLMs的漏洞检测性能。此外,该数据集还可以用于开发新的软件漏洞检测工具和方法,以进一步提高软件的安全性。
以上内容由遇见数据集搜集并总结生成



