网站大量收购独家精品文档,联系QQ:2885784924

基于双栈的缓冲区溢出攻击的防御-同济大学学报.doc

基于双栈的缓冲区溢出攻击的防御-同济大学学报.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于双栈的缓冲区溢出攻击的防御-同济大学学报.doc

___________________ 基金项目:国家高技术研究发展计划课题(2007AA01Z142)。 作者简介:陈林博(1984-),男,博士生,主要研究方向为可信计算。E-mail:longxingkeer@163.com。 江建慧(1964-),男,工学博士,教授,博士生导师,主要研究方向为可信系统与网络、软件可靠性工程、VLSI/SoC测试与容错等。E-mail:jhjiang@ 基于双栈的缓冲区溢出攻击的防御 陈林博,江建慧,张丹青 (同济大学计算机科学与技术系, 上海 201804) 摘 要:针对基于Intel 80X86结构的C/C++栈缓冲区溢出攻击的典型防御方法的不足,提出了一种基于双栈结构的缓冲区溢出漏洞的防御方法,设计并实现了一个ELF格式目标文件重构工具。实验结果表明,所提出的方法和开发的工具能在较低的性能开销下实现栈缓冲区溢出攻击的防御。 关键词:软件漏洞;栈缓冲区溢出攻击;栈缓冲区溢出攻击防御;双栈 中图分类号:TP 393.08 文献标识码:A Stack Buffer Overflow Prevention Based on Dual-stack CHEN linbo1, JIANG jianhui1, ZHANG danqing1 1(Department of Computer Science and Technology, Tongji University, Shanghai 201804, China) Abstract: In this paper, classical buffer overflow prevention methods for Intel 80x86 architecture and C/C++ are analyzed. A new stack buffer overflow prevention method based on dual-stack is proposed due to the shortcomings of classical methods. Besides, an object file reconstructing tool for ELF format files is implemented with the dual-stack structure. Experimental results show that the proposed method and the tool is efficient for buffer overflow attack prevention with low overhead. Keywords: software vulnerabilities; stack buffer overflow; stack buffer overflow prevention; dual-stack 缓冲区溢出漏洞是困扰系统安全的最常见漏洞之一,近几年来缓冲区溢出漏洞所占比例不低于当年发布的总漏洞数的10%[1]。相比堆缓冲区漏洞和格式化字符串攻击的漏洞,栈缓冲区漏洞仍占多数,并且攻击者利用栈缓冲区漏洞的手段多样化,攻击更隐蔽。 由于C及C++语言中指针的灵活操作与广泛运用,同时函数中存在没有做边界检查的缓冲区,并且Intel 80X86体系结构中栈的增长方向及栈中数据的增长方向相反,这些都为缓冲区溢出攻击提供了条件。目前,典型的栈缓冲区攻击方法有直接篡改函数的返回地址和调用函数的EBP值、通过指针间接篡改函数返回地址等。防御缓冲区溢出最为成功的方法有基于编译器优化的StackGuard[8]、基于操作系统优化的ASLR[13]和Non-executable stack[14]的组合方法。 本文第一节从攻击者角度对存储在栈中的数据分类,并简要描述了栈缓冲区溢出攻击的两种模式;基于第二节中所阐述的现有栈缓冲区溢出防御方法及其存在的问题,本文在第三节提出了基于双栈结构的缓冲区溢出防御模型,并分析其有效性;在第四节中阐述了一个ELF格式目标文件重构工具用以实现双栈结构,用实验验证了双栈结构的有效性,并且评估其性能;第五节给出了结论。 1缓冲区溢出攻击 缓冲区溢出攻击是指攻击者利用程序中存在的漏洞,向缓冲区中存入超过设计时定义的数据量,从而覆盖缓冲区相邻存储单元中的数据,使得程序在执行时跳转执行攻击者所指定的代码。因此可以总结栈缓冲区溢出的如下两种攻击模式[2,3,5,10,18,19,27]:一是通过对缓冲区的溢出直接篡改EBP、EIP等关键数据;二是通过对缓冲区的溢出修改指针变量等,间接篡改EBP、EIP等关键数据。 通过对攻击模式的分析,可以将栈中的数据分为安全(secur

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档