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) 进行嵌入, 后为待测样本与嵌入空
   216   217   218   219   220   221   222   223   224   225   226