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/ANGEL01—方法介绍图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指标模型DevignReVealBig-VulVulDeePecker43.7312.8210.42PILOT52.5326.4020.51IVDetect47.3020.1016.53MGVD51.7527.7620.34AMPLE52.8032.5821.95KIS-GNN (本文)60.2237.4131.49图3. 基于T-SNE算法的漏洞二分类结果可视化小结 ANGEL展现出更优异的性能表现在准确率ACC和F1分数方面均超越所有基线方法。相较于表现最佳的基线模型AMPLEANGEL在三个数据集上实现了F1分数14.0%-43.4%的提升。可视化分析进一步表明ANGEL比基线方法更有效地捕捉了代码中的关键信息。 总结ANGEL提供了一种全新的视角漏洞检测的关键不只是更复杂的模型而是更干净、更聚焦的程序表示减少无关结构噪声、提升 GNN 表达稳定性、增强工业级可扩展性。这一工作为未来的漏洞检测研究提供了重要启示在模型能力趋于饱和的背景下输入结构优化可能是下一个突破口。 欢迎留言讨论你认为代码图应该“越全越好”还是“越精越好”在实际工业场景中图简化是否会带来可解释性上的新优势 点赞 收藏 分享你的支持是我们持续解析高水平软件安全论文的最大动力