CN115935372A - 一种基于图嵌入和双向门控图神经网络的漏洞检测方法 - Google Patents

一种基于图嵌入和双向门控图神经网络的漏洞检测方法 Download PDF

Info

Publication number
CN115935372A
CN115935372A CN202211470625.5A CN202211470625A CN115935372A CN 115935372 A CN115935372 A CN 115935372A CN 202211470625 A CN202211470625 A CN 202211470625A CN 115935372 A CN115935372 A CN 115935372A
Authority
CN
China
Prior art keywords
graph
vector
text
neural network
node
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.)
Pending
Application number
CN202211470625.5A
Other languages
English (en)
Inventor
俞东进
黄琛
王思轩
金宝清
程淑涵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202211470625.5A priority Critical patent/CN115935372A/zh
Publication of CN115935372A publication Critical patent/CN115935372A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Machine Translation (AREA)

Abstract

本发明提出了一种基于图嵌入和双向门控图神经网络的漏洞检测方法。本发明首先获得从源代码中提取的函数级的含有漏洞的源代码和不含漏洞的源代码,利用源代码分析工具将所有源代码转换成程序依赖图,其中包括了控制依赖图和数据依赖图,再利用改进后的node2vec方法将程序依赖图转换成代码的图嵌入表示,这种表示既包含了源代码的图结构信息,又包含了源代码的文本结构信息,在一定程度上提高了特征的表示非线性信息的能力,最后通过双向门控图神经网络模型对预处理后的代码嵌入进行深度学习训练。训练结果应用到目标程序,检测和评估出目标程序的代码漏洞。

Description

