Page 225 - 《软件学报》2025年第7期
P. 225

3146                                                       软件学报  2025  年第  36  卷第  7  期


                                           表 4    CWE Top  类型漏洞描述检测结果      (续)

                    CWE排名         ID                官方漏洞描述                  VulBG     CSFF-VD     Vuln
                      19        CWE-918         Server-side Request Forgery   1          1         2
                      23        CWE-94      Improper Control of Generation of Code  1    1         3
                      24        CWE-863           Incorrect Authorization     2          1         4
                      -           -                    合计                    840        956       1 767

                    我们使用    Chrome+Debian  数据集作为训练数据集, 因为其缺陷率与           BigVul 类似. 为了保证实验的公平性, 测
                 试数据集去除了与       Chrome+Debian  中重叠的数据. 然后, 我们使用本次训练中具有最高             F-measure 值的模型来评
                 估其准确性. 由于在之前的实验结果中, CSFF-VD           的  Recall 性能略微低于   VulBG, 因此我们也对    VulBG  进行评估
                 作为额外一组比较方法, 最佳结果用粗体标出. 实验结果表明, 在属于                   CWE Top  的  1 767  个漏洞中, CSFF-VD  检测
                 到了  956  个, 检测率达到   54.1%, 与  VulBG  相比提高了  13.9%. 检测  top-1  和  top-5 CWE  漏洞的准确率分别为
                 66.9%  和  62.4%, 也比  VulBG  显示出显著的优势. 表中的最佳结果以粗体显示, 表明           CSFF-VD  在检测大多数现实
                 项目漏洞方面表现更好. CSFF-VD       针对   CWE Top  漏洞的综合评估显示了其处理现实安全威胁的卓越能力.

                 6.2   CSFF-VD  在最新发布漏洞上的检测效果
                    为了评估    CSFF-VD  在最新发布漏洞中的检测效果, 我们针对            FFmpeg Security [35] 发布的  2023–2024  年新增漏
                 洞案例进行实验. 这些案例来自          FFmpeg  开源项目, 类型涵盖堆缓冲区溢出、越界读取等实际场景中常见的漏洞
                 类型, 详细信息如表      5  前  4  列所示.


                                     表 5 2023–2024  年  FFmpeg  项目新增漏洞及各方法检测情况

                                                                                    是否检出
                    漏洞编号         漏洞类型      补丁Commit号前8位      文件名
                                                                      CodeBERT  VulCNN  CSFF-Base  CSFF-VD
                  CVE-2024-28661  堆缓冲区溢出      66b50445      speexdec.c   -        √        √        √
                  CVE-2024-7055  越界访问          d0ce2529     pnmdec.c      √       √        √        √
                  CVE-2024-7272  越界访问          a937b3c5    swresample.c  -        -        √        √
                  CVE-2023-47342  越界访问         e4d5ac8d       rtsp.c     -        -       -        -
                  CVE-2023-47343  非法内存读取       0f6a3405       mov.c      -        -       -         √
                  CVE-2023-47344  越界访问         f7ac3512    jpegxl_parser.c  √     √        √        √

                    本节中, 我们使用      RQ1  中所构建的   CodeBERT  方法  (基于令牌) 与  VulCNN  方法  (基于程序依赖图和卷积神
                 经网络)、RQ2    中所构建的    Intra 方法  (基于代码属性图的独立结构特征) 以及本文提出的               CSFF-VD  方法, 对表  5
                 中  FFmpeg  的新漏洞案例进行检测. 检测结果如表             5  的后  4  列所示, CodeBERT  仅检出  2  个越界访问漏洞;
                 VulCNN  检出  2  个越界访问和   1  个堆缓冲区溢出漏洞, Intra 检出     3  个越界访问、1   个堆缓冲区溢出漏洞; 本文提
                 出的  CSFF-VD  可检出  5  个漏洞, 其在前  3  个方法检出漏洞的基础上, 额外发现了           1  个因整数溢出导致的非法内存
                 读取漏洞. 上述结果表明, CSFF-VD      在  FFmpeg  最新漏洞案例上的检测能力优于其他方法. 我们认为, CSFF-VD              方
                 法通过函数间结构特征关联的构建, 增强了代码特征提取的有效性, 进而提升了模型的漏洞检测能力.

                 6.3   模型训练时间和推理成本分析
                    在本节中, 我们讨论       CSFF-VD  的训练时间、推理时间以及模型参数量. 表              6  列出了  CSFF-VD  与其他  5  种

                 漏洞检测方法的比较结果, 为了保证实验的公平性, 所有比较实验均在同一台高性能计算机上进行. 结果显示,
                 CSFF-VD  的训练时间约为     20 min, 推理时间不到    5 s, 相较于  CodeBERT  模型, 训练时间和推理时间约是原来的
                 1/40, 与  Devign、Reveal、VulCNN  和  VulBG  方法相比, 训练时间和推理成本也得到显著提升. 此外, CSFF-VD
                 的模型参数量较少, 因此它适合部署在计算资源有限的平台, 例如无法使用大参数量模型的计算机和边端设
                 备等.
   220   221   222   223   224   225   226   227   228   229   230