资源预览内容
亲,该文档总共1页全部预览完了,如果喜欢就下载吧!
资源描述
计算机科学2006VO1. 33No. 3Overfl owDungeon:种新颖的溢出攻击防护系统*)韩宏卢显良 任立勇 杨 宁(电子科技大学计算机学院成都610054)插姜 溢出攻去是期络上成处聂大的一种攻击方式現有的防护b*存蛊不同的孩陷.&文坯出并空现了一种詬 損的防护机制它从阻止溢出攻去产生破环性效果入手,抑创攻击行为。法方式不雪妥侈改須圧萃或修改操作系统 具有爪高的实同社它采刺了统计方式可有效防护Dummy retuni攻去技术.试脸钛杲表明系统不仅能冇效地阻 止溢出攻去庄效车方面柯对于其他方丸也有显蓊优势.关钱词 溢出攻i. API Hook.函数调用Tracing, API调用基因较验Overfl(wl)iingeon: A Novel Overflow Attack Prevention SystemHAN Hong LU Xian-Liang REN Li-Yong YANG Ning(Computer Science Depanmeni of UESTC Chengdu 610054)Abstract Overflow attack does the broaden harm to network applications. There are technk,ucs which can prevent the kind of attack However they have obvious flaws. This paper presents a novel mechanism of overflow attack preven tion. which prevents shell code from exploiting resources of system In this way, we need nol change compiler or operating system. It uses statistic way to prevent dummy return trick. The implementation shows that it can prevent overflow attack and ha$ advantage oi perfonnance over other mechanisms.Keywords Overflow attack API Hookt Function calling tracing. API caKing gene checking 105 105 1引官缓冲区溢出是严重威胁网络安全的攻击方式占网络攻 击的80%.而对它的防范目肋还没有特别有效的防御手 段.其中主要包括四种方式:仃)修改编译器(主要耀Linux 下的gcc);(2)源代码谄态分析M3)修改操作系统内核(比如 修改Linux) |(4)网络人侵检罔分析溢岀攻击待征.这些方法都有明歓陷,第-种方式的代表有Stack- Guard 和StackShicld.ft们通过在Kcc编译器上增加模块,对 函数调用进行保护。StackGunnJ在隨数中插入代码,检査函 数返冋时是否因缓冲区溢出修改了某些持殊字(Canary Word).并对常用函数调用采取了利用硬件特性的离效保护 措施。而StackShield則是在函数中插入代码保存堆栈映 彖当函数返回时将栈映象还原代。这种修改编诽器的方式 最大的问题足,必需编译器支持,而且需要源代码,许多商业 化的编谦器并不支持这种机制。同时,商业化系统也不可能 得到其漁代码对于众多巳存在系统这一方式也无能为力。 此外在函数中備入保护代码,开销是显著的为了弥补没有 源代码这个缺陷有研宪尝试分析二进制文件在机器码中插 人保护代码这种方式冇许多缺陷性,比如无法梢准分析代 码在某些情况下也不具备插入代码的条件对于源代码静态分析相关研究工作很多比如文4,5, 这一方式的缺点是无法祢补已存亦系址的JW洞,并且需要源 代码.至于第三种方式在开源系统上研究工作比较多址着名 的例子是Solaris下非执行栈的补丁而这一方式被移槓到了 Linux上主要有Open Wal Pax17- 该方式通过将栈的内 存页属性变为非执行从而侃止在栈上运行代臥这一方式 有两个弱点,一、对于没有源代码的商业操作系统比如Win- dowQ将无能为力二在栈或堆上运行某些代码是现有软件 系统使用的技巧比如g(x为了对内尿函数支持使用了一种 祢为堀床(trampoline) 技术就是在钱上运行代码U而祀 Windows平台下许多类库为了封装消息循坏运行期在堆 上分配代码以充当消息处玫函数,比如VCL和ATL.直接 阻止在栈或堆上运行代码会昂致许多软件无法运行。因此折 衷的办法绘设定某些软件可在栈或堆上运行代码这乂留下 了被攻击的可能.关于最后一种方式,相对而言是-种辅助的手段。他们 通过检査网络上的报文分析某些特征,例如Prelude.在 Lirwx下的溢岀攻击经常会采用连续多个空操作(NOP)。但 这些蒔征并不非希有效,比如Windows F的攻击就不会采用 这一方法另外现在的攻击经常会将溢岀代码加密这样就 很堆分析特征了.本文提出了一种新的思賂它允许代码溢出发生,但是遏 制溢出行为造成破坏性结果:因为溢岀攻击鼓终必须使用換 作系统的资源,比如生成超级用户,或形成远程Shell等】 而系统资源的使用是通过API调用那么只要訪止攻击对系 统API调用就可阻止溢出攻击的最终目标.基于该思路我 们提出并实现了 Windows下的溢岀攻击防护系统Overflow- Dungeon.2基于系统调用基因校验的溢出攻击防护系统2.1堆栈溢出攻击Buffer Overflow攻击分为基于栈和基于堆两种。基于栈 105 本文受信息产业部生产发展基金项目网络丈全集成防护系険支持项目代号信运部2OO2546H宏 博士主要研究方向:网坡安全、软 件V9i.卢用良 教授,博士生学主契研究力向;计算机网蜡爍作累烧.任立H博士主要研究方向:计算机琳第、掾作系统 105
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号