CN111274134A - 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质 - Google Patents

基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质 Download PDF

Info

Publication number
CN111274134A
CN111274134A CN202010053062.4A CN202010053062A CN111274134A CN 111274134 A CN111274134 A CN 111274134A CN 202010053062 A CN202010053062 A CN 202010053062A CN 111274134 A CN111274134 A CN 111274134A
Authority
CN
China
Prior art keywords
vulnerability
node
file
code
neural network
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
Application number
CN202010053062.4A
Other languages
English (en)
Other versions
CN111274134B (zh
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.)
Yangzhou University
Original Assignee
Yangzhou 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 Yangzhou University filed Critical Yangzhou University
Priority to CN202010053062.4A priority Critical patent/CN111274134B/zh
Publication of CN111274134A publication Critical patent/CN111274134A/zh
Application granted granted Critical
Publication of CN111274134B publication Critical patent/CN111274134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth 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)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质,方法包括:构建漏洞数据集;将漏洞数据集划分为训练集和测试集;漏洞文件代码图表示;漏洞特征提取;构建预测器,并利用该预测器预测代码文件中的漏洞。***用于实现上述方法过程,计算机设备和存储介质通过执行计算机程序能够实现上述方法过程。本发明可以更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系,并有效的识别一类漏洞,普适性和通用性更强,可以取代实际代码审计中人工制定漏洞指标的环节,使实际使用成本更低、应用领域更广、精度更高。

Description

