中文

一种理解软件漏洞修复的句子级方法

软件工程 2025-03-17 v1

摘要

理解软件漏洞及其解决方案对于保障现代软件系统的安全至关重要。本研究提出了一种新颖的可追溯性模型,该模型将自然语言(NL)漏洞描述件中描述漏洞三种语义类型(触发条件、崩溃现象和修复动作)中至少一种的一对句子,链接至其对应的一对代码语句。与传统可追溯性模型不同,我们建立的相关 NL 句子对与代码语句对之间的追踪关系能够恢复代码语句间的语义关系,从而可以自动识别每条代码语句在漏洞中扮演的具体角色。我们的端到端方法通过两个关键步骤实现:VulnExtract 和 VulnTrace。VulnExtract 利用从 NL 描述件(CVE 摘要、缺陷报告和提交信息)中提取的 37 种话语模式,自动提取描述漏洞触发条件、崩溃现象和/或修复动作的句子。VulnTrace 采用预训练的代码搜索模型,将这些句子追踪至对应的代码语句。我们基于 341 个 CVE 及其关联代码片段的实证研究证明了该方法的有效性,在大多数情况下,NL 句子提取的召回率超过 90%。VulnTrace 在将相关 NL 句子对映射至对应代码语句对时,Top5 准确率超过 68.2%。端到端结合的 VulnExtract+VulnTrace 在将两对 NL 句子映射至代码语句时,Top5 准确率分别达到 59.6% 和 53.1%。这些结果突显了该方法在自动化漏洞理解与减少人工投入方面的潜力。

关键词

引用

@article{arxiv.2503.10877,
  title  = {A Sentence-Level Approach to Understanding Software Vulnerability Fixes},
  author = {Amiao Gao and Zenong Zhang and Simin Wang and Liguo Huang and Shiyi Wei and Vincent Ng},
  journal= {arXiv preprint arXiv:2503.10877},
  year   = {2025}
}

备注

24 pages. Under review