摘要
arXiv:2504.13676v1 宣告类型: cross
摘要:随着暴露在网络上的web应用程序和API端点数量不断增加,可被利用的漏洞数量也在增加。手动识别这些漏洞是繁琐的。同时,静态安全扫描器往往会产生许多假阳性结果。虽然基于机器学习的方法很有前景,但在训练数据和测试数据密切相关的情况下,它们通常表现最佳。基于机器学习的漏洞检测面临的一个主要挑战是提供合适的紧凑代码上下文,因为过长的上下文会负面影响机器学习模型的理解代码能力,特别是小型模型。
这项工作引入了一种新的代码表示方式——Trace Gadgets,它通过移除与漏洞无关的代码来最小化代码上下文。Trace Gadgets精准捕捉覆盖漏洞路径的语句。作为机器学习模型的输入,Trace Gadgets提供了一个最小但完整的信息上下文,从而提高了检测性能。此外,我们收集了一个大规模的数据集,该数据集来自真实世界的应用程序,并手工标注以进一步提高基于机器学习的漏洞检测器的性能。我们的结果表明,在使用Trace Gadgets时,最先进的机器学习模型的检测性能优于以前的代码表示方式,至少在完全未见过的数据集上超越了GitHub的CodeQL等工业标准静态扫描器4%以上的检测能力。通过将我们的框架应用于真实世界的应用程序,我们发现了并报告了在广泛部署的软件中未知的漏洞。