您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

聊聊网络安全漏洞扫描工具和服务

发表于:2023-08-21 作者:何威风 来源:祺印说信安

介绍

漏洞扫描是一个广泛的术语,用于描述检测组织安全程序中的缺陷的自动化过程。这涵盖补丁管理流程、强化程序和软件开发生命周期 (SDLC) 等领域。提供漏洞扫描的服务或产品通常也称为漏洞评估系统 (VAS)。

作为有效的漏洞管理计划 (VMP) 的一部分,漏洞扫描解决方案是一种经济实惠的自动检测组织网络内安全问题的方法。然而,漏洞扫描产品和服务市场涵盖许多专业领域,并包括涉及部署模型和许可成本等问题的广泛选项。这些复杂性可能在为自己的组织购买漏洞扫描解决方案时难以做出正确的选择。

本指南旨在为广大受众提供选择合适的漏洞扫描解决方案的工具。

受众和结构

该指南帮助中小企业、大型组织和公共部门机构:

  • 了解漏洞扫描的基础知识以及它如何与 VMP 集成
  • 决定何时以及如何最有效地使用漏洞扫描
  • 购买漏洞扫描解决方案时设定重要标准

该指南分为四个步骤,首先评估当前的漏洞扫描设置,然后再考虑您需要的扫描器类型。然后我们考虑扫描什么以及何时扫描,最后给出一些一般性的建议。

漏洞扫描的优点

组织应利用漏洞扫描的原因有很多:

  • 自动化:扫描可以按计划、按需或响应触发事件(例如软件项目的新构建或新服务器的部署)运行。这使得能够维护漏洞状况的最新视图。
  • 速度:扫描仪通常会以比手动测试快得多的速度执行数百甚至数千次检查。
  • 成本效益:速度和自动化的优势使得针对目标执行漏洞扫描比手动测试更加经济。
  • 可扩展性:现代基于云的架构意味着服务可以增加或减少其资源,以便能够在相似的时间范围内扫描小型或大型环境。
  • 合规性:许多漏洞扫描解决方案包括定制检查,以测试是否符合通用信息安全标准或组织自己的基线控制集。
  • 准确性:通过执行定制检查来确认漏洞的存在,扫描仪可以产生比简单地引用软件资产管理解决方案中保存的信息更可靠的结果。

最重要的是,漏洞扫描使组织能够跟上有意破坏系统的个人和团体的步伐,其中许多人使用类似的工具和技术来发现安全缺陷。

漏洞扫描与手动测试的关系

应该指出的是,在测试覆盖的广度和深度方面,自动化漏洞扫描无法与渗透测试等手动流程相比。

相反,自动扫描应被视为查找和管理常见安全问题的一种经济高效的方式,而无需雇用专业的安全测试人员。

同样,通过定期漏洞扫描处理“容易实现的目标”,渗透测试可以更有效地关注更适合人类的复杂安全问题。

1. 评估现有的漏洞管理计划

漏洞扫描仅在作为更大的漏洞管理计划 (VMP) 的一部分时才能有效降低组织的风险。

VMP程序通常包括以下流程:

  • 系统发现:识别组织拥有的资产;
  • 资产分类:根据共同特征将资产分配到组或类别中;
  • 漏洞检测:查找并验证资产中的漏洞;
  • 漏洞分类:根据技术或业务目标对漏洞进行优先级排序;
  • 漏洞修复:就已识别问题的修复提供建议并验证;
  • 漏洞披露:为安全研究人员提供披露相关漏洞的机制。

支持VMP

漏洞扫描解决方案通常包含支持VMP或与VMP集成的功能,例如:

  • 通过定期扫描IP地址范围内的新主机或新的Web应用程序来执行系统发现
  • 根据现有资产管理记录验证发现的系统
  • 定制漏洞报告的呈现方式,以符合您的业务或组织的优先级
  • 通过重新扫描特定问题并在确认问题已修复后进行报告来支持修复过程
  • 与错误跟踪器或源代码存储库等其他系统集成,以帮助协调和自动化工作流程
  • 为用户提供安全的身份验证门户,以协作登录和管理漏洞

