随着软件系统复杂度的急剧提升,源代码中的漏洞成为信息安全的重大隐患。传统检测方法依赖人工规则或静态分析,难以捕获复杂的语义与结构关联。为此,研究团队提出 CodeGATNet — 一种结合 Transformer与注意力卷积机制的漏洞检测框架,通过捕获局部语法模式与全局语义依赖,实现对源代码的高精度漏洞识别。 

  • 📄 论文标题:A transformer-based framework for software vulnerability detection using attention-driven convolutional neural networks

  • 📅 发表时间:2025,Engineering Applications of Arti?cial Intelligence

  • 🏫 作者单位:大连理工大学

01

方法介绍

CodeGATNet 框架分为两个阶段:

  • ① 静态代码嵌入生成(SCEG):

     通过对 CodeBERT 进行安全领域微调(对比学习 + 掩码语言建模),获得更敏感于安全语义的上下文嵌入。

  • ② 卷积注意力特征精炼(CAN-FR):

     使用并行 1D-CNN 捕获局部代码模式,再通过 门控注意力机制 建模长程依赖,融合语义与结构信息,实现漏洞分类。

图片

图 1. CodeGATNet架构

小结:该框架以 CodeBERT 为底座,融合卷积与注意力机制,兼顾代码的局部结构与全局依赖,突破了传统图模型过度平滑(over-smoothing)与语义丢失的瓶颈。 

02

关键机制

  • 对比学习增强的安全嵌入:

     通过领域自适应微调,使 CodeBERT 从通用语义向安全敏感模式转化。

  • 多尺度卷积结构:

     捕获不同粒度的漏洞特征,从函数调用到控制逻辑。

  • 门控注意力融合:

     自动聚焦潜在危险代码区块,提升检测精度。

模块

实现方式

主要作用

静态代码嵌入生成(SCEG)

对 CodeBERT 进行对比学习与掩码语言建模微调

获得安全语义敏感的上下文嵌入

卷积特征提取

并行 1D-CNN(核大小3/5/7)捕获局部语法模式

识别关键函数调用、API 使用与语法结构

门控注意力机制

引入 sigmoid 门控对注意力特征加权

动态关注关键语义片段,抑制噪声依赖

分类层

线性层 + Softmax 输出

判定函数级代码是否存在漏洞

小结: CodeGATNet 以卷积捕获局部安全特征,以注意力理解全局依赖,在精度与可解释性之间取得平衡。

03

实验结果

研究团队在三个主流漏洞数据集上进行了实验:FFmpeg、QEMU以及它们的组合集 FFmpeg+QEMU。以下是部分的F1指标结果。

模型

FFmpeg

QEMU

FFmpeg

+QEMU

Devign

57.6

47.4

54.8

GCL4SVD

67.8

69.2

63.8

GSVD

66.8

70.6

CodeGATNet (本文) 75.6 87.5 76.8

图片

图2. t-SNE可视化结果

小结:相较于图神经网络与 Transformer 基线模型,CodeGATNet 在准确率、F1 与 MCC 指标上均提升显著,最大增幅超过 18%。

📌 总结

CodeGATNet 通过将 Transformer 表征与卷积特征提取融合,在不依赖复杂图构建的前提下,实现了语义、结构与依赖关系的统一建模。其轻量、高效的架构使其更易部署于大规模代码审计与自动化漏洞检测系统。

📣 欢迎留言讨论

  • 你认为未来漏洞检测的核心突破点会在于更强的预训练模型,还是更高效的结构建模?

  • 在真实企业审计场景中,CodeBERT 类模型是否能完全替代人工代码审查?

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

Logo

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

更多推荐