基于缓冲区溢出的攻击技术及防御策略研究

基于缓冲区溢出的攻击技术及防御策略研究

论文摘要

随着信息与网络技术的发展,以及这些技术在军事领域的不断渗透,计算机网络已成为连接未来信息化战场的枢纽。对计算机的攻击,能够获得大量宝贵的情报以及达到其它武器系统所不能及的效果。因此对以计算机为基础的网络攻击与防护就自然成为军事领域密切关注的问题。缓冲区溢出攻击是黑客攻击的主要手段,给网络信息安全带来了越来越大的危害。已有的防御手段研究相对滞后,目前国内外的研究大多集中在某个具体漏洞的利用与防范上,缺乏全面的研究。并且现有的缓冲区溢出防御手段也存在诸多不足之处。针对这一问题,论文以缓冲区溢出攻击与防御研究为主题,力图系统地对缓冲区溢出多方面的性质进行综合研究。论文首先介绍了缓冲区和堆栈的基本概念,研究并总结了缓冲区溢出的原理和过程。论文还通过一些攻击示例介绍了系统如何被溢出攻击,并介绍了一些常用的攻击方法。然后,论文研究了Windows环境下基于堆栈的缓冲区溢出攻击的技术细节且从操作系统的体系结构出发深究了这种漏洞的成因。从Windows环境中缓冲区溢出的利用方法出发,讲述了漏洞发掘的技术。接着,论文研究了缓冲区溢出攻击里最关键的部分Shellcode的编写方法,总结了Shellcode的一般流程,具体说明了如何编写突破系统版本限制的Shellcode的编写要用到的技术,其中关键是找到Kernel32.dll的基址,给出了三种找Kernell32.dll的方法,给出了多种突破现有防火墙的方法,给出了如何突破现有Windows的堆栈保护技术的方法。还总结出了一个精确定位溢出点的公式。在此基础上,论文研究并总结了目前防御缓冲区溢出攻击的一些常用方法,主要从主客观两方面来讨论。主观方面,主要是要提高程序员编写代码的质量,形成良好的编程风格;客观方面,主要是从系统和软件做一些相关的检查和优化。数组和指针边界检查是目前常用的防止缓冲区溢出的方法,而且它能很有效的防止缓冲区溢出漏洞攻击。但是,常规的边界检查所带来额外性能开销也是相当大的。论文提出了数组和指针边界检查的优化方法,并且提出了一条特殊的针对边界检查的指令,结合相应的软件优化方法,并且在仿真平台上做了模拟仿真,通过一些基准测试了优化方案,并分析了相应的实验结果,得到了较好的优化结果。

