缓冲区溢出攻击的检测与防范系统

缓冲区溢出攻击的检测与防范系统

论文摘要

随着实际问题规模和复杂程度的增加,软件的规模也不断扩大,其复杂性越来越高,导致了层出不穷的缓冲区溢出缺陷和漏洞。无疑,在这个网络化的信息时代,这些漏洞使得缓冲区溢出攻击极易传播和蔓延,极大地威胁了系统的安全性。毫无疑问,如果能采用有效的手段和方法对这种攻击进行防范,对提高软件本身的健壮性和安全性都具有十分重要的意义。本文对缓冲区溢出的主要攻击手段进行了分析,在学习了解了目前一些主要的防御缓冲区溢出的工具和方法以后,发现了这些方法中,如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 性能测试
  • 第六章 总结
  • 致谢
  • 参考文献
  • 在学期间研究成果
  • 相关论文文献

    标签:;  ;  ;  

    缓冲区溢出攻击的检测与防范系统
    下载Doc文档

    猜你喜欢