第7章:缓冲区溢出攻击及防御技术

第7章:缓冲区溢出攻击及防御技术

ID:46004374

大小:926.50 KB

页数:134页

时间:2019-11-20

第7章:缓冲区溢出攻击及防御技术_第1页
第7章:缓冲区溢出攻击及防御技术_第2页
第7章:缓冲区溢出攻击及防御技术_第3页
第7章:缓冲区溢出攻击及防御技术_第4页
第7章:缓冲区溢出攻击及防御技术_第5页
资源描述:

《第7章:缓冲区溢出攻击及防御技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章缓冲区溢出攻击及防御技术张玉清国家计算机网络入侵防范中心72021/9/17网络入侵与防范技术2本章内容安排7.1缓冲区溢出概述7.2缓冲区溢出原理7.3缓冲区溢出的过程7.4代码植入技术7.5实例:ida溢出漏洞攻击7.6缓冲区溢出的防御7.7小结2021/9/17网络入侵与防范技术37.1缓冲区溢出概述什么是缓冲区?它是包含相同数据类型实例的一个连续的计算机内存块。是程序运行期间在内存中分配的一个连续的区域,用于保存包括字符数组在内的各种数据类型。所谓溢出,其实就是所填充的数据超出了原有的缓冲区边界。两者结合进来,所谓缓冲区溢出,就是向固定长度的缓

2、冲区中写入超出其预告分配长度的内容,造成缓冲区中数据的溢出,从而覆盖了缓冲区周围的内存空间。黑客借此精心构造填充数据,导致原有流程的改变,让程序转而执行特殊的代码,最终获取控制权。2021/9/17网络入侵与防范技术47.1缓冲区溢出概述利用缓冲区溢出漏洞进行攻击最早可追溯到1988年Morris蠕虫,它所利用的就是fingerd程序的缓冲区溢出漏洞。1989年,Spafford提交了一份分析报告,描述了VAX机上BSD版Unix的Fingerd的缓冲区溢出程序的技术细节,引起了一部分安全人士对这个研究领域的重视。1996年,AlephOne发表了题为“Sm

3、ashingthestackforfunandprofit”的文章后,首次详细地介绍了Unix/Linux下栈溢出攻击的原理、方法和步骤,揭示了缓冲区溢出攻击中的技术细节。1999年w00w00安全小组的MattConover写了基于堆缓冲区溢出专著,对堆溢出的机理进行了探索。7.1缓冲区溢出概述Windows系统中缓冲区溢出的事例更是层出不穷。2001年“红色代码”蠕虫利用微软IISWebServer中的缓冲区溢出漏洞使300000多台计算机受到攻击;2003年1月,Slammer蠕虫爆发,利用的是微软SQLServer2000中的缺陷;2004年5月爆发

4、的“振荡波”利用了Windows系统的活动目录服务缓冲区溢出漏洞;2005年8月利用Windows即插即用缓冲区溢出漏洞的“狙击波”被称为历史上最快利用微软漏洞进行攻击的恶意代码。2008年底至2009年的Conficker蠕虫利用的是Windows处理远程RPC请求时的漏洞(MS08-067)。2021/9/17网络入侵与防范技术67.1缓冲区溢出概述目前,利用缓冲区溢出漏洞进行的攻击已经占所有系统攻击总数的80%以上。缓冲区溢出攻击之所以日益普遍,其原因在于各种操作系统和应用软件上存在的缓冲区溢出问题数不胜数,而其带来的影响不容小觑。对缓冲区溢出漏洞攻击

5、,可以导致程序运行失败、系统崩溃以及重新启动等后果。更为严重的是,可以利用缓冲区溢出执行非授权指令,甚至取得系统特权,进而进行各种非法操作。如何防止和检测出利用缓冲区溢出漏洞进行的攻击,就成为防御网络入侵以及入侵检测的重点之一。7.1缓冲区溢出概述与其他的攻击类型相比,缓冲区溢出攻击不需要太多的先决条件杀伤力很强技术性强缓冲区溢出比其他一些黑客攻击手段更具有破坏力和隐蔽性。这也是利用缓冲区溢出漏洞进行攻击日益普遍的原因。2021/9/17网络入侵与防范技术72021/9/17网络入侵与防范技术87.1缓冲区溢出概述破坏性:它极容易使服务程序停止运行,服务器死

6、机甚至删除服务器上的数据。隐蔽性:首先,漏洞被发现之前,程序员一般是不会意识到自己的程序存在漏洞的(事实上,漏洞的发现者往往并非编写者),于是疏于监测;其次,被植入的攻击代码一般都很短,执行时间也非常短,很难在执行过程中被发现,而且其执行并不一定会使系统报告错误,并可能不影响正常程序的运行;7.1缓冲区溢出概述隐蔽性:第三,由于漏洞存在于防火墙内部的主机上,攻击者可以在防火墙内部堂而皇之地取得本来不被允许或没有权限的控制权;第四,攻击的随机性和不可预测性使得防御变得异常艰难,没有攻击时,被攻击程序本身并不会有什么变化,也不会存在任何异常的表现;最后,缓冲区溢

7、出漏洞的普遍存在,针对它的攻击让人防不胜防(各种补丁程序也可能存在着这种漏洞。7.2缓冲区溢出原理7.2.1栈溢出7.2.2堆溢出7.2.3BSS溢出7.2.4格式化串溢出2021/9/17网络入侵与防范技术117.2缓冲区溢出原理当程序运行时,计算机会在内存区域中开辟一段连续的内存块,包括代码段、数据段和堆栈段三部分。7.2缓冲区溢出原理程序在内存中的存放形式7.2缓冲区溢出原理代码段(.text),也称文本段(TextSegment),存放着程序的机器码和只读数据,可执行指令就是从这里取得的。如果可能,系统会安排好相同程序的多个运行实体共享这些实例代码。

8、这个段在内存中一般被标记为只读,任何对该区的写操作都

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。