什么是缓冲区溢出?

组成所有应用程序的程序由缓冲区组成。缓冲区是在内存中分配的临时空间,用于保存数据,直到将其移动到程序的其他部分为止。缓冲区可包含的数据字节将在代码开发期间首先指定。由于没有任何种类的边界检查机制,如果输入的输入大小超过分配给该缓冲区的大小,则会溢出,从而覆盖存储在相邻缓冲区或程序本身中的数据。这称为缓冲区溢出,此漏洞很容易成为攻击者寻找攻击的目标。

为什么缓冲区溢出很危险?

在缓冲区溢出期间提供给程序的多余数据甚至可能是一段恶意代码,意在完全控制操作系统,破坏文件或窃取数据,这使其成为带有严重影响的漏洞。即使攻击者无法访问整个操作系统,他们也很可能会阻止程序运行,甚至变得更糟,从而导致拒绝服务。

在存在的各种类型的漏洞中,缓冲区溢出是最早可利用的漏洞之一。尽管现代编程语言已内置各种技术来规避此类攻击,但安全趋势表明,  最近5年此类漏洞的数量突然激增。这表明了一个显而易见的事实,即随着应用程序通过减少其所包含的漏洞来加强安全性,攻击者会通过提出更新的方法来进行利用来进行反击。因此,作为一家企业,您不仅可以依靠供应商为您提供安全无瑕的软件,还必须对漏洞进行适当的评估。和管理解决方案首先安装。Vulnerability Manager Plus不仅通过识别此类漏洞,而且还为您提供解决或缓解这些漏洞所需的手段,从而在此方面做全面的工作。

缓冲区溢出有哪些类型?

  • 基于堆栈的缓冲区溢出:

    堆栈是内存中用于存储用户输入的空间。基于堆栈的攻击是由于利用这些内存空间而发生的攻击。发生的大多数攻击都是基于堆栈的。实际上,1986年发生的第一次缓冲区溢出攻击也属于这种类型。“ Morris蠕虫攻击”通常被认为是Internet上的第一个主要安全攻击,它证明了这些攻击可能对IT世界造成的影响。 
  • 基于堆的缓冲区溢出:

    这些攻击非常难以实现,因此与基于堆栈的攻击相比,这种攻击很少发生。为实际程序保存的内存空间被视为堆,并在基于堆的利用中受到攻击。 

攻击场景:

让我们看一些利用这种漏洞的简单情况。

  • 考虑编写一个程序来授予用户访问系统的权限。将要求用户输入密码,如果密码正确,则将授予该用户访问系统的权限。现在,我们假设用户输入的伪造密码的长度大于缓冲区可以容纳的长度。在这种情况下会发生缓冲区溢出。即使输入的密码不正确,该程序仍将最终给用户访问系统的权限,因为保存密码检查条件的相邻内存将被密码输入过程中提供的多余数据所覆盖。
  • 这样的攻击也可以出于修改返回地址的动机而进行。这些漏洞可用于破坏内存并转移程序的正常执行流程。这可以通过用用于完成溢出的多余数据覆盖保存返回地址的存储位置来实现。因此,攻击者可以通过在新添加的返回地址中包含任意代码来控制代码执行的方式。
  • 使用大量超出分配缓冲区空间的数据充斥输入也可能导致系统崩溃,因此可用于促进DDOS攻击。 

如何防止缓冲区溢出攻击?

随着这类攻击的严重性现在暴露出来,让我们了解如何防止它们。在这种情况下,Vulnerability Manager Plus可以用作主动工具,因为它们以多种方式有效地处理了同一问题。

  • 地址空间布局随机化(ASLR)。

    尽管由于缺少边界检查,缓冲区溢出通常在较早的编程语言(如C和C ++)中发生,但更高级的语言仍可能成为此类漏洞的牺牲品。它们仍然继续发生,因为攻击者很容易猜测进程和功能在内存中的位置。ASLR可以通过随机分配可能成为此类攻击潜在目标的地址空间来解决此问题。尝试利用漏洞时,由于攻击者缺乏有关随机化的知识,因此将要求错误的地址空间位置。这将导致目标应用程序崩溃,从而停止攻击并向系统发出告警。通常会在所有最新版本的Windows中自动启用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控制台轻松地为所有发现的漏洞部署补丁。

这些缓冲区溢出漏洞可能会带来危险,但只要有适当的漏洞扫描和补救解决方案,就可以轻松地阻止它们。匆忙!立即下载Vulnerability Manager Plus,并免费试用30天的各种功能!