基于图神经网络的漏洞识别与预测方法、***、计算机设备和 存储介质
技术领域
本发明属于软件工程领域,特别涉及一种基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质。
背景技术
漏洞识别与预测是软件维护过程中的重要组成部分。近年来,随着软件项目的规模扩张和复杂度提升,在软件开发过程中出现了大量的漏洞,如何准确高效地识别并预测漏洞已成为具有相当挑战性的工作。而在之前的工作中多采用由人类专家手工制定的特征或模式被机器学习算法作为输入来检测漏洞,然而由专家手工定义一些漏洞度量(如代码大小,圈复杂度等),成本过高且主观性较强,会导致较高的误报率和漏报率。已有的漏洞识别与预测工作大多都是面向静态分析场景的研究,没有考虑自身的语义特征。同时机器学习与深度学习发展迅速,许多模型都能为漏洞识别提供参考,但是种类繁多,没有统一高效的识别与预测模型,为进一步漏洞的修复造成了一定困难。
此外,目前已有一些工作使用机器学习的方法来识别软件漏洞的语法特征并进行漏洞的预测。如文献《To fear or not to fear that is the question:codecharacteristics of a vulnerable function with an existing exploit》中通过八个代码度量指标描述来自Linux内核和Apache HTTP服务器中的漏洞,通过机器学习的方法预测漏洞的可利用性,但还是停留在手工定义漏洞特征的层面。也有一些工作通过将图引入代码表示来以更细的粒度(函数级)来分析漏洞代码,如文献《Vulnerabilityextrapolation:assisted discovery of vulnerabilities using machine learning》中通过融合抽象语法树、控制流图以及程序依赖图形成代码属性图来表示源代码,但没有提出完整的识别预测模型。
发明内容
本发明的目的在于提供一种具有成本低、准确性高、应用范围广等特点的漏洞识别与预测方法、***、计算机设备和存储介质。
实现本发明目的的技术解决方案为:一种基于图神经网络的漏洞识别与预测方法,包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
进一步地,步骤1所述构建漏洞数据集,具体过程包括:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和所述描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
进一步地,步骤2所述将漏洞数据集划分为训练集和测试集,具体包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1 漏洞类型表
Figure BDA0002371884430000021
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
进一步地,步骤3所述漏洞文件代码图表示,具体过程包括:
步骤3-1,将所述漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
进一步地,步骤4所述漏洞特征提取,具体为:结合门控图神经网络GGNN的特征学习和门控递归单元实现漏洞特征提取;具体过程包括:
步骤4-1,初始化结点集合V中每个结点vj的状态向量hj (1)
步骤4-2,将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure BDA0002371884430000031
Figure BDA0002371884430000032
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
步骤4-3,根据信息量
Figure BDA0002371884430000033
构建重置门rj和更新门zj为:
Figure BDA0002371884430000034
Figure BDA0002371884430000035
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
步骤4-4,基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure BDA0002371884430000036
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure BDA0002371884430000041
若重置门
Figure BDA0002371884430000042
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
步骤4-5,利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure BDA0002371884430000043
Figure BDA0002371884430000044
式中,W和U为权重矩阵;
步骤4-6,基于当前时间步t的更新门
Figure BDA0002371884430000045
和当前时间步t的候选隐藏状态
Figure BDA0002371884430000046
求取当前时间步t的隐藏状态
Figure BDA0002371884430000047
Figure BDA0002371884430000048
在T'个时间步内迭代上述步骤4-2至步骤4-6,最后一次迭代后的状态向量
Figure BDA0002371884430000049
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure BDA00023718844300000410
进一步地,步骤4-1所述初始化结点集合V中每个结点vj的状态向量hj (1),具体过程包括:
针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数。
进一步地,步骤5所述构建预测器,并利用该预测器预测代码文件中的漏洞,具体包括:
步骤5-1,将漏洞特征作为预测器的输入端,构建预测器为:
Figure BDA00023718844300000411
步骤5-2,采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure BDA00023718844300000412
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
一种基于图神经网络的漏洞识别与预测***,所述***包括:
第一构建模块,用于构建漏洞数据集;
划分模块,用于将漏洞数据集划分为训练集和测试集;
图表示模块,用于实现漏洞文件代码图表示;
提取模块,用于实现漏洞特征提取;
第二构建模块,用于构建预测器,并利用该预测器预测代码文件中的漏洞。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
本发明与现有技术相比,其显著优点为:1)本发明不是直接对漏洞报告中提取的漏洞文件代码进行分析,而是先从图的角度对漏洞代码进行表示,能更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系;2)本发明首次提出通过从NVD中获得的CWE漏洞类型标签,对大量多项目漏洞报告数据进行标注,形成漏洞语料库,用来训练并达到对某一类特定类型漏洞的识别与预测;3)考虑到目前软件漏洞的高速增长,传统的手工定义漏洞特征进行漏洞识别的方法难度越来越大,本发明通过图神经网络这一深度学习方法,自动对输入的漏洞文件进行特征的提取,一定程度上可以减少误报率和漏报率;4)本发明使用词向量学习得到代码的结点表示,并将其作为图神经网络的输入,相较于纯粹的基于序列的训练模型(如LSTM),当输入为图形结构时,图神经网络更为灵活,可以解决图输入的无序性,更好的考虑漏洞代码的语义特征,为软件漏洞定位和修复的实际应用研究打下基础。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中基于图神经网络的漏洞识别与预测的方法的流程图。
图2为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,结合图1,本发明提出一种基于图神经网络的漏洞识别与预测方法,包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
进一步地,在其中一个实施例中,步骤1中构建漏洞数据集,具体过程包括:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
进一步地,在其中一个实施例中,步骤2中将漏洞数据集划分为训练集和测试集,具体包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1漏洞类型表
Figure BDA0002371884430000061
Figure BDA0002371884430000071
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
进一步地,在其中一个实施例中,步骤3中漏洞文件代码图表示,具体过程包括:
步骤3-1,将漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
采用本实施例的方案,不是直接对漏洞报告中提取的漏洞文件代码进行分析,而是先从图的角度对漏洞代码进行表示,能更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系。
进一步地,在其中一个实施例中,步骤4中漏洞特征提取,具体为:结合门控图神经网络GGNN的特征学习和门控递归单元实现漏洞特征提取;具体过程包括:
步骤4-1,初始化结点集合V中每个结点vj的状态向量hj (1)
步骤4-2,将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure BDA0002371884430000081
Figure BDA0002371884430000082
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
步骤4-3,根据信息量
Figure BDA0002371884430000083
构建重置门rj和更新门zj为:
Figure BDA0002371884430000084
Figure BDA0002371884430000085
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
步骤4-4,基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure BDA0002371884430000086
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure BDA0002371884430000087
若重置门
Figure BDA0002371884430000088
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
步骤4-5,利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure BDA0002371884430000089
Figure BDA00023718844300000810
式中,W和U为权重矩阵;
步骤4-6,基于当前时间步t的更新门
Figure BDA00023718844300000811
和当前时间步t的候选隐藏状态
Figure BDA00023718844300000812
求取当前时间步t的隐藏状态
Figure BDA0002371884430000091
Figure BDA0002371884430000092
在T'个时间步内迭代上述步骤4-2至步骤4-6,最后一次迭代后的状态向量
Figure BDA0002371884430000093
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure BDA0002371884430000094
采用本实施例的方案,将词向量学习得到代码的结点表示作为图神经网络的输入,相较于纯粹的基于序列的训练模型(如LSTM),当输入为图形结构时,图神经网络更为灵活,可以解决图输入的无序性,更好的考虑漏洞代码的语义特征,为软件漏洞定位和修复的实际应用研究打下基础。
进一步地,在其中一个实施例中,步骤4-1初始化结点集合V中每个结点vj的状态向量hj (1),具体过程包括:
针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数。
进一步地,在其中一个实施例中,步骤5构建预测器,并利用该预测器预测代码文件中的漏洞,具体包括:
步骤5-1,将漏洞特征作为预测器的输入端,构建预测器为:
Figure BDA0002371884430000095
步骤5-2,采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure BDA0002371884430000096
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
在一个实施例中,一种基于图神经网络的漏洞识别与预测***,该***包括:
第一构建模块,用于构建漏洞数据集;
划分模块,用于将漏洞数据集划分为训练集和测试集;
图表示模块,用于实现漏洞文件代码图表示;
提取模块,用于实现漏洞特征提取;
第二构建模块,用于构建预测器,并利用该预测器预测代码文件中的漏洞。
进一步地,在其中一个实施例中,上述第一构建模块包括:
采集单元,用于采集漏洞数据库NVD中的数据,包括漏洞报告;
提取单元,用于提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
筛选单元,用于利用一组与软件安全性相关的漏洞发生特征关键词和描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
进一步地,在其中一个实施例中,上述划分模块包括:
归并单元,用于对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1 漏洞类型表
Figure BDA0002371884430000101
划分单元,用于从漏洞数据集中随机选取部分状态为Modified的漏洞报告,并结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集
进一步地,在其中一个实施例中,上述图表示模块包括:
分解单元,用于将漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
语法分析单元,用于利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
词向量学习单元,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
图表示模块将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
进一步地,在其中一个实施例中,上述提取模块包括依次执行的:
初始化单元,用于初始化结点集合V中每个结点vj的状态向量hj (1),具体包括:针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数;
信息量求取单元,用于将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure BDA0002371884430000111
Figure BDA0002371884430000112
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
第一构建单元,用于根据信息量
Figure BDA0002371884430000113
构建重置门rj和更新门zj为:
Figure BDA0002371884430000114
Figure BDA0002371884430000115
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
判别单元,用于基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure BDA0002371884430000121
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure BDA0002371884430000122
若重置门
Figure BDA0002371884430000123
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
第一求取单元,用于利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure BDA0002371884430000124
Figure BDA0002371884430000125
式中,W和U为权重矩阵;
第二求取单元,用于基于当前时间步t的更新门
Figure BDA0002371884430000126
和当前时间步t的候选隐藏状态
Figure BDA0002371884430000127
求取当前时间步t的隐藏状态
Figure BDA0002371884430000128
Figure BDA0002371884430000129
在T'个时间步内迭代重复执行信息量求取单元至第二求取单元,最后一次迭代后的状态向量
Figure BDA00023718844300001210
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure BDA00023718844300001211
进一步地,在其中一个实施例中,上述第二构建模块包括:
第二构建单元,用于将漏洞特征作为预测器的输入端,构建预测器:
Figure BDA00023718844300001212
预测单元,用于采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure BDA00023718844300001213
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图2所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储多***数据融合数据过程中需要用到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多***数据融合方法。
本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述构建漏洞数据集,具体实现以下步骤:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述将漏洞数据集划分为训练集和测试集,具体实现以下步骤:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1 漏洞类型表
Figure BDA0002371884430000141
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述漏洞文件代码图表示,具体实现以下步骤:
步骤3-1,将漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述漏洞特征提取,具体实现以下步骤:
步骤4-1,初始化结点集合V中每个结点vj的状态向量hj (1):针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数;
步骤4-2,将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure BDA0002371884430000151
Figure BDA0002371884430000152
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
步骤4-3,根据信息量
Figure BDA0002371884430000153
构建重置门rj和更新门zj为:
Figure BDA0002371884430000154
Figure BDA0002371884430000155
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
步骤4-4,基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure BDA0002371884430000156
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure BDA0002371884430000157
若重置门
Figure BDA0002371884430000158
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
步骤4-5,利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure BDA0002371884430000159
Figure BDA00023718844300001510
式中,W和U为权重矩阵;
步骤4-6,基于当前时间步t的更新门
Figure BDA0002371884430000161
和当前时间步t的候选隐藏状态
Figure BDA0002371884430000162
求取当前时间步t的隐藏状态
Figure BDA0002371884430000163
Figure BDA0002371884430000164
在T'个时间步内迭代上述步骤4-2至步骤4-6,最后一次迭代后的状态向量
Figure BDA0002371884430000165
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure BDA0002371884430000166
进一步地,在其中一个实施例中,处理器执行计算机程序实现上述构建预测器,并利用该预测器预测代码文件中的漏洞,具体实现以下步骤:
步骤5-1,将漏洞特征作为预测器的输入端,构建预测器为:
Figure BDA0002371884430000167
步骤5-2,采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure BDA0002371884430000168
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述构建漏洞数据集,具体实现以下步骤:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述将漏洞数据集划分为训练集和测试集,具体实现以下步骤:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1 漏洞类型表
Figure BDA0002371884430000171
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述漏洞文件代码图表示,具体实现以下步骤:
步骤3-1,将漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述漏洞特征提取,具体实现以下步骤:
步骤4-1,初始化结点集合V中每个结点vj的状态向量hj (1):针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数;
步骤4-2,将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure BDA0002371884430000181
Figure BDA0002371884430000182
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
步骤4-3,根据信息量
Figure BDA0002371884430000183
构建重置门rj和更新门zj为:
Figure BDA0002371884430000184
Figure BDA0002371884430000185
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
步骤4-4,基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure BDA0002371884430000186
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure BDA0002371884430000191
若重置门
Figure BDA0002371884430000192
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
步骤4-5,利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure BDA0002371884430000193
Figure BDA0002371884430000194
式中,W和U为权重矩阵;
步骤4-6,基于当前时间步t的更新门
Figure BDA0002371884430000195
和当前时间步t的候选隐藏状态
Figure BDA0002371884430000196
求取当前时间步t的隐藏状态
Figure BDA0002371884430000197
Figure BDA0002371884430000198
在T'个时间步内迭代上述步骤4-2至步骤4-6,最后一次迭代后的状态向量
Figure BDA0002371884430000199
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure BDA00023718844300001910
进一步地,在其中一个实施例中,计算机程序被处理器执行实现上述构建预测器,并利用该预测器预测代码文件中的漏洞,具体实现以下步骤:
步骤5-1,将漏洞特征作为预测器的输入端,构建预测器为:
Figure BDA00023718844300001911
步骤5-2,采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure BDA00023718844300001912
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
本发明可以更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系,并有效的识别一类漏洞,普适性和通用性更强,可以取代实际代码审计中人工制定漏洞指标的环节,使实际使用成本更低、应用领域更广、精度更高。

