基于图卷积网络的软件漏洞检测方法及装置制造方法及图纸

技术编号:25480094 阅读:65 留言:0更新日期:2020-09-01 23:01
本发明专利技术属于计算机安全技术领域,特别涉及一种基于图卷积网络的软件漏洞检测方法及装置,该方法包含:收集代码样本数据集;针对代码样本数据集,基于抽象语法树和控制流图提取以代码行为单位的代码特征语义表达形式;通过已训练学习后的图卷积网络对提取的代码特征语义表达形式进行分类检测,依据分类检测结果获取代码中软件漏洞。本发明专利技术通过提取代码的抽象语法树、控制流和数据流信息,形成以代码行为单位的代码特征语义表达方式,通过使用深度学习中图卷积网络和基于抽象语法树提取的数据流分析出来的特性做检测来分析代码中存在漏洞的可能性,有效提高漏洞检测效率和准确率,保证软件代码可靠性,提高软件质量,对软件安全应用具有重要的意义。

【技术实现步骤摘要】
基于图卷积网络的软件漏洞检测方法及装置
本专利技术属于计算机安全
,特别涉及一种基于图卷积网络的软件漏洞检测方法及装置。
技术介绍
现在软件技术深入到了生活中的各个方面,因此这些系统本身的安全性就越来越重要。但是软件中存在的各种漏洞严重威胁了系统的安全。在2015年-2017年间,总共有27583个漏洞被披露出来,平均每年发现9194个漏洞。相比2006年到2014年之间平均每年5400个漏洞被公开来说,发现漏洞的数量增加了70%多。其中有一小部分未纰漏的漏洞被称为0day漏洞深受攻击者青睐。2015年发现得0day漏洞数量剧增,平均大约每周一个。但是到目前为止,主要的关键漏洞还是通过安全专家手工分析发现的。漏洞发现是一项繁琐的工作,需要对系统、编程语言和各种各样的攻击场景有深入的了解。这个工作的困难程度导致了对新的漏洞分析挖掘方法的强烈需求。在这个领域的研究主要集中在开发自动化规范的方法流程来加速代码的分析过程,主要有模型检测以及符号执行,都是通过检代码的一些属性来推导存在漏洞的可能。这些方法在理论环境中效果很好,但是现实场景里因为软件本文档来自技高网...

【技术保护点】
1.一种基于图卷积网络的软件漏洞检测方法,其特征在于,包含:/nA)收集用于检测的代码样本数据集;/nB)针对代码样本数据集,基于抽象语法树和控制流图提取以代码行为单位的代码特征语义表达形式;/nC)通过已训练学习后的图卷积网络对提取的代码特征语义表达形式进行分类检测,依据分类检测结果获取代码中软件漏洞。/n

【技术特征摘要】
1.一种基于图卷积网络的软件漏洞检测方法,其特征在于,包含:
A)收集用于检测的代码样本数据集;
B)针对代码样本数据集,基于抽象语法树和控制流图提取以代码行为单位的代码特征语义表达形式;
C)通过已训练学习后的图卷积网络对提取的代码特征语义表达形式进行分类检测,依据分类检测结果获取代码中软件漏洞。


2.根据权利要求1所述的基于图卷积网络的软件漏洞检测方法,其特征在于,A)中,将代码样本数据集划分为训练集、调优集和测试集,利用训练集和调优集依次对图卷积网络进行训练学习,利用测试集对训练学习后的图卷积网络进行测试。


3.根据权利要求1所述的基于图卷积网络的软件漏洞检测方法,B)中,提取代码特征语义表达形式过程中,首先,提取代码的抽象语法树;然后基于抽象语法树生成代码的控制流图;根据控制流图中控制流路径的程序执行过程,以代码行为单位获取变量有效定义集合;将代码行中变量使用函数、污点变量和脆弱性标记作为代码特征,形成特征矩阵。


4.根据权利要求3所述的基于图卷积网络的软件漏洞检测方法,其特征在于,B)中获取变量有效定义集合,根据控制流路径执行过程中,将对于执行过程中执行点的所有定义过且没有被重新复制的变量定义作为有效定义,依据该有效定义遍历控制流图中每行代码获取每行代码的有效定义集合。


5.根据权利要求3或4所述的基于图卷积网络的软件漏洞检测方法,其特征在于,有效定义集合依据变量使用和定义分为输入集合、输出集合、生成集合和销毁集合,其中,每行代码中,所有进来的变量定义归类到输入集合,通过控制流进来的变量定义且未被当前行代码重写或销毁、以及当前行变量定义归类到输出集合,当前行代码变量定义归类到生成集合,当前行代码重写的来自于其他地方的定义变量归类到销毁集合;分析各行代码输入集合,构建每个定义变量的使用-定义链,将输入集合、输出集合、生成集合和销毁集合表示成位向量,代码中发生的每个赋值对应唯一标志位。


6.根据权利要求4所述的基于图卷积网络的软件漏洞检测方法...

【专利技术属性】
技术研发人员:孟罡岳佳郑秋生韩林崔平非马超
申请(专利权)人:上海信息安全工程技术研究中心
类型:发明
国别省市:上海;31

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

1