Keep It Simple:自适应代码图简化驱动的高精度漏洞检测框架
“近年来,基于图的漏洞检测方法(如 AST/CFG/PDG + GNN)在准确率上取得了显著进展,但也逐渐暴露出一个核心问题:代码图越来越复杂,但模型并没有因此变得更聪明。冗余节点、无关依赖与噪声边不仅增加计算成本,还会干扰关键信息传播,导致性能下降。
针对这一挑战,研究团队提出一种自适应代码图简化(Self-Adaptive Code Graph Simplification) 框架ANGEL,在不牺牲关键信息的前提下,自动压缩代码图结构,从而实现更准确、更高效的漏洞检测。”
📄 论文标题:Keep It Simple: Self-Adaptive Code Graph Simplification for Accurate Vulnerability Detection
📅 发表时间: IEEE Transactions on Software Engineering ,2025
🏫 作者单位:国防科技大学、海南大学等
💡开源代码:https://github.com/XinPeng97/ANGEL
01
—
方法介绍
图1展示了基于图的尖端漏洞检测器AMPLE在三个数据集上不同节点数量分区下的准确率。以Reveal数据集为例,AMPLE在(0, 25]区间内达到92.25%的准确率,但当节点数超过100时其效能显著下降(例如节点数大于300时准确率仅为46.85%)。这些结果表明,随着代码图规模扩大,当前最先进的漏洞检测技术性能会急剧下降。

图 1.在Devign、Reveal和Big-Vul数据集上,不同节点数量下的准确率
ANGEL的核心思想可以概括为一句话:并非所有代码结构都同等重要,关键在于“保留什么、丢弃什么”。整体流程包括三步:
① 原始代码图构建:
从源代码中构建包含 AST / CFG / PDG 的联合程序图,完整表达语法、控制与数据依赖。
② 自适应图简化:
通过节点重要性评估与结构感知策略,动态裁剪冗余节点与弱相关边。
③ 简化图漏洞检测:
将压缩后的图输入 GNN 进行表示学习与漏洞分类。

图 2. ANGEL 框架
小结:ANGEL并不追求“更复杂的模型”,而是从输入结构本身入手,通过简化让模型专注于真正与漏洞相关的语义。
02
—
关键机制
- 自适应图简化机制,无需人工规则, 模型可自动学习哪些结构应被保留。
- 与模型无关,图简化模块可无缝集成至多种 GNN 漏洞检测模型。
- 噪声鲁棒性更强,显著降低无关代码结构对漏洞预测的干扰。
- 效率与精度双提升,在减少节点数量的同时提升检测效果。
|
模块 |
实现方式 |
主要作用 |
|---|---|---|
|
多视图程序图 |
融合 AST、CFG、PDG 构建统一代码图 |
全面表达程序结构与依赖关系 |
|
节点重要性评估 |
基于结构位置与语义特征的自适应打分 |
识别对漏洞判定更关键的节点 |
|
图结构简化策略 |
动态裁剪低重要性节点与弱边 |
降低噪声与计算复杂度 |
|
下游漏洞检测 |
GNN + 分类器 |
在简化图上实现更稳定的漏洞预测 |
小结:ANGEL通过“先简化、再学习”的策略,有效缓解了代码图过密、过噪带来的性能瓶颈。
03
—
实验结果
研究团队在多个主流漏洞检测数据集上评估了ANGEL,包括:Devign、ReVeal和Big-Vul。与基线工作对比的结果如下:
表1. 不同软件漏洞检测方法的性能比较(F1指标)
|
模型 |
Devign |
ReVeal |
Big-Vul |
|---|---|---|---|
|
VulDeePecker |
43.73 |
12.82 |
10.42 |
|
PILOT |
52.53 |
26.40 |
20.51 |
|
IVDetect |
47.30 |
20.10 |
16.53 |
|
MGVD |
51.75 |
27.76 |
20.34 |
|
AMPLE |
52.80 |
32.58 |
21.95 |
| KIS-GNN (本文) | 60.22 | 37.41 | 31.49 |

图3. 基于T-SNE算法的漏洞二分类结果可视化
小结: ANGEL展现出更优异的性能表现,在准确率(ACC)和F1分数方面均超越所有基线方法。相较于表现最佳的基线模型AMPLE,ANGEL在三个数据集上实现了F1分数14.0%-43.4%的提升。可视化分析进一步表明,ANGEL比基线方法更有效地捕捉了代码中的关键信息。
📌 总结
ANGEL提供了一种全新的视角:漏洞检测的关键不只是更复杂的模型,而是更干净、更聚焦的程序表示:减少无关结构噪声、提升 GNN 表达稳定性、增强工业级可扩展性。这一工作为未来的漏洞检测研究提供了重要启示:在模型能力趋于饱和的背景下,输入结构优化可能是下一个突破口。
📣 欢迎留言讨论
-
你认为代码图应该“越全越好”,还是“越精越好”?
-
在实际工业场景中,图简化是否会带来可解释性上的新优势?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)