Claims (10)

1.一种基于图神经网络的漏洞识别与预测方法,其特征在于,包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;
步骤4,漏洞特征提取;
步骤5,构建预测器,并利用该预测器预测代码文件中的漏洞。
2.根据权利要求1所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤1所述构建漏洞数据集,具体过程包括:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和所述描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集。
3.根据权利要求1或2所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤2所述将漏洞数据集划分为训练集和测试集,具体包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1漏洞类型表
Figure FDA0002371884420000011
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述表1对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
4.根据权利要求3所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤3所述漏洞文件代码图表示,具体过程包括:
步骤3-1,将所述漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数。
5.根据权利要求4所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤4所述漏洞特征提取,具体为:结合门控图神经网络GGNN的特征学习和门控递归单元实现漏洞特征提取;具体过程包括:
步骤4-1,初始化结点集合V中每个结点vj的状态向量hj (1)
步骤4-2,将每个结点向量作为门控图神经网络GGNN的输入端,假设邻居结点特征聚合的时间步总数即迭代次数阈值为T',获取第j个结点在时间步t即第t次迭代时的信息量
Figure FDA0002371884420000021
Figure FDA0002371884420000022
其中,t≤T',hj (t-1)表示在t-1次迭代时的结点j的状态向量,W为权重矩阵,b为偏差,T表示矩阵或向量转置,j=1,2,…,m;
步骤4-3,根据信息量
Figure FDA0002371884420000023
构建重置门rj和更新门zj为:
Figure FDA0002371884420000031
Figure FDA0002371884420000032
式中,σ(·)表示Sigmoid激活函数,Wz、Uz为更新门zj的权重矩阵,Wr、Ur为重置门rj的权重矩阵;
步骤4-4,基于重置门rj判断前一时间步t-1的结点状态即隐藏状态是否需要保留,具体过程包括:
对当前时间步t的重置门
Figure FDA0002371884420000033
的输出与前一时间步t-1的隐藏状态做乘法运算,即:
Figure FDA0002371884420000034
若重置门
Figure FDA0002371884420000035
中的元素值与0值的绝对差值小于预设阈值,则表明前一时间步t-1的隐藏状态元素为0,即丢弃前一时间步t-1的隐藏状态;反之,表示保留前一时间步t-1的隐藏状态;
步骤4-5,利用含激活函数tanh的全连接层求取当前时间步t的候选隐藏状态
Figure FDA0002371884420000036
Figure FDA0002371884420000037
式中,W和U为权重矩阵;
步骤4-6,基于当前时间步t的更新门
Figure FDA0002371884420000038
前一时间步t-1的状态向量
Figure FDA0002371884420000039
以及当前时间步t的候选隐藏状态
Figure FDA00023718844200000310
求取当前时间步t的隐藏状态
Figure FDA00023718844200000311
Figure FDA00023718844200000312
在T'个时间步内迭代上述步骤4-2至步骤4-6,最后一次迭代后的状态向量
Figure FDA00023718844200000313
表示所有结点的最终结点表示矩阵,即漏洞特征:
Figure FDA00023718844200000314
6.根据权利要求5所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤4-1所述初始化结点集合V中每个结点vj的状态向量hj (1),具体过程包括:
针对每个结点vj,将其第一维用xj表示,其余维填充为0,由此初始化结点vj的状态向量为hj (1)∈Rz,z≥d,其中xj表示对应的结点vj的d维词向量,z表示结点的维数。
7.根据权利要求6所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤5所述构建预测器,并利用该预测器预测代码文件中的漏洞,具体包括:
步骤5-1,将漏洞特征作为预测器的输入端,构建预测器为:
Figure FDA0002371884420000041
步骤5-2,采用交叉熵作为代价函数,通过最小化代价函数获得最优预测函数f:
Figure FDA0002371884420000042
式中,L(·)表示交叉熵代价函数,ci表示第i个输入的代码文件,yi表示输出,输出结果为0表示输入的代码文件无模型训练的漏洞,输出结果为1表示输入的代码文件存在模型训练的漏洞。
8.一种基于图神经网络的漏洞识别与预测***,其特征在于,所述***包括:
第一构建模块,用于构建漏洞数据集;
划分模块,用于将漏洞数据集划分为训练集和测试集;
图表示模块,用于实现漏洞文件代码图表示;
提取模块,用于实现漏洞特征提取;
第二构建模块,用于构建预测器,并利用该预测器预测代码文件中的漏洞。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202010053062.4A 2020-01-17 2020-01-17 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质 Active CN111274134B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010053062.4A CN111274134B (zh) 2020-01-17 2020-01-17 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010053062.4A CN111274134B (zh) 2020-01-17 2020-01-17 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111274134A true CN111274134A (zh) 2020-06-12
CN111274134B CN111274134B (zh) 2023-07-11

