中文

开源仓库中漏洞通告到其修复提交的自动映射

软件工程 2025-03-18 v2 密码学与安全 机器学习

摘要

缺乏全面的准确漏洞数据源是研究和理解软件漏洞(及其修复)的关键障碍。本文提出一种结合源自实践经验的启发式方法与机器学习(ML)——具体为自然语言处理(NLP)——的方法来应对该问题。我们的方法包含三个阶段。首先,从通告(以自然语言表述)中提取包含漏洞关键信息的通告记录。其次,利用启发式方法,通过过滤掉已知与当前任务无关的提交,从受影响项目的源代码仓库中获取候选修复提交子集。最后,对每个此类候选提交,我们的方法构建反映与预测其同当前通告匹配相关的提交特征数值特征向量。随后利用这些特征向量构建候选修复提交的终排名列表。ML 模型赋予各特征的得分对用户保持可见,使其能解释预测。我们使用名为 FixFinder 的原型实现在一个人工整理的数据集上评估了我们的方法,该数据集包含对应于 1,248 条公开漏洞通告的 2,391 个已知修复提交。在考虑排名结果前 10 个提交时,我们的实现能成功为多达 84.03% 的漏洞识别至少一个修复提交(其中 65.06% 的漏洞排名第一即为修复提交)。总之,我们的方法大幅减少了在 OSS 仓库中搜索修复已知漏洞提交所需的工作量。

关键词

引用

@article{arxiv.2103.13375,
  title  = {Automated Mapping of Vulnerability Advisories onto their Fix Commits in Open Source Repositories},
  author = {Daan Hommersom and Antonino Sabetta and Bonaventura Coppola and Dario Di Nucci and Damian A. Tamburri},
  journal= {arXiv preprint arXiv:2103.13375},
  year   = {2025}
}