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

邱少健 等: 基于函数间结构特征关联的软件漏洞检测方法                                                     3145


                 在  3  个数据集中分别为    61.2%、48.9%  和  32.3%, 比  Intra 方法分别下降  3.4%、15.8%  和  24.9%, 基于该对比结果,
                 RandomK  方法引入的随机关联样本, 可能会带来噪声信息, 反而降低了代码特征提取的有效性; 而                         CSFF-VD  相较
                 于  Intra 分别提升了  6.9%、2.9%  和  13.5%, 与  RandomK  方法效果截然相反, 说明  CSFF-VD  带来的性能提升是源
                 于结构特征相似关联信息的增益而不是随机信息量的增加. 总的来说, 整合函数间相似关联样本信息可以提升模
                 型的检测效果.

                   70.0  Base FG          67.8      Base FG                  50.0  Base FG          48.8
                                               60.0  57.6   57.1   56.9   58.1  59.8   45.0       43.0
                   65.0
                                        63.4
                                 63.6
                  F-measure (%)  60.0  51.9  54  53  56.4  54.2  59.3  F-measure (%)  55.0  53.7   54.1   52.3   55.1   F-measure (%)  40.0  29.2   30.9   29.7   31.5  32.5
                               62.6
                                                                             35.0
                   55.0
                                                            49.3
                                                                             30.0
                                               50.0
                   50.0
                                                                             25.0    25.4  27.5   26.3
                   45.0                        45.0                          20.0
                      Devign CodeBERT  Reveal  VulCNN  Ours  Devign CodeBERT  Reveal  VulCNN  Ours  Devign CodeBERT  Reveal  VulCNN  Ours
                   (a)  FFmpeg 数据集上的 RQ2 实验结果    (b)  Qemu 数据集上的 RQ2 实验结果  (c)  Chrome+Debian 数据集上的 RQ2 实验结果
                                   图 4 基于函数间特征相似性提取关联特征对漏洞检测性能的提升


                                      表 3 3  种对比方法在漏洞检测任务中的           F-measure 值 (%)

                                      对比方法         FFmpeg      Qemu      Chrome+Debian
                                       Intra        63.4        58.1         43.0
                                      RandomK       61.2        48.9         32.3
                                      CSFF-VD       67.8        59.8         48.8

                 6   拓展讨论

                 6.1   CSFF-VD  对最具威胁性漏洞的检测效果
                    为了评估    CSFF-VD  在现实世界漏洞检测中的有效性, 我们在国际上公开的最具威胁性漏洞榜单                          (common
                 weakness enumeration top, CWE Top) 中进行了实验. 这些漏洞可被攻击者利用从而进行未经授权的系统访问、窃
                 取敏感数据甚至破坏系统. 我们从          BigVul 数据集  [34] 中选择属于  CWE Top  的函数, 并按  CWE ID  对它们进行分组,
                 构建测试数据集. 如表      4  所示, 我们收集了    15  种不同的  CWE  类型相关的函数. 该表总结了每种          CWE  类型漏洞的
                 描述以及我们收集到的函数数量.

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

                  CWE排名      ID                       官方漏洞描述                        VulBG  CSFF-VD  Vuln
                     1     CWE-787                  Out-of-bounds Write               80      91    136
                     2     CWE-79      Improper Neutralization of Input During Web Page Generation  1  0  1
                     3     CWE-89   Improper Neutralization of Special Elements used in an SQL Command  1  1  5
                     4     CWE-416                    Use After Free                 109     117    190
                     5     CWE-78   Improper Neutralization of Special Elements used in an OS Command  5  4  11
                     6     CWE-20                 Improper Input Validation          291     341    658
                     7     CWE-125                  Out-of-bounds Read               231     259    535
                     9     CWE-352                Cross-site Request Forgery          0       1      1
                    11     CWE-862                  Missing Authorization             1       2      3
                    12     CWE-476                NULL Pointer Dereference           113     132    207
                    15     CWE-502              Deserialization of Untrusted Data     0       1      1
                    16     CWE-77     Improper Neutralization of Special Elements used in a Command  4  3  10
   219   220   221   222   223   224   225   226   227   228   229