VulCNN:多视图图表征驱动的可扩展漏洞检测体系

" 传统深度学习模型或仅关注语法序列,或局限于单一图结构,难以全面捕获程序的多维语义。为此,本文提出 VulCNN ------ 一种基于多视图图表示的可扩展漏洞检测系统,通过从抽象语法树(AST)、控制流图(CFG)与程序依赖图(PDG)中提取多维特征,将源代码转化为多通道图像,实现结构与语义信息的深度融合。 "

  • 📄 论文标题:A Scalable Vulnerability Detection System with Multi-View Graph Representations

  • 📅 **发表时间:**2025,ACM Transactions on Software Engineering and Methodology, https://github.com/Ablustrund/VulCNNPlus.

  • 🏫 作者单位:复旦大学、华中科技大学等

01

---

方法介绍

MVGVD 构建了一个多视图的代码图表示体系,通过抽象语法树(AST)、控制流图(CFG)与数据流图(DFG)三种图结构的互补性,捕获不同层次的语义关系。具体而言:

  • 从源代码中构建三类图:AST、CFG 与 PDG,分别描述语法结构、控制流与数据流。

  • 在每个图上进行中心性分析(包括Degree、Closeness、Betweenness、Eigenvector、Harmonic、Katz 六种),提取不同层次的结构重要性。

  • 将各中心性度量视为图像的不同通道,形成多视图输入,用 CNN 捕获空间结构特征。

  • 通过 自适应重加权层(Adaptive Re-weighting Layer),自动学习三类视图的重要性分布,融合为统一表示进行漏洞分类。

图 1. 将函数转换为多视图图像示例

**小结:**MVGVD从单一图结构扩展到多视角结构学习,使模型在保持可扩展性的同时具备更强的语义覆盖与泛化能力。

02

---

关键机制

机制 实现方式 主要作用
多视图图建模 构建 AST / CFG / PDG 三类函数图 捕获语法、控制与数据依赖
中心性分析 Degree、Closeness、Betweenness、Eigenvector、Harmonic、Katz 量化节点重要性,生成多通道图像
特征提取 10组卷积核的 CNN 提取结构特征(共享参数) 捕获跨视图的模式表示
自适应重加权层 Softmax 权重融合多视图嵌入 自动调节不同图视角的贡献

**小结:**VulCNN通过中心性驱动的多视图表示和可学习融合策略,使模型既能保持结构细粒度,又具备语义全局性。

03

---

实验结果

实验在三个公开数据集上进行:Devign、Big-Vul、Reveal。下表摘自论文主要实验结果(F1 值单位:%)。

模型 Devign Big-Vul ReVeal
TokenCNN 48.6 34.0 23.2
VulDeePecker 47.1 36.5 36.8
Devign 58.2 45.7 48.9
VulCNN (Old) 61.1 44.0 44.8
UniXcoder 59.3 42.9 50.0
DeepSeek-Coder 60.7 43.3 47.4
Grace 63.3 46.2 49.2
VulCNN (本文) 63.8 46.7 50.2

小结: VulCNN 在 Recall 与 F1 上显著优于传统图模型与主流LLM 方法,在大规模漏洞检测任务中展现出更高的精度与可扩展性。

📌 总结

VulCNN通过多视图图构建与自适应融合,实现了从程序结构到语义空间的高效映射,显著提升了代码漏洞检测的准确率与可扩展性。其创新的中心性度量与视图融合机制,为多模态程序理解提供了新的范式。

📣 欢迎留言讨论

  • 你认为未来漏洞检测系统的核心突破点会在「结构增强」还是「大模型语义理解」?

  • 在企业场景中,多视图图模型如何与传统静态分析引擎协同工作?

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

相关推荐
2zcode3 小时前
基于深度学习的香梨产量预测系统设计与实现
人工智能·深度学习
机器学习之心3 小时前
RNN隐状态机制解析
深度学习
码点滴3 小时前
告别显存焦虑:PagedAttention 如何将大模型吞吐量提升 4 倍?
人工智能·架构·kubernetes·大模型·pagedattention
少许极端3 小时前
AI修炼记2-MCP
人工智能·ai·mcp
甩手网软件3 小时前
GPT Images 2.0&nNano banana:按电商全流程选模型,做图不踩坑效率翻倍
人工智能·gpt
DXM05213 小时前
第2期:0配置!10分钟搭建ArcGIS Python开发环境(无需装VS)
开发语言·人工智能·python·arcgis·arcgis自动化
爱吃巧克力的程序媛4 小时前
计算机图形学---在OpenGL中,什么是归一化 UV 坐标?
人工智能·计算机视觉·uv
深海鱼在掘金4 小时前
深入浅出 LangChain —— 第五章:工具系统
人工智能·langchain·agent
m0_380167144 小时前
清算热力图怎么看?如何用来判断行情走向
大数据·人工智能·区块链