论文部分内容阅读
计算机安全自互联网普及以来逐渐成为人们关注的焦点,安全问题也成为业界最为头疼的问题。使用木马、病毒和蠕虫在互联网上窃取用户的个人敏感信息的事件也屡见不鲜,而这些恶意代码的产生、感染和传播都与计算机安全漏洞存在一定的关系。但是随着软件开发流程的规范化和软件测试技术的发展,软件安全漏洞的发掘难度越来越大,传统的漏洞发掘技术已经不能有效的找到软件中潜在的安全漏洞。本文研究安全漏洞产生的原因以及漏洞分类的依据,讨论了Purdue大学Krsul的漏洞分类模型,尤其是缓冲区溢出漏洞产生的原因,提供了相关溢出代码,为漏洞发掘提供了很好的现实依据。研究传统的漏洞发掘技术:源码审计,二进制代码审计,补丁比较和Fuzzing技术,总结这四种漏洞发掘技术在漏洞发掘过程中的缺陷,详细介绍Fuzzing技术原理,以及针对网络协议,文件格式和ActiveX控件漏洞发掘的工具。Fuzzing技术是当前使用最多,也是最为有效的一种漏洞发掘技术,但是由于其自身的缺陷,对具有复杂输入接口的应用程序测试效率很低。因此本文提出基于数据块关联模型理论,核心思想是将测试数据分成不同的数据块,严格区分不同数据块之间的关联性,研究了长度关联和内容关联两种数据块关联类型。同时提出关联度和有效数据包流量概念用于评价基于数据块关联模型理论的漏洞发掘系统的实用效果。设计使用XML文件描述各种不同的网络协议数据格式规范,定义不同类型和属性的节点描述网络协议命令格式。为了能够更精确的发掘应用程序漏洞,较小漏报率,研究Windows系统的动态调试技术,设计并实现调试器,用于监控目标进程内部事件,即时获取目标进程的异常信息。Windows系统是当前使用最为广泛的操作系统,操作系统核心服务的漏洞往往会造成很大的危害,而且也难于发现。因此研究Windows系统远程过程调用服务架构和通信机制,设计并实现基于数据块关联模型理论的漏洞发掘系统,对远程过程调用服务进行漏洞发掘,并对该系统进行各方面的测试,该系统使用的XML文件具有很好的灵活性,而且发掘效率和自动化程度都比较高,能快速准确的捕获到目标进程发生的异常,证明与同类产品相比具有很大的优越性。