论文部分内容阅读
随着信息技术、计算机和互联网的不断发展,信息和网络安全方面的问题日益受到关注,相关的研究和技术也日渐受到重视。软件是信息系统和网络的基础,软件漏洞被利用进行网络攻击是造成信息与网络安全的主要威胁之一,软件漏洞攻防也是网络攻防对抗中的重要环节,软件漏洞的挖掘在信息安全技术中处于十分重要的地位。本文以软件的洞挖掘及相关技术研究为目标。研究了目前主流的可执行程序文件结构,反汇编分析技术以及软件静态分析算法。本文作者在总结前人研究的基础上,分析各类漏洞实例进并行总结归类,提出了基于YAML语言的漏洞模式描述方法,相比之前已有的XML语言等描述方法,数据结构更加自然,易于漏洞分析研究人员理解漏洞模式,同时,在计算机处理方面,YAML也具有结构简单、解析成本低等优点。在漏洞模式的基础上,本文作者提出了一种面向模式检测的二进制程序漏洞模式建模方法,将漏洞模式相关内容提升为面向模式检测的漏洞模式建模,用于检测软件中存在的漏洞。并解决了两方面的问题:一、如何从二进制程序漏洞模式描述建立面向模式检测的模型。二、如何将缺陷函数调用、缓冲区溢出、整数溢出三类漏洞转换为本文的检测模型。最后,针对不同的环境与软件,本文将漏洞挖掘的理论方法进行了三个方面的实际转换研究工作:(1)缺陷函数漏洞检测研究设计了缺陷函数调用的漏洞检测模型框架。主要实现了漏洞特征匹配链,漏洞会话管理模块等核心模块,并研究了在不同编译环境下函数参数匹配算法。(2)Android内核驱动漏洞挖掘研究研究了 Android内核设备驱动的攻击界面,提出并实现了一套Android内核驱动漏洞挖掘fuzzing框架。通过实验测试,该工具有较好的挖掘效率及稳定的crash复现能力,本文作者利用该Fuzzing程序,发现了驱动设备程序Oday漏洞。(3)浏览器漏洞挖掘研究针对浏览器常见的UAF内存破坏漏洞,提出基于浏览器UAF漏洞的漏洞挖掘方法,实现了基于分布式节点的漏洞挖掘工具。发现多处漏洞,将一处IE浏览器高危可利用漏洞提交给微软官方,并获得致谢及漏洞CVE编号CVE-2015-6154。