需要什么功能?

这些功能的可用性将在多大程度上影响对漏洞扫描解决方案的选择,取决于现有的VMP以及它们是否会改善情况或只是带来不必要的复杂性。

例如,尚未部署VMP的组织可能会受益于包含中央门户的服务,该门户允许不同的管理员查看和管理与其自己系统相关的漏洞。

相比之下,拥有成熟、成熟的MVP的组织可能已经具备此类功能,因此可能只需要一个支持结果导出的产品,以便它们可以轻松地与现有解决方案集成。

本指南末尾记录了购买漏洞扫描解决方案时应考虑的其他功能。

2. 确定资产

“资产”一词在漏洞扫描上下文中用于定义与漏洞关联的实体(物理或虚拟)。

根据所进行的扫描类型,这可以采取多种形式,例如:

  • 网络基础设施组件,例如路由器或交换机
  • 连接的虚拟或物理主机,例如笔记本电脑、外围设备或服务器
  • Web 平台或应用程序的实例
  • 基于云的主机或端点

组织拥有涵盖部分或全部类别的各种资产是很常见的,尽管有些资产可能比其他资产更为普遍。重要的是要识别并记录这些内容(最好在资产登记册中),以便找到最合适类型的漏洞扫描程序。许多供应商按“每件资产”收取扫描服务费用,因此准确了解资产数量对于在采购前估算成本至关重要。这可以借助(通常免费提供的)端口扫描工具来查找网络上的活动主机来实现。

可能会发现部分 IT 资产高度分散,例如由于用户使用自己的移动设备远程工作。在这种情况下,请重点关注旨在由这些设备远程访问的任何常见服务。例如,用户可能需要登录到可从外部访问的单个Web门户或虚拟专用网络服务器。虽然位于内部网络外围的最终用户设备的安全性仍然很重要,但远程漏洞扫描在这些情况下不太可能有好处。相反,远程设备应该通过确保软件保持最新来避免常见漏洞。

一旦确定了组织内的所有相关资产,应该将它们分成不同的逻辑组。例如,可能希望将与主网站关联的任何服务器主机或 Web 应用程序放入一个类别,并将内部桌面资产放入另一类别。这有助于为各个漏洞扫描定义单独的、更易于管理的范围。

正如上面“评估现有的漏洞管理计划”中提到的,一些解决方案通过自动执行系统发现和分类来支持此过程。

3. 选择合适类型的漏洞扫描程序

漏洞扫描器通常根据其要评估的目标类型进行分类。最广泛的区别在于“基础设施”和“应用程序”之间。

应用程序扫描器进一步细分为针对 Web 应用程序的扫描器和针对本机应用程序的扫描器。扫描仪还适用于许多专业子类别,例如云基础设施、移动应用程序或使用特定平台或技术构建的Web应用程序。

虽然专用扫描仪可以为其要评估的目标类型提供最准确和相关的结果,但组织的 IT 资产可能包含太多变化,因此此类解决方案无法自行提供全面的覆盖范围。因此,您应该首先寻求建立基础级别的通用扫描,以确保对最常见的基础设施问题进行良好的覆盖。

如果组织暴露其他特定类别的资产(例如上面提到的资产)并且预算允许,我们建议采用分层扫描方法,通过使用更专业的扫描仪来补充基础扫描。

基础设施扫描仪

基础设施扫描解决方案通常侧重于识别和测试网络其余部分或整个互联网可访问的服务。为此,它们通常包括主机发现和端口扫描功能。

