CodeGATNet:基于注意力驱动卷积网络的 Transformer 漏洞检测框架
“随着软件系统复杂度的急剧提升,源代码中的漏洞成为信息安全的重大隐患。传统检测方法依赖人工规则或静态分析,难以捕获复杂的语义与结构关联。为此,研究团队提出 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 类模型是否能完全替代人工代码审查?
📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)