什么是缓冲区溢出?

2016-08-15 1228 3 编辑:深色多郎 来源:互联网书籍

定义

缓冲区是内存中存放数据的地方,用来接收和保存数据,直至进程对数据进行处理。由于各个进程都有自己的缓冲区,所以需要保存各进程的缓冲区彼此无关。而缓冲区溢出即一个程序要写的数据在可分配内存的范围之内,这是一种非常普遍的漏洞,在各种操作系统、应用软件中广泛存在。

原理

在内存分配之后,缓冲区的长度是固定的,其自身缺乏相关的机制来防止在保留空间中放入过多的数据。但攻击者写一个超过缓冲区长度的字符串,植入到缓冲区,然后再向一个有限空间的缓冲区中植入超长的字符串,结果就会导致数据外溢,覆盖相邻内存空间。这就是缓冲区溢出攻击。

后果

缓冲区溢出攻击可能导致三个后果:一是程序运行失败甚至系统崩溃;二是以普通用户的身份植入并且执行攻击代码;三是取得系统Root特级权限执行恶意代码,比如删除数据、将感染的PC转换成肉鸡、传送垃圾邮件等。

案例

1988年的莫里斯蠕虫病毒和2001年的红色代码蠕虫就是利用缓冲区溢出攻击并造成伤害的。在近五年中,每年美国计算机紧急事件响应小组协调中心(CERT/CC)公布的缓冲区溢出漏洞在其当年公布的重大安全漏洞中所占比率均在50%以上,而且远程网络攻击的绝大多数为缓冲区溢出攻击。2003年,著名黑客史蒂夫-艾瑟(StrfanEsser)就曾利用缓冲区溢出漏洞,将Linux灌进全新并完好的Xbox内,并开机成功。这使未经授权的软件,包括自制程序游戏,不需要修改硬件(被称为mod chips)就可在控制台运行。

更多资讯,请您百度:深圳网站建设深正互联

本站文章均为深正网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!感谢...
关注深正互联
我们猜你喜欢