当前位置: 首页 > 专利查询>南通大学专利>正文

基于图神经网络的软件源码漏洞检测方法技术

技术编号:37819692 阅读:9 留言:0更新日期:2023-06-09 09:53
本发明专利技术涉及网络通讯信息安全技术领域,具体涉及基于图神经网络的软件源码漏洞检测方法。本发明专利技术提取软件源码漏洞特征,针对漏洞特征进行词义分析。利用图神经网络,构建软件源码漏洞检测模型,对源码漏洞进行二次检测,去掉重读的源码,得到正确的代码。通过该检测模型的训练,每个漏洞特征节点将自身的特征信息传递给邻域节点,从而将漏洞特征进一步聚合并融合。再通过激活函数,将图神经网络中的漏洞节点信息进行变换,增强模型的检测能力。无论漏洞节点与邻域节点如何变化,最终的节点中心长度保持一致。在多级权重实时更新的条件下,聚合的信息特征也逐一采集到图节点中,由此获取的表征数据更加真实,最大限度地提高了源码漏洞检测效果。漏洞检测效果。漏洞检测效果。

【技术实现步骤摘要】
基于图神经网络的软件源码漏洞检测方法


[0001]本专利技术涉及网络通讯信息安全
,具体涉及基于图神经网络的软件源码漏洞检测方法。

技术介绍

[0002]近些年来,数字化时代降临,信息安全形势较为严峻。一方面,需要面对网络数据的外部攻击,另一方面需要解决网络数据的内部攻击。软件源码泄露问题作为内部攻击的主要问题,其检测效果亟待加强。
[0003]软件源码漏洞是目前亟待解决的数据安全问题,设计相应的检测方法势在必行。在源码出现漏洞时,应用程序受到源码漏洞的影响,可以使攻击者在不与用户作出任何交互的条件下自行应答,从而出现信息泄露的问题。针对数据安全的源码漏洞问题,现有技术提出了多种解决方案。其中,基于CNN

GAP可解释性模型的方法,与基于关系图卷积网络的方法的应用较为广泛。基于CNN

GAP可解释性模型的方法,主要是通过CAM类的激活函数,对代码存在的漏洞情况进行标记,并利用CNN

GAP卷积神经网络

全局平均池化模型,对已经标记漏洞进行检测,检测完成之后将正确代码输出,将存在漏洞的代码进行处理,保证漏洞检测的精准度。常规的漏洞检测方法通过激活函数的方式,标识出存在漏洞的代码,并未对代码中的词义进行分析,导致检测效果不佳。
[0004]基于关系图卷积网络的方法,主要是利用RGCN关系图卷积网络模型,通过训练预测源码中的漏洞,在真实的代码漏洞上进行测试,由此提高漏洞检测精准度。以上两种方法虽然在一定程度上提高了漏洞检测的精准度,但是CNN

GAP模型并未对其他代码进行检测,相关语义特征与漏洞特征存在混淆,影响了检测效果。而RGCN模型训练的漏洞虽然较为准确,但是其训练时间较长,无法适应源码漏洞检测环境,导致检测效果不佳。

技术实现思路

