VulDIAC:基于增强语义的漏洞检测与可解释分析框架
“ 随着深度学习在代码漏洞检测中的广泛应用,模型准确率不断提升,但一个关键问题愈发突出:现有方法往往只给出二分类结果,缺乏对漏洞成因、关键语句和安全语义的解释能力,严重制约了其在真实安全审计场景中的落地。
为解决“检测准但不可解释”这一痛点,研究团队提出了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
—
关键机制
- 检测 + 解释一体化,避免事后解释带来的不稳定与偏差。
- 语义增强表示,将安全相关知识显式注入模型输入。
- 语句级漏洞定位,帮助开发者快速理解与修复漏洞。
- 面向实际审计,显著降低安全分析人员的理解成本。
|
模块 |
实现方式 |
主要作用 |
|---|---|---|
|
语义增强编码 |
融合代码 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 结合,生成自然语言级漏洞分析?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)