基于深度学习的二进制程序漏洞分析与检测方法研究
发布时间:2021-07-21 18:27
软件系统的数量和种类不断增多,而软件漏洞无法完全避免。软件漏洞的数量也逐年提升,及时检测出软件存在的缺陷以免被不法分子利用也变得越来越重要。大多数情况下,研究人员无法获取软件程序的源代码,只能获取对应的二进制程序文件。因此,研究二进制程序的漏洞检测具有重要的实际意义。目前应用较广、效果最好的二进制漏洞检测技术为模糊测试,但是模糊测试技术需要对程序进行多次运行,消耗资源多,效率低。近年来,随着大数据以及人工智能等技术的发展,基于传统机器学习方法的漏洞检测技术取得了一定的进展。本文基于相关工作,同时参考深度学习在文本分类上的研究成果,提出了一种利用深度学习技术进行二进制漏洞检测的方法。与此同时,本文设计构建了卷积神经网络模型、长短期记忆网络模型、双向长短期记忆网络模型和卷积神经网络—长短期记忆网络模型四个漏洞检测模型。为了测试深度学习漏洞检测模型的性能,利用了 VDiscover工具提取的数据,即32位Linux系统中的二进制程序运行过程中的函数调用序列及其最终运行状态,并以模糊测试工具zuff的测试结果作为标签,对深度学习漏洞检测模型进行训练。在实验中,本文首先通过使用word2vec方...
【文章来源】:北京交通大学北京市 211工程院校 教育部直属院校
【文章页数】:58 页
【学位级别】:硕士
【部分图文】:
图1-1漏洞在各时间阶段的名称[1]??
?现有的二进制漏洞分析技术种类繁多,从分析过程中是否运行软件的角度,??可将二进制漏洞分析分为静态分析、动态分析、动静结合分析三种。二进制漏洞??分析的一般原理如图2-1所示。?????j?1?静态分析??—??代码中间和__,歷」???、反?>?vf-^?I?中丨司?T?"???—1??;L?叫表示?进制代妈比对:??编?|构边?'?"?…」??动静结合分析??_.?k?^?—一j?la;?j?__J?漏洞????????5渕试用例?智能灰盒測试___??指导信息1?????1??;???一?_?U?麵?动态分#r??^3—^?|?_?I??刚?k?;?J???f????L......—_!?|?智能模铖测试??图2-1二进制漏洞分析一般原理[5]??Figure?2-1?General?Principles?of?Binary?Vulnerabilities?Analysis[5]??8??
多个隐层,通过引入深度网络,可以处理更复杂的输入特征。深度网络中每一个??隐层可以对上一层的输出进行非线性变换,因此它拥有比浅层网络更强的表达能??力,进而可以学习到更复杂的函数关系,如图2-3所示。训练深度网络时,每一个??隐层应该使用非线性激活函数。因为多层线性函数组合在一起本质和浅层的神经??网络拥有一样的线性表达能力。深度网络最主要的优势在于,它能以更加紧凑简??洁的方式来拟合比浅层网络无法处理的复杂的函数。??隐层1?隐层2?隐层3??-人?z??图2-3深度学习结构图??Figure?2-3?The?Structure?Diagram?of?Deep?Learning??虽然深度网络拥有优秀的表征能力,但是早期研宄人员在训练深度网络时遇??到了很大的阻碍。他们首先随机初始化网络权重,然后使用监督学习方法在带标??签的训练集上进行训练,并且使用梯度下降方法来降低训练误差。这种方法训练??过程中主要依赖带标签的数据,有时效果表现并不好。通常来说,现实生活中有??标签的数据比较稀缺,对于许多问题我们难以获得足够多的样本来拟合复杂的模??型。此外,基于监督学习方法的浅层网络通常能够使网络参数收敛到合理的范围,??但是用这种方法训练深度网络时
【参考文献】:
期刊论文
[1]写污点值到污点地址漏洞模式检测[J]. 忽朝俭,李舟军,郭涛,时志伟. 计算机研究与发展. 2011(08)
[2]代码相似性检测技术:研究综述[J]. 熊浩,晏海华,郭涛,黄永刚,郝永乐,李舟军. 计算机科学. 2010(08)
[3]Linux动态链接机制研究及应用[J]. 张和君,张跃. 计算机工程. 2006(22)
硕士论文
[1]二进制代码安全性分析[D]. 李朝君.中国科学技术大学 2010
本文编号:3295547
【文章来源】:北京交通大学北京市 211工程院校 教育部直属院校
【文章页数】:58 页
【学位级别】:硕士
【部分图文】:
图1-1漏洞在各时间阶段的名称[1]??
?现有的二进制漏洞分析技术种类繁多,从分析过程中是否运行软件的角度,??可将二进制漏洞分析分为静态分析、动态分析、动静结合分析三种。二进制漏洞??分析的一般原理如图2-1所示。?????j?1?静态分析??—??代码中间和__,歷」???、反?>?vf-^?I?中丨司?T?"???—1??;L?叫表示?进制代妈比对:??编?|构边?'?"?…」??动静结合分析??_.?k?^?—一j?la;?j?__J?漏洞????????5渕试用例?智能灰盒測试___??指导信息1?????1??;???一?_?U?麵?动态分#r??^3—^?|?_?I??刚?k?;?J???f????L......—_!?|?智能模铖测试??图2-1二进制漏洞分析一般原理[5]??Figure?2-1?General?Principles?of?Binary?Vulnerabilities?Analysis[5]??8??
多个隐层,通过引入深度网络,可以处理更复杂的输入特征。深度网络中每一个??隐层可以对上一层的输出进行非线性变换,因此它拥有比浅层网络更强的表达能??力,进而可以学习到更复杂的函数关系,如图2-3所示。训练深度网络时,每一个??隐层应该使用非线性激活函数。因为多层线性函数组合在一起本质和浅层的神经??网络拥有一样的线性表达能力。深度网络最主要的优势在于,它能以更加紧凑简??洁的方式来拟合比浅层网络无法处理的复杂的函数。??隐层1?隐层2?隐层3??-人?z??图2-3深度学习结构图??Figure?2-3?The?Structure?Diagram?of?Deep?Learning??虽然深度网络拥有优秀的表征能力,但是早期研宄人员在训练深度网络时遇??到了很大的阻碍。他们首先随机初始化网络权重,然后使用监督学习方法在带标??签的训练集上进行训练,并且使用梯度下降方法来降低训练误差。这种方法训练??过程中主要依赖带标签的数据,有时效果表现并不好。通常来说,现实生活中有??标签的数据比较稀缺,对于许多问题我们难以获得足够多的样本来拟合复杂的模??型。此外,基于监督学习方法的浅层网络通常能够使网络参数收敛到合理的范围,??但是用这种方法训练深度网络时
【参考文献】:
期刊论文
[1]写污点值到污点地址漏洞模式检测[J]. 忽朝俭,李舟军,郭涛,时志伟. 计算机研究与发展. 2011(08)
[2]代码相似性检测技术:研究综述[J]. 熊浩,晏海华,郭涛,黄永刚,郝永乐,李舟军. 计算机科学. 2010(08)
[3]Linux动态链接机制研究及应用[J]. 张和君,张跃. 计算机工程. 2006(22)
硕士论文
[1]二进制代码安全性分析[D]. 李朝君.中国科学技术大学 2010
本文编号:3295547
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3295547.html