0 引言
软件漏洞是许多系统攻击[1]和数据泄露事件[2]的原因。在软件产品开发中,源代码静态分析技术[3]被广泛用于检测漏洞。传统的检测方法主要通过一些由人类专家定义的度量标准所实现。这些方法目前取得的成果非常有限,因为它们无法避免人类专家在特征提取方面的繁重工作[4],而且用手工制作的特征来覆盖所有漏洞是不切实际的。深度学习由于具有处理大量软件代码和漏洞数据的强大能力,被引入到代码漏洞检测领域。然而,现有基于深度学习的方法中不同形式的代码表示方式只能保留部分语法或语义信息,这样就不能覆盖到每种漏洞并会限制模型检测的效果。其次这些方法所使用的网络模型仍存在一些局限性:例如,卷积神经网络(Convolutional Neural Network,CNN)和循环神经网络(Recurrent Neural Network,RNN)是基于序列的模型,不能处理代码的非序列特征,只能捕获源代码文本的浅表结构,无法利用程序结构丰富且定义良好的语义。
为了应对上述的问题,本文提出了一种基于多关系结构图神经网络的漏洞检测方法。采用多关系结构图进行代码的图形表示,获取全面的程序结构信息。然后结合双向图神经网络以及关系结构图注意力机制进行表示学习得到最终的代码图全局特征向量,并使用softmax分类器进行分类。
本文详细内容请下载:https://www.chinaaet.com/resource/share/2000005024
作者信息:
潘禺涵1,舒远仲1,洪 晟2,罗 斌1,聂云峰1
(1.南昌航空大学 信息工程学院,江西 南昌330000;2.北京航空航天大学 网络安全空间学院,北京100191)
