中文

类似但已修补代码被认为有害——类似但已修补代码对 recurring 漏洞检测的影响及其去除方法

软件工程 2026-02-10 v1 密码学与安全

摘要

识别 recurring 漏洞对于确保软件安全至关重要。虽然克隆基方法广泛使用,但常常会生成大量误报,因为存在类似但已修补(Similar but Patched, SBP)代码,这些代码虽与脆弱代码相似,但因已被修补而不再脆弱。尽管 SBP 代码对现有方法的有效性构成重大挑战,但其尚未得到充分探索。本文提出一种编程语言无关的框架Fixed Vulnerability Filter(FVF),用于识别和过滤此类 SBP 实例以减少误报。与现有研究不同,后者利用函数签名,而本方法分析代码变更历史,精准定位 SBP,从而显著减少误报。实验结果表明,在实际场景下,FVF 在四个漏洞检测工具(即 ReDeBug、VUDDY、MVP 和一个基础散列方法)上有效且精确,成功筛选出 65.1% 的误报且不产生漏报。我们进一步将 FVF 应用于 1,081 个真实软件项目,构建了一个包含 6,827 个 SBP 函数的真实世界 SBP 数据集。由于 SBP 的特性,该数据集可作为严格基准测试漏洞检测方法区分真实漏洞与 SBP 的灵敏度。利用该数据集,我们展示了四个最新的深度学习基于漏洞检测方法的无效性。该数据集有助于开发人员对漏洞检测方法进行更真实的评估,也为进一步探索真实世界的 SBP 场景铺平了道路。

关键词

引用

@article{arxiv.2412.20740,
  title  = {Similar but Patched Code Considered Harmful -- The Impact of Similar but Patched Code on Recurring Vulnerability Detection and How to Remove Them},
  author = {Zixuan Tan and Jiayuan Zhou and Xing Hu and Shengyi Pan and Kui Liu and Xin Xia},
  journal= {arXiv preprint arXiv:2412.20740},
  year   = {2026}
}

备注

Accepted by 47th IEEE/ACM International Conference on Software Engineering (ICSE 2025)