如何防止缓冲区溢出 缓冲区溢出有哪些危害?

2022-09-29 15:57:02

缓冲区溢出尽管在通常情况下它很容易修补。

但它们仍然是一种对安全代码的威胁。不管是用户也好,程序的攻击者也好,当提供的数据长度大于应用程序预期的长度时,便会发生缓冲区溢出,此时数据会溢出到内部存储器空间。有两种缓冲区溢出不明显且难以修复。

一是开发人员没有预料到外部提供的数据会比内部缓冲区大。溢出导致了内存中其他数据结构的破坏,这种破坏通常会被攻击者利用,以运行恶意代码。二是数组索引错误也会造成缓冲区下溢和超限,但这种情况没那么普遍。

危害

在计算机安全领域,缓冲区溢出就好比给自己的程序开了个后门,这种安全隐患是致命的。缓冲区溢出在各种操作系统、应用软件中广泛存在。而利用缓冲区溢出漏洞实施的攻击就是缓冲区溢出攻击。缓冲区溢出攻击,可以导致程序运行失败、系统关机、重新启动,或者执行攻击者的指令,比如非法提升权限。

在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。

关闭
精彩放送