中文

错题:机器学习中用于漏洞检测基准测试的谬误

密码学与安全 2025-04-24 v2 机器学习

摘要

根据我们对过去五年内机器学习漏洞检测(ML4VD) literature 的调查,90% 的论文将 ML4VD 定义为函数级别的二元分类问题:给定函数,其是否包含安全漏洞?然而作为安全研究人员,我们在决定给定函数是否使程序易受攻击时,往往首先希望了解该函数被调用的上下文。本文研究了在缺乏进一步上下文的情况下,这一决策是否真的可行,并考察了最流行的 ML4VD 数据集中的易受漏洞与不易受漏洞函数。我们将函数定义为“易受漏洞”——若其涉及实际安全漏洞的补丁,并被确认会导致程序的漏洞;否则定义为“不易受漏洞”。我们发现,在几乎所有情况下,这一决策都无法在没有进一步上下文的情况下做出。易受漏洞的函数往往之所以易受漏洞,是因为存在导致漏洞的调用上下文;而不易受漏洞的函数如果存在相应的上下文,则可能变得易受漏洞。那么,为何 ML4VD 技术能够取得高分,尽管这些样本中 demonstrably 缺乏足够的信息呢?伪相关性:我们发现,即使仅依赖词频,亦可实现高分。这表明,这些数据集可以被利用而不必实际检测任何安全漏洞。我们得出结论,当前 ML4VD 的问题表述是不恰当的,质疑了该领域不断增长的研究工作的内部有效性。建设性地,我们呼吁制定更有效的基准方法来评估 ML4VD 的真实能力,提出替代的問題表述,并探讨其对机器学习与程序分析研究评估的更广泛影响。

关键词

引用

@article{arxiv.2408.12986,
  title  = {Top Score on the Wrong Exam: On Benchmarking in Machine Learning for Vulnerability Detection},
  author = {Niklas Risse and Jing Liu and Marcel Böhme},
  journal= {arXiv preprint arXiv:2408.12986},
  year   = {2025}
}

备注

Accepted at the 34th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2025)