Page 226 - 《软件学报》2025年第7期
P. 226
邱少健 等: 基于函数间结构特征关联的软件漏洞检测方法 3147
表 6 模型在不同数据上的训练时间和推理时间
训练时间 推理时间
数据集 参数量 (MB)
FFmpeg Qemu Chrome+Debian FFmpeg Qemu Chrome+Debian
Devign 2 h 8 min 2 h 39 min 3 h 11 min 4.1 s 4.3 s 5.5 s 4.38
CodeBERT 20 h 15 min 26 h 37 min 34 h 5 min 5 min 5 min 6 min 475
Reveal 7 h 28 min 8 h 12 min 9 h 20 min 2.3 s 2.4 s 3.1 s 2.14
VulCNN 50 min 56 min 1 h 18 min 5.1 s 5.4 s 8.2 s 2.6
VulBG 56 min 1 h 20 min 1 h 57 min 7.3 s 8.7 s 11 s 24.1
CSFF-VD 18 min 21 min 29 min 3.7 s 3.9 s 4.6 s 11.7
6.4 不同的相似性度量方法对实验的影响
本节讨论 CSFF-VD 中, 用于构建函数间结构特征关联图的相似性度量方法选择对 CSFF-VD 性能的影响, 我
们使用不同的度量方法作为变量, 比较马氏距离、余弦相似度、曼哈顿距离和欧氏距离在 FFmpeg、Qemu 和
Chrome+Debian 这 3 个数据集下的性能. 结果如表 7 所示, 在 FFmpeg 和 Qemu 这两个平衡数据集上, 使用欧氏距
离时 FNR 和 Recall 指标为最优, F-measure 和 Precision 仅比最好的马氏距离低一些. 在 Chrome+Debian 不平衡数
据集上, 使用欧氏距离在各项指标上皆能达到最优. 因此, 在多个数据集下综合评估所测得的性能后, CSFF-VD 选
择了欧氏距离作为构建函数间结构特征关联图的相似性度量方法.
表 7 模型在不同相似性度量方法下性能比较 (%)
FFmpeg Qemu Chrome+Debian
度量方法
F-measure Precision Recall FNR F-measure Precision Recall FNR F-measure Precision Recall FNR
马氏距离 68.1 56.6 85.4 14.6 60.3 56.4 64.9 35.1 21.5 45.6 14.1 85.9
余弦相似度 51.5 58.7 45.8 54.2 58.1 59.8 56.6 43.4 35.5 37.1 40.0 60.0
曼哈顿距离 66.1 56.4 79.6 20.4 56.6 61.4 52.6 47.4 40.4 38.8 42.3 57.7
欧氏距离 67.8 55.0 88.3 11.7 59.8 55.5 65.0 35.0 48.8 44.4 54.1 45.9
K 对实验的影响
6.5 用于构造函数间结构特征关联的邻居节点数
本节讨论 CSFF-VD 中用于构造函数间关联结构的邻居节点数量 K 的参数设置, 以达到最佳结果. 由于我们
关注 K 参数对模型性能的影响, 因此在本实验中仅使用 K 作为变量, 其他网络参数保持不变. 我们使用 F-measure
值在 3 个数据集上评估 CSFF-VD 的性能: FFmpeg、Qemu 和 Chrome+Debian. 后文图 5 显示了 CSFF-VD 在 3 个
数据集上具有不同 K 值的性能. 当 K 设置为 5 时, FFmpeg 和 Qemu 数据集上的性能达到峰值. 此外, 对于 Chrome+
K 设置为 4 时, F-measure 值最佳. 实验结果表明, CSFF-VD 在构造函数间结构特征关联图时, 将邻居节
Debian, 当
K 设置 5 K 提取关联特征并增强漏洞检测
点数量 通常会取得最佳结果. 这一发现体现了选择适当邻居节点数量
性能的重要性.
6.6 有效性威胁
在本节中, 我们讨论对方法有效性的几个潜在威胁.
(1) 数据预处理时间. 本文采用 CPG 对样本进行表示. 由于 CPG 在生成时需解析程序的 AST 和 PDG 等信息,
其生成过程存在耗时较长的问题. 在实际检测推理的场景中, 针对单个待测样本生成 CPG 的平均耗时约为 3 s.
(2) 方法实现过程中可能存在的差别. 本文使用在线提供的源代码在实验中实现了一些比较方法 (例如
Devign 和 Reveal). 对于不提供源代码的对比方法, 我们通过严格遵循原文中提供的方法细节来实现. 尽管如此, 我
们的实现可能与原始比较方法存在细微差别.
(3) 数据集的局限性. 同时本文所使用的 FFmpeg 和 Qemu 数据集都来自 Devign 数据集, Croft 等人 [36] 指出该
数据集中存在标签不准确、重复样本等问题. 相较于其他常见的数据集, Devign 数据集受影响较小, 实验结果仍
具备参考价值.