Family

ID=71001094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010053062.4A Active CN111274134B (zh) 2020-01-17 2020-01-17 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111274134B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783100A (zh) * 2020-06-22 2020-10-16 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN111897946A (zh) * 2020-07-08 2020-11-06 扬州大学 漏洞补丁推荐方法、***、计算机设备和存储介质
CN112182585A (zh) * 2020-09-29 2021-01-05 湖南大学 源代码漏洞检测方法、***及存储介质
CN112288079A (zh) * 2020-11-17 2021-01-29 北京轩宇信息技术有限公司 图神经网络模型训练方法、软件缺陷检测方法及***
CN112364352A (zh) * 2020-10-21 2021-02-12 扬州大学 可解释性的软件漏洞检测与推荐方法及***
CN112989363A (zh) * 2021-05-19 2021-06-18 北京邮电大学 漏洞定位方法、装置、电子设备和存储介质
CN113076543A (zh) * 2021-03-22 2021-07-06 四川大学 一种针对社交网络中漏洞利用知识库的构建方法
CN113158194A (zh) * 2021-03-30 2021-07-23 西北大学 一种基于多关系图网络的漏洞模型的构建方法及检测方法
CN113157917A (zh) * 2021-03-15 2021-07-23 西北大学 基于OpenCL的优化分类模型的建立、优化分类方法及***
CN113326187A (zh) * 2021-05-25 2021-08-31 扬州大学 数据驱动的内存泄漏智能化检测方法及***
CN113343248A (zh) * 2021-07-19 2021-09-03 北京有竹居网络技术有限公司 一种漏洞识别方法、装置、设备和存储介质
CN113360915A (zh) * 2021-06-09 2021-09-07 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113378176A (zh) * 2021-06-11 2021-09-10 大连海事大学 一种基于图神经网络检测带有权重偏差的软件漏洞识别方法
CN113641586A (zh) * 2021-02-26 2021-11-12 北京北大软件工程股份有限公司 软件源代码缺陷检测方法、***、电子设备及储存介质
CN113742733A (zh) * 2021-08-09 2021-12-03 扬州大学 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
CN113810389A (zh) * 2021-08-31 2021-12-17 杭州电子科技大学 一种dhr***漏洞修补过程中漏洞选取方法及装置
JP2022000805A (ja) * 2020-12-25 2022-01-04 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 語句処理方法、機器及び記憶媒体
CN114676438A (zh) * 2022-04-15 2022-06-28 电子科技大学 面向硬件***多维脆弱性的快速探测方法
WO2023092511A1 (en) * 2021-11-26 2023-06-01 Huawei Technologies Co.,Ltd. Methods and apparatuses for software vulnerability detection
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160300063A1 (en) * 2014-08-15 2016-10-13 Securisea, Inc. Software vulnerabilities detection system and methods
CN109977205A (zh) * 2019-03-08 2019-07-05 中南大学 一种计算机自主学习源代码的方法
CN110018820A (zh) * 2019-04-08 2019-07-16 浙江大学滨海产业技术研究院 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及***
CN110232280A (zh) * 2019-06-20 2019-09-13 北京理工大学 一种基于树结构卷积神经网络的软件安全漏洞检测方法
CN110245496A (zh) * 2019-05-27 2019-09-17 华中科技大学 一种源代码漏洞检测方法及检测器和其训练方法及***
US20190370473A1 (en) * 2018-05-30 2019-12-05 Nvidia Corporation Detecting vulnerabilities to fault injection in computer code using machine learning

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160300063A1 (en) * 2014-08-15 2016-10-13 Securisea, Inc. Software vulnerabilities detection system and methods
US20190370473A1 (en) * 2018-05-30 2019-12-05 Nvidia Corporation Detecting vulnerabilities to fault injection in computer code using machine learning
CN109977205A (zh) * 2019-03-08 2019-07-05 中南大学 一种计算机自主学习源代码的方法
CN110018820A (zh) * 2019-04-08 2019-07-16 浙江大学滨海产业技术研究院 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及***
CN110245496A (zh) * 2019-05-27 2019-09-17 华中科技大学 一种源代码漏洞检测方法及检测器和其训练方法及***
CN110232280A (zh) * 2019-06-20 2019-09-13 北京理工大学 一种基于树结构卷积神经网络的软件安全漏洞检测方法

