MMVD: 一种基于自适应传播增益和多模态交互的源代码漏洞检测方法

《Neurocomputing》:MMVD: A method for source code vulnerability detection based on adaptive propagation gain and multimodal interaction

【字体: 大 中 小 】 时间:2026年09月02日 来源:Neurocomputing 6.7

编辑推荐:

   摘要源代码漏洞检测在增强软件系统安全性方面发挥着至关重要的作用。为了改善对复杂漏洞模式的表征能力,现有方法已开始引入多源代码表示进行联合建模。然而,大多数方法仍然采用“每种模态分别编码,最后统一融合”的建模方法,缺乏一种在融合前通过跨模态交互持续补充和完善各自表示的机制。因此

  

摘要源代码漏洞检测在增强软件系统安全性方面发挥着至关重要的作用。为了改善对复杂漏洞模式的表征能力,现有方法已开始引入多源代码表示进行联合建模。然而,大多数方法仍然采用“每种模态分别编码,最后统一融合”的建模方法,缺乏一种在融合前通过跨模态交互持续补充和完善各自表示的机制。因此,很难充分组织分散在不同表示中的漏洞证据。为解决此问题,本文提出了 MMVD,一种新颖的漏洞检测框架。首先,我们设计了一种自适应传播增益机制(APGM),通过节点增益系数来表征不同节点在跨模态交互中作用的相对强度,确保关键漏洞证据在这些交互中传播得更有效。同时,我们并非直接用交互结果替换当前模态表示,而是通过自适应增量注入方法将其作为补充信息纳入表示学习过程中;此外,本文提出了一种结合局部结构约束与全局语义增强的两阶段交互策略:在第一阶段,基于源代码行约束限制源代码文本与抽象语法树(AST)和程序依赖图(PDG)中节点之间的交互范围;在第二阶段,解除这些局部约束,以在整个函数范围内聚合跨语句和依赖路径的长程漏洞证据;与此同时,我们引入了模态一致性正则化和结构一致性正则化。前者通过共享语义中心来约束同一函数在不同模态下的整体漏洞语义表示,从而减少模型对单模态局部特征的过度依赖;后者通过纳入程序图结构先验,对节点增益系数预测施加结构约束,防止预测结果偏离程序图拓扑关系所反映的关键节点分布规律。实验结果表明,MMVD 在公共函数级漏洞检测数据集上取得了比基线方法更高的 F1 分数,验证了所提方法的有效性。

引言随着数字应用不断渗透到政府、金融、工业和公共服务等关键领域,软件系统已成为现代信息基础设施的基石。它们的安全性直接影响数据保护、业务连续性以及社会运行的稳定性。同时,公开披露的软件漏洞数量仍处于高位。CVE 数据库目前记录了超过 323,000 个漏洞 [8]。IBM 的《2024 年数据泄露成本报告》显示,全球单次数据泄露的平均成本已升至 488 万美元 [19]。Sonatype 的 2024 年软件供应链报告进一步指出,开源软件的年下载量已达到 6.6 万亿次,而开源恶意软件包的数量同比增长了 156%,这表明软件供应链的攻击面仍在不断扩大 [38]。这些事实表明,软件漏洞已不再仅仅是实现层面的编码缺陷,而是与数据泄露、业务中断和供应链风险密切相关系统性安全问题。近期的调查研究表明,随着软件系统规模的不断扩大,开源复用日益普及,漏洞模式变得更加复杂,及时检测和有效缓解潜在软件漏洞已成为软件安全领域持续且关键的关注点 [17], [27], [37]。