一种基于图嵌入和双向门控图神经网络的漏洞检测方法
技术领域
本发明涉及源代码的预处理及软件程序中漏洞检测领域,尤其涉及一种基于图嵌入和双向门控图神经网络的代码漏洞检测方法。
背景技术
软件漏洞是造成许多系统攻击和数据泄露事件的原因。机器学习是通过构建工具和模型来识别常见软件漏洞的一种可行手段。由于不同漏洞之间会表现出相似的潜在模式,机器学习可以首先从训练样本中学习漏洞程序表达的潜在模式,然后将这些模式应用到新的软件项目中,以识别潜在的漏洞代码。
最近,有研究者利用深度学习对源代码的程序结构进行学习,以识别源代码中潜在的软件漏洞。与经典的机器学习技术相比,深度学习的优势在于它会从训练样本中自动学习结构特征,不需要专家参与手动调优程序结构的过程。现有的基于深度学习的程序建模方法通常使用循环神经网络(RNN),如长短期记忆(LSTM)或其变体。然而,LSTM是为顺序序列设计的,不适合程序结构控制和数据流建模。因此,先前基于LSTM的方法只能捕获源代码文本的浅层的、表面的结构或语法信息,而不能充分学习程序结构中更多有效信息的语义特征。
为了更好地对复杂的代码结构进行特征学习,本发明提出一种可以直接操作程序结构图并从图中学习语义信息的方法。这样做将允许模型保存大量的控制依赖和数据依赖信息,以捕获许多软件漏洞的基本代码结构。针对上述问题及现实意义,本发明将提升数据预处理方面的能力,充分学习代码的图结构信息,通过优化参数设置,训练双向门控图神经网络(BGGNN),以实现更好的检测性能。
发明内容
为了解决现有的静态漏洞挖掘方法无法有效地对代码图结构中非线性语义信息进行表征的问题,并有效提升神经网络模型效果,本发明提供一种基于图嵌入和双向门控图神经网络的漏洞检测方法,可有效解决上述问题。本发明具体采用的技术方案如下:
一种基于图嵌入和双向门控图神经网络的漏洞检测方法,包括以下步骤:
S1.数据集获取和标注,具体包括以下子步骤:
S11.获取源代码数据集,从中提取出函数级的含有漏洞的源代码和不含漏洞的源代码,共包括k个函数;
S12.对每个函数中是否含有漏洞进行标注,得到每个函数文件的标注Yi∈{0,1},i∈[1,k],其中0表示不存在漏洞,1表示存在漏洞。
S2.生成程序依赖图,获得整个项目中所有源代码对应的程序依赖图集合G={V,E},V代表节点的集合,而E代表边的集合。具体包括以下子步骤:
S21.将源代码导入源代码分析工具后,根据源代码中的函数名,使用查询语句作为输入。此步骤生成函数名相应的程序依赖关系图(PDG),并将其输出为dot类型的图描述文件;
S22.利用统一变量名映射的方式,在PDG图描述文件中以一对一的方式将用户定义的变量名和函数名映射到符号名,得到预处理后的PDG图。
S3.对于所有的程序依赖图,提取所需的边信息和节点文本信息。具体包括以下子步骤:
S31.利用正则匹配的方式,提取dot文件中节点之间的有向边关系Eij=Vi→Vj,获得所有有向边集合,并保存为文本文件;
S32.利用正则匹配的方式,提取dot文件中节点ID对应的代码文本Vi=[Text1,Text2,...,Textn],获得所有节点文本集合,并保存为字典文件。
S4.使用node2vec进行特征训练,得到特征向量字典,具体包括以下子步骤:
S41.以S31中预处理过后的保存有向边的文本文件作为输入,合理设置node2vec模型中的采样策略参数,训练文本特征,输出最小文本单元Texti对应的向量vector_ti,i∈[1,n];
S42.将所有输出的文本特征向量用一个字典进行保存,字典为Dict_t=∪i∈[1,n]{key:Texti,value:vector_ti};
S43.以S31中预处理过后的保存有向边的文本文件作为输入,合理设置node2vec模型中的采样策略参数,将节点标识为唯一的节点IDi,而非上述的文本属性,训练节点依赖特征,输出图节点之间的依赖特征向量vector_ni,i∈[1,m];
S44.将所有输出的节点依赖特征向量用一个字典进行保存,字典为Dict_n=∪i∈[1,m]{key:IDi,value:vector_ni}。
S5.基于S4中训练得到文本特征向量和边特征向量,将所有PDG转换为函数级别的特征向量的矩阵表示,具体包括以下子步骤:
S51.将表示节点的文本描述合并到一行,然后将字符串拆分为若干个Text,基于S42得到的文本向量字典Dict_t,将节点文本属性转换为对应的嵌入向量nodeTextveci=[vector_ti1,vector_ti2,...,vector_tin],从而得到每个节点的文本向量;
S52.一条有向边代表它存在一对头节点和尾节点,通过使用这两个节点的IDs,IDe作为键对S44得到的节点ID字典进行查询,得到头节点向量vector_ns和尾节点向量vector_ne
S53.将头节点向量和尾节点向量相减,得到一条有向边对应的嵌入向量vs→e=vector_ne-vector_ns。对每一个程序依赖图的列表中的每条有向边都做上述处理,得到所有PDG中的边向量
Figure BDA0003958389310000041
S54.将节点文本向量和边向量一起封装成一个程序依赖图对应的JSON文件,作为后续神经网络模型的输入。该JSON文件可以被视为一个N×16的二维向量矩阵和一个M×16的二维向量矩阵的组合,其中N代表一个程序依赖图中节点的数量,M代表边的数量。
S6.将S5输出的多个JSON文件作为输入,训练双向门控图神经网络模型,具体包括以下子步骤:
S61.分割训练集与测试集:选取S53中生成的JSON文件数据集中d%的数据样本作为训练集,剩余为测试集;
S62.应用双向门控图神经网络(BGGNN)来学习数据集中包含的特征数据。BGGNN由两个方向门控图神经网络(GGNN)组成:一个是正向L1层的门控图神经网络GGNN1,接受正向的输入;另一个是反向L2层的门控图神经网络GGNN2,学习反向的输入,公式表达为:
Figure BDA0003958389310000042
Figure BDA0003958389310000043
Figure BDA0003958389310000044
上述式中,yt是模型输出,
Figure BDA0003958389310000051
是前向输出,
Figure BDA0003958389310000052
是反向输出;
S63.基于上述网络进行l次迭代训练,训练结束之后保存神经网络模型Model,以方便后期快速的模型加载。
S7.对目标程序进行代码漏洞检测,具体包括以下子步骤:
S71.首先如S2、S3的步骤对目标程序源代码进行预处理,得到预处理后的PDG;
S72.以S4中预训练的字典Dict_t和Dict_n为基础,执行如S5中PDG到特征向量矩阵的转换的步骤,保存为目标程序的JSON文件;
S73.复用S6生成的神经网络模型Model,将目标程序生成的函数级的特征向量矩阵作为输入,以进行函数级代码漏洞检测;
S74.本发明将输出一个列表,列出目标程序中存在的潜在代码漏洞的函数名列表,以供相关人员检查和完善程序。
作为优选,步骤中S62所述的正向L1层的门控图神经网络GGNN1,L1取3。
作为优选,步骤中S62所述的反向L2层的门控图神经网络GGNN2,L2取3。
作为优选,步骤S63中所述的进行l次迭代训练,l取150。
本发明的有益效果如下:
本发明基于图嵌入学习的代码漏洞检测方法,使用真实的漏洞数据集,从源码中提取控制流和依赖关系,使得代码表示的信息更加具体和全面。对代码进行node2vec训练之后,学习了代码的图嵌入信息和文本嵌入信息。使用双向门控图神经网络BGGNN模型架构作为分类器,其中循环结构能够有效学习图节点的邻域信息,具备良好的性能,目标函数将使用随机梯度上升进行优化,有效的提高了特征的分辨能力。适当的采取一些训练技巧,选择理想的网络参数、优化算法以及学习率的设置,网络更加稳定,结果更可靠,提高了代码漏洞检测的准确率。
附图说明
图1为本发明方法的流程图;
图2为本发明训练用于漏洞检测的双向门控图神经网络示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明进行进一步详细说明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
本实施例提供了一种基于图嵌入和双向门控图神经网络的代码漏洞检测方法,如图1所示,包括以下步骤:
S1.数据集获取和标注,具体包括以下子步骤:
S11.获取源代码数据集,从中提取出函数级的含有漏洞的源代码和不含漏洞的源代码,共包括k个函数;
S12.对每个函数中是否含有漏洞进行标注,得到每个函数文件的标注Yi∈{0,1},i∈[1,k],其中0表示不存在漏洞,1表示存在漏洞。
S2.生成程序依赖图,获得整个项目中所有源代码对应的程序依赖图集合G={V,E},V代表节点的集合,而E代表边的集合。具体包括以下子步骤:
S21.将源代码导入源代码分析工具后,根据源代码中的函数名,使用查询语句作为输入。此步骤生成函数名相应的程序依赖关系图(PDG),并将其输出为dot类型的图描述文件;
S22.利用统一变量名映射的方式,在PDG图描述文件中以一对一的方式将用户定义的变量名和函数名映射到符号名,得到预处理后的PDG图。
S3.对于所有的程序依赖图,提取所需的边信息和节点文本信息。具体包括以下子步骤:
S31.利用正则匹配的方式,提取dot文件中节点之间的有向边关系Eij=Vi→Vj,获得所有有向边集合,并保存为文本文件;
S32.利用正则匹配的方式,提取dot文件中节点ID对应的代码文本Vi=[Text1,Text2,...,Textn],获得所有节点文本集合,并保存为字典文件。
S4.使用node2vec进行特征训练,得到特征向量字典,具体包括以下子步骤:
S41.以S31中预处理过后的保存有向边的文本文件作为输入,合理设置node2vec模型中的采样策略参数,训练文本特征,输出最小文本单元Texti对应的向量vector_ti,i∈[1,n];
S42.将所有输出的文本特征向量用一个字典进行保存,字典为Dict_t=∪i∈[1,n]{key:Texti,value:vector_ti};
S43.以S31中预处理过后的保存有向边的文本文件作为输入,合理设置node2vec模型中的采样策略参数,将节点标识为唯一的节点IDi,而非上述的文本属性,训练节点依赖特征,输出图节点之间的依赖特征向量vector_ni,i∈[1,m];
S44.将所有输出的节点依赖特征向量用一个字典进行保存,字典为Dict_n=∪i∈[1,m]{key:IDi,value:vector_ni}。
本实施例中,S41和S43中,合理设置node2vec模型中的参数,具体参数包括walk_length、num_walks、p、q和window_size,分别代表游走长度、游走次数、访问上一节点的概率、游走方向偏深度优先还是广度优先(q<1时偏深度优先,q>1偏广度优先)和窗口大小,其中walk_length取10,num_walks取10,p取0.1,q取0.8,window_size取5。
S5.基于S4中训练得到文本特征向量和边特征向量,将所有PDG转换为函数级别的特征向量的矩阵表示,具体包括以下子步骤:
S51.将表示节点的文本描述合并到一行,然后将字符串拆分为若干个Text,基于S42得到的文本向量字典Dict_t,将节点文本属性转换为对应的嵌入向量nodeTextveci=[vector_ti1,vector_ti2,...,vector_tin],从而得到每个节点的文本向量;
S52.一条有向边代表它存在一对头节点和尾节点,通过使用这两个节点的IDs,IDe作为键对S44得到的节点ID字典进行查询,得到头节点向量vector_ns和头节点向量vector_ne
S53.将头节点向量和尾节点向量相减,得到一条有向边对应的嵌入向量vs→e=vector_ne-vector_ns。对每一个程序依赖图的列表中的每条有向边都做上述处理,得到所有PDG中的边向量
Figure BDA0003958389310000081
S54.将节点文本向量和边向量一起封装成一个程序依赖图对应的JSON文件,作为后续神经网络模型的输入。该JSON文件可以被视为一个N×16的二维向量矩阵和一个M×16的二维向量矩阵的组合,其中N代表一个程序依赖图中节点的数量,M代表边的数量。
S6.将S5输出的多个JSON文件作为输入,训练双向门控图神经网络模型,具体包括以下子步骤:
S61.分割训练集与测试集:选取S53中生成的JSON文件数据集中d%的数据样本作为训练集,剩余为测试集;其中,d取70。
S62.应用双向门控图神经网络(BGGNN)来学习数据集中包含的特征数据。BGGNN由两个方向门控图神经网络(GGNN)组成:一个是正向L1层的门控图神经网络GGNN1,接受正向的输入;另一个是反向L2层的门控图神经网络GGNN2,学习反向的输入,公式表达为:
Figure BDA0003958389310000091
Figure BDA0003958389310000092
Figure BDA0003958389310000093
上述式中,yt是模型输出,
Figure BDA0003958389310000094
是前向输出,
Figure BDA0003958389310000095
是反向输出,其中,L1取3,L2取3;
S63.基于上述网络进行l次迭代训练,训练结束之后保存神经网络模型Model,以方便后期快速的模型加载,l取150。
S7.对目标程序进行代码漏洞检测,具体包括以下子步骤:
S71.首先如S2、S3的步骤对目标程序源代码进行预处理,得到预处理后的PDG;
S72.以S4中预训练的字典Dict_t和Dict_n为基础,执行如S5中PDG到特征向量矩阵的转换的步骤,保存为目标程序的JSON文件;
S73.复用S6生成的神经网络模型Model,将目标程序生成的函数级的特征向量矩阵作为输入,以进行函数级代码漏洞检测;
S74.本发明将输出一个列表,列出目标程序中存在的潜在代码漏洞的函数名列表,以供相关人员检查和完善程序。
以上结合附图对本发明的实施方式作了详细说明,但本发明不限于所描述的实施方式。对于本领域的技术人员而言,在不脱离本发明原理和精神的情况下,对这些实施方式包括部件进行多种变化、修改、替换和变型,仍落入本发明的保护范围内。

