中文

揭示机器学习用于自动漏洞检测的局限性

密码学与安全 2025-01-16 v2 机器学习

摘要

近期机器学习用于自动漏洞检测(ML4VD)的结果非常令人鼓舞。给定函数 ff 的源代码,ML4VD 技术可判断 ff 是否包含安全缺陷,准确率高达 70%。然而,正如我们自己实验中所显现的,同样的顶尖模型无法区分包含漏洞的函数与漏洞被修补后的函数。那么,我们如何解释这一矛盾,又如何改进对 ML4VD 技术的评估方式以更好地认识其实际能力?本文中,我们指出与无关特征过拟合以及分布外泛化是传统 ML4VD 技术评估方法未能捕捉的两个问题。作为补救,我们提出了一种新颖的基准测试方法,以帮助研究者更好地评估 ML4VD 技术的真实能力与局限。具体而言,我们提出(i)依据我们的交叉验证算法扩充训练与验证数据集,在训练集或测试集的扩充过程中施加语义保持变换;(ii)用漏洞已被修补的代码段扩充测试集。利用六种 ML4VD 技术与两个数据集,我们发现(a)最先进的模型在预测测试数据中的漏洞时严重过拟合于无关特征,(b)数据扩充带来的性能提升无法泛化到训练中所用特定扩充之外,(c)最先进的 ML4VD 技术无法区分漏洞函数与其补丁。

关键词

引用

@article{arxiv.2306.17193,
  title  = {Uncovering the Limits of Machine Learning for Automatic Vulnerability Detection},
  author = {Niklas Risse and Marcel Böhme},
  journal= {arXiv preprint arXiv:2306.17193},
  year   = {2025}
}