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

一种基于图神经网络的细粒度源代码漏洞检测方法技术

技术编号:24457014 阅读:61 留言:0更新日期:2020-06-10 15:51
本发明专利技术公开了一种基于图神经网络的细粒度源代码漏洞检测方法,包括以下:A,对于一个软件的所有源代码,抽取源代码中函数的代码属性图,将代码属性图进行向量化表示,向量化表示包括节点属性、图结构的向量化表示;B,使用图注意力网络抽取代码特征,对所有语句进行处理得到最终的数据集;C,训练漏洞检测模型,通过测试集上的效果确定最终的模型。本发明专利技术所提的源代码漏洞检测方法具有更高的自动化程度,减少对领域专家知识的依赖,大大节约代码审计的成本,提高代码审计的效率,更好地保留源代码中地语法和语义信息,同时使用图注意网络能更有目的性地学习语句的向量化表示,实现更细粒度的语句级别的漏洞检测。

A fine-grained source code vulnerability detection method based on graph neural network

【技术实现步骤摘要】
一种基于图神经网络的细粒度源代码漏洞检测方法
本专利技术涉及网络安全
,尤其涉及一种基于图神经网络的细粒度源代码漏洞检测方法。
技术介绍
软件作为信息化社会中不可或缺的一部分发挥着越来越重要的作用,它不仅和个人的日常生活密不可分也和社会的发展息息相关。然而软件是一把双刃剑,它在为个人和社会提供便利的服务的同时,软件中潜在的漏洞也可能会对个人和社会造成极大的损失。软件中的漏洞往往是不可避免地,一方面是由于软件在设计、开发、部署过程中很难做到不存在问题,另一方面则是由于商业效益原因软件开发周期不能太长,进一步增加了软件存在漏洞的风险。为了减少软件中漏洞,提高软件质量,软件漏洞检测技术应运而生。漏洞检测技术就是通过检查软件的源代码或者软件的执行过程,根据经验、已知的漏洞模式、软件的执行结果等判断软件是否存在漏洞。现有的漏洞检测技术按照是否需要执行软件分为静态的方法和动态的方法。静态的漏洞检测方法无需运行软件,通过分析软件的源代码或二进制文件,寻找软件中的漏洞,成熟的方法主要有污点分析、安全规则检查等。静态分析的方法通常需要很强的专家知识本文档来自技高网...

【技术保护点】
1.一种基于图神经网络的细粒度源代码漏洞检测方法,其特征在于,包括以下步骤:/n步骤A,对于一个软件的所有源代码,抽取源代码中函数的代码属性图,将代码属性图进行向量化表示,向量化表示包括节点属性、图结构的向量化表示;/n步骤B,使用图注意力网络抽取代码特征,将向量化表示的代码属性图输入到图注意力网络中,学习得到节点的抽象向量表示,从节点向量表示中提取函数中每一语句的向量表示x,根据语句是否存在漏洞,为语句添加标签y,对所有语句进行处理得到最终的数据集;/n步骤C,训练漏洞检测模型,将数据集分为训练集、测试集,将训练集的数据输入到一个卷积神经网络中进行训练,通过在测试集上的效果进行网络参数的调整...

【技术特征摘要】
1.一种基于图神经网络的细粒度源代码漏洞检测方法,其特征在于,包括以下步骤:
步骤A,对于一个软件的所有源代码,抽取源代码中函数的代码属性图,将代码属性图进行向量化表示,向量化表示包括节点属性、图结构的向量化表示;
步骤B,使用图注意力网络抽取代码特征,将向量化表示的代码属性图输入到图注意力网络中,学习得到节点的抽象向量表示,从节点向量表示中提取函数中每一语句的向量表示x,根据语句是否存在漏洞,为语句添加标签y,对所有语句进行处理得到最终的数据集;
步骤C,训练漏洞检测模型,将数据集分为训练集、测试集,将训练集的数据输入到一个卷积神经网络中进行训练,通过在测试集上的效果进行网络参数的调整,通过测试集上的效果确定最终的模型。


2.如权利要求1所述的一种基于图神经网络的细粒度源代码漏洞检测方法,其特征在于,所述步骤A具体为:
步骤A-1),将代码属性图的节点进行向量化表示,代码属性图的节点属性包含代码和类型两个属性;代码属性的内容为标志序列,以所有的标志的集合作为词库,使用词嵌入模型将标志转换成数值向量表示,进一步将代码属性表示成标志向量的均值Vcode;类型属性表示节点的类型,使用一位热编码将其表示成数值向量Vtype,最终节点属性Vnode由Vcode和Vtype拼接而成;
步骤A-2),将代码属性图的图结构进行向量化表示,CPG图结构由邻接矩阵A表示,代码属性图中边的类型包括抽象语法树的边EAST、控制流图的边ECFG,在邻接矩阵中用1表示EAST,用...

【专利技术属性】
技术研发人员:金舒原吴跃隆
申请(专利权)人:中山大学
类型:发明
国别省市:广东;44

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

1