好多用户都不知道如何预估Nexpose的扫描任务时间,其实从任务未开始时,就可以计算出大约的时间。为什么不让大家看进度条?因为那个时间太模糊了,甚至太多人(包括网络和安全从业者)都对进度条有疯狂的迷信,反正我是不信,大家有兴趣可以查一下进度条的来历。
对于Nexpose在扫描时为什么无法确定整个任务所需要的总体时间,因为扫描是一个从未知到已知的过程,未知的资产存活状况和资产上活动的端口数量,服务数量,以及漏洞情况,这些都一层一层的影响着后续所需要的时间,它不像是看一个小电影,你可以快进甚至是快退。
确切地说,关于这种情况,我们可以通过公式来计算出大约所需要时间。
以下公式可用于Nexpose的扫描性能评估:
(活动资产数量)X(将要扫描的端口数量)X(最大重试次数)/(每秒最小数据包)/ 60秒 = 所需扫描时间(分钟)
控制扫描性能和时间
您可以编辑扫描模板中的参数来更改和优化扫描性能和时间。
例如,对于以下参数:
105 = 发现扫描结果中的活动资产(您可以从扫描日志中获取)
65535 = 要扫描的端口数量(可以从扫描日志中的nmap params部分获取)
1 = 最大重试次数(可以在扫描日志的nmap params行部分找到)
200 = 每秒数据包数(可以在扫描日志的nmap params部分找到,在--min-rate后查找相关值)
105(活动资产数量)X 65535(要扫描的端口数量)X 2(最大重试次数为1则此处的值就是2)/ 200(每秒最小数据包)/ 60秒= 1146.86分钟
在上面的示例中,该扫描模板将需要接近19个小时才能完成。
因此,假如:
如果您需要在4小时的时间内完成扫描,则必须更改模板中的参数来实现这个目的。
您可以将重试次数减少为0,这将使错误余量为零(响应异常也不重试),就能让扫描任务的时间性能提高一倍。
您可以增加每秒的最小数据包数,每加一倍,扫描的时间性能就会加一倍。比如,从每秒200个最小数据包增加到400个最小数据包将使您最终的扫描时间将是573分钟而不是1146分钟。
您可以减少扫描的TCP端口范围。确定是否需要扫描全部端口(65535个),取决于您行扫描的目的是什么,例如,PCI需要扫描所有端口。