一旦发现可访问的网络服务,他们通常会对其进行探测以发现尽可能多的信息。使用“指纹识别”或“横幅抓取”等技术,扫描仪可以收集软件的供应商和版本号等详细信息。许多基础设施扫描仪还会向某些类型的服务发送安全测试消息,以探测更多信息的响应或直接测试漏洞是否存在。一旦获得服务“指纹”,也会根据已知包含安全漏洞的产品知识库来引用该服务“指纹”。

虽然一些网络漏洞扫描器也使用比这更先进的方法,甚至可以支持首先需要身份验证的检查,但在覆盖范围方面,它们通常注重广度而不是深度。例如,此类扫描仪通常缺乏导航 Web 应用程序或检测需要与专用协议进行复杂交互的漏洞的能力。然而,他们很可能能够检测到由于在这些相同端口上使用过时的软件或弱加密设置而产生的漏洞。

因此,网络漏洞扫描器是监控具有大量外部足迹的网络的绝佳选择,以发现可能被来自互联网或公司内部网络的攻击所利用的新的常见漏洞。它们对于主要由“现成”解决方案组成且很少或根本不包含定制开发软件的 IT 资产也更有用。

Web 应用程序扫描仪

Web应用程序扫描器专门设计用于检测通过HTTP/S暴露的应用程序和 Web服务中的漏洞。

它们通过与Web浏览器几乎相同的方式与应用程序交互来实现此目的,尽管能够以更快的速度发送请求,并制定为从Web服务器引出表明存在漏洞的响应。

Web 应用程序扫描程序通常会检查可能影响 Web 服务器本身和应用程序的其他用户的各种安全问题。通常与OWASP Top 10等出版物一致,这是定期更新的Web应用程序最关键安全风险列表。与网络基础设施扫描器不同,Web应用程序扫描器旨在检测定制(通常很复杂)Web应用程序中的漏洞。

高级Web应用程序扫描仪还可能支持更精细的配置。这可能包括为目标应用程序指定登录页面和凭据的能力,或者排除特定类型的扫描或页面的能力。如果没有这些功能,扫描仪就不可能对更复杂的Web应用程序实现良好的测试覆盖率,或者可能产生不良的副作用,例如重复表单提交产生的大量数据库条目。一般来说,扫描仪越适合目标Web应用程序,结果就越相关和有用。

当与网络漏洞扫描器结合使用时,或者当自定义 Web 应用程序占据大部分外部网络足迹并因此给您的企业或组织带来大部分风险时,Web 应用程序安全扫描器是一个绝佳的选择。(英国NCSC的 Web Check 服务就是此类服务的一个示例,尽管该服务只能向公共部门提供。Web Check 专门设计为“轻触式”,旨在检测最常见且广泛适用的安全问题。)

在选择漏洞扫描服务时,需要考虑漏洞扫描的中可能引入的风险,虽然漏洞扫描没有渗透测试要求那么高,但是专业性还是非常强的。所有专业的工作,都是需要有专业的人来执行,是将风险降低的最优有效手段。不专业的人的操作,本身就是对网络安全不负责的行为,引入的风险将是更加隐蔽更加危险的行为。

本机软件扫描仪

这些扫描解决方案与相应的 Web 应用程序解决方案类似,旨在识别自定义应用程序构建和部署中的常见缺陷。

然而,与 Web 应用程序扫描仪不同的是,本机软件扫描解决方案设计为在内部设置中运行,通常与正在评估的软件产品在同一主机上,或者可以直接访问其源代码的地方。这使得能够执行通过与网络暴露有限的外部 Web 应用程序交互而无法进行的检查。

检测和管理软件开发过程中的漏洞超出了本指南的范围,但是可以在此处找到有关此主题的更多信息,作为安全开发原则之一。

比较基础设施和Web应用程序扫描仪

漏洞扫描类型

相关资产

已识别问题的示例

