b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

缓冲区溢出攻击方式_什么是缓冲区溢出攻击_缓冲区溢出攻击

电脑杂谈  发布时间:2017-01-22 18:12:16  来源:网络整理

摘要:DEP是微软公司新推出的一项硬件安全技术,它能够有效地防范缓冲区溢出攻击。本文在简单介绍了windows缓冲区溢出攻击的基础上,对DEP技术的基本原理、软硬件支持情况、使用方法等方面做了较为详细的分析,并指出DEP技术和一般的防病毒软件的区别。

关键词:DEP;缓冲区;溢出攻击;堆栈

中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10665-02

1 引言

缓冲区溢出漏洞是当前计算机和互联网系统中最普遍也是威胁最大的安全漏洞,利用缓冲区溢出漏洞实施的攻击已经成为当前Internet上最普遍、危害最大的一种网络攻击手段。据统计,大约80%的安全事件与缓冲区溢出攻击有关[1]。缓冲区溢出攻击是利用目标程序的缓冲区溢出漏洞,通过往目标程序的缓冲区写入超出其长度的数据,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的[2]。

缓冲区溢出攻击方式_缓冲区溢出攻击_什么是缓冲区溢出攻击

目前,较为有效的防范缓冲区溢出攻击的措施主要包括[3]:强制程序开发人员书写正确的、安全的代码;通过数组操作检查工具(例如:Compaq C编译器、gcc补丁等)对数组的读写操作进行边界检查来实现对缓冲区的保护,使得缓冲区溢出不可能出现;通过设置缓冲区的堆栈段为不可执行,从而阻止攻击者植入攻击代码(也即ShellCode)。这些措施当中,如果仅仅从软件的层面来进行防范,一方面,由于软件的复杂性和集成度日益提高,其留下的大量漏洞反而会给缓冲区溢出攻击所利用;另一方面,从效率的角度考虑,基于软件的防范措施也已经很难满足现代用户的安全需求。因此,从硬件的层面采取措施来进行缓冲区溢出的防范,已经成为目前业界的一个研发重点。DEP(Data Execute Protection,数据执行保护)技术正是微软公司在其Windows XP SP2、Windows Server 2003 SP1及其更高版本中推出的一项基于硬件的防范缓冲区溢出攻击的安全技术,它是通过设置缓冲区的堆栈段为不可执行来实现的。本文将对这一技术做较为详细的分析研究。

2 缓冲区溢出攻击的基本原理

一个程序在内存中运行时,按照从内存低端到内存高端的方向通常可以分为程序段、数据段和堆栈三个部分,如图1所示:

程序段里存放着程序的机器码和只读数据,数据段里存放着程序中的静态数据,而堆栈中存放着程序的动态数据。缓冲区正是在内存的堆栈上分配的一段连续的内存空间,它是程序运行时用于存放动态数据的空间,它的大小在程序运行时固定申请。

堆栈是一个后进先出(LIFO)的队列,它的生长方向与内存的生长方向正好相反,如图2所示。

缓冲区溢出攻击方式_缓冲区溢出攻击_什么是缓冲区溢出攻击

当程序中发生函数调用时,计算机的处理器会依次将函数的参数、返回地址及基址寄存器EBP(该寄存器存储的内存地址为函数在参数和返回地址压栈之前的内存地址)压入堆栈中,然后把当前的堆栈指针(ESP)作为新的基地址。缓冲区溢出攻击如果函数中存在局部变量,则函数会把堆栈指针ESP减去某个值,为需要的动态局部变量腾出所需的内存空间,函数内使用的缓冲区就分配在腾出的这段内存空间上。函数返回时,将会弹出EBP,恢复堆栈到函数调用前的地址;弹出返回地址到指令指针寄存器(EIP)以继续执行原程序。

现在,假设向目标程序的缓冲区写入一个长度超过其长度的数据,输入的数据将占满缓冲区的所有空间,并且超越缓冲区边界延伸到缓冲区以外的空间。而由于堆栈的生长方向与内存的生长方向正好相反,超出缓冲区边界的数据就可能将EBP和返回地址覆盖,造成所谓的缓冲区溢出。一般情况下,缓冲区溢出会导致程序运行失败。但如果覆盖EIP的值刚好是黑客精心设计的一段攻击代码(ShellCode)的内存地址,程序将改变正常的流程而跳转到该攻击代码的位置并开始执行,攻击者就能获取对系统的控制,利用ShellCode实现各种功能,比如,得到一个Shell,一个端口,添加一个用户,等等,从而达到攻击的目的。这正是缓冲区溢出攻击的基本原理。

从上面的分析中可以看出,攻击者要达到攻击目的,必须同时完成下面的两个步骤[1]:(1)在程序的适当地址空间里安排攻击代码;(2)设法使程序跳转到该段代码处执行。缓冲区溢出攻击本文分析的DEP技术,是通过阻止第二个步骤来实现的。

3 缓冲区溢出攻击的防范技术——DEP

为了有效的防范缓冲区溢出攻击,提高系统的安全性能,微软公司和包括Intel和AMD在内的处理器制造商展开密切合作,在其推出的Windows XP SP2、Windows Server 2003 SP1及其更高版本的Windows操作系统中支持了DEP这一功能。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28102-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 王振宇
        王振宇

        怎么想出这注意的

      • 吴添凤
        吴添凤

        它已超出了双边或多边的范畴

        • 郭廷宸
          郭廷宸

          然而后边那女的是几个意思

      每日福利
      热点图片
      拼命载入中...