- 1、本文档共127页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 十 章 缓冲区溢出攻击内容提要缓冲区溢出概述1缓冲区溢出攻击原理2缓冲区溢出攻击防御措施3概念缓冲区或缓存 (Buffer):用户为程序运行时在计算机中申请得的一段连续的内存,它保存了给定类型的数据。缓冲区溢出(Buffer Overflow):计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。缓冲区溢出攻击:(一般情况下,缓冲区溢出引起程序运行错误,但是在攻击者的设计下)向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的正常执行流程,使程序转而执行其他的指令,以达到攻击的目的。缓冲区溢出的根源溢出的根源在于编程:如果缓冲区被写满,而程序没有去检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。Unix和MS Windows系统由于要实现更好的性能和功能,往往在数据段中动态地放入可执行的代码。C/C++语言问题:对数组下标访问边界不做检查或者少做检查。程序员的编程习惯:忽略对输入数据进行严格的边界检查。发展历史1988年,Morris蠕虫攻击VAX 和 Sun机器,使当时Internet的大约10%崩溃。1996年,Elias Levy发表文章“Smashing the stack for fun and profit”,显示了很多程序都存在缓冲区溢出的危险。缓冲区溢出攻击被广泛关注。1999年,Dark spyrit AKA Barnaby jack提出使用系统核心dll中的“jmp esp”指令完成shellcode跳转的想法,开创了Win32平台下缓冲区溢出的新思路,大量windows平台下缓冲区溢出漏洞被利用。2001年8月,“红色代码”利用微软IIS漏洞产生缓冲区存溢出,成为攻击企业网络的“罪魁祸首”。 发展历史2003年1月,Slammer蠕虫利用微软SQL漏洞产生缓冲区溢出对全球互联网产生冲击。同年,“冲击波”蠕虫病毒利用微软RPC远程调用存在的缓冲区漏洞对Windows 2000/XP、Windows Server 2003进行攻击,波及全球网络2004年5月爆发的“振荡波”利用了Windows系统的活动目录服务缓冲区溢出漏洞。2005年8月利用Windows即插即用缓冲区溢出漏洞的“狙击波”被称为史上最快利用微软漏洞进行攻击的恶意代码2008年底至2009年的Conficker蠕虫利用的是Windows处理远程RPC请求时的漏洞(MS08-067) 。危害性和普遍性缓冲区溢出漏洞可以使一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。缓冲区溢出攻击占了远程网络攻击的绝大多数,操作系统中超过50%的安全漏洞都是由内存溢出引起的。 任何平台、任何程序都可能存在缓冲区溢出的漏洞。1998年Lincoln实验室用来评估入侵检测的的5种远程攻击中,有2种是缓冲区溢出。而在1998年CERT的13份建议中,有9份是是与缓冲区溢出有关的,在1999年,至少有半数的建议是和缓冲区溢出有关的。危害性和普遍性普遍性?1999年,CERT安全建议中50%以上同它有关。严重性?获得系统最高权限。没有有效预防措施C语言问题程序员编程习惯,安全意识薄弱危害性和普遍性安全漏洞数量(CERT)危害性和普遍性近年来,虽然缓冲区溢出漏洞的数量占比有所减少,但仍然是一类危害性极大的、数量众多的安全漏洞内容提要缓冲区溢出概述1缓冲区溢出攻击原理2缓冲区溢出攻击防御措施3三种内存分配模式(1)静态分配:在进程创建时由系统一次性分配的整块静态内存,这块空间在进程运行期间保持不变。包括:正文( TEXT)段:指令数据( DATA)段:初始化的全局静态数据BSS段:未初始化的全局数据栈空间三种内存分配模式(2)堆栈(Stack)分配:调用程序的地址信息,函数参数的内存分配。整个堆栈空间已在进程创建时分配好。进程刚启动时,堆栈空间是空的,里面无实体。 在进程运行期间,对实体的堆栈分配是进程自行生成(压栈)和释放(弹出)实体,系统并不参与。 只要压入的实体的总长度不超过堆栈空间大小,堆栈分配就与系统无关。若超过,就会引发堆栈溢出错误。三种内存分配模式(3)堆(Heap)分配:当进程需要生成实体时,向系统申请分配空间;不再需要该实体时,可以向系统申请回收这块空间。堆分配使用特定的函数:malloc();new()。 堆分配的空间利用率最高。三种内存分配模式比较静态分配 栈分配 堆分配 空间的生成 进程创建时进程创建时用一点分配一点 实体生成时间 进程创建时 进程运行时 进程运行时 实体生成者 操作系统 进程 进程申请/系统实施 生命期 永久 临时 完全可控 访问方式标识标识指针内存布局(Linux)进程内存布局Adresses hautesArgumentsVariabl
您可能关注的文档
- 网络攻防原理与技术教学课件(共14章)第1章 绪论.pptx
- 网络攻防原理与技术教学课件(共14章)第2章 密码学基础知识.pptx
- 网络攻防原理与技术教学课件(共14章)第3章 网络脆弱性分析.pptx
- 网络攻防原理与技术教学课件(共14章)第4章 网络侦察技术.pptx
- 网络攻防原理与技术教学课件(共14章)第5章 网络扫描技术.pptx
- 网络攻防原理与技术教学课件(共14章)第6章 拒绝服务攻击.pptx
- 网络攻防原理与技术教学课件(共14章)第7章 计算机木马.pptx
- 网络攻防原理与技术教学课件(共14章)第8章 身份认证与口令攻击.pptx
- 网络攻防原理与技术教学课件(共14章)第9章 网络监听技术.pptx
- 网络攻防原理与技术教学课件(共14章)第11章 Web网站攻击技术.pptx
文档评论(0)