“ 随着深度学习在代码漏洞检测中的广泛应用,模型准确率不断提升,但一个关键问题愈发突出:现有方法往往只给出二分类结果,缺乏对漏洞成因、关键语句和安全语义的解释能力,严重制约了其在真实安全审计场景中的落地。

为解决“检测准但不可解释”这一痛点,研究团队提出了VulDIAC,一种同时面向漏洞检测(Detection)与漏洞解释(Interpretation) 的统一框架,通过增强代码语义建模,使模型不仅能发现漏洞,还能定位和解释漏洞根因。”

  • 📄 论文标题:VulDIAC: Vulnerability detection and interpretation based on augmented CFG and causal attention learning

  • 📅 发表时间: The Journal of Systems & Software, 2026

  • 🏫 作者单位:燕山大学

  • 💡开源代码:https://github.com/foresta-y/VulDIAC

01

方法介绍

VulDIAC的核心思想是:将“漏洞检测”与“漏洞解释”视为两个高度相关的任务,通过增强语义表示进行联合建模。整体流程可分为三个关键阶段:

① 语义增强表示构建

在代码表示中显式引入漏洞相关语义(如危险 API、控制依赖、数据依赖等)。

② 漏洞检测建模

基于增强表示进行函数级漏洞预测。

③ 漏洞解释生成

定位对预测结果贡献最大的语句与语义片段,实现可解释输出。

图片

图 1. VulDIAC 整体框架(语义增强 + 检测 + 解释)  

小结:VulDIAC 不再将漏洞检测视为“黑盒分类”,而是通过语义增强实现检测结果与安全逻辑之间的可追溯关联。

02

关键机制

  1. 检测 + 解释一体化,避免事后解释带来的不稳定与偏差。
  2. 语义增强表示,将安全相关知识显式注入模型输入。
  3. 语句级漏洞定位,帮助开发者快速理解与修复漏洞。
  4. 面向实际审计,显著降低安全分析人员的理解成本。

模块

实现方式

主要作用

语义增强编码

融合代码 token、控制/数据依赖与安全语义特征

显式刻画潜在漏洞相关语义

深度检测模型

基于神经网络的函数级分类器

判断代码是否存在漏洞

贡献度建模

注意力权重 / 梯度归因分析

量化语句与语义对预测的影响

漏洞解释生成

关键语句与语义片段输出

提升模型可解释性与工程可用性

小结:VulDIAC在保持检测性能的同时,为每个预测结果提供“为什么是漏洞”的结构化解释。

03

实验结果

研究团队在主流漏洞数据集Devign和Big-Vul上验证了VulDIAC的有效性,实验结果如下。

表1. 不同软件漏洞检测方法的性能比较

模型

FFmpeg+Qemu

Acc

P

R

F1

VulDeePecker

51.20

47.39

40.17

43.48

SySeVR

49.86

46.14

55.82

50.52

Devign

58.15

52.84

61.29

56.76

IVDetect

59.36

54.40

66.56

59.87

AMPLE

60.30

54.23

74.66

62.83

MAGNET

66.75

57.42

76.31

65.53

VulDIAC

83.47

78.84

88.37

83.33

模型

Big-Vul

Acc

P

R

F1

VulDeePecker

68.45

22.19

14.35

17.43

SySeVR

72.67

30.34

18.21

22.76

Devign

81.83

28.44

35.40

31.54

IVDetect

85.37

30.04

38.08

33.59

AMPLE

85.76

34.53

32.88

33.68

MAGNET

87.04

30.90

38.43

34.26

VulDIAC

95.99

65.07

44.17

52.62

实验探讨增强控制流图(ACFG)的影响,设计了三种模型变体进行对比实验:

(1) 不包含任何增强边关系,仅保留基本控制流(标记为无增强);

(2) 去除支配者与后支配者关系,保留到达-定义关系(标记为w/o D & PD);

(3) 去除到达-定义关系,保留支配者与后支配者关系(标记为w/o RD)

表2. 不同 ACFG 关系对漏洞检测性能的影响

方法

FFmpeg+Qemu

Acc

Prec

Rec

F1

w/o Augment

79.25

80.63

71.68

75.89

w/o D & PD

82.08

78.97

84.05

81.43

w/o RD

81.26

80.29

79.47

79.87

VulDIAC

83.47

78.84

88.37

83.33

方法

Big-Vul

Acc

Prec

Rec

F1

w/o Augment

87.74

43.00

31.44

36.33

w/o D & PD

94.77

50.53

43.69

46.86

w/o RD

94.04

43.34

42.23

42.78

VulDIAC

95.99

65.07

44.17

52.62

小结:VulDIAC在所有指标上均优于所有基线模型,在F1分数上取得显著提升:FFmpeg+Qemu数据集提升27.16%,Big-Vul数据集提升53.59%。此外,ACFG中增强的边缘关系对提升漏洞检测至关重要,其缺失将导致性能显著下降。

📌 总结

VulDIAC 提供了一种更符合真实安全需求的漏洞检测范式:不仅告诉你“哪里有漏洞”,还解释“为什么这是漏洞”。这一工作为未来的漏洞检测系统指明了一个重要方向:高精度 + 强解释性,缺一不可。

📣 欢迎留言讨论

  • 你认为漏洞检测模型的“可解释性”在真实代码审计中有多重要”?

  • 是否有可能将 VulDIAC 的解释机制与 LLM 结合,生成自然语言级漏洞分析?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