[发明专利]一种基于神经网络与深度学习的C/C++漏洞静态检测方法有效
申请号: | 202011519232.X | 申请日: | 2020-12-21 |
公开(公告)号: | CN112560036B | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 钱叶魁;付才;韩兰胜;杨瑞朋;黄浩;雒朝峰;杜江;时晨航 | 申请(专利权)人: | 中国人民解放军陆军炮兵防空兵学院;华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N3/04;G06N3/08 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 辛海明 |
地址: | 450052 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 神经网络 深度 学习 c++ 漏洞 静态 检测 方法 | ||
1.一种基于神经网络与深度学习的C/C++漏洞静态检测方法,其特征在于,该方法包括如下步骤:
S1、对待检测的源码进行数据清洁,即去除与漏洞挖掘的无关部分,简化源代码的内容与格式;利用控制流与数据流进行代码切片;将代码切片中的自定义的变量名和函数名进行替换,然后转换为CVDF-LZW编码的输入向量;
S2、将输入向量转化为等长的C/C++源代码漏洞静态检测框架(CVDF)神经网络的输入,并进行归一化处理;通过一个全连接矩阵将归一化后的向量的关键字信息输入到14个神经元中,输出是一个14维向量;将归一化后的向量输入缓冲区溢出处理神经网络、格式化字符串处理神经网络、数组越界处理神经网络、类型转换处理神经网络、数字错误处理神经网络和指针错误及内存分配处理神经网络,输出是漏洞特征向量中相应操作维度向量;将神经网络的输出和神经元的输出整合成35维漏洞特征向量;
S3、在漏洞特征向量中以非全连接的形式提取有关联的神经元,通过线性函数转换得到一个6维的输出向量,向量中的每一维数值是漏洞特征向量对应种类关键字和关键操作数值与权重向量乘积之和,即漏洞类型特征值;通过softmax多分类层将对应的漏洞类型特征值转换为相应的概率值,输出结果是一个6维向量,向量的每一维度均为一个在0-1之间的数值,对应该种类型漏洞的发生概率预测值;
其中,所述缓冲区溢出处理神经网络包括:若关键字匹配提取层的输出向量中有关缓冲区溢出的维度均为0,则不调用缓冲区溢出处理神经网络,并自动在相应关键操作维度处标记为0,否则需要调用归一化后的向量,使用bi-lstm双向长短期记忆的神经网络结构,输出一个三维向量;所述格式化字符串处理神经网络包括:若关键字匹配提取层的输出向量中有关格式化字符串的维度均为0,则不调用格式化字符串处理神经网络,并自动在相应关键操作维度处标记为0,否则需要调用归一化后的向量,使用bi-lstm双向长短期记忆的神经网络结构,输出一个二维向量;所述数字错误处理神经网络包括:无条件调用bi-lstm双向长短期记忆的神经网络,输出一个二维向量;所述数组越界处理神经网络包括:无条件调用bi-lstm双向长短期记忆的神经网络,输出一个二维向量;所述指针错误和内存分配处理神经网络包括:无条件调用bi-lstm双向长短期记忆的神经网络,输出一个十维向量;所述类型转换处理神经网络包括:使用正向传播的神经网络,输出一个二维向量。
2.权利要求1所述的基于神经网络与深度学习的C/C++漏洞静态检测方法,其特征在于,所述与漏洞挖掘的无关部分包括头文件和注释。
3.权利要求1所述的基于神经网络与深度学习的C/C++漏洞静态检测方法,其特征在于,所述利用控制流与数据流进行代码切片具体包括:通过控制流与数据流从源码中提取出关键语句,再对提取出的关键语句按照控制流与数据流逻辑先后进行重新排序。
4.权利要求1所述的基于神经网络与深度学习的C/C++漏洞静态检测方法,其特征在于,所述将代码切片中的自定义的变量名和函数名进行替换具体包括:将所有用户自定义的变量名以”VAR1”,”VAR2”……的格式进行替换,将所有非C/C++语言库函数的函数名以”FUN1”,”FUN2”……格式进行替换。
5.权利要求4所述的基于神经网络与深度学习的C/C++漏洞静态检测方法,其特征在于,所述转换为CVDF-LZW编码的输入向量包括:将C/C++标准库函数名按照字典序的顺序进行排列,分别从0001-1000进行编码;将用户自定义的变量名按照替换后的顺序从1001-3000进行编码;将用户自定义的函数名按照替换后的顺序从3001-5000进行编码;将运算符按照单目运算符,双目运算符和三目运算符的次序从5001-5100进行编码;将标准数据类型从5101-5115进行编码,将“;”编码为5116,完成了代码切片的编码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军陆军炮兵防空兵学院;华中科技大学,未经中国人民解放军陆军炮兵防空兵学院;华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011519232.X/1.html,转载请声明来源钻瓜专利网。