Claims (10)

1.一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于:
S1.获取源代码的数据集并标注是否含有漏洞;
S2.生成程序依赖图,获得整个项目中所有源代码对应的程序依赖图集合G={V,E},V代表节点的集合,而E代表边的集合;
S3.对于所有的程序依赖图,提取所需的有向边集合和节点集合,并分别保存为文本文件和字典文件;
S4.使用node2vec进行特征训练,得到特征向量字典;
S5.基于S4中训练得到文本特征向量和边特征向量,将所有PDG转换为函数级别的特征向量的矩阵表示;
S6.将S5输出的多个JSON文件作为输入,训练双向门控图神经网络模型;
S7.对目标程序进行代码漏洞检测,将目标程序代码进行步骤S1-S6完成漏洞检测。
2.根据权利要求1所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S1中数据集中源代码的标注方法为:从源代码数据集中提取出函数级的含有漏洞的源代码和不含漏洞的源代码,共包括k个函数;对每个函数中是否含有漏洞进行标注,得到每个函数文件的标注Yi∈{0,1},i∈[1,k],其中0表示不存在漏洞,1表示存在漏洞。
3.根据权利要求1所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S2中,生成程序依赖图方法为:
S21.将源代码导入源代码分析工具后,根据源代码中的函数名,使用查询语句作为输入,并生成与函数名相应的程序依赖关系图,并将其输出为dot类型的图描述文件;
S22.利用统一变量名映射的方式,在程序依赖关系图的描述文件中以一对一的方式将用户定义的变量名和函数名映射到符号名,得到预处理后的程序依赖图。
4.根据权利要求1所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S3中利用正则匹配的方式提取所需的有向边集合和节点集合。
5.根据权利要求4所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S4中特征向量字典包括文本向量字典和节点ID字典,所述文本向量字典由文本文件作为输入得到文本特征向量,并用一个字典进行保存,所述节点ID字典由字典文件作为输入得到节点依赖特征向量,并用一个字典进行保存。
6.根据权利要求5所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述文本向量字典获取方法为:以S31中预处理过后的保存有向边的文本文件作为输入,设置node2vec模型中的采样策略参数,训练文本特征,输出最小文本单元Texti对应的向量vector_ti,i∈[1,n];
将所有输出的文本特征向量用一个字典进行保存,字典为Dict_t=∪i∈[1,n]{key:Texti,value:vector_ti}。
7.根据权利要求6所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述节点ID字典获取方法为:
以S31中预处理过后的保存有向边的文本文件作为输入,合理设置node2vec模型中的采样策略参数,将节点标识为唯一的节点IDi,而非上述的文本属性,训练节点依赖特征,输出图节点之间的依赖特征向量vector_ni,i∈[1,m];
将所有输出的节点依赖特征向量用一个字典进行保存,字典为Dict_n=∪i∈[1,m]{key:IDi,value:vector_ni}。
8.根据权利要求7所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S5具体包括以下子步骤:
S51.将表示节点的文本描述合并到一行,然后将字符串拆分为若干个Text,基于文本向量字典Dict_t,将节点文本属性转换为对应的嵌入向量
nodeTextveci=[vector_ti1,vector_ti2,...,vector_tin],从而得到每个节点的文本向量;
S52.一条有向边代表它存在一对头节点和尾节点,通过使用这两个节点的IDs,IDe作为键对节点ID字典进行查询,得到头节点向量vector_ns和尾节点向量vector_ne
S53.将头节点向量和尾节点向量相减,得到一条有向边对应的嵌入向量vs→e=vector_ne-vector_ns,对每一个程序依赖图的列表中的每条有向边都做上述处理,得到所有PDG中的边向量
Figure FDA0003958389300000031
S54.将节点文本向量和边向量一起封装成一个程序依赖图对应的JSON文件,作为后续神经网络模型的输入,该JSON文件被视为一个N×16的二维向量矩阵和一个M×16的二维向量矩阵的组合,其中N代表一个程序依赖图中节点的数量,M代表边的数量。
9.根据权利要求8所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S6具体包括以下子步骤:
S61.分割训练集与测试集:选取S53中生成的JSON文件数据集中d%的数据样本作为训练集,剩余为测试集;
S62.应用双向门控图神经网络来学习数据集中包含的特征数据,BGGNN由两个方向门控图神经网络组成:一个是正向L1层的门控图神经网络GGNN1,接受正向的输入;另一个是反向L2层的门控图神经网络GGNN2,学习反向的输入,公式表达为:
Figure FDA0003958389300000041
Figure FDA0003958389300000042
Figure FDA0003958389300000043
上述式中,yt是模型输出,
Figure FDA0003958389300000044
是前向输出,
Figure FDA0003958389300000045
是反向输出;
S63.基于上述网络进行l次迭代训练,训练结束之后保存神经网络模型Model,以方便后期快速的模型加载。
10.根据权利要求8所述的一种基于图嵌入和双向门控图神经网络的漏洞检测方法,其特征在于,所述S7具体包括以下子步骤:
S71.首先如S2、S3的步骤对目标程序源代码进行预处理,得到预处理后的程序依赖图;
S72.以S4中预训练的字典Dict_t和Dict_n为基础,执行如S5中PDG到特征向量矩阵的转换的步骤,保存为目标程序的JSON文件;
S73.复用S6生成的神经网络模型Model,将目标程序生成的函数级的特征向量矩阵作为输入,以进行函数级代码漏洞检测;
S74.输出一个列表,列出目标程序中存在的潜在代码漏洞的函数名列表,以供相关人员检查和完善程序。
CN202211470625.5A 2022-11-23 2022-11-23 一种基于图嵌入和双向门控图神经网络的漏洞检测方法 Pending CN115935372A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211470625.5A CN115935372A (zh) 2022-11-23 2022-11-23 一种基于图嵌入和双向门控图神经网络的漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211470625.5A CN115935372A (zh) 2022-11-23 2022-11-23 一种基于图嵌入和双向门控图神经网络的漏洞检测方法

