漏洞扫描程序与病毒扫描程序没有什么不同。在这两种情况下,软件的目标都是在目标中找到与众不同的东西。病毒扫描程序扫描计算机的本地资源和本地存储,以查找潜在的恶意软件。漏洞扫描程序扫描某种目标,以找到潜在的漏洞软件。两者都使用类似的技术来这样做。

基于签名的扫描

对于基于签名的扫描,扫描仪将寻找可识别的图案,这些图案可以由扫描仪的制造商准备,也可以从公共数据库中获取。例如:

  • 病毒扫描程序查找恶意可执行文件中存在的特定字节链。如果找到该字节链,则假定已找到恶意文件。
  • 网络扫描仪从服务器寻找特定的响应,以识别服务器使用的软件的确切版本。它可能与软件实际响应版本信息一样简单,也可能更复杂,例如,识别某些典型行为。

基于签名的扫描有几个优点:

  • 这通常非常快,因为除了将来自扫描程序库的字节链与从目标接收的字节链进行比较之外,无需执行任何操作。
  • 它具有较低的侵入性,几乎没有副作用。
  • 对于扫描仪制造商而言,这非常容易,因为无需编写自定义代码。也有公共域签名数据库,可用于构建自己的数据库。

不幸的是,这种类型的扫描也有一些主要的缺点:

  • 它并不总是很精确。签名不保证发现的结果是恶意的。
  • 绝对没有证据表明报告的结果是恶意的。由于扫描程序仅比较签名,因此不会测试其假设是否正确。
  • 大多数扫描程序仅限于已知签名,并且无法识别突变(例如,一个字节不同的签名),异常情况(例如,配置不同的服务器)或新的威胁。

基于行为的扫描(启发式扫描)

扫描恶意内容的另一种方法是通过实际分析目标的行为。这意味着扫描程序需要了解目标的工作方式,而不仅仅是比较签名。例如:

  • 当启发式病毒扫描程序找到潜在的可执行文件时,它可能会对它执行反向工程,以准确检查代码的作用(以检查其操作是否有害)。它还可能尝试在安全的环境中执行代码以查看结果。
  • 当网络漏洞扫描程序找到允许用户输入的元素时,它将尝试通过发送意外数据来“欺骗目标”。然后,它分析目标的响应以查看其是否成功。

启发式扫描具有一些主要优点:

  • 从理论上讲,它可以发现任何类型的威胁,甚至是自定义威胁或零时差威胁。显然,这取决于软件的先进程度。
  • 更为精确,因为它实际上会检查其假设是否正确。有时,它甚至可以提供证明。

不幸的是,启发式扫描也有一些缺点:

  • 您可能会发现它比基于签名的扫描要消耗更多的资源。启发式扫描仪需要更多的时间来找到结果,并且与基于签名的扫描仪相比,它可能会减慢目标速度。
  • 构建一个好的启发式扫描器非常困难,并且需要顶尖的人才。与基于签名的扫描器不同,每种新型攻击都必须进行编程和模拟。启发式扫描器库不仅是要比较的字符串列表,而且每种检查类型都需要实际的自定义软件。

两全其美的

许多专业的扫描仪都尝试同时使用两种类型的扫描,但是主要的扫描仪很大程度上取决于所执行的扫描类型:

  • 病毒扫描程序几乎总是主要基于签名。一些高级病毒扫描程序也具有基于行为的扫描,但是它通常是可选的(因为这样的扫描需要更多的时间和资源)。
  • 网络扫描仪几乎总是基于签名的。这是因为网络扫描程序专注于查找过时的软件版本和配置错误,可以使用签名轻松识别它们。
  • Web漏洞扫描程序始终始终主要是启发式的,但可以在适当的地方使用签名。

在Acunetix,我们以最好的方式将两全其美:

  • Acunetix扫描仪主要是基于行为的扫描仪。我们的高级检查都是单独设计的,并执行安全(模拟)攻击。不仅如此-在大多数情况下, 我们甚至可以证明攻击是成功的 例如,通过向您显示扫描仪永远不可访问的文件(例如服务器配置文件)。这是大多数扫描仪所没有的独特功能。
  • 由于我们的扫描仪还会检查过时的软件版本等内容,因此在适用且不需要自定义代码的地方,我们也会使用一些基于签名的检查。这使目标上的扫描速度更快而强度更低– Acunetix通常被认为是市场上最高效的扫描仪。 
  • Acunetix克服了基于签名的扫描的局限性,而不是使用基于哈希的签名,即使对代码或响应进行了轻微修改,它也可以识别许多漏洞。
  • 我们的扫描仪还结合了基于签名的扫描和主动扫描的优点,有时甚至在同一漏洞检查中也是如此。例如,如果我们能够通过基于签名的扫描来确定软件版本,那么我们对该软件的实际漏洞检查可能会考虑找到的版本并相应地优化测试。这使漏洞检查不仅更快,而且更可靠。

请注意,尽管事实是 Acunetix发现的许多漏洞都使用CVE / CWE代码标识,我们不会将此类数据库用于识别已知漏洞。自定义软件中的漏洞不会包含此类代码,因为Acunetix的核心优势在于它能够找到任何数据库中都无法识别的问题。

Source : //www.acunetix.com/blog/web-security-zone/how-scanners-find-vulnerabilities/