欢迎来到天天文库
浏览记录
ID:9376511
大小:748.19 KB
页数:12页
时间:2018-04-29
《缓冲区溢出攻击与防范》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机病毒和入侵检测大作业缓冲区溢出攻击与防范Bufferoverflowattackingandprevention学院(系):软件学院专业:软件工程学生姓名:刘毅超学号:201192057班级:软件1116完成日期:2013年12月30日大连理工大学DalianUniversityofTechnology缓冲区溢出攻击与防范目录1引言...................................................................................................32基本原理分析.
2、..................................................................................33制造缓冲区溢出...............................................................................43.1格式化字符串:.......................................................................43.2堆栈缓冲区(Buffer)溢出攻击:....
3、......................................63.3HEAP/BSS溢出攻击:..............................................................84预防缓冲区溢出攻击......................................................................104.1强制写正确的代码.................................................................10
4、4.2使缓冲区不可执行.................................................................104.3利用编译器的边界检查来实现缓冲区的保护......................104.4在程序指针失效前进行完整性检查......................................114.5可不可以从根本上解决缓冲区溢出攻击..............................115总结.........................................
5、........................................................116参考资料.........................................................................................122缓冲区溢出攻击与防范1引言缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,使得溢出的数据覆盖在合法数据上。在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,而缓冲区溢出中,最为危险的是堆栈溢出。(操作系统所
6、使用的缓冲区又被称为"堆栈".。在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。)本文详细分析了缓冲区溢出的原理,描述了利用缓冲区溢出漏洞进行系统攻击的一般过程,最后简单讨论了几种缓冲区溢出的保护方法。2基本原理分析缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,植入到缓冲区,然后再向一个有限空间的缓冲区中植入超长的字符串,这时可能会出现两个结果:一是过长的字符串覆盖了相邻的存储单元,
7、引起程序运行失败,严重的可导致系统崩溃;另一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。缓冲区是程序运行的时候机器内存中的一个连续块,它保存了给定类型的数据,随着动态分配变量会出现问题。大多时为了不占用太多的内存,一个有动态分配变量的程序在程序运行时才决定给它们分配多少内存。如果程序在动态分配缓冲区放入超长的数据,它就会溢出了。一个缓冲区溢出程序使用这个溢出的数据将汇编语言代码放到机器的内存里,通常是产生root权限的地方。仅仅单个的缓冲区溢出并不是问题的根本所在。但如果溢出送到能够以root权限运行命令的区域,一旦运行
8、这些命令,那可就等于把机器拱手相让了。现在存在的主要的缓冲区溢出攻击有格式化串缓冲区溢出攻击,堆栈缓冲区(B
此文档下载收益归作者所有