论文目录

  • 摘要
  • ABSTRACT
  • 第1章 引言
  • 1.1 本课题的研究意义
  • 1.2 缓冲区溢出国内外研究现状
  • 1.3 本文主要内容
  • 第2章 缓冲区溢出原理概述
  • 2.1 堆栈的定义
  • 2.2 缓冲区溢出的概念
  • 2.2.1 缓冲区溢出攻击原理
  • 2.2.2 缓冲区溢出示例
  • 2.2.3 缓冲区溢出影响
  • 2.3 缓冲区溢出漏洞的攻击
  • 2.4 本章 小结
  • 第3章 基于缓冲区溢出技术的漏洞挖掘
  • 3.1 堆栈溢出
  • 3.1.1 Windows 平台函数调用约定
  • 3.1.2 结构化异常处理
  • 3.2 基于堆栈的缓冲区溢出分析
  • 3.2.1 Windows 平台函数间调用堆栈变化
  • 3.2.2 返回地址的覆盖
  • 3.2.3 覆盖异常
  • 3.2.4 缓冲区溢出漏洞根源
  • 3.2.5 漏洞发掘的一般方法
  • 3.3 本章 小结
  • 第4章 缓冲区溢出攻击核心技术研究
  • 4.1 通用SHELLCODE 技术实现
  • 4.1.1 得到函数址
  • 4.1.2 获取Kerne132.dll 基址
  • 4.1.3 查找GetProcAddress()函数地址
  • 4.1.4 通过Hash 法实现对其它API 函数地址的查找
  • 4.2 绕过过滤字符的限制
  • 4.2.1 Shellcode 编码
  • 4.2.2 Shellcode 解码
  • 4.3 渗透防火墙
  • 4.3.1 端口复用技术
  • 4.3.2 重新绑定端口
  • 4.3.3 Getpeername 查找socket
  • 4.3.4 Hook 系统的recv 调用
  • 4.3.5 文件上传下载功能的实现
  • 4.4 突破WINDOWS 的堆栈保护机制
  • 4.4.1 突破Windows 2003 堆栈保护技术
  • 4.4.2 突破Windows XP sp2 的堆栈保护技术
  • 4.5 溢出点精确定位公式
  • 4.6 本章 小结
  • 第5章 缓冲区溢出的防御策略
  • 5.1 编写正确的代码
  • 5.2 基于探测方法的防御
  • 5.3 堆栈保护
  • 5.3.1 堆栈的完整性的堆栈保护
  • 5.3.2 非执行的堆栈防御
  • 5.3.3 使堆栈向高地址方向增长
  • 5.3.4 锁定缓冲区技术
  • 5.4 C/C++ 解决方案
  • 5.4.1 标准库方法
  • 5.4.2 数组边界检查
  • 5.5 本章 小结
  • 第6章 数组边界检查的优化方案及实现
  • 6.1 优化方案的提出
  • 6.2 软件优化
  • 6.3 硬件优化
  • 6.4 方案实现
  • 6.4.1 指针边界检查的变换
  • 6.4.2 数组边界检查的变换
  • 6.5 实验及结果分析
  • 6.6 本章 小结
  • 第7章 总结与展望
  • 7.1 全文总结
  • 7.2 展望
  • 参考文献
  • 致谢
  • 攻读学位期间已发表或录用的论文
  • 相关论文文献

    • [1].缓冲区溢出攻击研究[J]. 舰船电子工程 2019(04)
    • [2].浅析缓冲区溢出攻击原理及防御[J]. 科技致富向导 2014(27)
    • [3].缓冲区溢出攻击原理分析与防范方法研究[J]. 哈尔滨师范大学自然科学学报 2013(06)
    • [4].基于双栈的缓冲区溢出攻击的防御[J]. 同济大学学报(自然科学版) 2012(03)
    • [5].面向网络对抗的缓冲区溢出攻击描述语言研究[J]. 计算机应用 2009(10)
    • [6].关于缓冲区溢出攻击的防御研究[J]. 软件导刊 2009(11)
    • [7].一种缓冲区溢出攻击描述语言的研究与设计[J]. 电脑知识与技术 2008(36)
    • [8].一种缓冲区溢出攻击通用模型研究[J]. 微计算机信息 2008(03)
    • [9].程序缓冲区溢出攻击的攻击树建模[J]. 科技信息(科学教研) 2008(20)
    • [10].缓冲区溢出攻击与防范[J]. 科技广场 2008(05)
    • [11].浅谈职业学校网络管理中缓冲区溢出攻击防范[J]. 中国体卫艺教育 2008(04)
    • [12].缓冲区溢出攻击及防范策略[J]. 四川文理学院学报 2014(02)
    • [13].针对非控制数据的缓冲区溢出保护程序[J]. 计算机技术与发展 2011(12)
    • [14].阻止缓冲区溢出攻击研究[J]. 计算机安全 2010(07)
    • [15].远程缓冲区溢出攻击及防护[J]. 重庆理工大学学报(自然科学版) 2010(11)
    • [16].缓冲区溢出攻击的工作原理及防范策略[J]. 计算机安全 2008(03)
    • [17].C语言源程序的缓冲区溢出漏洞分析及解决方案[J]. 沈阳化工学院学报 2008(03)
    • [18].一种缓冲区溢出攻击的实时检测方法[J]. 计算机工程 2011(10)
    • [19].缓冲区溢出攻击原理和现有检测技术[J]. 科技信息 2010(23)
    • [20].缓冲区溢出攻击的自动化检测方法[J]. 计算机研究与发展 2012(S2)
    • [21].C库中易受缓冲区溢出攻击的脆弱函数分析[J]. 微电子学与计算机 2011(02)
    • [22].缓冲区溢出攻击分析及其防范[J]. 计算机安全 2009(04)
    • [23].防御缓冲区溢出攻击的数据随机化方法[J]. 计算机科学 2011(01)
    • [24].栈缓冲区溢出攻击的研究与实现[J]. 辽宁工业大学学报(自然科学版) 2013(05)
    • [25].缓冲区溢出类黑客攻击与防御措施研究[J]. 信息网络安全 2010(04)
    • [26].缓冲区溢出利用研究[J]. 电脑知识与技术 2008(19)
    • [27].缓冲区溢出的攻击的分析和设计[J]. 现代计算机(专业版) 2009(09)
    • [28].基于缓冲区溢出攻击的shellcode编码技术研究[J]. 电子世界 2018(16)
    • [29].堆溢出分析及其防御策略[J]. 电脑知识与技术 2010(04)
    • [30].Vista的抵御缓冲区溢出攻击技术研究[J]. 计算机应用研究 2010(05)

    标签:;  ;  ;  ;  

    基于缓冲区溢出的攻击技术及防御策略研究
    下载Doc文档

    猜你喜欢