基础设施

  • 网络基础设施组件
  • 物理主机
  • 虚拟主机
  • 最终用户设备
  • 基于云的主机或端点
  • 缺少操作系统或软件应用程序补丁
  • 不支持的操作系统或软件应用程序
  • 使用默认密码或弱密码
  • 使用弱加密或明文服务
  • 暴露敏感服务或信息
  • 缺乏安全强化措施
  • 过于宽松的访问控制

Web应用程序

  • API端点
  • 网络应用程序
  • 域名
  • 来自恶意用户输入的注入
  • 身份验证损坏
  • 敏感个人或系统数据的暴露
  • 访问控制损坏
  • 使用易受攻击的第三方组件
  • 使用弱加密或未加密的通信

4. 选择部署模型

漏洞扫描解决方案和服务市场包括传统的本地模型和日益流行的供应商托管模型。应该选择最能与基础设施集成并满足组织的安全约束的部署模型

本地解决方案

通过本地部署,客户需要在自己的基础设施上自行托管扫描产品。例如,这可能涉及数据中心内的虚拟机 (VM) 或物理设备。

这种类型的部署使得扫描没有外部网络连接的网络区域变得更加容易。在此类部署中,数据也存储在本地,因此确保您可以完全控制与系统漏洞相关的任何敏感信息的位置。

然而,更大程度的行政控制是有代价的。此类部署不可避免地需要一些初始配置和持续维护,以确保它们及时了解最新的漏洞。

此外,本地解决方案无法轻松扩展以满足同时扫描大部分 IT 资产时可能出现的需求高峰。这可能会导致在不确定是否需要的情况下维持过剩产能的费用。此问题并非特定于漏洞扫描程序,而是普遍存在于现场基础设施托管中。因此,我们建议使用本地解决方案来扫描无法通过 Internet 轻松访问的系统,或者如果您的组织已经具有现场基础设施托管功能。

供应商托管解决方案

许多解决方案现在也作为服务提供,其中扫描软件仍然托管在其他地方,由供应商控制和管理。

此模型通常称为软件即服务或 SaaS。这可能是克服本地解决方案的许多缺点的一种经济高效的方法,但它也有其自身的缺点。

作为外部托管服务,SaaS 扫描仪无法轻松访问位于防火墙和路由器后面的内部网络。可以通过在内部网络上安装代理以形成与供应商服务器的出站连接以接收指令来克服这一挑战。如果不可能,可以重新配置防火墙以允许来自已知扫描仪的传入连接。这将不可避免地涉及网络管理员的一定程度的初始配置,这可能很简单,也可能不那么简单,具体取决于您的 IT 资产的结构。

由于需要对安全扫描供应商给予一定程度的信任,因此对网络进行的任何更改以这种方式启用扫描都会增加组织的风险级别。这应该被清楚地记录下来并考虑到您的安全模型中。

尽管存在上述考虑因素,但与本地解决方案相比,SaaS 扫描仪还具有许多优势。由于没有安装产品或设备,因此无需执行维护任务,例如修补或更新内部漏洞知识库。此外,SaaS 解决方案通常可以根据需求进行扩展,而无需永久托管未使用的容量。

最后,让供应商托管漏洞扫描结果可以简化您应用自己的保护措施的任务,以确保此类信息保持机密,同时可供需要查看这些信息的人访问(假设您愿意信任供应商的漏洞扫描结果)自己的控制。

如果可以轻松克服允许外部访问IT资产以及让供应商保留组织的漏洞信息的技术挑战和安全问题,建议使用托管解决方案。这种解决方案不适合评估气隙网络或保存高度敏感信息的网络。

5. 决定扫描哪些资产以及何时扫描

虽然扩大 IT 资产的覆盖范围确实可以更全面地了解组织的整体风险,但扫描所有内容可能不切实际或负担不起。在这些情况下,您应该优先考虑可通过 Internet 访问、托管关键业务服务或包含最敏感数据(例如数据库服务器)的资产。维护从漏洞扫描中排除的资产的记录非常重要,以确保相关风险可以纳入组织的安全模型中。

