five

SBP dataset

收藏
arXiv2024-12-30 更新2025-01-02 收录
下载链接:
http://arxiv.org/abs/2412.20740v1
下载链接
链接失效反馈
官方服务:
资源简介:
SBP数据集由浙江大学和华为的研究团队构建,旨在帮助检测软件漏洞中的相似但已修复代码(SBP)。该数据集包含来自1,081个真实世界开源项目的6,824个SBP函数,涵盖了C、C++和Java三种编程语言。数据集的构建基于代码变更历史,通过分析漏洞修复的补丁日志来识别SBP代码。该数据集可用于评估漏洞检测工具的敏感性,特别是在区分真实漏洞和SBP代码方面的能力。通过该数据集,研究团队展示了现有深度学习漏洞检测方法在处理SBP代码时的不足,为未来的研究提供了新的方向。

The SBP Dataset was constructed by research teams from Zhejiang University and Huawei, aiming to assist in detecting similar yet fixed code (SBP) within software vulnerabilities. This dataset contains 6,824 SBP functions sourced from 1,081 real-world open-source projects, covering three programming languages: C, C++, and Java. The dataset is built based on code change histories, where SBP code is identified by analyzing vulnerability patch logs. It can be used to evaluate the sensitivity of vulnerability detection tools, particularly their capability to distinguish between real vulnerabilities and SBP code. Using this dataset, the research team demonstrated the shortcomings of existing deep learning-based vulnerability detection methods when handling SBP code, providing new directions for future research.
提供机构:
浙江大学, 华为
创建时间:
2024-12-30
搜集汇总
数据集介绍
main_image_url
构建方式
SBP数据集的构建基于Fixed Vulnerability Filter (FVF)框架,该框架通过分析代码变更历史来识别和过滤相似但已修复的代码片段(SBP)。具体而言,FVF首先利用现有的漏洞检测工具在目标代码库中检测潜在的漏洞函数,随后通过查询漏洞特征数据库获取相关漏洞的修复日志,并与目标代码片段的变更日志进行匹配。若修复日志中的修复行为在变更日志中被发现,则判定该代码片段为SBP。最终,FVF在1,081个真实世界的开源项目中收集了6,827个SBP函数,构建了SBP数据集。
使用方法
SBP数据集的使用方法主要包括两个方面:首先,该数据集可用于评估现有漏洞检测工具在区分真实漏洞与SBP时的性能。通过将SBP数据集作为测试基准,开发者可以更准确地评估工具在实际应用中的表现。其次,SBP数据集还可用于推动针对SBP现象的进一步研究,特别是在深度学习漏洞检测领域。由于现有深度学习模型在处理SBP代码时表现不佳,该数据集为改进模型提供了重要的实验数据。此外,SBP数据集还可用于验证新的漏洞检测算法,帮助开发者设计更有效的漏洞检测工具。
背景与挑战
背景概述
SBP数据集由浙江大学与华为的研究团队于2024年提出,旨在解决软件安全领域中的重复漏洞检测问题。该数据集的核心研究问题是如何有效识别和过滤相似但已修复的代码(SBP),以减少现有漏洞检测工具中的误报。SBP代码与漏洞代码极为相似,但由于已被修复,实际上并不存在漏洞。研究团队通过分析代码变更历史,提出了一个编程语言无关的框架Fixed Vulnerability Filter (FVF),用于精确识别SBP代码,并在实际场景中验证了其有效性。该数据集包含来自1,081个开源项目的6,827个SBP函数,为漏洞检测工具的评估提供了严格的基准。
当前挑战
SBP数据集面临的挑战主要体现在两个方面。首先,现有漏洞检测工具难以区分真实漏洞与SBP代码,导致误报率居高不下。尽管基于克隆的检测技术广泛使用,但由于SBP代码与漏洞代码的细微差异,这些技术往往无法有效区分两者,尤其是在代码回滚或定制化修复的情况下。其次,构建数据集的过程中,研究团队需要处理大规模代码库的变更历史,提取和匹配修复日志,这一过程不仅计算成本高,还面临代码库中函数重命名、移动等复杂情况。此外,深度学习模型在SBP代码上的表现不佳,进一步凸显了该数据集在评估漏洞检测工具敏感性方面的重要性。
常用场景
经典使用场景
SBP数据集在软件安全领域中被广泛用于评估漏洞检测工具的敏感性和准确性。通过提供大量相似但已修复的代码实例,该数据集能够帮助研究人员测试现有工具在区分真实漏洞和已修复代码方面的表现。特别是在克隆检测和深度学习驱动的漏洞检测方法中,SBP数据集作为一个严格的基准,能够有效减少误报率,提升检测工具的实用性。
解决学术问题
SBP数据集解决了软件安全领域中的一个关键问题:如何有效区分相似但已修复的代码与真实漏洞。传统克隆检测方法由于无法识别已修复代码,往往产生大量误报,导致检测工具的实际应用受限。该数据集通过提供大量已修复代码实例,帮助研究人员开发更精确的漏洞检测算法,减少误报率,提升检测工具的可靠性。
实际应用
在实际应用中,SBP数据集被广泛用于软件维护和安全审计中。开发者和安全团队可以利用该数据集评估其漏洞检测工具的性能,确保在代码库中准确识别真实漏洞,避免误报带来的资源浪费。此外,该数据集还可用于培训深度学习模型,提升其在真实场景中的漏洞检测能力,特别是在处理已修复代码时的表现。
数据集最近研究
最新研究方向
在软件安全领域,识别重复漏洞是确保系统安全的关键任务。然而,现有的基于代码克隆的漏洞检测技术往往由于存在相似但已修复(SBP)的代码而产生大量误报。SBP代码与漏洞代码相似,但由于已被修复,实际上并不存在漏洞。尽管SBP代码对现有方法的有效性构成了巨大挑战,但这一现象尚未得到充分研究。近期,研究者提出了一种编程语言无关的框架——Fixed Vulnerability Filter(FVF),用于在漏洞检测中识别和过滤SBP实例。与现有研究依赖函数签名不同,FVF通过分析代码变更历史来精确定位SBP,从而减少误报。在实际场景中的评估证实了该方法的有效性和精确性。值得注意的是,FVF从四种漏洞检测工具(ReDeBug、VUDDY、MVP和一种基于哈希的简单方法)中识别并过滤了65.1%的误报,且未产生误判。此外,研究者还应用FVF对1,081个真实世界的软件项目进行了分析,构建了一个包含6,827个SBP函数的真实世界SBP数据集。由于SBP的特性,该数据集可作为严格的基准,用于测试漏洞检测方法在区分真实漏洞和SBP时的敏感性。通过该数据集,研究者展示了四种基于深度学习的最新漏洞检测方法的无效性。该数据集不仅有助于开发者更真实地评估漏洞检测工具,还为未来探索真实世界中的SBP场景铺平了道路。
相关研究论文
  • 1
    Similar but Patched Code Considered Harmful -- The Impact of Similar but Patched Code on Recurring Vulnerability Detection and How to Remove Them浙江大学, 华为 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作