关于自动化漏洞检测,现有研究已从基于规则的方法演变为表示学习,进而发展为结构建模和多模态融合。传统的静态分析方法通常依赖人工规则、高风险 API 模式以及控制流或数据流约束来识别漏洞,在工程实践中具有强大的可解释性。然而,此类方法的检测能力高度依赖规则库的覆盖率率和人工维护专业知识。面对复杂的语义条件、跨语句依赖以及不断演变的新漏洞模式时,这些方法往往难以完全覆盖漏洞触发路径。近期一项关于真实仓库级漏洞检测的对比研究 [57] 也发现,虽然现有的 SAST 工具在误报控制方面表现良好,但其漏洞检测覆盖率仍然有限。因此,仅依赖规则或经验指标的方法仍然存在规则维护成本高、复杂语义建模能力不足以及对新型漏洞泛化能力有限等问题。随着深度学习的进步,研究人员开始利用神经网络自动学习漏洞相关表示。VulDeePecker [25] 通过代码片段建模验证了深度表示学习在漏洞检测中的可行性;SySeVR [26] 将控制依赖和数据依赖纳入漏洞表示构建过程;Russell 等人 [36] 的工作进一步展示了神经模型在源代码漏洞检测中的应用潜力。随后,诸如 LineVul [15]、CodeBERT [11]、GraphCodeBERT [16] 和 CodeT5 [47] 等预训练代码模型为漏洞检测中的代码语义表示提供了更坚实的基础。同时,Devign [58]、ReGVD [34]、VulCNN [51]、DeepVD [46]、TrVD [43]、AMPLE [49]、RGAN [41]、MARCOVul [56] 和 FuSEVul [42] 等方法引入了程序图、多视图和多模态表示,以增强模型捕获语法结构、控制依赖、数据依赖和现实世界特征的能力。近年来,GRACE [31]、Vul-LMGNNs [29]、联合图 - 多模态融合方法 [20] 以及增强型 PDG-CodeBERT 方法 [59] 等工作进一步表明,代码语义表示与程序结构信息的协同建模已成为提高漏洞检测性能的关键方向。

尽管取得了持续进展,基于学习的漏洞检测器仍缺乏对真正触发漏洞的关键证据的充分表征 [6]。更重要的是,现实世界中的函数级漏洞检测仍面临若干基本挑战。首先,单模态表示往往不足以全面捕获漏洞证据。仅基于源代码序列的方法在一定程度上能保留原始语义信息 [25], [26], [36],但在显式建模控制依赖、数据依赖和语法层级方面存在局限性 [11], [15], [16], [26], [47]。相比之下,基于 AST 的方法 [43] 在表示语法层级方面更有效,而基于 PDG [34], [49], [51] 或其他程序图表示的方法 [41] 更适合建模控制和数据依赖。然而,这些面向结构的方法往往未能充分保留细粒度的文本线索,如变量名、条件表达式、API 调用语义和局部实现上下文 [16], [42], [56]。其次,现有的跨模态交互机制仍然相对粗粒度。大多数多模态方法主要依赖特征聚合 [46]、统一编码 [56] 或晚期融合 [42],但仍缺乏对应在模态间传播什么信息、传播多少以及以什么粒度进行传播的显式控制。因此,虽然它们能在一定程度上利用多模态互补性,但也容易引入额外噪声。第三,程序表示的结构先验尚未得到充分利用。嵌入在关键语法节点、关键依赖路径和潜在漏洞证据链中的结构信息对于识别复杂漏洞模式极具价值。然而,现有方法往往缺乏一种统一的机制将此类结构知识显式注入跨模态表示学习中。因此,构建一个统一框架来联合建模源代码语义、语法结构和依赖关系,同时实现细粒度的跨模态交互和结构约束,仍然是漏洞检测研究中的关键挑战。

为解决上述问题,本文提出了 MMVD 多模态漏洞检测框架。该框架使用源代码文本、抽象语法树(AST)和程序依赖图(PDG)作为其三种基本表示,专注于跨模态证据组织和联合表示学习的建模。其核心方法涉及在形成联合表示之前,通过跨模态交互逐渐整合分散在不同表示中的漏洞线索。这使得每种模态在保留自身特征的同时,持续吸收来自其他模态的补充证据,从而实现更全面的表示。在此基础上,该框架通过针对性的交互组织和联合优化约束,进一步增强了多模态表示表征复杂漏洞模式的能力。这使得模型不仅能关注局部上下文信息,还能整合跨越多个语句和依赖路径的全局证据,最终提高函数级漏洞检测性能。

