← 最新论文
💻 计算机科学

SemanticVul: Evidence-Grounded Structured LLM Explanations for Vulnerability Detection

SemanticVul 是一个用于 C/C++ 漏洞检测的可复现框架,它利用本地生成的、基于证据的语义解释,在显著提高现有基准测试的准确率和少数类召回率的同时,通过确定性的代码匹配和数据集审计对声明进行严格验证。

原作者: Abdul Razak, Ihtesham Ul Islam, Rabia Khan

发布于 2026-10-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Abdul Razak, Ihtesham Ul Islam, Rabia Khan

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

软件漏洞是数字世界中隐藏的裂缝,是代码中微小的错误,它们允许攻击者入侵系统、窃取数据或制造混乱。由于现代软件的编写量极其庞大,且通常使用像 C 和 C++ 这样功能强大但容易产生此类错误的语言,人类专家不可能阅读每一行代码来寻找薄弱环节。为了跟上步伐,研究人员转向了人工智能,特别是大型语言模型——这些是经过大量文本和代码训练,以理解模式和含义的计算机程序。这些模型可以阅读一段软件并解释其功能,为自动发现危险缺陷提供了一种新途径。然而,一个显著的问题出现了:当这些模型被要求解释代码时,它们有时会捏造不存在的细节,或者在分析完成之前就意外地泄露了答案,这使得它们的帮助在关键安全工作中变得不可靠。

巴基斯坦国立科学技术大学的一个研究小组开发了一个名为 SemanticVul 的新系统来解决这个问题。该系统并不依赖于生成自由流动的、未经核实的文本的高昂商业 AI 服务,而是使用本地运行的开源模型来生成结构化的、基于证据的解释。研究人员构建了一个流水线,要求 AI 必须指向特定的代码行,以支持其对安全风险所做的每一个主张。如果 AI 找不到它正在讨论的代码,系统就会丢弃该主张。随后,他们在两个主要的真实世界软件函数集合(称为 Devign 和 Reveal)上测试了这种方法,以观察这种基于证据、有据可查的方法是否能比以往的技术发现更多漏洞。

结果表明,这种谨慎的、证据优先的方法明显优于目前使用的标准方法。在包含极少数漏洞函数与大量安全函数混合在一起的 Reveal 数据集上,新系统将发现这些稀有危险函数的能力从约 40% 提高到了 63%。这是一个至关重要的进步,因为在现实世界系统中漏掉一个漏洞可能是灾难性的。该系统还使正确将警告与实际代码片段关联的次数增加了一倍,同时将幻觉或捏造代码引用的次数减少了一半。通过强制 AI 遵循代码中存在的实事,并清除任何可能意外泄露答案的语言,研究人员创造了一个更可靠且更有效的安全分析工具。

研究人员还探索了如何最好地结合原始代码数据与这些新的解释。他们测试了三种合并这些信息的方法:仅使用代码、使用固定方法混合代码与解释,以及使用一种智能开关,根据每段代码决定给予解释多少权重。虽然智能开关在一些初步测试中表现稍好,但其改进并不足够一致,不足以被视为决定性的突破。最可靠的发现是,解释通道本身——即提供基于证据的推理的部分——是成功的核心驱动力。该系统证明,当你剥离猜测并强制 AI 将其推理锚定在程序的实际文本中时,它会成为一个更强大的安全缺陷检测器。

除了发现漏洞之外,这项研究还揭示了用于训练和测试这些系统的数据集存在的问题。研究人员发现,一些标准基准测试包含重复且标签冲突的代码,即同一函数在数据的不同部分被分别标记为安全和危险。这种类型的错误会误导计算机,使其认为自己学到了实际上并未学到的东西。通过审计这些数据集并清除其中的矛盾,团队确保了他们的结果是基于真正的学习而非记忆错误。这种对数据质量的关注,结合生成解释的新方法,为构建更可靠的安全工具指明了方向,这些工具不仅是在猜测,而且确实理解它们所保护的代码。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →