基于机器学习的二进制漏洞挖掘技术研究

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:andacaizheng
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
传统的软件漏洞挖掘技术是包括模糊测试、符号执行、模型检测和污点分析等在内的技术。近年来,大数据和机器学习的兴起又引导了新一轮的软件漏洞挖掘技术研究。目前,使用机器学习或数据挖掘进行软件漏洞挖掘的研究主要分为三大类:基于软件度量的漏洞预测技术、基于异常检测的漏洞预测技术及基于漏洞代码模式识别的漏洞预测技术等。但是,先前的大多数研究都是针对源代码的,只有很少一部分是针对二进制软件的。并且,大多数的研究都是基于粗粒度的,以软件组件为粒度的漏洞挖掘不利于精确定位到漏洞的具体位置,以函数为粒度的漏洞挖掘将漏洞模式局限在函数内部。本文主要研究了以下内容:(1)分析当前主流的软件漏洞的产生原因,总结缓冲区溢出、整数溢出、释放后重用漏洞在汇编层面上的特点,了解程序运行时可能接收到的信号以及部分软件保护机制,通过静态分析和动态分析的常用手段实现对程序进行跟踪和自动化分析。(2)在样本收集方面,本文认为函数调用序列不足以刻画漏洞,因而提出一种基于代码块粒度的样本收集方法,创新性地以汇编代码块为粒度,对于漏洞程序,提取从数据引入到程序崩溃之间的代码片段;对于正常程序,提取从数据引入点到程序退出之间的代码片段。在提取的过程中,解决由程序开启所有安全保护而导致无法提取PLT表的问题,并提出基于代码块分簇的降循环算法来降低相同代码片段的循环次数。针对样本收集不平衡的问题,本文提出了一种针对汇编代码块的过采样技术。(3)针对汇编代码块序列,本文设计了基于Block2Vec的机器学习模型。先前的工作是以每条汇编指令为单位作为Doc2Vec模型的输入,而本文以基本块为单位作为Doc2Vec模型的输入,因此称为Block2Vec。在Doc2Vec模型的训练上,本文将收集到的所有程序的所有汇编代码块的去重集合作为训练数据。训练完成之后对样本中的每个代码块进行向量表示,相同模式的代码块在经过Doc2Vec模型表示之后的结果是相近的,最后通过级联和统一维度处理得到该样本的向量表示。为了测试汇编代码块序列样本的效果,本文构建了LSTM网络和Text-CNN网络,将汇编代码块序列样本和函数调用序列样本经过上述相同的处理,分别训练LSTM分类模型和TextCNN分类模型,结果表明使用汇编代码块序列作为样本的Text-CNN模型效果较好,准确率达到96.3%。
其他文献
金元杂剧与南戏相对峙,堪称是中国戏曲史上两座突兀而起的奇峰.其时,不仅产生了王实甫、关汉卿、马致远等一大批伟大的剧作家,而且造就了众多诸如刘耍和、珠帘秀、顺时秀、天
【正】 在铁路运输中,钢轮与钢轨、撤、叉频繁接触,造成轨道部件疲劳裂纹、伤损、磨耗是不可避免的。传统的作业是:当伤损磨耗达到一定程度时,就封锁运行更换部件。这种不得
本文主要介绍Authorware中外部函数的种类及其调用,在Authorware中通过外部函数的调用使其功能得到扩充,能支持更多格式的多媒体文件,使设计的软件形式更加多样化,内容更加生
本文在实验室用立体相似模型研究在三向荷载作用下,结构面倾角为30°,45°,55°,65°和80°时对巷道围岩变形的影响。通过试验分析研究得出:结构面倾角
期刊
受信任人义务是投资基金法的立法核心,其内容包括忠实义务和谨慎义务,而限制关联交易则是忠实义务的主要内容,关联人士具有三个要件,即有业务关系或家庭关系;有理由认为存在利益共
研究围绕轨道交通对站点地区土地与空间使用分布的影响问题,以上海市中心城区为例,从整体上探讨了城市道路网络可达性、轨道站点位置、土地使用分布的关系。基于城市设计的视
国土总体规划是在一定的地域范围内较高层次的综合开发规划,重点研究解决资源开发利用、产业空间布局、基础设施安排与生态环境保护建设这四大方面问题。本文从乐山的实际情况
通过对上海龙湖·天璞高层住宅外墙,在承重、保温、防水、门窗安装等构造技术的分析,形成高层住宅外墙的预制装配式技术策略,并对外墙保温、饰面与承重一体化的预制混凝
金秋十月,电焊机行业迎来了又一个节日盛会——2004年全国电焊机行业厂长(经理)峰会。本次峰会于2004年10月19~21日在四川省成都市举行。来自全国各地80多个厂家近100名厂长(经
大学生文化素质的提高,除了自身的努力,在很大程度上取决于校园文化的熏陶.良好的校园文化环境对学生具有潜移默化的作用,学生生在其中,耳濡目染.本文分析了文化素质教育与校