news 2026/7/6 2:02:34

DeepVulMatch:用“匹配”的方式理解漏洞,实现函数级与语句级双粒度检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DeepVulMatch:用“匹配”的方式理解漏洞,实现函数级与语句级双粒度检测

“ 近年来,针对基于深度学习的软件漏洞检测,一个现实而棘手的问题逐渐显现出来:模型往往“知道有漏洞”,却并不真正“理解漏洞”。大量方法将漏洞检测视为一个标准的分类问题,通过学习代码特征直接输出“有 / 无漏洞”的判断。这类方法在同分布数据上表现良好,但在跨项目、跨版本、跨漏洞模式场景下,泛化能力往往不足。

针对这一问题,论文提出 DeepVulMatch,从“分类”转向“匹配”,通过学习潜在漏洞表示,在代码之间进行语义层面的漏洞匹配,并同时支持函数级与语句级的双粒度检测。 ”

  • 📄论文标题:DeepVulMatch: Learning and Matching Latent Vulnerability Representations for Dual-Granularity Vulnerability Detection

  • 📅发表时间:IEEE TRANSACTIONS ON RELIABILITY , 2025

  • 🏫作者单位:墨尔本大学、莫纳什大学

  • 💡开源代码:https://github.com/awsm-research/DeepVulMatch

01—方法介绍

如图1所示,每个函数都包含一条具有相似漏洞范围的漏洞代码行。这表明,即使两个函数包含相同的CWE-787越界写入漏洞,特定的易受攻击代码行也可能以不同的方式编写,并位于代码的不同部分。因此,对于深度学习(DL)模型而言,识别代码行级别的漏洞具有挑战性。

图 1. 在这两个函数中,CWE-787(越界写入)漏洞是由不恰当的数据类型赋值触发的。

DeepVulMatch 的核心思想可以概括为一句话:漏洞并不是孤立存在的标签,而是一类可复用、可匹配的语义模式。为此,论文不再直接预测“是否有漏洞”,而是引入潜在漏洞表示,并通过匹配机制判断代码是否与已知漏洞模式相似。

整体流程可概括为三步:

① 漏洞表示学习

从已知漏洞代码中学习通用的潜在漏洞向量表示。

② 双粒度建模

同时构建函数级与语句级代码表示。

③ 相似度匹配

通过表示匹配判断目标代码是否包含漏洞模式。

图 2. DEEPVULMATCH的处理框架

小结:DeepVulMatch关注的不是“像不像漏洞代码”,而是“是否匹配某类漏洞语义”。

02—关键机制

  1. 从分类到匹配,将漏洞检测转化为漏洞语义匹配问题。
  2. 潜在漏洞表示,显式建模漏洞的可复用语义特征。
  3. 双粒度检测,统一支持函数级判断与语句级分析。
  4. 更强泛化能力,缓解对数据分布与项目背景的依赖。

模块

设计思路

作用

潜在漏洞表示

从漏洞样本中学习抽象语义

刻画漏洞共性特征

函数级建模

捕获整体逻辑与调用关系

实现粗粒度漏洞检测

语句级建模

关注关键操作与局部语义

实现细粒度定位

匹配机制

基于表示相似度进行判断

提升泛化与跨项目能力

小结:匹配机制是 DeepVulMatch 区别于传统分类方法的关键。

03—实验结果

为了识别函数级和行级的漏洞,实验选择了Big-Vul数据集和D2A数据集,因为它们是两个最大的带有行级漏洞标签的漏洞数据集。


(1)表1展示了DEEP-VULMATCH方法与其他12种基线方法在函数和行级方面的实验结果。DEEP-VULMATCH取得了82%的行级F1分数,相较于最佳基线方法VELVET提高了32%。

表1. 在BIG-VUL和D2A数据集上,DEEPVULMATCH与12种基线方法的比较(%)

(2)表2展示了DEEPVULMATCH方法与几种基线方法的训练时间。DEEPVULMATCH在保持与基于Transformer的模型相当的训练时间的同时,在行级漏洞检测方面表现出显著的性能提升。

表2. 训练DEEPVULMATCH和基线方法的训练时间

小结:DEEPVULMATCH从训练数据中收集漏洞模式,并使用最优传输(OT)和向量量化(VQ)从模式集合中学习一个更紧凑的漏洞码本。在推理过程中,码本会匹配所有学习到的模式,并检测给定程序中的潜在漏洞。

📌 总结

DeepVulMatch 为漏洞检测提供了一种新的建模范式:不再执着于标签预测,而是让模型理解并复用漏洞语义。

通过潜在漏洞表示与双粒度匹配机制,该方法在检测性能、泛化能力与定位能力之间取得了更好的平衡,也为后续漏洞模式迁移与解释性分析提供了良好基础。

📣 欢迎留言讨论

  • 你认为“匹配式漏洞检测”是否比传统分类方法更具工程价值?

  • 在真实漏洞库持续演化的场景下,潜在漏洞表示应如何维护与更新?

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 2:02:18

Gardner定时算法:符号同步在QPSK系统中的4步实现与性能分析

Gardner定时算法在QPSK系统中的实现与性能优化1. 引言:符号同步在数字通信中的核心地位在数字通信系统中,接收端需要精确恢复发送端的符号时钟信息,这一过程被称为符号同步或定时同步。QPSK(正交相移键控)作为一种高效…

作者头像 李华
网站建设 2026/7/6 2:02:00

认知科学视角:Top-down与Bottom-up信息处理在5类AI模型中的应用

认知科学视角:Top-down与Bottom-up信息处理在5类AI模型中的应用当我们观察人类如何理解世界时,大脑处理信息的方式可以分为两种基本路径:一种是自上而下(Top-down)的认知过程,依赖于先验知识和上下文&#…

作者头像 李华
网站建设 2026/7/6 2:01:49

H2 2.2.220 单元测试实战:Spring Boot 集成与 3 种数据源配置对比

Spring Boot单元测试实战:H2数据库的三种数据源配置与深度对比1. 为什么选择H2作为单元测试数据库在Java生态系统中,单元测试是保证代码质量的重要手段。当测试涉及数据库操作时,直接使用生产环境的MySQL或Oracle等数据库会带来诸多问题&…

作者头像 李华
网站建设 2026/7/6 2:01:10

量子力学学习路径解析:从Shankar教材的3大数学基础到5个核心专题演进

量子力学学习路径解析:从Shankar教材的3大数学基础到5个核心专题演进量子力学的学习常被比作攀登一座陡峭的山峰——起点处的数学工具如同冰镐和绳索,而核心概念则像不同海拔的营地。Shankar的《量子力学原理》之所以成为经典教材,正因其目录…

作者头像 李华
网站建设 2026/7/6 2:01:08

KubeFed 与 Karmada 对比:2种主流多集群方案架构与迁移路径解析

KubeFed 与 Karmada 深度对比:架构设计与生产迁移实战指南在云原生技术快速演进的今天,多集群管理已成为企业级 Kubernetes 部署的刚需。当您的业务需要跨地域部署、实现灾备方案或避免云厂商锁定时,如何在 KubeFed(已归档&#x…

作者头像 李华