本文的主要贡献总结如下:
(1) 我们提出了一种自适应传播增益机制(APGM),突出了跨模态交互过程中与漏洞相关的节点及其证据链的传播和利用,同时自适应调节交互信息纳入当前模态表示更新过程的程度。
(2) 我们提出了一种基于局部结构约束和全局语义增强的多模态信息交互策略。该方法不仅通过源代码行约束建立了源代码文本与抽象语法树(AST)和程序依赖图(PDG)中节点之间的局部对应关系,还在整个函数范围内收集跨语句、控制流或数据依赖路径的长程漏洞证据,从而实现从局部到全局集成证据的渐进式建模。
(3) 我们从联合优化的角度构建了模态一致性正则化和结构一致性正则化。通过共享语义中心,引导不同模态协同表示同一函数漏洞语义,从而缓解对单模态局部信息的过度依赖;利用程序图拓扑信息约束节点增益系数预测,确保预测结果不偏离关键节点的结构分布规律。
(4) 在真实世界漏洞检测任务上进行了系统的对比和消融实验。结果表明,所提方法有效提高了漏洞检测性能,并验证了各个关键模块设计的有效性。

本文的其余部分组织如下。第 2 节回顾相关工作。第 3 节介绍 MMVD 的整体框架及其关键模块。第 4 节描述实验设置并报告针对研究问题的评估结果。第 5 节讨论所提方法的性能增益来源、实际意义和局限性,并概述未来研究方向。第 6 节总结全文。
源代码将发布在 https://github.com/Dive8with0you/MMVD。

章节片段
基于规则和相似性的漏洞检测
早期漏洞检测研究主要遵循两条路径:基于规则的静态分析和基于相似性的漏洞检测。前者通常依赖人工定义的安全规则、危险的 API 模式以及控制流或数据流约束来识别潜在漏洞,代表了工业界常用的静态应用安全测试(SAST)方法。近期的实证研究表明,SAST 工具可以协助开发人员

方法
图 1 展示了 MMVD 的整体架构。它主要由四部分组成:(1) 多源代码信息编码,使用预训练模型嵌入源代码文本、抽象语法树(AST)和程序依赖图(PDG)以获得三种模态的表示;(2) 自适应传播增益机制(APGM),以节点增益系数为中心,通过

实验
本节中,我们制定以下研究问题以评估 MMVD 的有效性:
RQ1:与现有方法相比,MMVD 在漏洞检测上的表现如何?
RQ2:不同模态及其融合对漏洞检测性能有何贡献?APGM 和两阶段交互策略能否进一步进一步提高多模态表示学习的质量?不同的类别不平衡学习策略如何影响漏洞检测性能?

性能增益分析
基于 RQ1–RQ4 的实验结果,MMVD 的性能增益可以从三个主要方面来理解。
首先,三种互补模态的联合建模提高了漏洞证据的覆盖率。源代码文本保留了细粒度的语义线索,如变量名、API 用法和条件表达式;AST 捕获语法组织模式;而 PDG 显式建模控制和数据依赖。
表 9 进一步显示,文本,AST,结论 本文提出了一种名为 MMVD 的新型漏洞检测方法。该方法以源代码文本、抽象语法树(AST)和程序依赖图(PDG)三种代码表示之间的跨模态信息交互和表示更新过程建模为中心。这种方法使得不同表示中的互补信息在融合前能够持续补充和完善各自的特征,从而更有效地

CRediT 作者贡献声明
Kaining Shen: 写作 – 初稿,验证,软件,方法论,形式分析。Qingqing Wei: 写作 – 初稿,方法论。Mingyue Li: 写作 – 审查与编辑,调查。

张德凯:验证、软件。何海涛:写作 – 审查与编辑、监督、资金获取。
利益冲突声明
作者声明,他们没有任何已知的竞争性财务利益或个人关系,这些利益或关系可能影响本论文中报告的工作。
致谢
本研究得到了国家自然科学基金(项目编号:62376240)和河北省创新能力提升计划项目(项目编号:22567626 H)的资助。作者感谢审稿人提出的宝贵意见和建议。
申凯宁,1999 年出生。他于 2023 年在中国山东现代大学电子信息学院获得学士学位。目前他是燕山大学人工智能学院的硕士研究生。他的研究兴趣包括软件安全、深度学习和人工智能。
申凯宁 | 魏青青 | 李明月 | 张德凯 | 何海涛
中国河北秦皇岛燕山大学人工智能学院(软件学院)
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号