OpenVAS是一款开放式的漏洞评估工具,主要用来检测目标网络或主机的安全性。其强大的评估能力来自于集成的数万个漏洞测试程序,这些测试程序以插件的形式提供,可以从官方网站免费更新。
10.2.1 OpenVAS的工作组件
与安全焦点的X-Scan工具类似,OpenVAS系统也采用了Nessus(另一个著名的漏洞检测套件,目前已是商业化产品)较早版本的一些开放插件。OpenVAS能够基于C/S(客户端/服务器),B/S(浏览器/服务器)架构进行工作,管理员通过浏览器或者专用的客户端程序下达扫描任务,服务器负责授权,执行扫描操作并提供扫描结果。
一套完整的OpenVAS系统包括服务端,客户端的多个组件,如下图所示,其中服务器层组建主要完成插件管理,执行扫描,以及管理扫描结果,配置信息等工作;而客户端组件用来给扫描用户提供接口。
下面分别介绍每个组件的主要软件包,以及各自的主要用途。
除上述各工作组件以外,还有一个核心环节,那就是漏洞测试插件的更新。对任何一款安全评估工具来说,只有及时更新检测插件才能获得更具参考价值的评估结果。Openvas系统的插件来源有两个途径,如下图所示,一种是官方提供的NVT免费插件,另一种是Greenbone Sec公司提供的商业插件。
免费的NVT插件目前已包括4万多个测试程序,而且支持远程自动更新,对于安全要求不是特别高的应用程序已经足够了。
10.2.2 构建OpenVAS服务器
在OpenVAS服务器中,需要先安装各工作组的相关软件包,然后启动服务组件,获取最新扫描插件,并添加扫描用户,管理用户。完成这些工作以后,OpenVAS漏洞评估系统的核心部分就构建好了。
安装OpenVAS各组件之前,有一些列的依赖软件包必须提前安装,其中一些可以从RHEL 5系统光盘中找到,另外一些必须额外下载。如果将要部署OpenVAS服务的主机能够访问internet,建议采用官方网站http://www.openvas.org推荐的在线安装方式,以便自动解决依赖关系;否则应下载所有必须的软件包进行离线安装。
挂载RHEL 5系统光盘,并安装一下列出的所有软件包(写在一条命令中),如果提示存在依赖关系,则根据提示安装缺少的软件包即可。
Rpm -ivh /media/OpenVAS/RPMS_01/*.rpm --force(接触依赖关系)安装
从OpenVAS官网http://www.atomicorp.com/下载以下列出的所有依赖包,并使用rpm命令进行安装(写在一条命令)
相关软件包:
安装(同上方法)
从OpenVAS官网或http://www.atomicorp.com/下载以下列出的所有组件包,并使用rpm命令进行安装(写在一条命令中)。
相关软件包:
安装
注意:安装中若出现"无法触碰/var/lib/openvas/mgr/tasks.db"的提示可以忽略,这是由于缺少相关目录导致的,安装后会自动建立。
根据OpenVAS系统的工作结构,需要启动三个服务层组件Scanner扫描器,Manager管理器,administrator管理着。以及提供Web接口的客户层组件Greebone安全助手。
系统服务openvas-manager,openvas-scanner,一般会在安装后自动启用,而另一个系统服务openvas-administrator需要手动启用。其中,manager监听的端口为9390,scanner监听的端口为9391,administrator组件监听的端口为9393.
Greenbone安全助手对应的系统服务为gsad,通常也会自动启动,但默认仅在ip地址127.0.0.1的9392端口监听服务。若要从网络中的其他主机访问,建议将监听地址修改为实际可用的ip地址,或者改为0.0.0.0后再启动服务。
重新启动服务,并查看其监听的端口号为默认端口9392.
注意:因为是客户层组件,需要允许网络上的其他主机访问,因此,如果本机有防火墙,还需要添加相应的规则,以开放9392端口的数据包。
Iptables -I INPUT -p tcp --dport 9392 -j ACCEPT
故障:
除此之外,当用户通过浏览器查看扫描报告时,OpenVAS默认以nobody用户身份降权执行,会导致无法看到报告。在linux系统中可能因nobody的登录Shell问题而出现故障,将nobody用户的登录Shell由/sbin/nologin改为/bin/bash后可以避免此故障。
OpenVAS提供了一个名为openvas-nvt-sync的脚本,可用来在线更新插件,如果服务器能够访问官方网站。则直接执行此脚本进行更新即可。否则应通过其他主机下载最新的插件包文件,然后再复制给OpenVAS系统进行离线安装。
安装新的插件以后,需要重新启动openvas-scanner服务。当更新的插件数量比较多(4万多个)时,再次启动服务时可能需耗费较长时间,请耐心等待其加载完毕(极个别插件可能加载出错,可以不用管它)。
10.2.3 执行漏洞评估任务
在客户机中,使用浏览器连接到OpenVAS系统的gsad服务(9392端口);若使用Greenbone桌面套件程序,则连接到openvas-manager服务(端口9390),下面以IE浏览器为例,学习如何执行漏洞评估任务,关于Greenbone桌面套件的使用,其操作思路和方法基本相似,大家可以自己研究一下。
Gsad服务默认基于HTTPS协议提供Web访问接口,因此访问时应使用"https://ip地址或域名"的URL地址。并指定gsad服务的端口号,方可看到登陆入口,如图所示,初次访问时可能会出现证书错误或风险警告,只要根据浏览器的提示添加例外即可。
注意:为了更能看到效果,我又开了一台linux服务器,并安装了httpd,vsftpd两个服务,确认已经启动,端口处于监听状态,并在服务器的防火墙上添加了两个服务的端口开放规则。
在客户端,打开浏览器,在地址栏中输入OpenVAS服务器的gsad监听地址(本例为192.168.1.1,实际环境监听的时多少就写多少)及端口号进行登陆。
点击"继续浏览此网站"跳转到登陆界面
输入之前创建的用户的用户名和密码(此帐户已被升级为管理员)
连接成功时服务器端会不断弹出错误提示,原因是未识别TLS内容类型,不用理会它。
以指定的扫描用户登陆以后,将进入待Greenbone安全助手的主操作界面,如图所示,需要注意的是,客户机与服务器的系统时间不能相差太远,否则可能遇到"Session has expored . Please login again"错误而登陆失败。
单击左侧Configuration导航栏下的Targets链接,在右侧表单中填写将要评估的目标主机名,ip地址等相关信息,然后单击"Create Target"按钮,如图所示,即可定义扫描目标。
单击左侧Scan Management导航栏下的New Task链接,在右侧表单中设置任务名称,扫描目标,扫描配置使用默认的"Full and fsat"快速完全扫描,然后单击"Creat Task"按钮即可创建一个新的扫描任务。
完成创建
开始扫描时,会出现扫描进度。没有出现进度是按刷新刷新,
注意;如果出现下面这个情况,怎么刷新都没有反应,扫描任务创建的没错的话,首先检查物理通信,再检查目标主机的服务情况和防火墙规则是否允许访问,最后如果还不可以,那就说明之前的配置有误,没办法只能从新配置,切勿从中途检查配置,一定要从新开始。
扫描完成后,为Dome状态
点击放大镜,查看扫描的详细信息
会显示出,漏洞的不同级别及数量,再次点击后面的放大镜,查看具体都有哪些漏洞存在危险。
扫描出的漏洞结果
以上述风险等级为高的Apache服务为例,很容易遭受命令注入方式攻击,建议的解决办法是将httpd升级到2.2.15以上版本。