[发明专利]深度学习梯度指导变异的软件安全漏洞检测方法及系统有效
申请号: | 202010839157.9 | 申请日: | 2020-08-19 |
公开(公告)号: | CN112069061B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈红松;杜彦瑶 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57;G06N3/08;G06N3/04 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 张仲波 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 深度 学习 梯度 指导 变异 软件 安全漏洞 检测 方法 系统 | ||
本发明公开了一种深度学习梯度指导变异的软件安全漏洞检测方法及系统,该方法包括:获取测试用例并进行预处理,得到最大测试用例的大小和每一测试用例在被测程序中的执行路径;建立深度神经网络模型;其中,输入层的输入维度为最大测试用例的大小,输出层的输出神经元个数为执行路径的总数;将测试用例向量化,然后利用测试用例训练深度神经网络模型;基于训练好的深度神经网络模型进行梯度计算,生成梯度信息;基于梯度信息对测试用例进行变异并进行模糊测试,生成测试结果。本发明采用梯度指导变异技术,结合深度学习辅助生成梯度信息,可有效解决软件安全漏洞挖掘中的瓶颈问题。
技术领域
本发明涉及软件安全漏洞检测技术领域,特别涉及一种深度学习梯度指导变异的软件安全漏洞检测方法及系统。
背景技术
模糊测试已经成为发现软件漏洞的事实标准技术。但是,即使是目前最先进的模糊器也不能很有效地找到难以触发的软件错误。目前,现有方法如下:
2020年,国防科技大学的李明磊通过对被测程序的静态分析,构建被测程序的函数调用图和控制流程图,计算基本块距离并插桩到被测程序中。在模糊测试时,通过插桩追踪并计算每个测试用例到指定目标的距离。模糊测试器根据该距离计算种子能量以实现对目标区域的导向。但该方法需要使用到源码,对于一些不提供源码的项目,该方法并不适用。另外该方法是根据测试用例到指定目标的距离计算种子能量以实现对目标区域的导向,但目前静态分析工具还无法识别程序中的间接调用,导致函数距离的精度不高,找到的漏洞数量少。
2019年,美国普渡大学的Wei You通过对模糊测试过程中对漏洞发现起着重要作用的输入字段进行恢复和理解,并智能地调整变异策略以增加找到零日漏洞的机率。模糊测试时,首先突变单个字节,然后分析模糊测试结果以连接相关的字节并识别连接它们的字段类型,接着字节按照特定于类型的策略进一步突变。但该方法需要恢复数据语义结构,实现复杂,效率低下,时间成本高。
2019年,美国哥伦比亚大学的Dongdong She采用两层神经网络来实现程序平滑,并固定选取输出层中的500个神经元计算损失相对于指定输入的梯度值,然后使用梯度值去修改变异策略,最后得到变异后的种子再用于模糊测试。该方法采用的是两层神经网络来训练数据,采用这种神经网络降低程序平滑的效果,随之会影响梯度计算的精度,影响全局导向性。且选取神经元进行梯度计算时随机选取了500个输出层神经元进行梯度计算,这种神经元选取方式缺少普适性,在输出层神经元特别多时发现漏洞的效率会降低。另外,该方法采用分段变异的策略,共分为13段,分割粒度粗,变异效果差,发现漏洞的概率低。
2016年,澳大利亚莫纳什大学的M.采用抽象覆盖的灰盒模糊测试方法,通过无导向性改变种子输入生成新测试。如果测试运行一条新的有趣的路径,它将被添加到种子集中;否则,它被丢弃。该方法主要是通过增加“低频路径”的访问概率来提高代码覆盖率。但该方法计算复杂度高,时间成本高,找到漏洞的数量少。
2015年,Michal Zalewski采用随机突变策略,通过对种子进行随机突变,增加种子的多样性,从而提高分支覆盖率,增加漏洞查找的概率。但该方法在“大破坏”变异阶段会存在随机性,而且该方法发现漏洞的概率低,分支覆盖率低,时间成本高。
综上,目前现有的软件安全漏洞检测方法一般存在以下缺点:使用进化指导变异的模糊器,常常会陷入随机突变中,缺少方向性,导致找到的漏洞少、分支覆盖率低、发现漏洞的速度慢等问题。基于语义和语法指导变异的技术能够推断输入结构,通过观察程序的执行路径的变化来发现程序输入与程序输出行为之间的关系,进而制定变异策略,但是这种方法不能将输入的完整语义结构恢复成功,影响发现漏洞的概率。现有的模糊器变异策略较简单,但是发现漏洞的效果不好。有的模糊器对特定软件结构的输入效率较低,不利于软件安全漏洞检测。现有的梯度指导变异方式获取的梯度信息精确度较低,梯度指导变异策略存在不易扩展的弊端。因此需要针对现有技术问题进行改进。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010839157.9/2.html,转载请声明来源钻瓜专利网。