论文

VulWeaver:编织损坏的语义以进行基于程序语义证据的漏洞检测

VulWeaver: Weaving Broken Semantics for Grounded Vulnerability Detection

摘要

检测源代码中的漏洞仍然至关重要且具有挑战性,因为传统的静态分析工具构建的程序表示不准确,而现有的基于 LLM 的方法常常会错过重要的漏洞上下文并缺乏有根据的推理。在本文中,我们介绍了 VulWeaver,这是一种基于 LLM 的新颖方法,它将损坏的程序语义编织成准确的表示,并提取整体漏洞上下文以进行基础漏洞检测。 VulWeaver 首先通过将确定性规则与基于 LLM 的语义推理集成来构建增强的统一依赖图 (UDG),以解决静态分析的不准确问题。然后,它通过将程序切片中的显式上下文与隐式上下文(包括使用、定义和声明信息)相结合来提取整体漏洞上下文。最后,VulWeaver 采用元提示和特定于漏洞类型的专家指南,通过系统推理来引导 LLM,并通过多数投票进行聚合以实现稳健性。在 PrimeVul4J 数据集上进行的大量实验表明,VulWeaver 的精度为 0.82,召回率为 0.71,F1 分数为 0.76,F1 分数分别比最先进的基于学习、基于 LLM 和基于代理的基线高出 25%、17% 和 21%。值得注意的是,VulWeaver 的 VP-S 得分为 0.58,比最佳基线高 164%,证实了其强大的判别能力