外推测试

如果多个主机是从保证相同配置的“黄金映像”构建的(这在标准桌面部署中很常见)并且没有进行进一步的更改,则扫描从该映像构建的单个主机并推断该主机可能是可以接受的。其他主机的发现。

虽然漏洞扫描程序不太可能影响服务的可用性或造成其他破坏,但您可能希望考虑首先扫描托管关键业务服务的服务器的非生产实例。如果两个环境的配置一致,这只会产生可转移到实时环境的结果。对于这些配置不同以及确认扫描不会影响非生产实例的可用性的情况,仍应执行生产系统的后续扫描。

如果没有代表性的非生产环境,并且担心某些关键业务主机的脆弱性,则可以暂时从可能造成破坏的扫描中忽略这些主机,并将其记录在风险登记册中。必须谨慎执行此操作,并且时间应尽可能短,因为这样做会在攻击面中造成盲点。在这种情况下,更好的解决方案是解决脆弱性的根本原因,以便可以再次扫描主机,而不必担心导致服务中断。事实上,脆弱性本身就应该被视为一种脆弱性,值得立即修复。

定期扫描

应该定期(至少每月一次)或在应用更改以修复关键问题后立即对基础设施执行漏洞扫描。

每当目标应用程序发生更改时,例如安装新版本或提交自定义应用程序源代码更改时,都应运行应用程序扫描程序。如果可能,应用程序扫描解决方案应作为安全构建和部署管道的一部分纳入软件开发过程中。

其他注意事项

在确定漏洞扫描服务是否适合您的需求时,还有许多其他事项需要考虑。虽然通常很难定义每种情况下“好”或“坏”的确切值,建议要求潜在供应商提供以下基本标准列表,以便将答案反馈给自己评价:

  • 响应能力:一旦公开披露新漏洞,解决方案能否在合理的时间内检测到该漏洞?对于关键问题,应该不超过几天。
  • 覆盖范围:扫描仪是否涵盖与相关且重要的漏洞类别?例如,对于 Web 应用程序扫描程序,是否所有问题都从OWASP Top 10中检测到?
  • 身份验证支持:扫描仪是否支持身份验证检查?例如,它是否能够登录 Windows 主机来执行其他方式无法执行的检查?它是否只支持使用代理的本地身份验证以及远程身份验证?是否有适当的保护措施来帮助防止帐户被锁定?
  • 准确性:扫描仪是否经常产生误报(漏洞被报告存在但实际上并不存在)或漏报(漏洞存在但未被报告)?例如,它是否错误地识别了软件产品的旧版本,或者在知道已应用补丁的情况下却声称尚未应用补丁?
  • 可靠性:扫描仪是否可以随时按自动计划和手动按需执行任务?
  • 可扩展性:扫描仪是否在需求增加期间保持高性能,并且成本模型基于任意时间所需的容量?
  • 报告功能:可以定制报告以满足您的特定需求吗?报告功能是否提供正确的信息和指标来支持您的安全和管理团队?
  • 对 VMP 其他领域的支持:该解决方案是否可以轻松地与您现有的产品或流程集成?或者,该解决方案是否提供了漏洞检测之外的其他功能来补充您现有的 VMP(例如,内置问题跟踪)?
  • 与其他操作系统组件集成:该解决方案能否通过利用目标主机上现有安装的软件来提供附加价值?例如,它是否与Windows主机上的Microsoft System Center集成以提供智能补丁管理功能?
  • 支持不同类型的资产:例如,该解决方案是否支持扫描虚拟机、容器或专用数据库服务器?
  • 与云环境集成:该解决方案能否询问常见的云提供商以自动发现和扫描这些环境中托管的其他资产?
  • 安全性:供应商是否保证扫描活动不会破坏目标服务的可用性?如果不是,解决方案是否可以配置为排除更危险的检查?