← 最新论文
🤖 AI

VulTriage: Triple-Path Context Augmentation for LLM-Based Vulnerability Detection

VulTriage 是一个新颖的框架,它通过三重路径上下文增强策略,将控制流、领域特定知识和语义摘要整合起来,从而增强基于大语言模型的漏洞检测能力,并在基准数据集上实现了最先进的性能。

原作者: Wenxin Tang, Xiang Zhang, Junliang Liu, Jingyu Xiao, Xi Xiao, Jinlong Yang, Yuehe Ma, Zhenyu Liu, Zhengheng Li, Zicheng Wang, Wang Luo, Qing Li, Lei Wang, Peng Xiangli

发布于 2026-05-12
📖 1 分钟阅读☕ 轻松阅读

原作者: Wenxin Tang, Xiang Zhang, Junliang Liu, Jingyu Xiao, Xi Xiao, Jinlong Yang, Yuehe Ma, Zhenyu Liu, Zhengheng Li, Zicheng Wang, Wang Luo, Qing Li, Lei Wang, Peng Xiangli

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

想象一下,你正在聘请一位才华横溢但略显分心的侦探,去在一座庞大复杂的建筑蓝图中发现隐藏的陷阱。这位侦探就是人工智能(大型语言模型)。虽然人工智能极其聪明,且通晓大量语言知识,但如果你只是将原始蓝图(源代码)交给它,并问:“这里有没有陷阱?”,它往往会忽略细微的危险,或发出误报。它可能会在成千上万行微小的文本中迷失方向,而无法看清建筑实际是如何构建的整体图景。

这篇论文介绍了一个名为VulTriage的新系统(可将其视为一种漏洞“分诊”或分类系统)。VulTriage 并非仅仅将原始蓝图交给人工智能,而是充当一名智能助手,准备三份特定的“作弊清单”,以帮助侦探破案。

以下是三重路径上下文增强的工作原理,使用简单的类比来说明:

1. 控制路径: “交通地图”

问题所在: 原始代码就像一份单词列表。它无法向你展示一辆汽车如何在城市中穿行。漏洞之所以发生,可能是因为一辆汽车(数据)走了一条特定的路线,绕过了停车标志(安全检查)。
解决方案: 控制路径将代码转化为三张特定的地图供人工智能使用:

  • AST(骨架): 展示建筑的结构(墙壁、楼层、房间)。
  • CFG(交通流): 展示操作顺序(哪条路通向哪里)。
  • DFG(水管): 展示数据如何从一个地方流向另一个地方。
    神奇之处: 该路径并非向人工智能展示杂乱无章的巨大图表,而是将这些地图翻译成简单、通俗的英文摘要。它告诉人工智能:“嘿,看这里:这个变量从用户输入出发,经过一个循环,最终到达一个内存位置,而在此之前并未检查其大小。”这解决了人工智能的“结构性盲区”。

2. 知识路径: “罪犯数据库”

问题所在: 人工智能是在通用的互联网文本上训练的。它在模糊的层面上知道什么是“缓冲区溢出”,但它没有一份具体的、有条理的已知陷阱类型清单,也没有关于坏人通常如何构建这些陷阱的示例。
解决方案: 在人工智能做出判断之前,知识路径充当图书管理员的角色。它查看代码并询问:“这可能是什么类型的陷阱?”然后,它会查阅一个庞大的官方已知弱点数据库(称为CWE),并提取出 3 到 5 个最相关的“通缉令”以及类似犯罪的示例。
神奇之处: 它将这些具体示例交给人工智能,说道:“还记得这种特定类型的陷阱吗?检查一下代码是否像这样。”这赋予了人工智能明确、专家级的知识,这些知识它可能已经遗忘,或者从未清晰地学习过。

3. 语义路径: “通俗英语摘要”

问题所在: 现实世界的代码充满了令人困惑的捷径、隐藏的循环和棘手的数学运算。即使是一个聪明的人工智能,如果深陷细节之中,也可能误解一段代码实际意图是什么。
解决方案: 语义路径要求人工智能退后一步,忽略令人困惑的语法,写出一份简短、清晰的摘要,说明代码本应完成的功能。
神奇之处: 这就像在要求法官裁决之前,先请一位翻译用简单的语言解释一份复杂的法律文件。这种“去噪”视图有助于人工智能理解程序员的意图,使其更难忽略微妙的逻辑错误。

它们如何协同工作

一旦这三份“作弊清单”准备就绪,VulTriage 就将它们合并成一条巨大的超级指令,发送给人工智能:

“你是一名专家安全侦探。这是蓝图(代码)。这是交通地图(控制路径)。这是针对类似犯罪的通缉令(知识路径)。这是关于该建筑功能的简单摘要(语义路径)。基于所有这些,是否存在陷阱?”

结果

作者在名为PrimeVul的困难数据集上测试了该系统,在该数据集中,“陷阱”(易受攻击的代码)和“安全”代码看起来几乎一模一样,仅在微小、细微的细节上有所不同。

  • 获胜者: VulTriage 击败了所有其他方法,包括其他人工智能模型和深度学习工具。它在发现其他系统忽略的细微差异方面表现更为出色。
  • 证明: 当他们移除任何一份“作弊清单”(地图、数据库或摘要)时,人工智能的性能都会下降。这证明了这三个部分对于解决谜题都是必不可少的。
  • 额外收获: 他们还在一种不太常见的编程语言(Kotlin)上进行了测试,且该语言可用的数据非常少。即使在这种“低资源”环境下,VulTriage 的表现仍然优于竞争对手,表明它是一个灵活的工具。

简而言之: VulTriage 不仅仅是让人工智能去猜测;它赋予人工智能正确的工具、正确的参考书以及对问题的清晰解释,将一名困惑的侦探转变为一位大师级的调查员。

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

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

试用 Digest →