0 Abstract
当前基于机器学习的软件漏洞检测方法主要在功能级别进行。然而,这些方法的一个关键限制是,它们没有指示导致漏洞的特定代码行。这限制了开发人员有效检查和解释学习模型预测的能力,这对于将基于机器学习的工具集成到软件开发工作流中至关重要。基于图的模型在功能级漏洞检测方面表现出了良好的性能,但其在语句级漏洞检测中的能力尚未得到广泛探索。**虽然通过可解释的人工智能解释功能级预测是一个很有前途的方向,但我们在这里从完全监督学习的角度来考虑语句级软件漏洞检测任务。**我们提出了一种新的深度学习框架LineVD,它将语句级漏洞检测定义为节点分类任务。**LineVD利用图神经网络和基于转换器的模型对原始源代码标记进行编码,从而利用语句之间的控制和数据依赖性。**特别是,通过解决函数级和语句级信息之间的冲突输出,LineVD显著提高了函数代码在没有漏洞状态的情况下的预测性能。我们针对从多个真实世界项目中获得的大量真实世界C/C++漏洞进行了广泛的实验,并证明F1分数比当前最先进的技术提高了105%.
1 Intro or Overview
1.1 Problem and Challe ...