11.2.1. 漏洞评估
A 漏洞 被认为是一种弱点,可以以某种方式使用来破坏信息系统的机密性、完整性或可用性。 在漏洞评估中,您的目标是创建已发现漏洞的简单清单 目标环境. 目标环境的这个概念非常重要。 您必须确保保持在客户目标网络和所需目标的范围内。 超出评估范围可能会导致服务中断、与客户之间的信任背离或对您和您的雇主采取法律行动。
由于其相对简单,漏洞测试通常在更成熟的环境中定期完成,作为展示其尽职调查的一部分。 在大多数情况下,自动化工具,例如漏洞分析中的工具7 和网络应用程序8 Kali Tools 站点和 Kali 桌面应用程序菜单的类别,用于发现目标环境中的实时系统,识别监听服务,并枚举它们以发现尽可能多的信息,例如服务器软件、版本、平台等.
然后检查该信息是否存在潜在问题或漏洞的已知签名。 这些签名由旨在表示已知问题的数据点组合组成。 使用多个数据点,因为您使用的数据点越多,识别就越准确。 存在大量潜在数据点,包括但不限于:
• 操作系统版本:软件在一个操作系统版本上易受攻击而不在另一个操作系统上易受攻击的情况并不少见。 因此,扫描程序将尝试尽可能准确地确定托管目标应用程序的操作系统版本。
• 补丁级别:很多时候,操作系统的补丁不会增加版本信息,但仍会改变漏洞的响应方式,甚至完全消除漏洞。
• 处理器架构:许多软件应用程序可用于多处理器架构,例如 Intel x86、Intel x64、多个版本的 ARM、UltraSPARC 等。
5https://en.wikipedia.org/wiki/Executable_space_protection#Windows 6https://en.wikipedia.org/wiki/Address_space_layout_randomization 7http://tools.kali.org/category/vulnerability-analysis 8http://tools.kali.org/category/web-applications
在某些情况下,漏洞仅存在于特定架构上,因此了解这一点信息对于准确签名至关重要。
• 软件版本:目标软件的版本是识别漏洞需要捕获的基本项目之一。
这些以及许多其他数据点将用于组成签名,作为漏洞扫描的一部分。 正如预期的那样,匹配的数据点越多,签名就越准确。 在处理签名匹配时,您可能会得到一些不同的潜在结果:
• True Positive:签名匹配并且它捕获了一个真正的漏洞。 这些结果是您需要跟进和纠正的结果,因为恶意个人可以利用这些项目来伤害您的组织(或您的客户)。
• 误报:签名匹配; 然而,检测到的问题并不是真正的漏洞。 在评估中,这些通常被认为是噪音,可能会非常令人沮丧。 如果没有更广泛的验证,您永远不想将真阳性视为假阳性。
• True Negative:签名不匹配,不存在漏洞。 这是理想的场景,验证目标上不存在漏洞。
• 假阴性:签名不匹配但存在漏洞。 与假阳性一样糟糕,假阴性更糟糕。 在这种情况下,存在问题但扫描仪没有检测到它,因此您没有迹象表明它的存在。
可以想象,签名的准确性对于准确的结果极其重要。 提供的数据越多,从基于签名的自动扫描中获得准确结果的机会就越大,这就是经过身份验证的扫描通常如此受欢迎的原因。
通过身份验证扫描,扫描软件将使用提供的凭据对目标进行身份验证。 与其他方式相比,这提供了对目标的更深层次的可见性。 例如,在正常扫描中,您可能只能检测到有关系统的信息,这些信息可以从侦听服务及其提供的功能中获得。 有时,这可能是相当多的信息,但如果您对系统进行身份验证并全面审查所有已安装的软件、应用的补丁、正在运行的进程等,则它无法与将获得的数据的级别和深度相提并论。 . 这种广泛的数据对于检测否则可能不会被发现的漏洞很有用。
执行良好的漏洞评估可提供组织中潜在问题的快照,并提供衡量随时间变化的指标。 这是一个相当轻量级的评估,但即便如此,许多组织仍会定期在非工作时间执行自动漏洞扫描,以避免在服务可用性和带宽最关键的白天出现潜在问题。
如前所述,漏洞扫描必须检查许多不同的数据点才能获得准确的结果。 所有这些不同的检查都会在目标系统上造成负载并消耗带宽。 不幸的是,很难确切知道目标上将消耗多少资源,因为它取决于开放服务的数量和类型
将与这些服务相关联的检查。 这是进行扫描的成本; 会占用系统资源。 在运行这些工具时,对将消耗的资源以及目标系统可以承受多少负载有一个大致的了解是很重要的。
扫描线程 大多数漏洞扫描程序都包含一个选项来设置 每次扫描的线程数,它等于一次发生的并发检查数。 增加此数字将对评估平台以及您与之交互的网络和目标的负载产生直接影响。 当您使用这些扫描仪时,请务必牢记这一点。 增加线程以更快地完成扫描是很诱人的,但请记住与此相关的大量负载增加。
扫描线程 大多数漏洞扫描程序都包含一个选项来设置 每次扫描的线程数,它等于一次发生的并发检查数。 增加此数字将对评估平台以及您与之交互的网络和目标的负载产生直接影响。 当您使用这些扫描仪时,请务必牢记这一点。 增加线程以更快地完成扫描是很诱人的,但请记住与此相关的大量负载增加。
漏洞扫描完成后,发现的问题通常会链接回行业标准标识符,例如 CVE 编号9, 教育局 ID10和供应商建议。 此信息以及漏洞 CVSS 评分11, 用于确定风险等级。 除了误报(和误报)之外,这些任意的风险评级也是分析扫描结果时需要考虑的常见问题。
由于自动化工具使用签名数据库来检测漏洞,与已知签名的任何轻微偏差都可能改变结果,同样也会改变感知漏洞的有效性。 误报错误地标记了不存在的漏洞,而漏报实际上对漏洞视而不见并且不报告它。 正因为如此,人们通常认为扫描仪的好坏取决于其签名规则库。 出于这个原因,许多供应商提供多个签名集:一个可能对家庭用户免费,另一个相当昂贵但更全面,通常出售给企业客户。
漏洞扫描经常遇到的另一个问题是建议的风险评级的有效性。 这些风险评级是在通用基础上定义的,考虑了许多不同的因素,例如权限级别、软件类型以及身份验证前或身份验证后。 根据您的环境,这些评级可能适用也可能不适用,因此不应盲目接受它们。 只有那些精通系统和漏洞的人才能正确验证风险评级。
虽然对风险评级没有普遍定义的一致意见,但 NIST 特别出版物 800-3012 建议作为评估风险评级及其在您环境中的准确性的基准。 NIST SP 800-30 将已发现漏洞的真正风险定义为 发生的可能性和潜在影响的组合.
9https://cve.mitre.org 10https://www.exploit-db.com/about/ 11https://www.first.org/cvss
12http://csrc.nist.gov/publications/PubsSPs.html#800-30