[发明专利]一种基于神经网络与深度学习的C/C++漏洞静态检测方法有效
申请号: | 202011519232.X | 申请日: | 2020-12-21 |
公开(公告)号: | CN112560036B | 公开(公告)日: | 2022-11-29 |
发明(设计)人: | 钱叶魁;付才;韩兰胜;杨瑞朋;黄浩;雒朝峰;杜江;时晨航 | 申请(专利权)人: | 中国人民解放军陆军炮兵防空兵学院;华中科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N3/04;G06N3/08 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 辛海明 |
地址: | 450052 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 神经网络 深度 学习 c++ 漏洞 静态 检测 方法 | ||
本发明涉及一种基于神经网络与深度学习的C/C++漏洞静态检测方法,属于信息安全领域。本发明对待检测的源码进行数据清洁和代码切片;将代码切片转换为CVDF‑LZW编码的输入向量;将输入向量转化为等长的输入,并进行归一化处理;将归一化后的向量的关键字信息输入到14个神经元中,输出是一个14维向量;将归一化后的向量输入不同的神经网络,输出是漏洞特征向量中相应操作维度向量;将14维向量和操作维度向量整合成35维漏洞特征向量;在漏洞特征向量中以非全连接的形式提取有关联的神经元,通过线性函数转换得到一个6维的输出向量,通过softmax多分类层将对应的漏洞类型特征值转换为相应的概率值。本发明可以面向多种类漏洞实现高精度检测,提高效率和适应性。
技术领域
本发明属于信息安全领域,具体涉及一种基于神经网络与深度学习的C/C++ 漏洞静态检测方法。
背景技术
目前,软件安全已经成为人们日益关注的热点话题之一。根据CSEC2017模 型,知识领域被分为数据安全,软件安全,系统安全,人员安全,组织安全及 社会安全六个方面,软件安全位列其中。而随着软件数量的爆炸式增长,软件 安全漏洞的研究面临着严峻的挑战。在面向源代码的漏洞静态检测领域,传统 的人工检测方式效率低下,已经无法有效应对形式多变,日益增多的软件漏洞, 且识别精度取决于软件安全从业人员的技术水准;传统的自动化漏洞检测只能 针对种类单一的漏洞进行挖掘。机器学习作为近些年兴起的学科,是一门多领 域交叉学科,它涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,并在图像识别,自然语言处理,模式识别等领域取得了突出成绩。神 经网络与深度学习作为机器学习的最新发展成果,在解决非线性分类等相关问 题相比较传统机器学习算法有着更高的效率与精准度,许多科研工作者开始将 机器学习与神经网络应用于漏洞研究。例如Fabian等人使用模式识别研究污点 漏洞;Pang等人使用深度神经网络预测漏洞软件组件;Fabian等人使用代码属 性图像建模发现漏洞本文;Wu等人同样运用深度学习进行漏洞检测;Lin等人使 用跨项目迁移表示学习进行漏洞功能挖掘。
目前国内外传统的源代码漏洞挖掘主要分为人工挖掘与自动挖掘。人工挖 掘主要依据漏洞产生机理,归纳漏洞特征,将漏洞进行种类划分,在人工检测 时提高效率,例如WANG等人运用安全视觉的方式对C/C++程序漏洞进行分类研究; LV等人将C/C++常见漏洞分为5大类,并对每一类的具体特征做了细分;传统的 自动漏洞挖掘方式是进行自动化漏洞分类,并运用控制流与数据流分析对源码 进行数据与逻辑跟踪,当追踪到异常操作时,则判定该源代码含有相应种类漏 洞,例如SHAO等人针对缓冲区溢出的单一种类漏洞进行了详细的原理阐述,并 给出了漏洞检测,漏洞修复与漏洞防护的详细方案。传统的自动漏洞挖掘针对 某一具体类型具体操作的漏洞具有较高的检测效率,但该方法具有如下缺陷:1、 每次检测仅能针对一种特定类型的漏洞,检测效率较低;2、无法检测出进行其 它相关操作的同一类型漏洞,适应性较差;3、当需要检测的漏洞数据量较大时 检测速度较慢。随着人工智能领域的兴起,研究人员开始运用机器学习进行自 动化漏洞挖掘,ZHANG等人对目前机器学习的研究成果做了综述;ZOU等人阐述 了在软件漏洞挖掘中从传统的自动化向智能化的漏洞挖掘发展,该文章也指出 传统的机器学习技术在漏洞挖掘领域的应用仍具有局限性;而在人工智能领域 的最新研究方向——神经网络与漏洞挖掘的相关领域的研究中,LI等人提出了 将漏洞源码提取出代码小部件并提出了基于bi-lstm神经网络的vuldeepecker 漏洞检测模型;XIA等人基于代码相似性原理,运用图像识别领域中应用广泛的 卷积神经网络将漏洞源码与模板源码进行相似性比对,这种方式对于大批量形 态相似的漏洞具有较高的检测速度,同时能够运用现有的神经网络进行训练而 不必提出全新的神经网络架构,但随着漏洞的发展,形式与特征趋于多样化, 代码相似性难以针对不同类别不同特征的漏洞进行检测;SUN等人则在人工智能 技术在安全漏洞领域的运用一文中以综述的形式汇总了到目前为止国内外有关 人工智能在安全漏洞方向的研究成果,并得出了深度学习会对漏洞领域的研究 与发展产生巨大影响的结论;LI等人运用深度聚类神经网络(KNN)针对开源软 件的API序列嵌入向量空间并进行聚类,根据聚类结果进行漏洞检测;ZHANG等 人借助神经网络在自然语言处理领域的成熟应用,提出了自然语言数据驱动的 智能化软件评估方法,并取得了显著的成效。但WANG、LV等人提出的分类方式 仅能提高传统人工漏洞检测的识别效率,难以从根本上解决人工漏洞检测的弊 端;SHAO LI提出的检测方案仅能针对单一或种类有限的漏洞进行检测;XIA等 人仅针对代码相似性这一特征进行检测,无法检测形态特征差异较大的漏洞; ZHANG SUN等人在汇总国内外研究成果的同时并未提出新的漏洞挖掘方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军陆军炮兵防空兵学院;华中科技大学,未经中国人民解放军陆军炮兵防空兵学院;华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011519232.X/2.html,转载请声明来源钻瓜专利网。