漏洞扫描就是对重要计算机信息系统进行检查,发现其中可被黑客利用的漏洞。漏洞扫描的结果实际上就是系统安全性能的一个评估,它指出了哪些攻击是可能的,因此成为安全方案的一个重要组成部分。
目前,漏洞扫描,从底层技术来划分,可以分为基于网络的扫描和基于主机的扫描这两种类型。
本文分别介绍,并分析了基于网络的漏洞扫描工具和基于主机的漏洞扫描工具的工作原理。这两种工具扫描目标系统的漏洞的原理类似,但体系结构是不一样的,具有各自的特点和不足之处。
1 基于网络的漏洞扫描
1.1 概述
基于网络的漏洞扫描器,就是通过网络来扫描远程计算机中的漏洞。比如,利用低版本的DNS Bind漏洞,攻击者能够获取root权限,侵入系统或者攻击者能够在远程计算机中执行恶意代码。使用基于网络的漏洞扫描工具,能够监测到这些低版本的DNS Bind是否在运行。
一般来说,基于网络的漏洞扫描工具可以看作为一种漏洞信息收集工具,他根据不同漏洞的特性,构造网络数据包,发给网络中的一个或多个目标服务器,以判断某个特定的漏洞是否存在。
1.2 工作原理
基于网络的漏洞扫描器包含网络映射(Network Mapping)和端口扫描功能。
我们以基于网络的漏洞扫描器为例,来讨论基于网络的漏洞扫描器。基于网络的漏洞扫描器一般结合了Nmap网络端口扫描功能,常常用来检测目标系统中到底开放了哪些端口,并通过特定系统中提供的相关端口信息,增强了漏洞扫描器的功能。
基于网络的漏洞扫描器,一般有以下几个方面组成:
①漏洞数据库模块:漏洞数据库包含了各种操作系统的各种漏洞信息,以及如何检测漏洞的指令。由于新的漏洞会不断出现,该数据库需要经常更新,以便能够检测到新发现的漏洞。
②用户配置控制台模块:用户配置控制台与安全管理员进行交互,用来设置要扫描的目标系统,以及扫描哪些漏洞。
③扫描引擎模块:扫描引擎是扫描器的主要部件。根据用户配置控制台部分的相关设置,扫描引擎组装好相应的数据包,发送到目标系统,将接收到的目标系统的应答数据包,与漏洞数据库中的漏洞特征进行比较,来判断所选择的漏洞是否存在。
④当前活动的扫描知识库模块:通过查看内存中的配置信息,该模块监控当前活动的扫描,将要扫描的漏洞的相关信息提供给扫描引擎,同时还接收扫描引擎返回的扫描结果。
⑤结果存储器和报告生成工具:报告生成工具,利用当前活动扫描知识库中存储的扫描结果,生成扫描报告。扫描报告将告诉用户配置控制台设置了哪些选项,根据这些设置,扫描结束后,在哪些目标系统上发现了哪些漏洞。
图1 漏洞扫描器体系结构。
2 基于主机的漏洞扫描
2.1 概述
基于主机的漏洞扫描器,扫描目标系统的漏洞的原理,与基于网络的漏洞扫描器的原理类似,但是,两者的体系结构不一样。基于主机的漏洞扫描器通常在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,这也使的基于主机的漏洞扫描器能够扫描更多的漏洞。
现在流行的基于主机的漏洞扫描器在每个目标系统上都有个代理,以便向中央服务器反馈信息。中央服务器通过远程控制台进行管理。
2.2 工作原理
基于主机的漏洞扫描器通常是一个基于主机的Client/Server三层体系结构的漏洞扫描工具。这三层分别为:漏洞扫描器控制台、漏洞扫描器管理器和漏洞扫描器代理。
图2 基于主机的漏洞扫描体系结构
漏洞扫描器控制台安装在一台计算机中;漏洞扫描器管理器安装在企业网络中;所有的目标系统都需要安装漏洞扫描器代理。漏洞扫描器代理安装完后,需要向漏洞扫描器管理器注册。
当漏洞扫描器代理收到漏洞扫描器管理器发来的扫描指令时,漏洞扫描器代理单独完成本目标系统的漏洞扫描任务;扫描结束后,漏洞扫描器代理将结果传给漏洞扫描器管理器;最终用户可以通过漏洞扫描器控制台浏览扫描报告。
3 基于网络的漏洞扫描vs基于主机的漏洞扫描
下面,我们来分析一下基于网络的漏洞扫描工具和基于主机的漏洞扫描工具,所具有各自的特点以及不足之处。
3.1 基于网络的漏洞扫描
3.1.1 不足之处
第一,基于网络的漏洞扫描器不能直接访问目标系统的文件系统,相关的一些漏洞不能检测到。比如,一些用户程序的数据库,连接的时候,要求提供Windows 2000操作系统的密码,这种情况下,基于网络的漏洞扫描器就不能对其进行弱口令检测了。
另外,Unix系统中有些程序带有SetUID和SetGID功能,这种情况下,涉及到Unix系统文件的权限许可问题,也无法检测。
第二,基于网络的漏洞扫描器不能穿过防火墙。如图3所示,与端口扫描器相关的端口,防火墙没有开放,端口扫描终止。
第三,扫描服务器与目标主机之间通讯过程中的加密机制。从图3可以看出,控制台与扫描服务器之间的通讯数据包是加过密的,但是,扫描服务器与目标主机之间的通讯数据保是没有加密的。这样的话,攻击者就可以利用sniffer工具,来监听网络中的数据包,进而得到各目标注集中的漏洞信息。
图3 基于网络的漏洞扫描器示意图
3.1.2 优点
基于网络的漏洞扫描器有很多优点:
第一,价格方面。基于网络的漏洞扫描器的价格相对来说比较便宜。
第二,基于网络的漏洞扫描器在操作过程中,不需要涉及到目标系统的管理员。基于网络的漏洞扫描器,在检测过程中,不需要在目标系统上安装任何东西。
第三,维护简便。当企业的网络发生了变化的时候,只要某个节点,能够扫描网络中的全部目标系统,基于网络的漏洞扫描器不需要进行调整。
3.2 基于主机的漏洞扫描
3.2.1 优点
第一,扫描的漏洞数量多。由于通常在目标系统上安装了一个代理(Agent)或者是服务(Services),以便能够访问所有的文件与进程,这也使的基于主机的漏洞扫描器能够扫描更多的漏洞。这一点在前面已经提到过。
第二,集中化管理。基于主机的漏洞扫描器通常都有个集中的服务器作为扫描服务器。所有扫描的指令,均从服务器进行控制,这一点与基于网络的扫描器类似。服务器从下载到最新的代理程序后,在分发给各个代理。这种集中化管理模式,使得基于主机的漏洞扫描器的部署上,能够快速实现。
第三,网络流量负载小。由于漏洞扫描器管理器与漏洞扫描器代理之间只有通讯的数据包,漏洞扫描部分都有漏洞扫描器代理单独完成,这就大大减少了网络的流量负载。当扫描结束后,漏洞扫描器代理再次与漏洞扫描器管理器进行通讯,将扫描结果传送给漏洞扫描器管理器。
第四,通讯过程中的加密机制。从图4可以看出,所有的通讯过程中的数据包,都经过加密。由于漏洞扫描都在本地完成,漏洞扫描器代理和漏洞扫描器管理器之间,只需要在扫描之前和扫描结束之后,建立必要的通讯链路。因此,对于配置了防火墙的网络,只需要在防火墙上开放漏洞扫描器所需的5600和5601这两个端口,漏洞扫描器即可完成漏洞扫描的工作。
3.2.2 不足之处
基于主机的漏洞扫描工具也存在不足之处。
首先是价格方面。基于主机的漏洞扫描工具的价格,通常由一个管理器的许可证价格加上目标系统的数量来决定,当一个企业网络中的目标主机较多时,扫描工具的价格就非常高。通常,只有实力强大的公司和政府部门才有能力购买这种漏洞扫描工具,
其次,基于主机的漏洞扫描工具,需要在目标主机上安装一个代理或服务,而从管理员的角度来说,并不希望在重要的机器上安装自己不确定的软件。
第三,随着所要扫瞄的网络范围的扩大,在部署基于主机的漏洞扫描工具的代理软件的时候,需要与每个目标系统的用户打交道,必然延长了首次部署的工作周期。
4 总结
在检测目标系统中是否存在漏洞方面,基于网络的漏洞扫描工具和基于主机的漏洞扫描工具都是非常有用的。
有一点要强调的时,必须要保持漏洞数据库的更新,才能保证漏洞扫描工具能够真正发挥作用。另外,漏洞扫描工具,只是检测当时目标系统是否存在漏洞,当目标系统的配置、运行的软件发生变换时,需要重新进行评估。
基于网络的漏洞扫描工具和基于主机的漏洞扫描工具各自具有自己的特点,也都有不足之处。安全管理员在选择扫描工具时,可以根据自己的需要,选择最适合自己的产品。