Fixseeker:基于图的实证驱动方法用于检测开源软件中的静默漏洞修复
软件工程
2025-03-27 v1
摘要
开源软件漏洞构成重大的安全风险,影响下游应用程序。虽然漏洞数据库为缓解措施提供了宝贵信息,但许多安全补丁在新的提交中默默发布,缺乏对其安全影响的明确指示。这使得软件维护者和用户难以检测和解决这些漏洞修复。已有少数方法用于检测漏洞修复提交(VFCs),但大多数方法依赖提交信息,这会遗漏静默的VFCs。另一方面,基于代码变更模式的一些方法常常未能充分刻画漏洞修复模式,从而缺乏有效性。例如,一些方法会�立即分析已知VFCs中每个块的代码变更,以学习漏洞修复模式;但漏洞修复常常涉及多个块,此时跨这些块的代码变更相关性对于刻画漏洞修复至关重要。为此,我们首先对11,900个VFCs进行大规模实证研究,跨越六种编程语言,我们发现超过70%的VFCs涉及多个块且存在各种类型的相关性。基于我们的发现,我们提出Fixseeker,一种基于图的方法,从块级别提取各种代码变更之间的相关性,用于检测静默漏洞修复。我们的评估表明,Fixseeker在多个编程语言上超过领先的方法,平均F1分数达到0.8404于平衡数据集,并在不平衡数据集上持续提高F1分数、AUC-ROC和AUC-PR分数,分别提升了32.40%、1.55%和8.24%。我们的评估还表明Fixseeker在不同仓库规模和提交复杂度方面具有普适性。
引用
@article{arxiv.2503.20265,
title = {Fixseeker: An Empirical Driven Graph-based Approach for Detecting Silent Vulnerability Fixes in Open Source Software},
author = {Yiran Cheng and Ting Zhang and Lwin Khin Shar and Zhe Lang and David Lo and Shichao Lv and Dongliang Fang and Zhiqiang Shi and Limin Sun},
journal= {arXiv preprint arXiv:2503.20265},
year = {2025}
}