Cited By (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783100A (zh) * 2020-06-22 2020-10-16 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN111783100B (zh) * 2020-06-22 2022-05-17 哈尔滨工业大学 基于图卷积网络对代码图表示学习的源代码漏洞检测方法
CN111897946A (zh) * 2020-07-08 2020-11-06 扬州大学 漏洞补丁推荐方法、***、计算机设备和存储介质
CN111897946B (zh) * 2020-07-08 2023-09-19 扬州大学 漏洞补丁推荐方法、***、计算机设备和存储介质
CN112182585B (zh) * 2020-09-29 2024-04-26 湖南大学 源代码漏洞检测方法、***及存储介质
CN112182585A (zh) * 2020-09-29 2021-01-05 湖南大学 源代码漏洞检测方法、***及存储介质
CN112364352B (zh) * 2020-10-21 2023-11-24 扬州大学 可解释性的软件漏洞检测与推荐方法及***
CN112364352A (zh) * 2020-10-21 2021-02-12 扬州大学 可解释性的软件漏洞检测与推荐方法及***
CN112288079B (zh) * 2020-11-17 2024-05-14 北京轩宇信息技术有限公司 图神经网络模型训练方法、软件缺陷检测方法及***
CN112288079A (zh) * 2020-11-17 2021-01-29 北京轩宇信息技术有限公司 图神经网络模型训练方法、软件缺陷检测方法及***
JP7242797B2 (ja) 2020-12-25 2023-03-20 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 語句処理方法、機器及び記憶媒体
JP2022000805A (ja) * 2020-12-25 2022-01-04 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 語句処理方法、機器及び記憶媒体
CN113641586A (zh) * 2021-02-26 2021-11-12 北京北大软件工程股份有限公司 软件源代码缺陷检测方法、***、电子设备及储存介质
CN113157917A (zh) * 2021-03-15 2021-07-23 西北大学 基于OpenCL的优化分类模型的建立、优化分类方法及***
CN113157917B (zh) * 2021-03-15 2023-03-24 西北大学 基于OpenCL的优化分类模型的建立、优化分类方法及***
CN113076543B (zh) * 2021-03-22 2022-02-08 四川大学 一种针对社交网络中漏洞利用知识库的构建方法
CN113076543A (zh) * 2021-03-22 2021-07-06 四川大学 一种针对社交网络中漏洞利用知识库的构建方法
CN113158194A (zh) * 2021-03-30 2021-07-23 西北大学 一种基于多关系图网络的漏洞模型的构建方法及检测方法
CN112989363A (zh) * 2021-05-19 2021-06-18 北京邮电大学 漏洞定位方法、装置、电子设备和存储介质
CN113326187A (zh) * 2021-05-25 2021-08-31 扬州大学 数据驱动的内存泄漏智能化检测方法及***
CN113326187B (zh) * 2021-05-25 2023-11-24 扬州大学 数据驱动的内存泄漏智能化检测方法及***
CN113360915A (zh) * 2021-06-09 2021-09-07 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113360915B (zh) * 2021-06-09 2023-09-26 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113378176B (zh) * 2021-06-11 2023-06-23 大连海事大学 一种基于图神经网络检测带有权重偏差的软件漏洞识别方法
CN113378176A (zh) * 2021-06-11 2021-09-10 大连海事大学 一种基于图神经网络检测带有权重偏差的软件漏洞识别方法
CN113343248A (zh) * 2021-07-19 2021-09-03 北京有竹居网络技术有限公司 一种漏洞识别方法、装置、设备和存储介质
CN113742733B (zh) * 2021-08-09 2023-05-26 扬州大学 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
CN113742733A (zh) * 2021-08-09 2021-12-03 扬州大学 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置
CN113810389B (zh) * 2021-08-31 2022-10-14 杭州电子科技大学 一种dhr***漏洞修补过程中漏洞选取方法及装置
CN113810389A (zh) * 2021-08-31 2021-12-17 杭州电子科技大学 一种dhr***漏洞修补过程中漏洞选取方法及装置
WO2023092511A1 (en) * 2021-11-26 2023-06-01 Huawei Technologies Co.,Ltd. Methods and apparatuses for software vulnerability detection
CN114676438B (zh) * 2022-04-15 2023-06-09 电子科技大学 面向硬件***多维脆弱性的快速探测方法
CN114676438A (zh) * 2022-04-15 2022-06-28 电子科技大学 面向硬件***多维脆弱性的快速探测方法
CN117290238A (zh) * 2023-10-10 2023-12-26 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和***
CN117290238B (zh) * 2023-10-10 2024-04-09 湖北大学 基于异质类关系图神经网络的软件缺陷预测方法和***

Also Published As

Publication number Publication date
CN111274134B (zh) 2023-07-11

Similar Documents

Publication Publication Date Title
CN111274134A (zh) 基于图神经网络的漏洞识别与预测方法、***、计算机设备和存储介质
CN109522192B (zh) 一种基于知识图谱和复杂网络组合的预测方法
CN114124567A (zh) 基于大数据漏洞挖掘的云服务处理方法及人工智能***
US11271957B2 (en) Contextual anomaly detection across assets
CN116247824B (zh) 电力设备的控制方法及其***
CN112115326B (zh) 一种以太坊智能合约的多标签分类和漏洞检测方法
CN114157507A (zh) 采用大数据分析的云服务漏洞分析方法及人工智能***
CN112989363A (zh) 漏洞定位方法、装置、电子设备和存储介质
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法
Chaudhuri et al. Functional criticality analysis of structural faults in AI accelerators
CN112783513B (zh) 一种代码风险检查方法、装置及设备
CN117077018B (zh) 基于机器学习的数据处理方法、装置及存储介质
CN113886832A (zh) 智能合约漏洞检测方法、***、计算机设备和存储介质
CN117725592A (zh) 一种基于有向图注意力网络的智能合约漏洞检测方法
CN112416800A (zh) 智能合约的测试方法、装置、设备及存储介质
CN117312979A (zh) 对象分类方法、分类模型训练方法及电子设备
CN115758385A (zh) 一种物联固件漏洞的检测方法、***、设备及介质
US20220309335A1 (en) Automated generation and integration of an optimized regular expression
Moradi et al. Machine learning-assisted fault injection
CN116628695A (zh) 基于多任务学习的漏洞挖掘方法及装置
CN114637664A (zh) 一种针对安卓应用程序性质的检测方法及装置
US20180260234A1 (en) Device behavior modeling based on empirical data
EP3671467A1 (en) Gui application testing using bots
CN117556425B (zh) 基于图神经网络的智能合约漏洞检测方法、***和设备
Delgrange et al. Distillation of RL policies with formal guarantees via variational abstraction of Markov decision processes (technical report)

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