[0005]为了克服上述现有技术的缺点,本专利技术的目的在于提供基于图神经网络的软件源码漏洞检测方法。
[0006]本专利技术为实现上述专利技术目的,采取的技术方案如下:
[0007]基于图神经网络的软件源码漏洞检测方法,包括以下步骤:
[0008]步骤1、将源码中的语言利用向量化表示,从源码的上下文考量,量化源码输入路径,同时增加与漏洞检测相关的数据信息,利用注意力机制,将上下文源码数据融合到一起,用一个单一的向量表示,从而提取出源码漏洞特征;
[0009]步骤2、对于每条源码输入路径,将其转化为图神经网络作为输入数值,输入路径中的每一个节点都存在一个源码词语映射,由此构成了一个大型的节点源码语料库;
[0010]步骤3、任意一条源码输入路径中,通过一个或多个漏洞源码信息,则增加该条路径的漏洞权重,路径中任意一个词向量P={NodeM
i
,NodeM
i+1


,NodeM
n
},经过漏洞代码存在的漏洞节点之后,相同的权重赋予在多个漏洞节点上,而这条路径上并未赋予任何权重,
通过是否增加权重来判别漏洞源码输入路径与正常源码输入路径;
[0011]步骤4、从漏洞源码输入路径中,对每一个向量元素进行特征提取,通过图神经网络更新路径中涉及的每个权重参数,组成一个完整的漏洞特征,其表达式如下:
[0012]T
i
=δ(K
·
X
i
·
j+n
‑1+B)
[0013][0014]式中,T
i
为漏洞源码输入路径中每一个漏洞的特征参数;δ为激活函数;K为权重的权值矩阵;X
i
·
j+n
‑1为漏洞源码输入路径的向量元素;B为偏置因子;为通过图神经网络重新组成的漏洞特征;tanh为非线性激活函数;
[0015]步骤5、随机选取了一个漏洞特征向量,随机游走在源码输入路径中,步长为5,测试次数为100;
[0016]步骤6、游走的过程中,碰到的其他漏洞特征向量节点定义为“邻居”,对“邻居”进行随机采集,采集到的“邻居”节点的特征向量值小于随机漏洞特征向量值,则重新采集,否则将其与随机漏洞特征向量进行聚合,聚合公式如下:
[0017][0018]式中,s
jk
为聚合后的漏洞信息;MEAN为聚合器聚合算法;s
jk
‑1为“邻居”的漏洞信息;b(j)为“邻居”的特征向量size值;
[0019]步骤7、将融合后的漏洞信息在图神经网络上游走,图节点不断更新直至稳定的过程中,根据递归函数施加相应的检测约束,并将实时更新的图节点进行卷积层堆叠表示;
[0020]步骤8、在新的漏洞信息不变,图节点达到稳定的状态下,获取到了图中更高阶的邻域数据,将此数据作为图神经网络检测模型的检测数据,则构建出的检测模型表达式如下:
[0021][0022]式中,s
ik+1
为漏洞检测模型表达式;s
ij
为节点i在j层的特征信息;v为归一化因子;K
(k)
为节点k的直接权重;ε为激活函数。
[0023]作为本专利技术的优选技术方案:在源码语料库上进行向量表示,得到词语与其对应向量的映射关系,公式如下:
[0024][0025]式中,L
i
为源码词语与向量之间的关系表达式;NodeM
k
为源码输入路径的第k个词向量;NodeM
j
为源码输入路径的第j个词向量;H{NodeM
k
|NodeM
j
}为节点损失函数。
[0026]本专利技术所述的基于图神经网络的软件源码漏洞检测方法,采用以上技术方案与现有技术相比,具有以下技术效果:
[0027]本专利技术通过该检测模型的训练,每个漏洞特征节点将自身的特征信息传递给邻域节点,从而将漏洞特征进一步聚合并融合。再通过激活函数,将图神经网络中的漏洞节点信息进行变换,增强模型的检测能力。无论漏洞节点与邻域节点如何变化,最终的节点中心长度保持一致。在多级权重实时更新的条件下,聚合的信息特征也逐一采集到图节点中,由此
获取的表征数据更加真实,最大限度地提高了源码漏洞检测效果。
附图说明
[0028]图1为本专利技术实施例中源码漏洞检测流程图;
[0029]图2为本专利技术实施例中图神经网络分类图;
[0030]图3为本专利技术实施例中源码归一化处理前的格式图;
[0031]图4为本专利技术实施例中源码归一化处理后的格式图。
具体实施方式
[0032]下面结合附图详细的描述本专利技术的作进一步的解释说明,以使本领域的技术人员可以更深入地理解本专利技术并能够实施,但下面通过参考实例仅用于解释本专利技术,不作为本专利技术的限定。
[0033]基于图神经网络的软件源码漏洞检测方法,包括以下步骤:步骤1、将源码中的语言利用向量化表示,从源码的上下文考量,量化源码输入路径,同时增加与漏本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于图神经网络的软件源码漏洞检测方法,其特征在于,包括以下步骤:步骤1、将源码中的语言利用向量化表示,从源码的上下文考量,量化源码输入路径,同时增加与漏洞检测相关的数据信息,利用注意力机制,将上下文源码数据融合到一起,用一个单一的向量表示,从而提取出源码漏洞特征;步骤2、对于每条源码输入路径,将其转化为图神经网络作为输入数值,输入路径中的每一个节点都存在一个源码词语映射,由此构成了一个大型的节点源码语料库;步骤3、任意一条源码输入路径中,通过一个或多个漏洞源码信息,则增加该条路径的漏洞权重,路径中任意一个词向量P={NodeM
i
,NodeM
i+1


,NodeM
n
},经过漏洞代码存在的漏洞节点之后,相同的权重赋予在多个漏洞节点上,而这条路径上并未赋予任何权重,通过是否增加权重来判别漏洞源码输入路径与正常源码输入路径;步骤4、从漏洞源码输入路径中,对每一个向量元素进行特征提取,通过图神经网络更新路径中涉及的每个权重参数,组成一个完整的漏洞特征,其表达式如下:T
i
=δ(K
·
X
i
·
j+n
‑1+B)式中,T
i
为漏洞源码输入路径中每一个漏洞的特征参数;δ为激活函数;K为权重的权值矩阵;X
i
·
j+n
‑1为漏洞源码输入路径的向量元素;B为偏置因子;为通过图神经网络重新组成的漏洞特征;tanh为非线性激活函数;步骤5、随机选取了一个漏洞特征...

【专利技术属性】
技术研发人员:张金宝宗烜逸瞿燕周子杰
申请(专利权)人:南通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1