什么是缓冲区溢出
组成所有应用程序的程序由缓冲区组成,缓冲区是在内存中分配的临时空间,用于保存数据,直到它们移动到程序的其他部分,缓冲区可以包含的数据字节数最初将在代码开发期间指定,由于没有任何类型的边界检查机制,如果输入的输入大小超过分配给该缓冲区的大小,它就会溢出,从而覆盖存储在相邻缓冲区或程序本身中的数据。这称为缓冲区溢出,此漏洞很容易成为攻击者寻找漏洞利用的目标。
为什么缓冲区溢出是一个漏洞
在缓冲区溢出漏洞利用期间提供给程序的多余数据甚至可能是一段恶意代码,旨在完全控制操作系统、损坏文件或窃取数据,使其成为一个具有严重影响的漏洞,即使攻击者无法访问完整的操作系统,他们也很可能会阻止程序运行,或者更糟的是,导致拒绝服务。
在存在的不同类型的漏洞中,缓冲区溢出漏洞是最早被利用的漏洞之一,尽管现代编程语言内置了各种技术来逃避此类攻击,但安全趋势表明,过去几年此类漏洞的数量突然激增。这指出了一个显而易见的事实,即随着应用程序通过减少它们所包含的漏洞来加强安全性,攻击者通过提出更新的方法来执行漏洞利用来回报。因此,作为一家企业,不能仅仅依靠供应商为您提供安全无瑕的软件,必须安装适当的漏洞评估和管理解决方案。
缓冲区溢出有哪些类型
- 基于堆栈的缓冲区溢出:堆栈是内存中用于存储用户输入的空间。基于堆栈的缓冲区溢出攻击是由于利用这些内存空间而发生的攻击。发生的大多数攻击都是基于堆栈的。
- 基于堆的缓冲区溢出:这些攻击很难实现,因此与基于堆栈的缓冲区溢出攻击相比,发生的频率较低。为实际程序节省的内存空间被视为堆,并在基于堆的攻击中受到攻击。
缓冲区溢出示例
让我们看一下利用此类漏洞的几个简单场景。
- 考虑为授予用户访问系统的权限而编写的程序。将要求用户输入密码,如果密码正确,他将被授予对系统的访问权限。现在让我们假设用户输入的虚假密码长度大于缓冲区可以容纳的长度。在这种情况下发生缓冲区溢出。即使输入的密码不正确,程序最终仍将允许用户访问系统,因为保存密码检查条件的相邻存储器将被密码输入期间给出的多余数据覆盖。
- 这种攻击也可以以修改返回地址为动机。这些漏洞可用于损坏内存并转移程序的正常执行流程。这可以通过用用于完成缓冲区溢出的多余数据覆盖保存返回地址的内存位置来实现。因此,攻击者可以通过在新添加的返回地址中包含任意代码来控制代码执行的结果。
- 用大大超过分配缓冲区空间的数据淹没输入也可能导致系统崩溃,并可用于促进DDOS攻击。
如何防止缓冲区溢出攻击
现在,这种袭击的严重性暴露无遗,在这种情况下,Vulnerability Manager Plus 可以用作主动工具,因为它们有效地打包了多种处理同一问题的方法。
- 地址空间布局随机化(ASLR)
- 数据执行保护(DEP)
- 结构化异常处理程序覆盖保护 (SEHOP)
- 补丁缓冲区溢出漏洞
地址空间布局随机化(ASLR)
尽管由于缺乏边界检查,缓冲区溢出通常发生在 C 和 C++ 等较旧的编程语言中,但更高级的语言仍然可能成为此类攻击的牺牲品。它们仍然继续发生,因为攻击者很容易猜测进程和函数在内存中的位置。ASLR 基本上可以通过随机化可能成为此类攻击潜在目标的地址空间来解决此问题。当尝试利用缓冲区溢出漏洞时,由于攻击者缺乏有关随机化的知识,将调用不正确的地址空间位置。这将导致目标应用程序崩溃,从而停止攻击并向系统发出警报。
Vulnerability Manager Plus使用这种独特的漏洞扫描和管理工具,将获得此类安全错误配置的100%可见性以及立即启用ASLR的其他选项。
数据执行保护(DEP)
数据执行保护可防止执行内存的某些扇区。使用 DEP,编写代码的人可以选择不执行堆栈甚至程序的其他不必要的部分。这意味着攻击者将无法使用缓冲区溢出攻击将任意代码添加到堆栈并期望其成功运行。与ASLR一样,DEP也在所有最新版本的Windows中自动启用。但是,由于管理员要管理大量配置,因此意外禁用的可能性很大,Vulnerability Manager Plus通过立即识别,报告和修复此类事故来做出色的工作。
结构化异常处理程序覆盖保护 (SEHOP)
结构化异常处理 (SEH) 是一种异常处理机制,用于处理应用程序代码正常执行过程中出现的错误和异常。此异常处理程序可以被缓冲区溢出操纵和覆盖,因为它们通常存在于堆栈中,从而导致 SEH 漏洞并迫使应用程序关闭。结构化异常处理覆盖保护 (SEHOP) 旨在阻止使用结构化异常处理程序 (SEH) 覆盖技术的攻击。Vulnerability Manager Plus在扫描所有企业端点方面做得非常出色,以确保启用SEHOP,从而保护您免受大量此类攻击。
补丁缓冲区溢出漏洞
尽管您进行了所有管理工作,但此类漏洞仍进入您的网络,Vulnerability Manager Plus 将为您提供支持。您可以全面了解网络中存在的所有漏洞,以及导致漏洞的原因的详细信息。这个全面的漏洞评估和管理解决方案向前迈进了一步,不仅可以识别缓冲区溢出等漏洞,还可以以补丁的形式提供修复它们的方法。您可以直接从控制台立即为所有发现的漏洞轻松部署补丁。
尽管这些缓冲区溢出攻击可能很危险,但可以通过漏洞扫描和修复解决方案轻松防止它们。Vulnerability Manager Plus 在这方面做得很全面,不仅识别此类漏洞,而且还有效地为组织提供解决或缓解这些漏洞所需的方法。