《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > 基于多关系结构图神经网络的代码漏洞检测
基于多关系结构图神经网络的代码漏洞检测
网络安全与数据治理 5期
潘禺涵1,舒远仲1,洪 晟2,罗 斌1,聂云峰1
(1.南昌航空大学 信息工程学院,江西 南昌330000;2.北京航空航天大学 网络安全空间学院,北京100191)
摘要: 针对常规漏洞检测技术提取漏洞特征困难,存在高误报率和高漏报率的问题,提出了一种基于多关系结构图神经网络以及关系结构图注意力机制的源代码漏洞检测模型。首先通过代码属性图提取代码的语法和语义信息,并按照不同的语义关系划分成不同的关系结构图,实现了代码表示能力的增强。然后使用图神经网络对图结构进行表示学习,在网络模型中引入后向边以及关系结构图注意力机制,达到了更有效的学习漏洞特征的效果。最后为了验证模型的优势,在大型真实数据集上对模型进行了广泛评估,实验结果证明了该方法有效提高了漏洞检测能力。
中图分类号: TP311
文献标识码: A
DOI: 10.19358/j.issn.2097-1788.2022.05.006
引用格式: 潘禺涵,舒远仲,洪晟,等. 基于多关系结构图神经网络的代码漏洞检测[J].网络安全与数据治理,2022,41(5):36-42.
Code vulnerability detection based on multi-relational graph neural network
Pan Yuhan1,Shu Yuanzhong1,Hong Sheng2,Luo Bin1,Nie Yunfeng1
(1.School of Information Engineering,Nanchang Hangkong University,Nanchang 330000,China; 2.School of Cyber Science and Technology,Beihang University,Beijing 100191,China)
Abstract: In order to solve the problem that the conventional vulnerability detection technology is difficult to extract vulnerability features and has high false positive rate and high false negative rate, a source code vulnerability detection model based on multi-relational structure graph neural network and relational structure graph attention mechanism is proposed. Firstly, the syntactic and semantic information of the code is extracted through the code attribute graph, and the code is divided into different relation structure graphs according to different semantic relations, which enhances the code representation ability. Then, the graph neural network is used to represent and learn the graph structure, and the backward edge and the attention mechanism of relational structure graph are introduced into the network model to achieve the effect of more effective learning of vulnerability features. Finally, in order to verify the advantages of the model, the model is extensively evaluated on a large real data set, and the experimental results show that the method can effectively improve the vulnerability detection ability.
Key words : vulnerability detection;graph neural network;attention mechanism;relational graph;graph embedding

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)



微信图片_20210517164139.jpg

此内容为AET网站原创,未经授权禁止转载。