- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux地址空间随机化的缓冲区溢出研究
摘要:缓冲区溢出攻击是一种被广泛利用并危害严重的攻击方式,已经成为计算机系统安全亟待解决的重要问题。在分析缓冲区溢出攻击原理的基础上,给出了主要的防御方法,重点探讨了Linux系统下地址空间随机化防御方法的实现,研究了如何绕过其防护的缓冲区溢出攻击方法,并对其防护效果进行了分析。结果表明,地址空间随机化技术能有效降低缓冲区溢出攻击成功的概率,但不能完全阻止攻击。
关键词:缓冲区溢出;Linux;地址空间随机化;攻击;防御
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)01-0090-04
Buffer Overflow Research based on Address Space Randomization in Linux
YU Xiao-hong, LU-Yao
(Tongji University, Shanghai 201804, China)
Abstract: Buffer overflow attack has been widely used and could cause great damage. It has become an important issue of computer system security. This paper analyzes the principle of buffer overflow attack, and presents common methods for defending the attack. Then the implementation of defense method for address space randomization in Linux system is mainly discussed, and buffer overflow attack methods for bypassing the defense are proposed. Finally, the effectiveness evaluation of the defense is also given. The results show that address space randomization technique can effectively reduce the probability of successful buffer overflow attacks, but it can not prevent attacks completely.
Key words: buffer overflow; Linux; address space randomization; attack; defense
随着信息技术的高速发展,利用广泛开放的网络环境进行通信已成为时代发展的趋势。网络在提供开放和共享资源的同时,也不可避免地存在着安全风险。由于计算机网络系统自身存在漏洞,这些漏洞一旦被攻击者利用,就可能导致计算机系统的数据和资源遭到破坏。缓冲区溢出漏洞是最常见的漏洞。在SANS选出的威胁最大的20个漏洞中,有10个是由于缓冲区溢出所造成的[1]。对缓冲区溢出漏洞进行攻击,将会导致程序运行失败、系统崩溃以及执行任意代码等后果,对系统安全构成极大威胁。远程攻击者能利用这种攻击获取系统控制权,进而执行各种非法操作,窃取秘密信息或以该主机为跳板攻击其他主机。据统计80%以上成功获取非法权限的攻击都是利用了缓冲区溢出漏洞[2]。因此研究缓冲区溢出的攻击和防御机制对计算机网络安全尤为重要。
本文介绍了缓冲区溢出的基本原理及主要的防御方法,其中重点分析了地址空间随机化技术在Linux系统中的实现,并针对这一防御技术,研究如何绕开其防护的缓冲区溢出攻击方法,并作了相关的理论分析和实际测试。
1 缓冲区溢出
1.1 缓冲区溢出攻击原理
缓冲区溢出是指:写入缓冲区的数据量超过缓冲区的设计大小,溢出的数据覆盖了相邻存储单元中的数据。攻击者通过溢出缓冲区将恶意代码注入内存,使进程运行时跳转并执行恶意代码来进行攻击[3]。缓冲区溢出攻击主要分为以下几类:栈溢出、堆溢出、格式化字符串溢出和整型变量溢出等,其中以栈溢出最为常见。
在Intel 80×86体系结构中栈位于高地址区域,且向低地址方向增长。栈帧在内存中的分布结构如图1所示,其中,调用方EBP(栈基地址指针)存放了函数调用方的栈底地址,函数返回值存放了函数结束后的返回地址。由于新创建的数据总是位于内存的低地址区域,当用户向低地址缓冲区写入过多数据时,就会造成数据溢出,从
文档评论(0)