Page 221 - 《软件学报》2025年第7期
P. 221
3142 软件学报 2025 年第 36 卷第 7 期
4 实验设计
4.1 研究问题
为了评估基于函数间结构特征关联的漏洞检测方法 CSFF-VD 的有效性, 我们探讨了以下两个关键研究问题
(research question, RQ).
● RQ1: CSFF-VD 在漏洞检测任务中的有效性如何? 本研究问题旨在通过与当前最先进的方法进行比较, 全
面评估 CSFF-VD 在漏洞检测方面的性能. 具体而言, 我们将在 3 个不同的漏洞数据集上进行实验, 通过比较
Precision、Recall 、F-measure 和 FNR 这 4 个关键性能指标, 以量化 CSFF-VD 的有效性.
● RQ2: CSFF-VD 中函数间的结构特征相似关联如何影响漏洞检测的性能? 本研究问题旨在深入分析 CSFF-
VD 中函数间的相似关联信息对提升漏洞检测效率的具体贡献. 为解答此问题, 我们采用了消融实验方法, 以评估
函数间关联信息对漏洞检测表现的影响, 从而揭示其在提升检测准确性和效率方面的作用.
4.2 数据集
为了验证 CSFF-VD 模型的性能, 本研究选取了 3 个广泛认可的漏洞数据集: FFmpeg、Qemu 及 Chrome+
Debian, 作为实验数据集. 表 1 详细列出了这 3 个数据集的样本规模及其对应的漏洞率. 具体而言, FFmpeg 与
Qemu 数据集均由 C 语言编写的开源软件组成, 属于平衡漏洞数据集, 可用于准确评估模型性能. 其中, 多媒体处
理框架 FFmpeg 的漏洞率为 51.1%, 而开源虚拟机及仿真器 Qemu 的漏洞率为 42.6%. 另一方面, Chrome+Debian
数据集源自 Linux Debian 内核与 Chromium 项目, 其漏洞率较低, 仅为 9.8%, 属于不平衡数据集, 可用于考察模型
应对类别不平衡问题的能力. 这些数据集的样本数和漏洞率各不相同, 以便全面评估 CSFF-VD 模型在多样化软件
环境下的适应性与稳健性.
表 1 实验数据集
有漏洞 无漏洞
数据集 描述 样本数量 漏洞率 (%)
样本数量 样本数量
FFmpeg 开源多媒体框架, 用于处理视频、音频、字幕等 9 768 4 981 4 788 51.1
Qemu 开源虚拟化软件, 用于硬件虚拟化和仿真 17 549 7 479 10 070 42.6
Chrome+Debian 包含 Chrome 浏览器和 Debian 操作系统的代码库 22 734 2 240 20 494 9.8
4.3 对比方法
在实验评估中, 我们将 CSFF-VD 与 5 种最先进的漏洞检测方法进行了比较, 对比方法详细描述如下.
(1) Devign. Devign 是一种通过整合抽象语法树 (AST)、控制流图 (CFG)、数据流图 (DFG) 和代码序列表示,
并利用图门控网络进行漏洞检测的方法, 它通过融合多种代码表示方式来捕捉代码结构和语义信息, 从而提高漏
洞检测的准确性 [30] .
(2) CodeBERT. CodeBERT 是一种基于编程语言和自然语言的双峰预训练模型, 它利用 BERT 技术进行代码
表示的提取, 通过同时学习编程语言和自然语言注释特征, 能够更好地理解代码上下文, 从而提升漏洞检测效
果 [31] .
(3) Reveal. Reveal 是一种通过控制流程图 (CPG) 和图门控神经网络 (GGNN) 进行嵌入, 并使用合成少数过采
样技术 (SMOTE) 算法解决样本不平衡问题的检测方法, 它提升了模型的泛化性 [11] .
(4) VulCNN. VulCNN 是一种通过将程序依赖图 (PDG) 转换为图像表示, 并利用卷积神经网络 (CNN) 提取代
码特征进行漏洞检测的方法, 它通过图像处理技术来分析代码结构, 利用 CNN 的强大特征提取能力来识别漏
洞 [32] .
(5) VulBG. VulBG 是一种通过程序切片提取行为信息, 构建代码行为图以提高漏洞检测性能的方法, 它利用
代码行为的底层关联, 构建更全面的代码表示, 从而增强检测效果 [33] .
(6) CSFF-VD. CSFF-VD 使用残差图门控图神经网络对代码属性图 (CPG) 进行嵌入, 后为待测样本与嵌入空

