PatUntrack:无需追踪不安全代码的问题报告自动化补丁示例生成
密码学与安全
2024-08-19 v1 人工智能
软件工程
摘要
安全补丁对于增强软件社区中项目的稳定性和鲁棒性至关重要。虽然漏洞在披露之前理论上应被修补,但修补漏洞仍然复杂且对许多组织而言仍是一个难题。为了修补漏洞,安全从业者通常会追踪脆弱的问题报告(IR),并分析其相关的不安全代码以生成潜在的补丁。然而,相关的不安全代码可能未被明确指定,从业者无法在代码库中追踪不安全代码,从而限制了他们生成补丁的能力。在这种情况下,提供不安全代码示例及相应的补丁将有助于安全开发者更好地定位和修复不安全代码。在本文中,我们提出了PatUntrack,用于在没有追踪不安全代码的情况下自动从IR生成补丁示例。它自动提示大型语言模型(LLMs)使其适用于分析漏洞。首先,它从脆弱的IR中生成完整的漏洞触发路径(VTP)描述。然后,利用外部黄金知识纠正VTP描述中的幻觉。最后,基于纠正后的VTP描述生成Top-K对不安全代码与补丁示例。为了评估性能,我们在5,465个脆弱IR上进行了实验。实验结果表明,PatUntrack可以获得最高性能,并将传统LLM基线在补丁示例生成方面的Fix@10指标平均提升14.6%。此外,PatUntrack被应用于为76个新披露的脆弱IR生成补丁示例。这些IR的作者中37份回复中有27份确认了PatUntrack生成的补丁示例的有用性,表明他们可以从这些示例中受益以修补漏洞。
引用
@article{arxiv.2408.08619,
title = {PatUntrack: Automated Generating Patch Examples for Issue Reports without Tracked Insecure Code},
author = {Ziyou Jiang and Lin Shi and Guowei Yang and Qing Wang},
journal= {arXiv preprint arXiv:2408.08619},
year = {2024}
}
备注
Accepted by ASE'24