预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据 基于缓冲区溢出的网络渗透技术的研究l基于Windows的缓冲区溢出的原理ResearchNetworkAttackTechnologyBufferOverflow(山西大学商务学院要】网络安全是当今计算机网络研究的热点,而基于缓冲区溢出的网络渗透技术则是严重威胁网络安全的行为之一。详细介绍了缓冲区溢出的原理,并采用跳转指令的方法阐述了Widows环境下缓冲区溢出的实现过程,最后探讨了相关的防范措施,对于有效防范缓冲区溢出攻击有着积极的作用。【关键词】网络安全,缓冲区溢出,跳转指令随着计算机网络应用在各个领域的普及,网络安全问题日益突出。目前。各种各样的网络渗透技术形成了对网络安全最大的威胁。所谓的网络渗透技术是指网络攻击者为了达到某种目的而对远程计算机采取的特定的入侵手段。常见的网络渗透技术有以下几种:漏洞扫描技术;堆栈溢出技术;脚本注入技术;口令破解技术[1]。堆栈溢出技术就是缓冲区溢出的一种,而且大多数的缓冲区溢出都是通过在编写程序软件过程中设计构造堆栈溢出来实现的。缓冲区溢出也属于常见的安全漏洞之一,并且该漏洞广泛存在于各种操作系统软件以及应用软件中。缓冲区溢出漏洞具有这样的特点,在软件测试发行之初不容易被发现,只有在软件被广泛使用后才会凸显出来,而且只能通过打补丁的方式修复漏洞。网络木马以及网络蠕虫的攻击大多利用缓冲区溢出方式实现。在过去十年中,利用缓冲区溢出漏洞进行网络渗透占了远程网络攻击的70%以上[1]。因此,研究缓冲区溢出的原理及防范措施,对于网络安全有着重要的意义。1.1缓冲区溢出的概念缓冲区(buffer)是一块连续的计算机内存区域。是内存中存放计算机正在处理数据的地方。当数据量超出缓冲区的长度时,多出来的数据就会破坏堆栈中的数据.导致应用程序或镳个系统的崩溃等故障;攻击者还可以在溢出数据中加上精心设计的机器代码。当这些代码溢出到缓冲区以外时会被执行,就能达到破坏计算机系统目的。基于缓冲区溢出的网络渗透技术就是如此实现的。缓冲区溢出的类型有很多,例如:栈溢出、堆溢出、整型溢出、格式化字符串溢出、其他溢出。比较常见的,被网络攻击者利用最多的是栈溢出,本文主要介绍栈溢出的原理与实现过程。1.2栈溢出的原理.一个正在运行的程序在内存中通常可以分为三段:程序段(代码段)、数据段和堆栈段.如图1所示。其中,程序段(代码段)存放着程序的机器码和只读数据(例如:常量字符串);数据段中存放的是程序中的静态数据(全局变量或静态变量);动态数据(局部变量或函数的参数)存放在堆栈中。在c/c++等高级语言的函数调用中,缓冲区是在堆栈上进行分配的。栈是一种重要的数据结构。遵循“先进后出”的操作特性。在Intel80×86系统中,由寄存EBP和ESP一起组成一个栈.其中EBP叫做基址寄存器。用来保存当前函数的栈内(栈底)基地址;ESP叫做栈顶指针寄存器,用来保存栈顶地址。另外,还有一个叫做EIP的指令地址寄存器。用来保存下一步要执行指令的存放地址。栈的增长方向与内存的增长方向相反,栈底是内存的高端,栈顶是内存的低端,栈底指针不变化,栈顶指针随着入栈数据的增加而改变[2]。当一个C、C++程序发生函数调用时,栈中发生以下变化:把函数参数压入栈;保存指令寄存器EIP中的内容。作为返回地址Ret入栈;将基址寄存器EBP的值入栈l将函数的局部变萤人栈.同时将栈顶指针减去局部变最所占用的内存空间作为新的栈顶。此时栈的结构如图2所示。函数调用过程完成后,将会进行以下操作:局部变量不作处理,直接丢弃;弹出第24卷第1期based刘飞飞杨森太原030031)【摘电脑开发与应用文章编号:1003-5850(2011)01-0063—03中圈分类号:TP393文献标识码:AJMPWindows,andKEYWORDSoverflow。JMP2010—09—26收到。2010—11.26改回刘飞飞,女.1981年生.硕士.助教.研究方向;网络与信息安全。onABSTRACTsecurityishotpotofnetworkresearchtoday,andtheattacksbufferoverflowseriousthreatssecurity.ThisdescribesprincipleandimplementationusingESPcodeindiscussesrelevantpreventionmethodsend.Thiswillbeusefuleffectively.security,buffertopaperverypreventaare*-* 万方数据 脚2基于Windows的缓冲区溢出的实现3基于缓冲区溢出的网络渗透的防御EBP;弹出EIP;依据EIP的地址执行后续程序。以上是正常的程序调用的执行过程。在函数调用的过