Publications (1)

Publication Number Publication Date
CN115935372A true CN115935372A (zh) 2023-04-07

Family

ID=86699820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211470625.5A Pending CN115935372A (zh) 2022-11-23 2022-11-23 一种基于图嵌入和双向门控图神经网络的漏洞检测方法

Country Status (1)

Country Link
CN (1) CN115935372A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661852A (zh) * 2023-04-06 2023-08-29 华中师范大学 一种基于程序依赖图的代码搜索方法
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116661852A (zh) * 2023-04-06 2023-08-29 华中师范大学 一种基于程序依赖图的代码搜索方法
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统
CN117290238B (zh) * 2023-10-10 2024-04-09 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和系统

Similar Documents

Publication Publication Date Title
CN108446540B (zh) 基于源代码多标签图神经网络的程序代码抄袭类型检测方法与系统
CN108647520B (zh) 一种基于脆弱性学习的智能模糊测试方法与系统
CN112487807B (zh) 一种基于膨胀门卷积神经网络的文本关系抽取方法
CN115935372A (zh) 一种基于图嵌入和双向门控图神经网络的漏洞检测方法
CN106295338B (zh) 一种基于人工神经元网络的sql漏洞检测方法
CN115048316B (zh) 一种半监督的软件代码缺陷检测方法及装置
CN110162972B (zh) 一种基于语句联合编码深度神经网络的uaf漏洞检测方法
CN112633002A (zh) 样本标注、模型训练、命名实体识别方法和装置
CN112131888A (zh) 分析语义情感的方法、装置、设备及存储介质
CN113742733A (zh) 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
Janz et al. Learning a generative model for validity in complex discrete structures
CN117236677A (zh) 一种基于事件抽取的rpa流程挖掘方法及装置
CN115277587B (zh) 网络流量识别方法、装置、设备及介质
CN116484024A (zh) 一种基于知识图谱的多层次知识库构建方法
CN116340952A (zh) 一种基于操作码程序依赖图的智能合约漏洞检测方法
CN113904844B (zh) 基于跨模态教师-学生网络的智能合约漏洞检测方法
CN115328782A (zh) 基于图表示学习和知识蒸馏的半监督软件缺陷预测方法
CN113378178A (zh) 一种基于深度学习的图自信学习软件漏洞检测方法
CN112148879B (zh) 一种自动给代码打数据结构标签的计算机可读存储介质
CN110554952B (zh) 一种基于搜索的分层回归测试数据生成方法
CN116467720A (zh) 一种基于图神经网络的智能合约漏洞检测方法及电子设备
CN113342982B (zh) 融合RoBERTa和外部知识库的企业行业分类方法
CN114065210A (zh) 一种基于改进的时间卷积网络的漏洞检测方法
Zhang et al. Research on Defect Location Method of C Language Code Based on Deep Learning
CN112732570B (zh) 一种基于上下文环境的依恋情结代码味道检测方法

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