缓冲区溢出的原理缓冲区是内存中存放数据的地方,在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。缓冲区溢出漏洞攻击方式缓冲区溢出漏洞可以使任何一个有黑客技术的人取得机器的控制权甚至是最高权限。原则上来讲攻击时所针对的缓冲区溢出的程序空间可为任意空间。攻击时定位在一个可供溢出的自动变量,然后向程序传递一个很大的字符串,在引发缓冲区溢出改变事件记录的同时植入代码。......
2023-11-25
目前最流行的一种攻击技术就是缓冲区溢出攻击。当目标操作系统收到了超过了它能接收的最大信息量时,将发生缓冲区溢出。这项攻击对技术要求比较高,但是攻击的过程却非常简单。
(一)缓冲区溢出
缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。
缓冲区溢出的原理很简单,如下所示。
程序中利用strcpy()函数将str中的内容拷贝到buff中,只要str的长度大于16,就会造成缓冲区溢出,存在类似strcpy()函数这样问题的C语言函数还有很多。
当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉了。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。
缓冲区溢出是由编程错误引出的。如果缓冲区被写满,而程序没有检查缓冲区边界,也没有停止接收数据,这时缓冲区溢出就会发生。缓冲区溢出之所以泛滥,是由开放源代码程序的本质决定的。标准C语言具有许多复制和添加字符串的函数,这使得标准C语言很难进行边界检查。一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误,但是,如果输入的数据是经过“黑客”精心设计的,覆盖缓冲区的数据恰恰是“黑客”或者病毒的攻击程序代码,一旦多余字节被编译执行,“黑客”或者病毒就有可能为所欲为,获取系统的控制权。(www.chuimin.cn)
(二)缓冲区溢出的防御
缓冲区溢出是目前导致“黑客”型病毒横行的主要原因。从“红色代码”到Slammer,再到“冲击波”,都是利用缓冲区溢出漏洞的典型病毒案例。缓冲区溢出是一个编程问题,防止利用缓冲区溢出发起的攻击,关键在于程序开发者在开发程序时仔细检查溢出情况,不允许数据溢出缓冲区。此外,用户需要经常登录操作系统和应用程序提供商的网站,跟踪公布的系统漏洞,及时下载补丁程序,弥补系统漏洞。因此,防御方法大致可以划分为两类。
1.编译时防御
编译时防御,是指在进行编译的时候通过检测程序防止或侦测缓冲区溢出。完成该防御的可能性依赖于选择一种不允许缓冲区溢出的高级语言,鼓励使用安全的编码技术,使用安全的标准库,或者包含用来检测栈帧是否被破坏的附加代码。
2.运行时防御
就像我们已经注意到的那样,大多数编译时防御方法需要对现有的程序重新编译。因此,人们有了对运行时防御的兴趣,像操作系统通过更新来对存在漏洞的程序提供保护一样,运行时防御也能像这样配置。
有关计算机网络与信息安全的文章
缓冲区溢出的原理缓冲区是内存中存放数据的地方,在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。缓冲区溢出漏洞攻击方式缓冲区溢出漏洞可以使任何一个有黑客技术的人取得机器的控制权甚至是最高权限。原则上来讲攻击时所针对的缓冲区溢出的程序空间可为任意空间。攻击时定位在一个可供溢出的自动变量,然后向程序传递一个很大的字符串,在引发缓冲区溢出改变事件记录的同时植入代码。......
2023-11-25
广义上讲,任何在非授权的情况下,试图存取信息、处理信息或破坏网络系统以使系统不可靠、不可用的故意行为都被称为网络攻击。对计算机和网络安全系统而言,入侵与攻击没有本质的区别,仅仅是在形式和概念描述上有所不同,其实质基本上是相同的。攻击和网络安全是紧密联系的。这是最危险的类型,据有关资料统计,80%以上的网络攻击或破坏与内部攻击有关。......
2023-10-18
注入式攻击是一种比较常见、危害严重的网络攻击,其主要针对Web服务器端的特定数据库系统。由于注入式攻击利用的是SQL语法,因此这种攻击具有广泛的应用基础。但是,注入式攻击会导致网站出现一些可疑现象,如Web页面混乱、数据内容丢失、访问速度下降等,这些现象都有助于发现注入式攻击。......
2023-10-18
这里说的缺陷,包括软件缺陷、硬件缺陷、网络协议缺陷、管理缺陷和人为的失误。很显然,黑客技术对网络具有破坏能力。典型的漏洞攻击有以下几种:1)Unicode漏洞。2014年4月8日,网络安全协议OpenSSL的超级大漏洞曝光。近来,传统的DOS攻击已经演化为更危险的分布式拒绝服务攻击。分布式拒绝服务攻击不仅更加危险,而且更加难于防范。......
2023-10-18
链路加密的目的是保护网络节点之间的链路信息安全;端到端加密的目的是对源端用户到目的端用户的数据提供保护;节点加密的目的是对源节点到目的节点之间的传输链路提供保护。因此认清网络的脆弱性和潜在威胁,采取强有力的安全策略,对于保障网络的安全性将变得十分重要。......
2023-10-18
任务描述认识防范网络攻击的方法,采取防范网络攻击的措施,提高信息安全意识。任务实施一、网络攻击的方法网络攻击是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的任何类型的进攻动作。项目小结通过本项目的学习,学生能理解信息安全的概念,知道了信息安全的作用地位,理解了常见网络攻击的形式,并提高了防范网络攻击的意识。......
2023-10-26
由于计算机的配置不同,设计程序时所使用的语言也不同。目前,可用于程序设计的语言基本上可分为机器语言、汇编语言和高级语言。这些英文字符被称为助记符,用助记符表示的指令称为符号语言或汇编语言,用汇编语言编写的程序称为汇编语言程序。因此,机器语言和汇编语言均是面向“机器”的语言,缺乏通用性。......
2023-10-18
网络安全体系结构与网络体系机构在概念上是紧密相连的。(二)ISO安全体系结构1989年12月ISO颁布了计算机信息系统互联标准的第二部分,即ISO7498-2标准,并首次确定了开放系统互联参考模型的安全体系结构。......
2023-10-18
相关推荐