# VulReaD:知识图引导的软件漏洞推理与检测
⭐⭐⭐
作者:英国曼彻斯特大学团队
发表时间:Wed, 11 Feb 2026 12:24:51
原文链接:https://arxiv.org/abs/2602.10787 (opens new window)
——LLMs + 外部知识 + 结构化引导,非传统深度学习和静态分析
# 摘要
这篇论文提出了一种名为VuLREAD的方法,用于解决软件漏洞检测(SVD)中大型语言模型(LLMs)解释的可靠性问题,特别是其与通用弱点枚举(CWE)类别语义一致性不足的问题。VuLREAD 提出了一种知识图谱引导的软件漏洞推理和检测方法,通过利用安全知识图谱和对比推理监督来训练学生大型语言模型,显著提高了 CWE 级别的漏洞推理和二元漏洞检测的准确性,从而实现更可靠和可解释的漏洞分析。
# 简介
# 现有的不足
依赖基于模式的静态分析和基于历史漏洞数据训练的 DL 模型,难以推广到不同漏洞模式和不断发展的代码库。 就是可泛化性差。(DL主要是黑盒 ,理解不到为什么 )
现在有LLMs,能理解代码,还能用自然语言解释问题,所以它有发掘漏洞的潜力。
但是现有的漏洞检测方法(包括基于LLMs的方法)都存在一些问题
- 它们大多数都是二元分类主导:就是简单告诉你这段代码 有漏洞 / 没漏洞,精度不足。
- 缺乏深度理解,没有办法捕捉漏洞的本质,不能对漏洞进行分类,判断漏洞具体的类型,这种弱点用CWE来表示。如果模型识别不了CWE,就很难修复漏洞。
- LLMs解释的可靠性不足:虽然LLMs能生成解释并且看起来连贯且令人信服,但是它们与正确的CWE类别的语义一致性没有严格检验。也就是有可能它是在胡说八道。(CWE分类太难,模型很难学好)
# 本文的中心工作
- 研究 LLMs 是否真的能更好地理解和检测不同 CWE 类型的漏洞。
- 不仅要评估分类准确性,还要评估LLMs 生成的解释是否与真实漏洞类型语义一致。
本文作者受到知识图谱(KG)启发,提出VulReaD,利用知识图引导的漏洞推理和检测方法。论文提出要引入一种强大的教师模型机制,用于提供结构化和基于语义的监督使得LLMs的解释更可信。
# 总结论文创新点
VulReaD的核心还是在于利用KG给LLMs补课,就像老师教学生一样,让它们变得更会推理。
- 安全知识图谱(KG),里面包含了 CWE 类别、安全抽象概念以及它们之间的关系。作为百科全书,供模型更好的理解漏洞机制。
- KG 引导的数据构建和推理蒸馏,利用千问的llm生成训练数据,生成的数据是推理对(一对一错),并且会从代码中提取实体特征与CWE关联,让解释更加真实具体。
- 知识图谱引导的偏好优化(ORPO),用对比推理来调教学生LLM,就鼓励学生模型接受与KG一致的的解释,抑制听起来合理但幻觉的解释。
- 知识图谱学习增强,会不断挖掘新的实体和关系,丰富百科全书KG
这种“老师 - 学生”模式+KG的引导,和人类学习过程高度相似。
# 效果
- 二元检测:本文提出的完全胜过于传统深度学习模型和没有KG引导的LLMs。F1⬆8-10%。
- CWE层面推理:在多类别 CWE 分类中,VuLREAD 的 Macro-F1 和 Micro-F1 分数比其他 LLMs 高出很多,当模型使用KG时,Macro-F1从0.05上升到0.30,而Micro-F1从0.07上升到0.25。
- KG的作用,RQ3的消融研究证实KG制导大大提高了二进制检测精度和cwe级推理。
# 未来方向
- CWE抽象不是唯一的,分类的方式可以自己选
- 教师LLM生成的数据不一定准确,可能会有错误。
- KG检索局限性,KG返回信息量很大,模型思考时间可能过久或者死循环。
- 计算资源限制:没法用更大模型训练和更全面的调优。
总而言之:可以改进的就是,如何减少LLM噪声、更好设计CWE抽象分类,KG的智能高效检索信息。
# 名词解释:
SVD :软件漏洞检测
CWE:通用弱点枚举,CWE2提供了抽象软件弱点类型的分层分类法,这些弱点类型描述了反复出现的漏洞原因,例如不正确的输入验证或不安全的文件处理。CWE关注的是设计或实现级别漏洞的根本原因,而不是单个漏洞示例。
为了支持一致的漏洞报告和分析,安全社区开发了标准化的漏洞分类法和结构化的知识资源。CVE(通用漏洞枚举)系统这些标识符被广泛用于跨数据库和工具聚合漏洞信息。
KG:安全知识图谱
ORPO:知识图谱引导的偏好优化