CN115357909B - 一种用于代码漏洞检测的全局信息感知图神经网络系统 - Google Patents
一种用于代码漏洞检测的全局信息感知图神经网络系统 Download PDFInfo
- Publication number
- CN115357909B CN115357909B CN202211279030.1A CN202211279030A CN115357909B CN 115357909 B CN115357909 B CN 115357909B CN 202211279030 A CN202211279030 A CN 202211279030A CN 115357909 B CN115357909 B CN 115357909B
- Authority
- CN
- China
- Prior art keywords
- graph
- neural network
- node
- code
- representing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 49
- 230000008447 perception Effects 0.000 title claims abstract description 18
- 238000001514 detection method Methods 0.000 title claims abstract description 16
- 239000013598 vector Substances 0.000 claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims abstract description 8
- 239000000284 extract Substances 0.000 claims abstract description 7
- 230000007246 mechanism Effects 0.000 claims abstract description 7
- 230000004931 aggregating effect Effects 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims abstract description 4
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 5
- 238000011176 pooling Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 claims 1
- 230000007547 defect Effects 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004458 analytical method Methods 0.000 description 3
- 241000764238 Isis Species 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种用于代码漏洞检测的全局信息感知图神经网络系统,包括关系代码表示模块和全局信息感知模块;关系代码表示模块在图卷积神经网络信息聚合过程中添加边类型信息,用边类型信息丰富节点特征表示,并使用注意力机制增强节点特征;全局信息感知模块在图卷积神经网络中使用大核卷积和小核卷积分别提取代码属性图中的全局特征和局部特征,学习更抽象高级的图表征用于代码漏洞分类。本发明的有益效果是:本发明能缓解传统图神经网络难以有效捕获大图图表征的缺陷,有效地学习代码量大的函数的代码属性图的向量表示并提升漏洞检测的准确率和F1指标。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于代码漏洞检测的全局信息感知图神经网络系统。
背景技术
软件开发中的安全漏洞隐患会给社会和经济带来灾难性的影响,及时准确地发现软件漏洞至关重要。传统的漏洞检测技术基于动态分析或者静态分析,包括符号执行、模糊测试、污点分析、代码相似性检测等,这些方法存在假阳性率高或者执行代价大等问题,并且要求审计人员精通安全领域知识。目前深度学习技术能从大量数据中自动学习规则和特征,在软件漏洞检测任务上展现了可行性和有效性。为充分利用代码固有的结构特征,很多工作提取代码的抽象语法树、控制流图、数据流图等结构并利用图神经网络学习代码的图表征用于分类。尽管基于图神经网络的模型在代码漏洞检测取得了最先进的性能,它们仍面临着图神经网络不能有效捕获代码结构全局信息的挑战。
已有的基于代码图结构的漏洞检测技术一般采用图神经网络(GNNs)来学习代码的图表示,然而图神经网络通常使用邻域聚合更新节点表示,为避免过量的邻域聚合带来的过平滑问题,图神经网络通常只训练几层,导致其只能关注到图中的局部信息,对于节点数量较多的大图无法有效地捕捉全局信息,这些问题会影响图神经网络在软件漏洞检测中的性能。
发明内容
本发明提供了一种用于代码漏洞检测的全局信息感知图神经网络系统,包括关系代码表示模块和全局信息感知模块;
关系代码表示模块在图卷积神经网络信息聚合过程中添加边类型信息,用边类型信息丰富节点特征表示,并使用注意力机制增强节点特征;
全局信息感知模块在图卷积神经网络中使用大核卷积和小核卷积分别提取代码属性图中的全局特征和局部特征,学习更抽象高级的图表征用于代码漏洞分类。
作为本发明的进一步改进,所述关系代码表示模块由层组成,每一层包括三个子层,三个子层分别是:关系图卷积神经网络子层、多头注意力子层、前馈神经网络子层。
作为本发明的进一步改进,在关系代码表示模块,代码属性图,其中V表示节点集合,,E表示边集合,R表示边类型集合;对于任一节点,使用Word2Vec模型获得初始化的向量表示:,其中d为向量维度;源节点和目的节点之间的边用三元组表示,其中表示边类型;在第层中,先通过关系图卷积神经网络子层更新节点表示,公式如下:
其中,是以节点为目的节点且边的类型为的源节点的集合,是节点对于边类型的归一化常数,可在训练中学习得到;、分别是第层节点和节点的向量表示,和是可训练参数矩阵。
本发明的有益效果是:本发明能克服传统图神经网络难以有效捕获大图图表征的缺陷,有效地学习代码量大的函数的代码属性图的向量表示并提升漏洞检测的准确率和F1指标;具体为,本发明能缓解传统图神经网络难以有效学习量大的代码属性图的缺陷,在本领域的三个常用数据集(FFMPeg+Qemu、Reveal和Fan et al)上,能提升0.39%-35.32%的漏洞检测准确率和7.64%-199.81%的F1指标。
具体实施方式
本发明公开了一种用于代码漏洞检测的全局信息感知图神经网络系统,包括关系代码表示模块、全局信息感知模块。
关系代码表示模块:关系代码表示模块在图卷积神经网络信息聚合过程中添加边类型信息,用边类型信息丰富节点特征表示,并使用注意力机制增强节点特征;该模块基于图卷积神经网络和多头注意力机制学习代码属性图的节点表示和不同类型的边表示以及不同节点之间的关系。
全局信息感知模块:该模块在图卷积神经网络中使用大核卷积和小核卷积分别提取代码属性图中的全局特征和局部特征,学习更抽象高级的图表征用于代码漏洞分类。
关系代码表示模块
关系代码表示模块由层组成,每一层包括三个子层:关系图卷积神经网络子层、多头注意力子层、前馈神经网络子层。代码属性图,其中V表示节点集合,,E表示边集合,R表示边类型集合。对于任一节点,本发明使用Word2Vec模型获得初始化的向量表示,其中d为向量维度。源节点和目的节点之间的边用三元组表示,其中表示边类型。在第层中,先通过关系图卷积神经网络子层更新节点表示,公式如下:
其中,是以节点为目的节点且边的类型为的源节点的集合,是节点对于边类型的归一化常数,可在训练中学习得到。分别是第层节点和节点的向量表示,是可训练参数矩阵。
中聚合了邻域节点和边类型的信息,本发明通过多头注意力子层进一步提取代码属性图中的高级特征,公式如下:
其中,表示节点对节点的注意力系数,分别是由切分成H份后的第k部分向量,H表示多头注意力机制的头数,表示每个头的向量维度。softmax表示softmax激活函数,在经过softmax正则化后,被约束在[-10,10]以保持数值的稳定性。表示节点的邻居节点集合,表示第层中第k个头的权重矩阵,Concat表示将多个头计算的向量拼接起来,表示第层节点的初始输入向量。
多头注意力子层获得的输出进一步输入到前馈神经网络子层中:
其中,作为第层节点的输出,作为关系代码表示模块中第层的输入。表示可训练的参数矩阵,ReLU表示正则化。表示中第p个特征维度的值,表示同一个代码属性图中所有节点第p个特征维度的平均值,表示同一个代码属性图中所有节点第p个特征维度的方差。是可学习的参数,用于线性变换,决定了图神经网络在导出的平均值中保留信息所需的权重大小。
全局信息感知模块
经过关系代码表示模块,每个节点获得了不同类型边增强的向量表示,为了缓解GCN无法有效捕获全局信息的缺陷,本发明设计全局信息感知模块,在GCN中同时使用大核卷积和小核卷积分别提取代码属性图中的全局信息和局部信息,公式如下:
其中,是全局信息感知模块的输入,Concat表示将关系表示模块最后一层所有节点的向量表示拼接起来获得整个图的向量表示。Conv表示卷积核为1的卷积操作,BN表示批标准化操作。、分别表示卷积核为N的大卷积层和卷积核为M的小卷积层,。是常数偏置项。在实验中,本发明设置。
接下来,本发明使用池化、两个全连接层以及softmax进行分类,公式如下:
其中,Avgpool表示平均池化操作,softmax表示softmax激活函数,y表示模型预测的结果。分别表示两个全连接层可训练参数,本发明在训练中使用交叉熵损失函数、RAdam优化器来更新参数。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种用于代码漏洞检测的全局信息感知图神经网络系统,其特征在于,包括关系代码表示模块和全局信息感知模块;
关系代码表示模块在图卷积神经网络信息聚合过程中添加边类型信息,用边类型信息丰富节点特征表示,并使用注意力机制增强节点特征;
全局信息感知模块在图卷积神经网络中使用大核卷积和小核卷积分别提取代码属性图中的全局特征和局部特征,学习更抽象高级的图表征用于代码漏洞分类;
所述关系代码表示模块由层组成,每一层包括三个子层,三个子层分别是:关系图卷积神经网络子层、多头注意力子层、前馈神经网络子层;
在关系代码表示模块,代码属性图,其中V表示节点集合,,n为代码属性图中节点数量;E表示边集合,R表示边类型集合;使用Word2Vec模型对节点向量表示进行初始化:,其中表示任一节点的初始化节点向量表示,为向量维度;源节点和目的节点之间的边用三元组表示,其中表示边类型;在第层中,先通过关系图卷积神经网络子层更新节点表示,公式如下:
其中,是以节点为目的节点且边的类型为的源节点的集合,是节点对于边类型的归一化常数,可在训练中学习得到;、分别是关系代码表示模块第层获得的节点和节点的向量表示,和是可训练参数矩阵,表示非线性激活函数,表示经过第层关系图卷积神经网络子层更新后的节点的节点向量表示。
2.根据权利要求1所述的全局信息感知图神经网络系统,其特征在于,中聚合了邻域节点和边类型的信息,通过多头注意力子层进一步提取代码属性图中的高级特征,公式如下:
其中,表示节点对节点的注意力系数,和分别是由和切分成份后的第部分向量,表示多头注意力机制的头数,表示每个头的向量维度;表示softmax激活函数;表示节点的邻居节点集合,表示第层中第个头的权重矩阵,表示将多个头计算的向量拼接起来,表示经过第层多头注意力子层更新后的节点的节点向量表示。
3.根据权利要求2所述的全局信息感知图神经网络系统,其特征在于,在关系代码表示模块,在经过正则化后,被约束在[-10,10]以保持数值的稳定性。
4.根据权利要求2所述的全局信息感知图神经网络系统,其特征在于,多头注意力子层获得的输出进一步输入到前馈神经网络子层中:
其中,作为第层节点的输出,作为关系代码表示模块中第层的输入; 、表示可训练的参数矩阵,表示正则化;表示中第p个特征维度的值,表示同一个代码属性图中所有节点第p个特征维度的平均值,、和是可学习的参数,和用于线性变换,决定了图神经网络在导出的平均值中保留信息所需的权重大小。
5.根据权利要求1至4任一项所述的全局信息感知图神经网络系统,其特征在于,全局信息感知模块在图卷积神经网络中使用大核卷积和小核卷积分别提取代码属性图中的全局特征和局部特征,公式如下:
其中,是全局信息感知模块的输入,表示将关系表示模块最后一层所有节点的向量表示拼接起来获得整个图的向量表示;表示卷积核为1的卷积操作,表示批标准化操作;、分别表示卷积核为N的大卷积层和卷积核为M的小卷积层,;和是常数偏置项。
6.根据权利要求5所述的全局信息感知图神经网络系统,其特征在于:N=11,M=3。
7.根据权利要求5所述的全局信息感知图神经网络系统,其特征在于:在全局信息感知模块中,使用池化、两个全连接层以及进行分类。
8.根据权利要求7所述的全局信息感知图神经网络系统,其特征在于,在全局信息感知模块中,使用池化、两个全连接层以及进行分类的公式如下:
其中,表示平均池化操作,表示softmax激活函数,表示模型预测的结果;、和、分别表示两个全连接层可训练参数,在训练中使用交叉熵损失函数、RAdam优化器来更新参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211279030.1A CN115357909B (zh) | 2022-10-19 | 2022-10-19 | 一种用于代码漏洞检测的全局信息感知图神经网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211279030.1A CN115357909B (zh) | 2022-10-19 | 2022-10-19 | 一种用于代码漏洞检测的全局信息感知图神经网络系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115357909A CN115357909A (zh) | 2022-11-18 |
CN115357909B true CN115357909B (zh) | 2023-05-16 |
Family
ID=84008823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211279030.1A Active CN115357909B (zh) | 2022-10-19 | 2022-10-19 | 一种用于代码漏洞检测的全局信息感知图神经网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357909B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577361B (zh) * | 2022-12-09 | 2023-04-07 | 四川大学 | 一种改进的基于图神经网络的PHP Web shell检测方法 |
CN116738443B (zh) * | 2023-08-10 | 2023-12-26 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 一种基于多示例感知的软件漏洞检测方法及相关设备 |
CN117216767B (zh) * | 2023-09-05 | 2024-04-05 | 四川大学 | 一种基于图神经网络的漏洞利用攻击预测方法 |
CN117592061B (zh) * | 2024-01-19 | 2024-04-12 | 北京中科卓信软件测评技术中心 | 融合代码漏洞特征及属性图的源代码安全检测方法与装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463472B2 (en) * | 2018-10-24 | 2022-10-04 | Nec Corporation | Unknown malicious program behavior detection using a graph neural network |
CN111259394B (zh) * | 2020-01-15 | 2022-08-05 | 中山大学 | 一种基于图神经网络的细粒度源代码漏洞检测方法 |
CN111783100B (zh) * | 2020-06-22 | 2022-05-17 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN112699377B (zh) * | 2020-12-30 | 2023-04-28 | 哈尔滨工业大学 | 基于切片属性图表示学习的函数级代码漏洞检测方法 |
CN114611115A (zh) * | 2022-03-18 | 2022-06-10 | 北京工业大学 | 一种基于混合图神经网络的软件源码漏洞检测方法 |
-
2022
- 2022-10-19 CN CN202211279030.1A patent/CN115357909B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115357909A (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115357909B (zh) | 一种用于代码漏洞检测的全局信息感知图神经网络系统 | |
Wang et al. | Zero-shot recognition via semantic embeddings and knowledge graphs | |
CN111353373B (zh) | 一种相关对齐域适应故障诊断方法 | |
CN110213244A (zh) | 一种基于时空特征融合的网络入侵检测方法 | |
GB2559566A (en) | Topographic data machine learning method and system | |
Jiang et al. | A semisupervised GAN-based multiple change detection framework in multi-spectral images | |
CN115908908B (zh) | 基于图注意力网络的遥感图像聚集型目标识别方法及装置 | |
CN113961759A (zh) | 基于属性图表示学习的异常检测方法 | |
CN110569761B (zh) | 一种基于对抗学习的手绘草图检索遥感图像的方法 | |
CN115757103A (zh) | 基于树结构的神经网络测试用例生成方法 | |
Lin et al. | Rethinking crowdsourcing annotation: partial annotation with salient labels for multilabel aerial image classification | |
Singh et al. | Performance Analysis of CNN Models with Data Augmentation in Rice Diseases | |
CN113343123A (zh) | 一种生成对抗多关系图网络的训练方法和检测方法 | |
CN112836007A (zh) | 一种基于语境化注意力网络的关系元学习方法 | |
CN117056970A (zh) | 基于图神经网络的隐私特征保护方法和系统 | |
CN114265954B (zh) | 基于位置与结构信息的图表示学习方法 | |
CN111241326A (zh) | 基于注意力金字塔图网络的图像视觉关系指代定位方法 | |
CN115269925A (zh) | 一种基于层次结构的无偏置场景图生成方法 | |
CN114722928A (zh) | 一种基于深度学习的蓝藻图像识别方法 | |
CN113537272A (zh) | 基于深度学习的半监督社交网络异常账号检测方法 | |
Hao et al. | A Model-Agnostic approach for learning with noisy labels of arbitrary distributions | |
CN116846688B (zh) | 基于cnn的可解释流量入侵检测方法 | |
Li et al. | Make an omelette with breaking eggs: Zero-shot learning for novel attribute synthesis | |
Zhao et al. | Robust graph convolutional clustering with adaptive graph learning | |
Wang et al. | Robust fused hypergraph neural networks for multi-label classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |