论文摘要
随着实际问题规模和复杂程度的增加,软件的规模也不断扩大,其复杂性越来越高,导致了层出不穷的缓冲区溢出缺陷和漏洞。无疑,在这个网络化的信息时代,这些漏洞使得缓冲区溢出攻击极易传播和蔓延,极大地威胁了系统的安全性。毫无疑问,如果能采用有效的手段和方法对这种攻击进行防范,对提高软件本身的健壮性和安全性都具有十分重要的意义。本文对缓冲区溢出的主要攻击手段进行了分析,在学习了解了目前一些主要的防御缓冲区溢出的工具和方法以后,发现了这些方法中,如StackGuard和StackShield,仍然存在一些不足:1,为了保证缓冲区不发生溢出,要频繁地进行检测,在一定程度上影响了CPU的运行效率。2,需要源代码,把原来的程序用专门的编译器重新编译才行。为了改进现有方法中存在的这些不足和实际需要,本文利用了注入、挂接系统API的方式防止CPU运行恶意代码,即不必防止缓冲区是否溢出,而是禁止执行恶意代码,以达到防御缓冲区溢出攻击的目的。这样做:第一,在一定程度上,改善了CPU的运行效率。第二,也可以对现有系统进行保护,对诸多商业代码,不必重新编译。本文还对原有的挂接方法在安全方面做了改进,以防止黑客通过其他手段避开检测。提高了系统的安全性。最终开发出了安全易用,高速稳定的缓冲区溢出攻击的防范系统。
论文目录
中文摘要ABSTRACT第一章 引言1.1 课题研究背景1.2 研究现状1.2.1 动态防范1.2.2 静态检测1.3 本文的研究内容第二章 缓冲区溢出攻击的主要手段及其原理2.1 缓冲区溢出攻击简介2.2 一个发生缓冲区溢出的例子2.3 缓冲区溢出攻击对信息安全带来的危害2.4 缓冲区溢出的原理2.5 造成缓冲区溢出的原因2.5.1 来自一些C 库函数本身的安全问题2.5.2 编写的代码本身存在严重的安全问题2.6 程序缓冲区溢出攻击的条件2.7 如何防范缓冲区溢出攻击2.8 目前已有的防御方法的特点及其不足2.8.1 动态分析技术2.8.1.1 动态分析技术的特点2.8.1.2 动态分析技术的局限性2.8.2 静态分析方法2.8.2.1 静态分析方法的特点2.8.2.2 静态分析的局限性2.9 本章小结第三章 溢出攻击防范系统的构思与设计3.1 StackGuard 方法的不足3.2 无需重新编译的防御模型设计第四章 各模块的实现4.1 注入模块4.1.1 代码注入方法简介4.1.2 基于远线程的代码注入方法4.1.3 基于远线程代码注入的实现4.2 挂接模块4.2.1 挂接(HOOK)技术简介4.2.2 防反挂接的挂接方法的设计与实现4.2.2.1 反挂接入侵方法4.2.2.2 防反挂接的挂接方法4.2.2.3 防反挂接的挂接实现4.2.2.4 性能分析4.3 基于挂接技术的溢出检测模块4.3.1 基于挂接技术的溢出防范策略4.3.2 溢出分析模块的实现4.3.2.1 框架设计4.3.2.2 设计中存在的问题与完善4.3.2.3 类设计与实现4.4 溢出处理模块4.5 本章小结第五章 测试5.1 功能测试5.2 性能测试第六章 总结致谢参考文献在学期间研究成果
相关论文文献
标签:缓冲区溢出攻击论文; 挂接论文; 操作系统论文;