今天的猫是明天的狗:考虑 ML 漏洞检测方法标签的基于时间的变化
密码学与安全
2025-06-16 v1 人工智能
摘要
用于 ML 测试的漏洞数据集隐式地包含回顾性信息。当在实地测试时,只能使用训练和测试时可用的标签(例如已见和假设的负样本)。随着漏洞在日历时间中被发现,标签会发生变化,过去的性能不一定与未来的性能一致。过去的工作只考虑了整个历史的切片(例如 DiverseVUl)或发布之间的个别差异(例如 Jimenez 等人 ESEC/FSE 2019)。这类方法要么在训练中过于乐观(例如整个历史),要么过于保守(例如连续发布)。我们提出了一种方法,将数据集重新结构化为一系列数据集,其中训练和测试标签都会发生变化,以考虑当时可用的知识。如果模型确实在学习,它应该随着更多数据的可用和数据变得更加稳定而随时间提高性能,这一效应可以通过 Mann-Kendall 检验来验证。我们使用 4 个基于时间的数据集(BigVul 数据集中的 3 个项目 + Vuldeepecker 的 NVD)和 5 个 ML 模型(Code2Vec、CodeBERT、LineVul、ReGVD 和 Vuldeepecker)验证了我们的漏洞检测方法。与直观预期(更多的回顾性信息,更好的性能)相反,趋势结果显示性能在不同年份之间变化不一致,表明大多数模型没有在学习。
引用
@article{arxiv.2506.11939,
title = {Today's Cat Is Tomorrow's Dog: Accounting for Time-Based Changes in the Labels of ML Vulnerability Detection Approaches},
author = {Ranindya Paramitha and Yuan Feng and Fabio Massacci},
journal= {arXiv preprint arXiv:2506.11939},
year = {2025}
}
备注
Accepted at The ACM International Conference on the Foundations of Software Engineering (FSE) 2025. Published in the Proceedings of the ACM on Software Engineering (PACMSE), Issue FSE 2025