Page 223 - 《软件学报》2025年第7期
P. 223
3144 软件学报 2025 年第 36 卷第 7 期
Debian 数据集上略高于 VulBG 之外, 相较于其他方法降低了 33.5%–76.0%、14.8%–26.6% 和 6.3%–36.8%, 其低
FNR 体现了其减少漏报的能力. 在 Precision 方面, CSFF-VD 在 3 个数据集上的值分别为 55.0%、55.5% 和 44.4%.
这些值相较于其他方法提高了 0.2%–8.7%、0.5%–22.8% 和 68.2%–94.7%, 其高 Precision 突显了其减少误报的能
力. 在 Recall 方面, CSFF-VD 在 3 个数据集上的值分别为 88.3%、65.0% 和 54.1%. 除了在 Chrome+Debian 数据集
上略低于 VulBG 之外, 相较于其他方法提高了 7.2%–72.4%、10.4%–24.3% 和 6.1%–97.4%. 尽管如此, CSFF-VD
的 Recall 和 FNR 依然具有竞争力, 能够有效地检测出漏洞, 确保检测过程中较少的漏报.
表 2 CSFF-VD 与其他漏洞检测方法的性能比较 (%)
FFmpeg Qemu Chrome+Debian
方法
F-measure Precision Recall FNR F-measure Precision Recall FNR F-measure Precision Recall FNR
51.9 52.2 52.1 47.9 53.7 53.1 53.4 46.6 28.4 24.1 28.7 71.3
Devign
+15.9 +2.8 +36.2 −36.2 +6.1 +2.4 +11.6 −11.6 +20.4 +20.3 +25.4 −25.4
53.0 54.9 51.2 48.8 54.1 55.2 52.3 47.7 25.4 23.7 27.4 72.6
CodeBERT
+14.8 +0.1 +37.1 −37.1 +5.7 +0.3 +12.7 −12.7 +23.4 +20.7 +26.7 −26.7
62.6 50.6 82.4 17.6 49.3 45.2 54.0 46.0 26.3 24.4 28.6 71.4
Reveal
+5.2 +4.4 +5.9 −5.9 +10.5 +10.3 +11.0 −11.0 +22.5 +20.0 +26.1 −26.1
54.2 51.2 57.7 42.3 55.1 52.3 58.2 41.8 31.5 22.8 51.0 49.0
VulCNN
+13.6 +3.8 +30.6 −30.6 +4.7 +3.2 +6.8 −6.8 +17.3 +21.6 +3.1 −3.1
57.5 52.8 62.1 37.9 55.9 53.2 58.9 41.1 36.5 26.4 59.3 40.7
VulBG
+10.3 +2.2 +26.2 −26.2 +3.9 +2.3 +6.1 −6.1 +12.3 +18.8 −5.2 +5.2
CSFF-VD 67.8 55.0 88.3 11.7 59.8 55.5 65.0 35.0 48.8 44.4 54.1 45.9
W/T/L 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 5/0/0 4/0/1 4/0/1
表 2 的最后一行总结了 Win/Tie/Loss (W/T/L) 结果, 即 CSFF-VD 在每个数据集的各个指标上与每种基准方
法的比较. 例如, FFmpeg 数据集上 F-measure 值的 W/T/L 结果 5/0/0 表明, CSFF-VD 在所有 5 种基准方法中表现
最佳, 没有平局或失利. 总体而言, CSFF-VD 在大多数漏洞检测任务中表现优越, 多个指标上取得了 5/0/0 的 W/T/L
结果, 仅在两个指标上略低 (4/0/1). 这些在不同指标和数据集上的一致胜利进一步证明了 CSFF-VD 的稳健性和有
效性. 综上所述, CSFF-VD 在漏洞检测任务中不仅在 F-measure 值上表现出色, 而且有效降低了模型的 FNR, 同时
在 Precision 和 Recall 上也均有显著提升, 显示出其在减少误报和漏报方面的强大能力. 这些结果充分证明了
CSFF-VD 作为一种漏洞检测方法的优越性.
5.2 RQ2: CSFF-VD 中函数间的结构特征相似关联如何影响漏洞检测的性能?
为了探究这一研究问题, 我们研究了函数间特征相似性对漏洞检测方法性能的贡献. 本文比较了两组漏洞检
测方法. 具体来说, 我们选择了 4 种现有基于函数独立结构特征的漏洞检测方法: Devign、CodeBERT、Reveal 和
VulCNN 以及 CSFF-VD 的独立特征提取模块, 总共 5 种函数独立结构特征提取方法作为第 1 比较组, 表示为
“Base”. 然后, 我们通过构建函数间相似关联来提取关联特征对这些方法进行扩展, 形成第 2 比较组, 表示为“+FG”
(例如 Devign+FG).
图 4 展示了 3 组柱状图, 直观地展示了独立结构特征方法“Base”及其“+FG”扩展在 3 个数据集上的 F-measure
值的比较结果. 如图 4 所示, 针对现有方法的局限性, 本文提出构建函数间的相似关联挖掘关联特征以进一步增强
漏洞检测. 结果表明, 我们的方法显著改进了 5 种独立结构特征提取方法, 在 FFmpeg 上提高了 1.6%–9.4%, 在
Qemu 上提高了 2.9%–7.3%, 在 Chrome+Debian 上提高了 3.2%–13.5%.
此外, 为了进一步验证“+FG”的性能提升是源自函数特征间的相似性关联构建, 而不是随机信息量的增加, 我
们设计了一组对比实验. 具体而言, Intra 方法代表仅依赖独立结构特征提取模块进行检测的基准方法; RandomK
K 个样本构建图关联的方法 K 个样本带来的效果差异, 我们进行了
方法表示通过随机选取 (为了避免随机选取
50 次的随机选择并取平均值作为比较); CSFF-VD 则为本文提出的创新方法, 通过结构特征相似性构建关联图以
挖掘更丰富的漏洞信息. 表 3 列出了上述 3 种方法的 F-measure 值. 可以观察到, RandomK 方法的 F-measure 值

