规划您的扫描引擎部署
您对您的安全目标和环境的评估,包括您的资产库存,可以帮助您规划如何以及在哪里进行扫描引擎。请记住,如果您的资产库存持续更改,您可能需要随时间修改初始扫描引擎部署。
任何部署都包括一个安全控制台和一个或多个扫描引擎,用于检测网络上的资产,收集有关资产的信息,并测试这些资产的漏洞。扫描引擎通过几种方式测试漏洞。一种方法是检查软件版本号,标记过时的版本。另一种方法是“安全利用”,通过这种方法,目标系统被探测到使它们容易受到攻击的条件。漏洞测试中内置的逻辑反映了复杂的攻击者试图渗透您的网络时会采取的步骤。
该应用程序旨在利用漏洞而不会导致服务中断。它实际上并不攻击目标系统。
考虑Scan Engines的一种方式是,它们从攻击者的角度提供了对网络的战略视图。在决定如何以及在何处部署Scan Engines时,要考虑您希望如何“看到”您的网络。
从内到外查看您的网络:托管扫描引擎与分布式扫描引擎
有两种类型的扫描引擎选项可用——托管和分布式。你可以选择只使用一个选项,也可以同时使用两个选项。为了有效地部署扫描引擎,了解选项之间的差异非常重要。请注意,托管和分布式扫描引擎的构建方式并没有不同。它们只是相对于你的网络有不同的位置。它们提供了不同的网络视图。
托管扫描引擎允许您查看您的网络,就像没有访问权限的外部攻击者看到的那样。他们会扫描防火墙之外的网络外围的所有东西。这些资产必须提供无条件的公共访问,如Web站点和电子邮件服务器。
如果您的组织使用出站端口过滤,则需要修改防火墙规则以允许托管扫描引擎连接到您的网络资产。
Rapid7托管并维护这些扫描引擎,这带来了一些好处。您不必安装或管理它们。扫描引擎位于持续监控的数据中心,确保可用性和安全性的高标准。
有了这些优势,可能会忍不住单独部署托管扫描引擎。然而,托管扫描引擎在某些需要部署分布式扫描引擎的用例中有局限性。
战略性地分发扫描引擎
分布式扫描引擎允许您从内部检查您的网络。它们是核心服务器和工作站的理想选择。您可以在网络上的任何地方部署分布式扫描引擎,以获得多个视图。当使用多个子网、防火墙和其他形式的分割来扫描网络时,这种灵活性尤其有价值。
扫描引擎不存储扫描数据。相反,它们会立即将数据发送到Security Console。
但是,您需要多少扫描引擎呢?首先要问的问题是,你应该把它们放在哪里?
在确定要放置扫描引擎的位置时,请查看您的网络拓扑有助于。分离的领域是什么?连接点在哪里?如果您能回答这些问题,您对将扫描引擎放在哪里非常好。
可以在与安全控制台相同的主机上操作扫描引擎。虽然此配置可能对产品评估或小规模生产场景很方便,但不适用于大型生产环境,特别是当Scan Engine正在扫描许多资产时。扫描是一个ram密集型的过程,它会从安全控制台消耗资源。
以下是可以呼叫放置扫描引擎的情况的示例。
防火墙、IDS、IPS、NAT设备
您可能有一个防火墙将两个子网分开。如果您在防火墙的一侧部署了扫描引擎,那么在不打开防火墙的情况下,您将无法扫描另一个子网。这样做可能会违反公司的安全策略。
应用层防火墙可能必须在同意路由之前检查每个包。防火墙必须跟踪每个连接的状态条目。典型的扫描可以在短时间内生成数千次连接尝试,这可能会使防火墙状态表或状态跟踪机制过载。
通过IDS (Intrusion Detection System)或IPS (Intrusion Prevention System)扫描会导致设备过载或产生过多的告警。让IDS或IPS知道InsightVM正在运行漏洞扫描会破坏扫描的目的,因为它看起来像是一种攻击。此外,IPS还可以通过丢弃数据包、让端口“看起来”是开放的来阻止它们,以及执行其他操作来保护资产,从而降低扫描数据质量。对扫描引擎生成的网络流量禁用IDS或IPS可能是可取的。
扫描引擎通过网络地址转换(NAT)设备发送数据包可能会导致扫描速度变慢,因为设备每秒只能处理有限数量的数据包。
在这些情况下,一个可行的解决方案是在中间设备的任意一侧放置一个扫描引擎,以最大化带宽和最小化延迟。
vpn
无论带宽如何,跨虚拟专用网络(vpn)扫描也会减慢速度。问题在于与连接尝试相关的工作负载,这将vpn变成了瓶颈。当扫描引擎在本地VPN端点内传输数据包时,该VPN必须拦截和解密每个数据包。然后,远程VPN端点必须解密每个包。在VPN隧道的一端或另一端放置一个Scan Engine可以消除这些类型的瓶颈,特别是对于具有许多资产的VPN。
子网
将一个网络划分为多个子网络通常是一个安全问题。子网之间的通信可能会受到严重限制,导致扫描速度变慢。跨子网扫描可能会令人沮丧,因为它们通常被防火墙分隔开,或者有访问控制列表(acl),该列表限制哪些实体可以联系内部资产。出于安全和性能的考虑,为每个子网分配一个扫描引擎是最佳实践。
周边网络(dmz)
通常包括Web服务器,电子邮件服务器和代理服务器的周边网络是“开放的”出来“,这使得它们对黑客特别有吸引力。因为有这么多可能的攻击点,所以是一个好主意,将多种作为三个扫描发动机专用于周边网络。托管的扫描引擎可以从外部寻找的视图。本地扫描引擎可以扫描与出站数据流量相关的漏洞,因为被攻击的DMZ资产可以在互联网上传输病毒。另一个本地扫描引擎可以提供DMZ的内部视图。
acl
访问控制列表(acl)可以通过限制某些网络资产的可用性来在网络中创建分区。在某个地址空间(例如192.168.1.1/254)内,由于其他资产受到ACL的限制,InsightVM可能只能与10个资产进行通信。如果不能修改ACL,那么最好将Scan Engine分配给ACL保护的资产。
广域网路和远程资产位置
有时,资产清单分布在几百或几千英里。试图通过广域网(WAN)扫描地理上遥远的资产可能会占用有限的带宽。部署在远程资产附近的Scan Engine可以更容易地收集扫描数据,并将该数据转移到更集中的数据库。在本地执行扫描对网络资源的消耗更少。物理位置是创建站点的一个很好的原则。看到配置扫描凭据.这是相关的,因为每个站点分配给一个扫描引擎。
可能保证扫描引擎放置的其他因素包括路由器,门户,第三方托管资产,外包电子邮件和虚拟本地网络。
部署扫描引擎池
如果您的许可证启用了扫描引擎池,您可以使用池来增强扫描覆盖率的一致性和速度。池是一组扫描引擎,扫描作业分布在这些扫描引擎上。池分配给站点的方式与单个扫描引擎相同。
请注意
AWS预授权扫描引擎ami (Pre-authorized AWS scan engine Amazon Machine Images)不能添加到扫描引擎池中。
汇集提供了两个主要好处:
- 扫描负载平衡防止单个扫描引擎超载。当将池分配给站点的扫描配置时,扫描作业将分布在池中,从而减少单个scan Engine的负载。这种方法可以提高整体扫描速度。
- 容错防止由于单个扫描引擎的操作问题而导致扫描失败。如果安全控制台联系一个池化扫描引擎以启动扫描,但扫描引擎处于脱机状态,则安全控制台只联系下一个池化扫描引擎。如果扫描引擎在扫描给定资产时失败,则该池中的另一个引擎将扫描该资产。此外,应用程序监视分配给池化引擎的作业的数量,并且不会根据其内存容量分配超过池化引擎可并发运行的作业。
作业占用多少内存的算法是基于扫描模板中指定的配置选项。
您可以通过Web界面配置和管理资源池。看到扫描引擎池页面指令。您还可以使用扩展的API v1.2。看到API指南.
部署和扩展池的最佳实践
为了获得最佳性能,请确保池化扫描引擎位于相同的网络或地理位置。地理上分散的池会降低扫描速度。例如,如果一个池由一个引擎在多伦多,一个在洛杉矶,这池是用来扫描网站的资产位于洛杉矶,负载的一部分将被分发到多伦多引擎,这将需要更长的时间来扫描的资产,因为地理距离。
要提高池的性能,可以添加Scan Engines或增加分配给每个池引擎的RAM数量。通过增加RAM,您可以增加可同时扫描的站点数量,并增加每个引擎同时扫描的资产数量,从而扩大池的扫描能力。看到使用扫描模板并调优扫描性能.