基于机器学习的二进制漏洞挖掘技术研究
发布时间:2021-03-07 11:48
传统的软件漏洞挖掘技术是包括模糊测试、符号执行、模型检测和污点分析等在内的技术。近年来,大数据和机器学习的兴起又引导了新一轮的软件漏洞挖掘技术研究。目前,使用机器学习或数据挖掘进行软件漏洞挖掘的研究主要分为三大类:基于软件度量的漏洞预测技术、基于异常检测的漏洞预测技术及基于漏洞代码模式识别的漏洞预测技术等。但是,先前的大多数研究都是针对源代码的,只有很少一部分是针对二进制软件的。并且,大多数的研究都是基于粗粒度的,以软件组件为粒度的漏洞挖掘不利于精确定位到漏洞的具体位置,以函数为粒度的漏洞挖掘将漏洞模式局限在函数内部。本文主要研究了以下内容:(1)分析当前主流的软件漏洞的产生原因,总结缓冲区溢出、整数溢出、释放后重用漏洞在汇编层面上的特点,了解程序运行时可能接收到的信号以及部分软件保护机制,通过静态分析和动态分析的常用手段实现对程序进行跟踪和自动化分析。(2)在样本收集方面,本文认为函数调用序列不足以刻画漏洞,因而提出一种基于代码块粒度的样本收集方法,创新性地以汇编代码块为粒度,对于漏洞程序,提取从数据引入到程序崩溃之间的代码片段;对于正常程序,提取从数据引入点到程序退出之间的代码片段...
【文章来源】:西安电子科技大学陕西省 211工程院校 教育部直属院校
【文章页数】:79 页
【学位级别】:硕士
【部分图文】:
历年漏洞收集数量曲线图
gram 模型则通过一个词来预测其前后 N 个词。当 N=2 时,两种模型的结构分别如图2.1 所示:图2.1 两种 Word2Vec 训练模型以 CBOW 模型为例,假设其上下文窗口大小为 k,对于每一个词 的预测,其上下文为 ,那么在上下文是 的情况下,中心词为 的概率可以表示为 ( )。这个概率 p 越接近 1 就表示预测结果越准确。那么问题就可以转化为对所有的 ( )求对数似然概率之和,使其最大,当然也可以取其平均值。对于一个大小为 T 的词库,其平均对数似然概率 的计算公式如下: = ( ) (2-1)其中
西班牙神经生物学家 Rafael Lorente de Nó 发现大脑皮层的解在神经回路中循环传递,并由此提出反响回路假设[22],该假说被认为记忆的重要原因 。990 年,Elman 对 Jordan 网络[23]进行了改进,提出了简单循环网络[24]。lman 网络如图 2.2 所示,两个网络均包含三层结构,分别为:输入层层。不同的是,Jordan 网络的关联层(Context Units,一种特殊的隐连接,存储来自上一时刻输出层的值 ,而 Elman 网络的关联层与储来自上一时刻隐含层的输出值 。因而,处于 t 时刻的隐含层在当前时刻的输入 和前一时刻的输出 ,这里的 泛指Jordan网络an 网络中的 ,它们均保存在当前时刻的关联层中。这样的设计使输出不仅和当前时刻的输入有关,还和以往时刻的输入都有关。比于 Jordan 网络,Elman 网络更加易于扩展,因为 Elman 网络中的层的自循环,因而网络结构的设计可以更加灵活。而且,Jordan 网络层的维度不一致时还需要进行额外的调整。
【参考文献】:
期刊论文
[1]人工智能技术在安全漏洞领域的应用[J]. 孙鸿宇,何远,王基策,董颖,朱立鹏,王鹤,张玉清. 通信学报. 2018(08)
[2]卷积神经网络研究综述[J]. 周飞燕,金林鹏,董军. 计算机学报. 2017(06)
[3]浅谈缓冲区溢出[J]. 于棣维,刘永隆. 硅谷. 2009(14)
[4]缓冲区溢出攻击:原理,防御及检测[J]. 蒋卫华,李伟华,杜君. 计算机工程. 2003(10)
[5]软件度量学综述[J]. 邢大红,曹佳冬,汪和才,刘宗田. 计算机工程与应用. 2001(01)
硕士论文
[1]基于代码属性图的软件安全漏洞挖掘方法研究[D]. 杨克.燕山大学 2015
本文编号:3069033
【文章来源】:西安电子科技大学陕西省 211工程院校 教育部直属院校
【文章页数】:79 页
【学位级别】:硕士
【部分图文】:
历年漏洞收集数量曲线图
gram 模型则通过一个词来预测其前后 N 个词。当 N=2 时,两种模型的结构分别如图2.1 所示:图2.1 两种 Word2Vec 训练模型以 CBOW 模型为例,假设其上下文窗口大小为 k,对于每一个词 的预测,其上下文为 ,那么在上下文是 的情况下,中心词为 的概率可以表示为 ( )。这个概率 p 越接近 1 就表示预测结果越准确。那么问题就可以转化为对所有的 ( )求对数似然概率之和,使其最大,当然也可以取其平均值。对于一个大小为 T 的词库,其平均对数似然概率 的计算公式如下: = ( ) (2-1)其中
西班牙神经生物学家 Rafael Lorente de Nó 发现大脑皮层的解在神经回路中循环传递,并由此提出反响回路假设[22],该假说被认为记忆的重要原因 。990 年,Elman 对 Jordan 网络[23]进行了改进,提出了简单循环网络[24]。lman 网络如图 2.2 所示,两个网络均包含三层结构,分别为:输入层层。不同的是,Jordan 网络的关联层(Context Units,一种特殊的隐连接,存储来自上一时刻输出层的值 ,而 Elman 网络的关联层与储来自上一时刻隐含层的输出值 。因而,处于 t 时刻的隐含层在当前时刻的输入 和前一时刻的输出 ,这里的 泛指Jordan网络an 网络中的 ,它们均保存在当前时刻的关联层中。这样的设计使输出不仅和当前时刻的输入有关,还和以往时刻的输入都有关。比于 Jordan 网络,Elman 网络更加易于扩展,因为 Elman 网络中的层的自循环,因而网络结构的设计可以更加灵活。而且,Jordan 网络层的维度不一致时还需要进行额外的调整。
【参考文献】:
期刊论文
[1]人工智能技术在安全漏洞领域的应用[J]. 孙鸿宇,何远,王基策,董颖,朱立鹏,王鹤,张玉清. 通信学报. 2018(08)
[2]卷积神经网络研究综述[J]. 周飞燕,金林鹏,董军. 计算机学报. 2017(06)
[3]浅谈缓冲区溢出[J]. 于棣维,刘永隆. 硅谷. 2009(14)
[4]缓冲区溢出攻击:原理,防御及检测[J]. 蒋卫华,李伟华,杜君. 计算机工程. 2003(10)
[5]软件度量学综述[J]. 邢大红,曹佳冬,汪和才,刘宗田. 计算机工程与应用. 2001(01)
硕士论文
[1]基于代码属性图的软件安全漏洞挖掘方法研究[D]. 杨克.燕山大学 2015
本文编号:3069033
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3069033.html