CN115357904A - 一种基于程序切片和图神经网络的多类漏洞检测方法 - Google Patents
一种基于程序切片和图神经网络的多类漏洞检测方法 Download PDFInfo
- Publication number
- CN115357904A CN115357904A CN202210904602.4A CN202210904602A CN115357904A CN 115357904 A CN115357904 A CN 115357904A CN 202210904602 A CN202210904602 A CN 202210904602A CN 115357904 A CN115357904 A CN 115357904A
- Authority
- CN
- China
- Prior art keywords
- code
- vulnerability
- node
- nodes
- graph
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 34
- 238000001514 detection method Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 claims abstract description 21
- 239000013598 vector Substances 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims abstract description 13
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 12
- 238000005065 mining Methods 0.000 claims abstract description 10
- 230000003068 static effect Effects 0.000 claims abstract description 9
- 230000014509 gene expression Effects 0.000 claims abstract description 6
- 238000010606 normalization Methods 0.000 claims abstract description 6
- 238000011176 pooling Methods 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 5
- 230000007547 defect Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000011218 segmentation Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000002372 labelling Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 27
- 238000004458 analytical method Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
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
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Virology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于程序切片和图神经网络的多类漏洞检测方法,步骤如下:构建循环代码漏洞数据集;构建系统依赖子图;对所述静态切片集合进行规范化操作,作为系统依赖子图中对应节点包含的字段信息;将系统依赖子图的每个节点表示为固定长度的多维连续向量,作为系统依赖子图的节点的初始节点表示;训练基于门控图神经网络的循环代码漏洞挖掘模型,检测输入代码段是否存在漏洞以及所属的漏洞类型。本发明的方法定义了循环代码漏洞所需要提取的代码漏洞特征,包括代码语法语义信息以及循环代码的类别信息;并将建模后得到的代码图使用门控图神经网络对代码特征进行矢量化处理,以增强特征的表示能力。
Description
技术领域
本发明属于网络安全技术领域,具体涉及一种基于程序切片和图神经网络的多类漏洞检测方法。
背景技术
软件系统已经成为现代社会的重要基础设施。随着企业应用、航空航天、指挥控制、城市交通等重要国家产业领域向软件密集型发展,软件规模和复杂性不断增大在软件大量应用的同时,由于代码实现不当引起的软件质量问题也层出不穷。许多网络攻击源于软件漏洞,尽管在追求安全编程方面已经做出了努力,但软件漏洞仍然是一个重大问题。漏洞挖掘能够实现对程序的安全性分析,及时发现软件中存在的安全漏洞,从而提高软件的安全性。而循环代码作为系统的基础代码,因其独有的循环机制和复杂的程序结构,容易引发死循环、内存泄漏等各种安全漏洞。如何更加高效地保障系统中循环代码的安全,近年来也成为一个研究热点。
传统的基于规则的漏洞检测方法有两个主要缺点:需要大量的体力劳动和较高的误报率。最近已有大量工作表明基于深度学习的方法可以显着提高自动化漏洞检测的性能,该方法将以各种形式表示代码的语法和语义信息,以提取与漏洞相关的特征,并通过深度学习模型矢量化代码漏洞特征,增强特征的表示能力,最后通过训练分类器来进行漏洞检测工作。然而,目前基于深度学习的漏洞检测方法仍存在一定局限性,包括:
(1)无法充分地建模代码漏洞特征,且无法聚焦于关键漏洞特征信息。现有的基于深度学习的漏洞检测大多将源代码视为一个扁平的序列,或只使用部分信息来表示,导致其在面对漏洞特征不明显的漏洞时,无法准确地进行挖掘。
(2)缺少专门针对循环代码漏洞的特征提取及漏洞检测方法。在包含复杂循环的软件代码场景下,高复杂循环代码的海量迭代、执行过程复杂,循环嵌套导致分析的复杂度提升,在真实运行环境下对复杂软件循环代码进行安全性分析成本消耗大、周期长。如何处理循环代码,开展循环安全性分析存在巨大挑战。
(3)基于序列的模型无法处理图的拓扑信息。卷积神经网络(CNN)和递归神经网络(RNN)等基于序列的模型在代码表示中不能处理图的非序列特征,导致图结构特有的拓扑信息损失。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于程序切片和图神经网络的多类漏洞检测方法,以解决现有深度学习方法无法充分建模循环代码漏洞特征以及无法处理图结构拓扑信息的问题。本发明的方法定义了循环代码漏洞所需要提取的代码漏洞特征,包括代码语法语义信息以及循环代码的类别信息;并将建模后得到的代码图使用门控图神经网络对代码特征进行矢量化处理,以增强特征的表示能力。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于程序切片和图神经网络的多类漏洞检测方法,步骤如下:
1)从漏洞数据库中采集存在漏洞的循环代码,构建循环代码漏洞数据集;
2)根据循环代码段的控制依赖关系和数据依赖关系生成系统依赖图,识别系统依赖图中的敏感操作语句的节点,以敏感操作语句为起点生成静态切片集合,构建系统依赖子图;
3)对所述静态切片集合进行规范化操作,作为系统依赖子图中对应节点包含的字段信息;
4)将系统依赖子图的每个节点表示为固定长度的向量,作为系统依赖子图的节点的初始节点表示;
5)训练基于门控图神经网络的循环代码漏洞挖掘模型,使用Softmax分类器作为漏洞分类器,进行漏洞检测。
优选地,所述步骤1)具体包括:
11)从漏洞数据库中下载漏洞数据集,采集包含循环代码的代码文件,并移除所有的注释以清洗数据集;
12)将漏洞数据集中易受攻击的文件拆分为一组函数集合,删除头文件、注释以及外部定义的全局变量,每个函数作为一个函数级循环代码样本;
13)根据通用缺陷枚举(Common Weakness Enumeration)提供的CWE-ID提取并标注每个样本的漏洞类型,构建循环代码漏洞数据集。
优选地,所述步骤2)具体包括:
21)根据循环代码段的控制依赖关系和数据依赖关系,生成系统依赖图;
22)通过启发式方法查找系统依赖图中的敏感语句的节点;
23)根据数据依赖边和控制依赖边对系统依赖图进行裁剪,找到与敏感语句的节点具有依赖关系的节点集,并删除该节点集之外的其他节点;
24)将与敏感语句的节点具有数据依赖和控制依赖关系的节点集构成子图,作为切片后的代码段所构成的系统依赖子图;系统依赖子图中的节点表示切片代码段的每行语句,边表示数据依赖或控制依赖关系。
优选地,所述步骤3)具体包括:
31)对静态切片集合中的特定变量、函数名进行规范化操作;相同的变量和函数名映射到相同的值,不同的变量和函数名则按照出现顺序进行重命名。
此外,对于代码段中的保留字、API调用语句不进行规范化处理,因为这些字段包含了重要的代码信息。
优选地,所述步骤4)具体包括:
41)遍历函数的系统依赖子图,提取节点及其类型的代码表示;
42)通过Word2Vec实现节点代码表示的嵌入;在系统依赖子图中节点表示函数中的一行代码语句,对代码语句进行分词得到一组token集合,使用Word2Vec为代码token生成向量表示,计算这组token的向量的平均值,作为代码语句(即系统依赖子图的节点)的向量表示;
43)使用One-hot Encoding对节点类型进行编码,以得到节点类型的标签表示;
44)将步骤42)得到的代码语句的向量表示与步骤43)得到的节点类型的标签表示连接起来,以获得系统依赖子图中每个节点的初始表示。
优选地,所述步骤5)具体包括:
51)将系统依赖子图的节点嵌入作为图模型输入的初始节点表示,输入门控图神经网络进行训练;门控图神经网络通过邻接矩阵来对邻接节点的信息进行聚合,将聚合节点和当前节点一起经过GRU网络得到下一时刻的当前节点;以此类推,经过T时刻,生成所有节点的最终的节点表征;
52)应用一维卷积层从步骤51)生成的节点表征中提取漏洞代码和正常代码的图级特征,增加不同缺陷类型的代码之间的差异,使用激活函数Relu来优化一维卷积层的非线性分割能力;
53)利用最大池化层(Max pooling)对输入特征维度进行压缩,以减少特征向量的维数,提取得到与漏洞更相关的特征;
54)通过全连接层连接步骤53)得到的所有特征,作为最终的图级(Graph-level)特征,并将其传输给Softmax分类器以进行漏洞检测。
本发明的有益效果:
本发明针对循环代码进行漏洞检测,首先从公开数据集中收集并处理循环代码数据,构建循环代码漏洞数据集;其次使用系统依赖图对代码进行表征,并通过程序切片方法剔除与敏感操作无关的冗余信息,使得漏洞信息更加集中;然后通过基于门控图神经网络的循环代码漏洞挖掘模型,进行漏洞检测。
具体说,主要有如下一些优点:
1、本发明针对循环代码进行漏洞检测;循环代码作为系统的基础代码,因其独有的循环机制和复杂的程序结构,容易引发死循环、内存泄漏等各种安全漏洞。目前尚无相关工作与面向循环代码的漏洞检测相关,本发明将构建循环代码漏洞数据集,用于训练基于门控图神经网络的循环代码漏洞挖掘模型。
2、本发明通过程序切片对输入的循环代码段进行预处理,剔除与敏感操作无关的冗余信息,使得与漏洞有关的信息更集中,相当于优化了输入数据,使得训练得到的模型能更高效的提取到漏洞代码特征。
3、本发明提出的基于门控图神经网络的循环代码漏洞挖掘模型在门控图神经网络的基础上添加了一个卷积模块,用于获取与漏洞代码更相关的语义特征。卷积模块包括卷积层、池化层和全连接层。通过一维卷积提取漏洞代码特征并使用Relu激活函数来优化神经网络;通过池化层对特征维度进行压缩,减少特征维度以提取与漏洞更相关的特征;最后通过全连接层连接所有特征,输入到Softmax分类器进行漏洞检测。
附图说明
图1为本发明方法原理流程图。
图2为本发明中训练基于门控图神经网络的循环代码漏洞挖掘模型进行漏洞检测的流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,本发明的一种基于程序切片和图神经网络的多类漏洞检测方法,步骤如下:
步骤1):从SARD、NVD等漏洞数据库采集存在漏洞的循环代码,构建循环代码漏洞数据集;示例中,
11)从原始代码文件中,根据代码段中是否包含for或while循环,检测出包含循环代码的文件,过滤掉不包含循环代码的文件;
12)根据数据集中函数的命名规则,函数名中包含bad的属于有漏洞函数,包含good的属于无漏洞函数,由此从各循环代码文件中分离出函数级别的有漏洞代码段和无漏洞代码段,并删除包名、类名、注释等;将函数级循环代码段表示为一组有序与语句P={p1,p2,…,pn};
13)将无漏洞代码段的标签标注为good,有漏洞代码段的标签标注为其CWE ID.统计所有CWE ID标签的数据量,过滤掉数据量小于50的CWE ID对应的代码段数据;
14)对于所有三元组数据,整理所有标签,将good标签映射为0,将各CWE ID标签映射为从1开始的整数,保存CWE ID到整数型标签的映射关系并存储到一个字典中。
步骤2):根据循环代码段的控制依赖关系和数据依赖关系生成系统依赖图,识别系统依赖图中的敏感操作语句节点,以敏感操作语句为起点生成静态切片集合,构建系统依赖子图;示例中,
21)对步骤12)中提取得到的函数级循环代码段,根据循环代码段的控制依赖关系和数据依赖关系,生成系统依赖图G={V,E},其中V表示所有节点集合V={v1,v2,…,vn},E表示所有边的集合E={e1,e2,…,en};
22)通过正则匹配等词法识别方法识别代码段中的API调用语句的节点;
23)根据控制依赖关系和数据依赖关系,对系统依赖图进行裁剪,找到与敏感语句节点具有依赖关系的节点集U={u1,u2,…,ui},1≤i≤n,并删除该节点集之外的其他节点以及相关边,得到系统依赖子图G’={V’,E’},其中V′表示所有节点集合V′={v′1,v′2,…,v′i},1≤i≤n,E′表示所有边的集合E′={e′1,e′2,…,e′j},1≤j≤n。
步骤3):对所述静态切片集合进行规范化操作,即将变量命名、自定义函数命名等均映射为统一的命名方式,作为系统依赖子图中对应节点包含的字段信息;示例中,
31)对于特定变量、函数名进行规范化操作;相同的变量和函数名映射到相同的值,不同的变量和函数名则按照出现顺序进行重命名;替换规则如表1所示:
表1
对于代码片段中的保留字、API调用语句等不进行规范化处理,因为这些字段包含了重要的代码信息。
步骤4):将系统依赖子图的每个节点表示为固定长度的多维连续向量,作为系统依赖子图的节点的初始节点表示;示例中,
41)遍历函数的系统依赖子图,提取节点类型与节点的文本信息,例如,分解得到的token包括result和num,均为代码的文本信息,而其各自的节点类型均为Identifier;
42)通过Word2Vec实现节点代码表示的嵌入;在系统依赖子图中节点表示函数中的一行代码语句,首先对代码语句进行分词,得到一组有序token集合,表示为pi(1≤i≤n),pi={ti,1,ti,2,…,ti,w},其中令牌ti,j(1≤j≤w)可以是变量标识符、函数标识符、常量、关键字或运算符等;
43)将步骤1)得到的循环代码漏洞数据集作为语料库预训练Word2Vec模型,使用预训练的Word2Vec模型为token生成向量表示作为节点文本编码其中Nf是特征维度(在实验中设置为100);并使用One-hot Encoding来对节点类型进行编码作为节点类型编码lv,得到节点类型编码lv;将得到的节点文本编码cv节点类型的标签编码lv进行拼接,以获得每个token的初始嵌入
44)计算这组有序token集合T={T1,T2,…,Tw}的平均值:
步骤5):训练基于门控图神经网络的循环代码漏洞挖掘模型,学习图级代码特征,使用Softmax分类器作为漏洞分类器,检测输入代码段是否存在漏洞以及所属的漏洞类型;参照图2所示,示例中,
51)通过步骤4)中系统依赖子图的节点嵌入获得可以用作图模型输入的初始表示。将每个输入图的维度设为Nd×Nf,Nd表示图的最大节点数。设原始图的节点数为N,若Nd≤N,将初始表示xv复制到输入向量hv的第一维,并对剩下的维度进行补0以使得状态向量的维度大于初始表示的维度;若Nd>N,将原始图的多余节点以及对应的边删除;最终得到输入图G={V,E},其中
52)将步骤51)得到的输入图,输入门控图神经网络进行训练,通过邻接矩阵来对邻接节点的信息进行聚合,将聚合节点和当前节点一起经过GRU网络得到下一时刻的当前节点。以此类推,经过T时刻,生成所有节点的最终的节点表征;
53)在步骤52)得到的节点表征上应用一维卷积层进一步提取漏洞代码和正常代码的图级特征,使用激活函数Relu来优化一维卷积层的非线性分割能力;利用最大池化层(Max Pooling)对输入特征维度进行压缩,以减少特征向量的维数,提取得到与漏洞更相关的特征;如下式所示:
σ[Hv,xv]=MAXPOOL(Relu(Conv,Hv,xv]))
其中,σ[Hv,xv]表示一个软注意力机制,用于决定哪些节点与当前的图分类任务更相关;表示一维卷积,Conv(·)表示用于优化神经网络的激活函数,Relu(·)表示池化层,MAXPOOL(·)用于压缩输入特征的维度;
54)通过全连接层连接步骤53)得到的所有特征,作为最终的图级(Graph-level)特征;
55)将所述的门控图神经网络、一维卷积层、最大池化层和全连接层共同构成基于门控图神经网络的循环代码漏洞挖掘模型;将步骤54)得到的图级特征传输给Softmax分类器以进行漏洞检测,使用多分类交叉熵损失函数,计算梯度反向传播更新模型参数;漏洞代码样本f的预测标签的计算公式如下:
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (6)
1.一种基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,步骤如下:
1)从漏洞数据库中采集存在漏洞的循环代码,构建循环代码漏洞数据集;
2)根据循环代码段的控制依赖关系和数据依赖关系生成系统依赖图,识别系统依赖图中的敏感操作语句的节点,以敏感操作语句为起点生成静态切片集合,构建系统依赖子图;
3)对所述静态切片集合进行规范化操作,作为系统依赖子图中对应节点包含的字段信息;
4)将系统依赖子图的每个节点表示为固定长度的向量,作为系统依赖子图的节点的初始节点表示;
5)训练基于门控图神经网络的循环代码漏洞挖掘模型,使用Softmax分类器作为漏洞分类器,进行漏洞检测。
2.根据权利要求1所述的基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,所述步骤1)具体包括:
11)从漏洞数据库中下载漏洞数据集,采集包含循环代码的代码文件,并移除所有的注释以清洗数据集;
12)将漏洞数据集中易受攻击的文件拆分为一组函数集合,删除头文件、注释以及外部定义的全局变量,每个函数作为一个函数级循环代码样本;
13)根据通用缺陷枚举提供的CWE-ID提取并标注每个样本的漏洞类型,构建循环代码漏洞数据集。
3.根据权利要求1所述的基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,所述步骤2)具体包括:
21)根据循环代码段的控制依赖关系和数据依赖关系,生成系统依赖图;
22)通过启发式方法查找系统依赖图中的敏感语句的节点;
23)根据数据依赖边和控制依赖边对系统依赖图进行裁剪,找到与敏感语句的节点具有依赖关系的节点集,并删除该节点集之外的其他节点;
24)将与敏感语句的节点具有数据依赖和控制依赖关系的节点集构成子图,作为切片后的代码段所构成的系统依赖子图;系统依赖子图中的节点表示切片代码段的每行语句,边表示数据依赖或控制依赖关系。
4.根据权利要求1所述的基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,所述步骤3)具体包括:
对静态切片集合中的特定变量、函数名进行规范化操作;相同的变量和函数名映射到相同的值,不同的变量和函数名则按照出现顺序进行重命名。
5.根据权利要求1所述的基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,所述步骤4)具体包括:
41)遍历函数的系统依赖子图,提取节点及其类型的代码表示;
42)通过Word2Vec实现节点代码表示的嵌入;在系统依赖子图中节点表示函数中的一行代码语句,对代码语句进行分词得到一组token集合,使用Word2Vec为代码token生成向量表示,计算这组token的向量的平均值,作为代码语句的向量表示;
43)使用One-hot Encoding对节点类型进行编码,以得到节点类型的标签表示;
44)将步骤42)得到的代码语句的向量表示与步骤43)得到的节点类型的标签表示连接起来,以获得系统依赖子图中每个节点的初始表示。
6.根据权利要求1所述的基于程序切片和图神经网络的多类漏洞检测方法,其特征在于,所述步骤5)具体包括:
51)将系统依赖子图的节点嵌入作为图模型输入的初始节点表示,输入门控图神经网络进行训练;门控图神经网络通过邻接矩阵来对邻接节点的信息进行聚合,将聚合节点和当前节点一起经过GRU网络得到下一时刻的当前节点;经过T时刻,生成所有节点的最终的节点表征;
52)应用一维卷积层从步骤51)生成的节点表征中提取漏洞代码和正常代码的图级特征,增加不同缺陷类型的代码之间的差异,使用激活函数Relu来优化一维卷积层的非线性分割能力;
53)利用最大池化层对输入特征维度进行压缩,以减少特征向量的维数,提取得到与漏洞更相关的特征;
54)通过全连接层连接步骤53)得到的所有特征,作为最终的图级特征,并将其传输给Softmax分类器以进行漏洞检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904602.4A CN115357904B (zh) | 2022-07-29 | 2022-07-29 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210904602.4A CN115357904B (zh) | 2022-07-29 | 2022-07-29 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115357904A true CN115357904A (zh) | 2022-11-18 |
CN115357904B CN115357904B (zh) | 2024-04-02 |
Family
ID=84031630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210904602.4A Active CN115357904B (zh) | 2022-07-29 | 2022-07-29 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357904B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383089A (zh) * | 2023-05-29 | 2023-07-04 | 云南大学 | 基于常微分方程图神经网络的语句级软件缺陷预测系统 |
CN116702160A (zh) * | 2023-08-07 | 2023-09-05 | 四川大学 | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 |
CN117319091A (zh) * | 2023-11-29 | 2023-12-29 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885999A (zh) * | 2017-11-08 | 2018-04-06 | 华中科技大学 | 一种基于深度学习的漏洞检测方法及系统 |
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN112035842A (zh) * | 2020-08-17 | 2020-12-04 | 杭州云象网络技术有限公司 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
CN112699377A (zh) * | 2020-12-30 | 2021-04-23 | 哈尔滨工业大学 | 基于切片属性图表示学习的函数级代码漏洞检测方法 |
CN113158194A (zh) * | 2021-03-30 | 2021-07-23 | 西北大学 | 一种基于多关系图网络的漏洞模型的构建方法及检测方法 |
CN113326187A (zh) * | 2021-05-25 | 2021-08-31 | 扬州大学 | 数据驱动的内存泄漏智能化检测方法及系统 |
CN113360915A (zh) * | 2021-06-09 | 2021-09-07 | 扬州大学 | 基于源代码图表示学习的智能合约多漏洞检测方法及系统 |
CN114385512A (zh) * | 2022-03-23 | 2022-04-22 | 北京北大软件工程股份有限公司 | 软件源代码缺陷检测方法及装置 |
CN114692155A (zh) * | 2022-05-30 | 2022-07-01 | 中国海洋大学 | 基于知识图谱的漏洞代码图谱构建及代码漏洞检测方法 |
-
2022
- 2022-07-29 CN CN202210904602.4A patent/CN115357904B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885999A (zh) * | 2017-11-08 | 2018-04-06 | 华中科技大学 | 一种基于深度学习的漏洞检测方法及系统 |
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN112035842A (zh) * | 2020-08-17 | 2020-12-04 | 杭州云象网络技术有限公司 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
CN112699377A (zh) * | 2020-12-30 | 2021-04-23 | 哈尔滨工业大学 | 基于切片属性图表示学习的函数级代码漏洞检测方法 |
CN113158194A (zh) * | 2021-03-30 | 2021-07-23 | 西北大学 | 一种基于多关系图网络的漏洞模型的构建方法及检测方法 |
CN113326187A (zh) * | 2021-05-25 | 2021-08-31 | 扬州大学 | 数据驱动的内存泄漏智能化检测方法及系统 |
CN113360915A (zh) * | 2021-06-09 | 2021-09-07 | 扬州大学 | 基于源代码图表示学习的智能合约多漏洞检测方法及系统 |
CN114385512A (zh) * | 2022-03-23 | 2022-04-22 | 北京北大软件工程股份有限公司 | 软件源代码缺陷检测方法及装置 |
CN114692155A (zh) * | 2022-05-30 | 2022-07-01 | 中国海洋大学 | 基于知识图谱的漏洞代码图谱构建及代码漏洞检测方法 |
Non-Patent Citations (1)
Title |
---|
宋子韬: "基于图神经网络的源码漏洞检测方法研究", 通信技术, pages 640 - 645 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116383089A (zh) * | 2023-05-29 | 2023-07-04 | 云南大学 | 基于常微分方程图神经网络的语句级软件缺陷预测系统 |
CN116383089B (zh) * | 2023-05-29 | 2023-08-04 | 云南大学 | 基于常微分方程图神经网络的语句级软件缺陷预测系统 |
CN116702160A (zh) * | 2023-08-07 | 2023-09-05 | 四川大学 | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 |
CN116702160B (zh) * | 2023-08-07 | 2023-11-10 | 四川大学 | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 |
CN117319091A (zh) * | 2023-11-29 | 2023-12-29 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
CN117319091B (zh) * | 2023-11-29 | 2024-02-09 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115357904B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597735B (zh) | 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法 | |
CN111783100B (zh) | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 | |
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及系统 | |
CN110569353B (zh) | 一种基于注意力机制的Bi-LSTM的标签推荐方法 | |
CN115357904B (zh) | 一种基于程序切片和图神经网络的多类漏洞检测方法 | |
Becker et al. | A comparative survey of business process similarity measures | |
CN111798312A (zh) | 一种基于孤立森林算法的金融交易系统异常识别方法 | |
CN110633366A (zh) | 一种短文本分类方法、装置和存储介质 | |
CN113254507B (zh) | 一种数据资产目录智能构建盘点方法 | |
CN111881300A (zh) | 面向第三方库依赖的知识图谱构建方法及系统 | |
CN111737477A (zh) | 一种基于知识产权大数据的情报调查方法、系统和存储介质 | |
CN115146062A (zh) | 融合专家推荐与文本聚类的智能事件分析方法和系统 | |
CN116149669A (zh) | 一种基于二进制文件的软件成分分析方法、装置以及介质 | |
CN114897085A (zh) | 一种基于封闭子图链路预测的聚类方法及计算机设备 | |
CN113254649B (zh) | 敏感内容识别模型的训练方法、文本识别方法及相关装置 | |
CN114691525A (zh) | 测试用例的选择方法及装置 | |
CN116702160B (zh) | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 | |
CN111737694B (zh) | 一种基于行为树的恶意软件同源性分析方法 | |
CN116956289B (zh) | 动态调整潜在黑名单和黑名单的方法 | |
CN113378024A (zh) | 一种基于深度学习面向公检法领域的相关事件识别方法 | |
CN116881430A (zh) | 一种产业链识别方法、装置、电子设备及可读存储介质 | |
CN116467720A (zh) | 一种基于图神经网络的智能合约漏洞检测方法及电子设备 | |
CN115712576A (zh) | 基于开源软件缺陷问题的软件测试类型推荐方法和系统 | |
CN115204179A (zh) | 基于电网公共数据模型的实体关系预测的方法及装置 | |
CN112906824B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |