从Nessus到OpenVAS:开源漏洞扫描器核心架构与实战部署指南

1. 项目概述:为什么我们需要了解从Nessus到OpenVAS的变迁?

如果你是一名网络安全工程师、渗透测试人员,或者只是对系统安全感兴趣的技术爱好者,那么“漏洞扫描器”这个词对你来说一定不陌生。在众多安全工具中,Nessus和OpenVAS无疑是两个绕不开的名字。它们的关系,就像一对分家的兄弟,一个走向了商业化的康庄大道,另一个则扛起了开源社区的大旗。今天,我们不谈枯燥的理论,就从我这些年实际使用和部署的经验出发,聊聊这对“兄弟”的“前世今生”,并手把手带你完成一次OpenVAS的实战入门。你会发现,掌握一个强大的开源漏洞扫描器,并没有想象中那么遥不可及。

简单来说,Nessus最初是一个开源项目,由Tenable Network Security公司开发并维护。在2005年之前,它一直是开源社区中漏洞扫描的标杆。然而,商业化的浪潮改变了这一切。2005年,Tenable决定将Nessus的核心代码闭源,转向了付费的商业产品路线。这对于依赖其开源版本的用户和社区来说,无疑是一个巨大的冲击。但开源的精神就在于“分叉”与“重生”。社区并没有放弃,他们基于Nessus最后一个开源版本(版本2)的代码,创建了一个新的分支,并命名为“Open Vulnerability Assessment System”,也就是我们现在熟知的OpenVAS。从此,OpenVAS继承了Nessus开源的血脉,并在全球开发者的共同努力下,发展成为功能最全面、最活跃的开源漏洞扫描解决方案之一。

那么,为什么我们今天还要深入探讨OpenVAS呢?首先,对于预算有限的企业、教育机构或个人研究者,OpenVAS提供了一个功能不输商业产品的免费选择。其次,它的开源特性意味着更高的透明度和可定制性,你可以审查其代码,甚至根据自身需求进行二次开发。最后,理解OpenVAS的架构和工作原理,是深入理解漏洞扫描、漏洞管理乃至整个主动防御体系的重要基石。无论你是想搭建一个内部的安全评估环境,还是准备安全认证考试,亦或是进行日常的渗透测试练习,OpenVAS都是一个绝佳的起点。接下来,我们就从它的“心脏”开始,一步步拆解这个强大的工具。

2. 核心架构与组件拆解:OpenVAS是如何工作的?

很多新手在初次接触OpenVAS时,会被它众多的组件和复杂的交互搞得一头雾水。别担心,我们可以把它想象成一个现代化的汽车制造厂,每个部门各司其职,协同工作,最终生产出“漏洞报告”这辆汽车。理解这个架构,是后续一切部署、配置和排错的基础。

2.1 核心组件“三驾马车”

OpenVAS并非一个单一的程序,而是一套由多个独立服务组成的套件。主要的核心组件有三个,它们通常通过TCP端口进行通信:

  1. OpenVAS Scanner (openvassd) :这是扫描引擎本身,可以看作是工厂里的“生产线工人”。它负责最繁重的体力活——执行具体的漏洞检测脚本(称为NVTs,Network Vulnerability Tests),对目标主机进行探测、发送数据包、分析响应。它不负责管理任务,只专注于“扫描”这个动作。在较新的版本中,这个组件被整合并重构,但其核心职能不变。

  2. Greenbone Security Assistant (GSA) :这是用户看到的Web界面,也就是工厂的“客户接待大厅”和“控制中心”。它是一个基于Web的图形化用户界面,我们所有的手动操作,比如创建扫描任务、配置扫描策略、查看报告,都是在这里完成的。GSA使用HTTP/HTTPS协议与我们交互,并将我们的指令传递给后台的管理器。

  3. Greenbone Vulnerability Manager (GVM)/OpenVAS Manager (openvasmd) :这是整个系统的大脑和调度中心,相当于工厂的“总经理办公室”和“生产计划部”。它负责管理整个扫描生命周期:接收来自GSA的扫描请求,将其分派给一个或多个Scanner去执行,收集扫描结果,存储所有数据(配置、任务、报告),并最终将报告呈现给GSA。用户、扫描器和数据库之间的所有协调工作都由它来完成。

它们之间的关系是这样的:你(用户)通过浏览器访问GSA(控制中心),在网页上点击“开始扫描”。GSA将这个请求发送给GVM(总经理)。GVM查阅计划(扫描配置),从仓库里调取所需的检测工具(NVTs),然后命令一个或多个Scanner(工人)去目标地址干活。Scanner干完活,把原始数据(发现的问题)交回给GVM。GVM整理、分析这些数据,生成一份精美的报告,存进数据库,并通知GSA:“报告好了,可以来取了。”最后,你在GSA的网页上看到了这份漏洞报告。

2.2 关键数据流与协议

理解了组件,我们再看看数据是怎么流动的。这涉及到几个关键的协议和端口(以常见默认配置为例):

  • 用户 <-> GSA :使用HTTP(端口9392)或HTTPS(端口9392)。 强烈建议在生产环境或任何涉及敏感信息的测试中启用HTTPS
  • GSA <-> GVM :通过基于XML的GMP(Greenbone Management Protocol)协议通信,通常走本地回环接口。
  • GVM <-> Scanner :通过基于XML的OSP(Open Scanner Protocol)协议通信。
  • GVM <-> 数据库 :GVM使用PostgreSQL数据库来存储一切信息,包括配置、任务、报告和知识库。

这种模块化设计带来了巨大的好处: 扩展性和灵活性 。例如,你可以部署多个Scanner分布在不同的网络区域,由同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值