开源漏洞扫描器:OpenVAS

一、OpenVAS介绍

OpenVAS (Open Vulnerability Assessment System) 是一款功能强大的开源漏洞扫描器。它由 Greenbone Networks 开发和维护,是 Greenbone 安全管理器 (GSM) 产品的基础,同时也有免费的社区版本(Greenbone Community Edition)。OpenVAS 的核心功能是识别目标系统和应用程序中的安全漏洞。

以下是 OpenVAS 的一些关键特性和详细介绍:

1. 核心功能:漏洞扫描

  • 全面的漏洞检测: OpenVAS 能够检测各种类型的安全漏洞,包括操作系统和应用程序的已知漏洞、错误配置、弱密码、恶意软件等。
  • 网络漏洞测试 (NVTs): OpenVAS 依赖于一个庞大且持续更新的 NVT 数据库。这些 NVT 是由 Greenbone 社区和安全专家贡献的,包含了针对已知漏洞的详细测试脚本。NVT 每天都会更新,确保 OpenVAS 能够检测最新的威胁。
  • 支持多种协议: OpenVAS 可以扫描各种常见的网络协议,如 TCP/IP、HTTP(S)、SSH、SMTP、DNS、SNMP 等,以及一些工业协议。这使得它可以评估各种类型的服务和应用程序的安全性。
  • 认证扫描: OpenVAS 支持在提供凭据的情况下进行认证扫描。这使得它能够更深入地检查系统内部的配置和漏洞,例如操作系统补丁级别、用户账户信息、应用程序版本等,从而提供更准确的评估。
  • 非认证扫描: OpenVAS 也可以在不提供凭据的情况下进行非认证扫描,主要通过分析网络服务和响应来识别潜在的漏洞。

2. 架构

OpenVAS 采用客户端-服务器架构,通常包含以下组件:

  • Greenbone Vulnerability Manager Daemon (gvmd): 这是 OpenVAS 的核心组件,负责控制和管理扫描任务、存储配置和扫描结果、处理用户管理和权限控制等。它通过 Open Scanner Protocol (OSP) 与 OpenVAS 扫描器进行通信。
  • OpenVAS Scanner (openvas-scanner): 这是实际执行漏洞扫描的引擎。它根据 gvmd 的指令和 NVT 数据库对目标系统进行安全检查。
  • Greenbone Security Assistant (GSA): 这是一个基于 Web 的用户界面,允许用户配置和启动扫描、查看和分析扫描结果、生成报告等。
  • Greenbone Security Assistant Daemon (gsad): 这是 GSA 的后端 Web 服务器,负责处理用户界面的请求并与 gvmd 进行通信。
  • Vulnerability/Information Feed (NVT Feed): 这是包含所有漏洞测试(NVTs)、SCAP 数据和其他安全相关信息的数据库,由 Greenbone 定期更新。

3. 主要特点

  • 开源且免费: OpenVAS 本身是开源的,社区版本可以免费使用,这使得它成为许多组织进行安全评估的经济高效的选择。
  • 强大的可扩展性: OpenVAS 的模块化设计使其易于扩展和集成其他安全工具。用户可以根据自己的需求定制扫描配置。
  • 灵活的扫描选项: 用户可以根据需要配置各种扫描参数,例如目标主机、端口范围、扫描强度、要执行的 NVT 集合等。
  • 全面的报告功能: OpenVAS 可以生成详细的扫描报告,包括 обнаруженные 漏洞的描述、风险级别、CVSS 评分、修复建议等。报告可以导出为多种格式(例如 HTML、PDF)。
  • 风险分析: OpenVAS 可以根据漏洞的严重程度和潜在影响进行风险评估,帮助用户优先处理和修复关键漏洞。
  • 与其他安全工具集成: OpenVAS 可以与其他安全工具和系统集成,例如 SIEM 系统,以实现更全面的安全管理。
  • 性能优化: OpenVAS 提供了性能调整选项,以优化大型网络的扫描效率。

4. 使用场景

OpenVAS 广泛应用于各种场景,包括:

  • 漏洞管理: 定期扫描网络和系统,识别和跟踪安全漏洞,以便及时修复。
  • 渗透测试: 作为渗透测试工具箱的一部分,用于发现目标系统的潜在入口点。
  • 安全审计: 评估组织的安全策略和配置的有效性。
  • 合规性检查: 帮助组织满足各种安全合规性要求。

5. 优势与劣势

优势:

  • 开源且免费(社区版)。
  • 拥有庞大且持续更新的 NVT 数据库。
  • 功能强大且灵活,可定制性强。
  • 支持多种扫描类型和协议。
  • 提供详细的报告和风险评估。
  • 活跃的社区支持。

劣势:

  • 与商业漏洞扫描器相比,用户界面可能不够直观(尤其对于初学者)。
  • 配置和管理可能相对复杂,需要一定的技术知识。
  • 社区支持可能不如商业产品的专业支持响应及时。

OpenVAS 是一款强大且灵活的开源漏洞扫描器,对于希望进行安全评估和漏洞管理的组织来说是一个非常有价值的工具。尽管可能需要一定的学习曲线,但其丰富的功能和持续更新的漏洞信息使其成为安全领域的重要组成部分。

二、本地安装部署

请注意: 本地部署 OpenVAS 涉及到操作系统、网络配置等,请确保您具备一定的 Linux 系统管理基础,并在操作前备份重要数据。以下步骤以常见的 Linux 发行版(如 Ubuntu 或 CentOS)为例进行说明。

1、直接在服务器上安装

这种方式是将 OpenVAS 的各个组件直接安装到您的 Linux 服务器上。

步骤:

  1. 更新系统软件包列表:

    复制代码
    sudo apt update  # Debian/Ubuntu 系统
    sudo yum update  # CentOS/RHEL 系统
  2. 安装 OpenVAS 相关软件包: OpenVAS 的软件包名称可能因 Linux 发行版和版本而略有不同。通常会包含 openvas-gsa(Web 界面)、openvas-manager(核心管理组件)、openvas-scanner(扫描器)和 openvas-cli(命令行工具)。您可以使用包管理器搜索可用的 OpenVAS 软件包。

    • Debian/Ubuntu:

      复制代码
      sudo apt install openvas

      或者,您也可以选择安装更细粒度的组件:

      复制代码
      sudo apt install gvm gvm-tools openvas-scanner
    • CentOS/RHEL: 由于 CentOS/RHEL 官方仓库可能没有最新的 OpenVAS 软件包,您可能需要添加 Greenbone 的官方软件源。请访问 Greenbone 官方网站查找适用于您系统的软件源配置信息。添加软件源后,再执行安装命令:

      复制代码
      sudo yum install openvas

      同样,您也可以选择安装更细粒度的组件。

  3. 配置和初始化 OpenVAS: 安装完成后,您需要进行一些初始化配置,例如设置管理员用户、更新 NVT 数据库等。Greenbone 提供了 gvmd 命令行工具来管理 OpenVAS。

    • 初始化 GVM 数据库:

      复制代码
      sudo gvmd --create-user=admin --new-password=<your_admin_password>
      sudo gvmd --rebuild-gvmd

      <your_admin_password> 替换为您希望设置的管理员密码。

    • 更新 NVT 数据库:

      复制代码
      sudo greenbone-nvt-sync

      这个过程可能需要一些时间,取决于您的网络速度。

    • 更新 SCAP 数据:

      复制代码
      sudo greenbone-scapdata-sync
    • 更新 CERT 数据:

      复制代码
      sudo greenbone-certdata-sync
  4. 启动 OpenVAS 服务: 使用 systemd 或 service 命令启动 OpenVAS 相关服务(例如 gvmdgsad)。

    • 使用 systemd (较新的系统):

      复制代码
      sudo systemctl start gvmd
      sudo systemctl start gsad
      sudo systemctl enable gvmd  # 设置开机自启
      sudo systemctl enable gsad  # 设置开机自启
    • 使用 service (较旧的系统):

      复制代码
      sudo service gvmd start
      sudo service gsad start
      sudo chkconfig gvmd on   # 设置开机自启 (CentOS/RHEL)
      sudo chkconfig gsad on   # 设置开机自启 (CentOS/RHEL)
  5. 访问 OpenVAS Web 界面 (GSA): 在您的 Web 浏览器中输入服务器的 IP 地址或域名,默认端口是 9392。例如:https://your_server_ip:9392。使用您在步骤 3 中创建的管理员用户名和密码登录。

2、使用虚拟机部署

使用虚拟机可以提供一个隔离的环境,方便您测试和使用 OpenVAS,而不会影响到您的主机系统。

步骤:

  1. 下载 OpenVAS 虚拟机镜像: Greenbone 官方通常会提供预配置好的 Greenbone Community Edition (GCE) 虚拟机镜像。您可以在 Greenbone 官网的下载页面或社区论坛中找到。

    • Greenbone 官方下载: 访问 Greenbone Free: Get Your Free Download - Greenbone,查找 "Virtual Machines" 或 "Greenbone Community Edition" 部分。您可能需要注册才能下载。
    • 第三方源: 一些安全社区或个人也会分享预配置的 OpenVAS 虚拟机镜像,但请务必从可信的来源下载,并验证镜像的完整性。
  2. 安装虚拟机软件: 您需要安装一个虚拟机管理软件,例如:

    • VirtualBox: 免费且跨平台,可在 Oracle VirtualBox 下载。
    • VMware Workstation Player (免费个人使用) / VMware Workstation Pro (商业使用): 可在 https://www.vmware.com/ 下载。
    • Hyper-V (Windows 内置): 如果您使用的是 Windows 专业版或企业版,可以使用 Hyper-V。
  3. 导入虚拟机镜像: 在您的虚拟机管理软件中,选择导入虚拟电脑(VirtualBox)或打开虚拟机(VMware)。选择您下载的 OpenVAS 虚拟机镜像文件(通常是 .ova.ovf 格式)。

  4. 配置虚拟机网络: 根据您的网络环境配置虚拟机的网络设置。常见的选项包括:

    • 桥接模式 (Bridged Networking): 虚拟机将直接连接到您的物理网络,并获得与主机在同一网段的 IP 地址。
    • 网络地址转换 (NAT): 虚拟机将通过主机共享网络连接,并使用主机分配的内部 IP 地址。
    • 仅主机模式 (Host-only Networking): 虚拟机只能与主机进行通信。

    建议初学者使用桥接模式,方便从主机访问 OpenVAS Web 界面。

  5. 启动虚拟机: 启动导入的 OpenVAS 虚拟机。

  6. 登录虚拟机: 您可能需要查看 Greenbone 官方文档或虚拟机镜像的说明,了解默认的登录用户名和密码。

  7. 查找虚拟机 IP 地址: 登录虚拟机后,使用 ip addrifconfig 命令查找虚拟机的 IP 地址。

  8. 访问 OpenVAS Web 界面 (GSA): 在您的主机 Web 浏览器中输入虚拟机的 IP 地址,通常使用 HTTPS 和端口 9392。例如:https://<虚拟机IP地址>:9392。使用虚拟机中预设的或您在初始化时设置的管理员凭据登录。

3、使用 Docker 部署

使用 Docker 可以快速部署和管理 OpenVAS,并且提供了一定的隔离性。

前提条件:

  • 服务器上已经安装了 Docker 和 Docker Compose。

步骤:

  1. 创建 Docker Compose 文件 (例如 docker-compose.yml): 创建一个 YAML 文件来定义 OpenVAS 的各个服务。以下是一个基本的 docker-compose.yml 示例:

    复制代码
    version: '3.7'
    
    services:
      redis:
        image: redis:latest
        restart: unless-stopped
        volumes:
          - redis_data:/data
    
      postgres:
        image: postgres:13
        restart: unless-stopped
        environment:
          POSTGRES_USER: gvm
          POSTGRES_PASSWORD: <your_postgres_password>
          POSTGRES_DB: gvmd
        volumes:
          - postgres_data:/var/lib/postgresql/data
    
      gvmd:
        image: greenbone/gvmd:latest
        restart: unless-stopped
        depends_on:
          - postgres
          - redis
        environment:
          POSTGRES_HOST: postgres
          POSTGRES_USER: gvm
          POSTGRES_PASSWORD: <your_postgres_password>
          POSTGRES_DB: gvmd
          GVM_USER: admin
          GVM_PASSWORD: <your_gvm_password>
        volumes:
          - gvmd_data:/var/lib/gvm
        ports:
          - "9393:9393"  # 用于 OSP 协议
    
      scanner:
        image: greenbone/openvas-scanner:latest
        restart: unless-stopped
        depends_on:
          - redis
        volumes:
          - scanner_data:/var/lib/openvas
    
      gsad:
        image: greenbone/gsad:latest
        restart: unless-stopped
        depends_on:
          - gvmd
        ports:
          - "9392:9392"
        environment:
          GVM_HOST: gvmd
          GVM_PORT: 9393
    
    volumes:
      redis_data:
      postgres_data:
      gvmd_data:
      scanner_data:

    请务必替换 <your_postgres_password><your_gvm_password> 为您自己的安全密码。 您也可以根据需要修改端口映射。

  2. 启动 Docker Compose: 在包含 docker-compose.yml 文件的目录下,运行以下命令:

    复制代码
    docker-compose up -d

    这会下载并启动 OpenVAS 的各个容器。第一次启动可能需要一些时间来下载镜像。

  3. 等待服务启动: 使用 docker-compose logs -f 命令查看容器的日志,等待所有服务成功启动。

  4. 访问 OpenVAS Web 界面 (GSA): 在您的 Web 浏览器中输入服务器的 IP 地址或域名,使用您在 docker-compose.yml 文件中设置的 GVM_PASSWORD(默认用户名为 admin)登录,端口通常是 9392。例如:https://your_server_ip:9392

Docker 部署的优点:

  • 快速部署: 通过 Docker 镜像可以快速部署 OpenVAS。
  • 隔离性: 容器之间相互隔离,减少了依赖冲突。
  • 易于管理: 使用 Docker Compose 可以方便地管理多个 OpenVAS 组件。
  • 可移植性: Docker 容器可以在不同的支持 Docker 的环境中运行。

Docker 部署的缺点:

  • 资源占用: 运行多个容器可能会占用一定的系统资源。
  • 配置复杂性: 理解 Docker 和 Docker Compose 的概念可能需要一些时间。

以上介绍了 OpenVAS 本地部署的三种主要方式。您可以根据自己的技术水平、需求和环境选择最适合您的方法。直接在服务器上安装提供了最大的灵活性,但需要较多的手动配置。使用虚拟机提供了隔离的环境,方便测试和使用。而 Docker 部署则更加轻便和易于管理。

三、社区版和商业版对比

OpenVAS 的免费版是社区版(Greenbone Community Edition, GCE),它与 Greenbone 的商业版本(Greenbone Security Manager, GSM 设备和云服务)之间存在一些关键区别。以下是详细的对比:

1、核心功能(两者共有):

  • 漏洞扫描: 无论是社区版还是商业版,其核心都是强大的 OpenVAS 扫描器,能够对网络、系统和应用程序进行全面的漏洞扫描。
  • NVT 规则库: 两者都依赖于漏洞测试规则库(NVT)来检测各种安全弱点。社区版使用 Greenbone 社区规则库 ,而商业版使用更广泛且更新更频繁的 Greenbone 企业规则库
  • Web 界面 (GSA): 两者都提供基于 Web 的用户界面(Greenbone Security Assistant)来管理扫描、查看结果和生成报告。
  • 支持的协议: 两者都支持各种常见的互联网和工业协议进行扫描。
  • 认证与非认证扫描: 两者都可以进行需要凭据的认证扫描和不需要凭据的非认证扫描。
  • 报告: 两者都能生成详细的漏洞扫描报告。

2、主要区别:

Greenbone 社区版 (GCE) vs. Greenbone 商业版 (GSM / 云服务) 对比:

Greenbone 社区版 (GCE)

  • 漏洞规则库: Greenbone 社区规则库(更新频率较低,覆盖范围相对较小)。
  • 技术支持: 社区支持(通过论坛和邮件列表)。
  • 系统更新: 用户自行负责,依赖底层操作系统,主版本升级可能复杂。
  • 管理功能: 基本的漏洞管理功能。
  • 可扩展性与性能: 取决于用户硬件和配置,用户需自行优化。
  • 易用性: 设置和维护可能对初学者来说更复杂。
  • 高可用性与冗余: 需要用户手动配置。
  • 备份与恢复: 用户自行负责实施备份解决方案。
  • 部署选项: 可直接安装在各种操作系统、虚拟机、Docker 中。
  • 成本: 免费。

Greenbone 商业版 (GSM / 云服务)

  • 漏洞规则库: Greenbone 企业规则库(每日更新,覆盖范围更广、更及时,包含更多零日漏洞信息)。
  • 技术支持: 专业的 SLA 技术支持(服务级别协议)。
  • 系统更新: 无缝且经过测试的系统和软件更新,通常包含版本升级。
  • 管理功能: 高级的漏洞管理功能,包括集中管理、复杂报告和分析、合规性报告、资产管理、工作流集成、RBAC 等。
  • 可扩展性与性能: 设备经过性能优化,云服务提供可扩展的资源。
  • 易用性: 交钥匙解决方案(设备)或简单的账户注册(云服务),设计更易于使用。
  • 高可用性与冗余: 一些设备和云服务中内置高可用性和冗余选项。
  • 备份与恢复: 集成的备份和恢复机制。
  • 部署选项: 提供物理设备、虚拟设备和云服务。
  • 成本: 基于订阅的许可费用。

3、关键区别的详细说明:

  • 漏洞规则库: 这是最关键的区别之一。商业版中的 Greenbone 企业规则库更新更频繁,通常包含更广泛的漏洞测试,包括对新兴威胁甚至一些零日漏洞的更及时信息。这使得商业版在漏洞检测的准确性和及时性方面通常优于社区版。
  • 技术支持: 社区版依赖于社区论坛和邮件列表的支持,虽然可以获得帮助,但无法保证响应时间或专业的支持服务。商业版提供直接的 Greenbone 技术支持团队,并有服务级别协议 (SLA),对于需要及时帮助并高度依赖扫描器的组织至关重要。
  • 更新与维护: 社区版的更新和升级需要用户自行管理,有时会比较复杂,尤其是在处理底层操作系统依赖关系时。商业版简化了此过程,提供自动化且经过全面测试的更新,减少了管理负担。
  • 管理功能: 商业版的 GSM 设备和云服务超越了基本的扫描功能,提供全面的漏洞管理平台。这包括根据资产重要性组织和优先处理漏洞、跟踪修复工作、生成合规性报告以及与其他安全工具集成等功能,从而构建更全面的安全态势。这些高级管理功能在社区版中通常不可用。
  • 可扩展性与性能: 商业设备通常针对企业环境中的扫描性能进行了优化。云服务提供可扩展性以应对大型和动态的基础设施。在社区版中,性能调优和扩展需要用户自行完成。
  • 易用性: 虽然核心扫描引擎相同,但商业版通常更注重提供更友好的用户体验,包括简化的设置、直观的界面和集成的工作流程。社区版的初始设置和持续维护可能需要更多的技术专业知识。

总结:

  • Greenbone 社区版 (GCE): 是一款强大且免费的开源漏洞扫描器,适用于个人、拥有技术专长的小团队以及学习和测试目的。它提供了核心的扫描功能,但需要更多的自我管理,并且漏洞规则库的覆盖范围和更新频率不如商业版。
  • Greenbone Security Manager (GSM) / 云服务: 是为需要企业级漏洞管理的组织设计的商业产品。它们提供更全面的漏洞规则库、专业的支持、无缝更新、高级管理功能、更好的可扩展性和易用性,所有这些都基于订阅模式。

选择社区版还是商业版很大程度上取决于组织的规模、安全需求、技术能力和预算。对于具有关键安全需求且内部专业知识有限的组织来说,商业版提供的功能和支持通常更有价值。

四、基础版介绍

Greenbone Basic 是一款由 Greenbone Networks 推出的商业级漏洞扫描解决方案,主要面向中小型企业 (SMEs)。它旨在提供企业级的漏洞管理能力,但通常在功能和价格上会介于免费的 Greenbone Community Edition (GCE) 和更全面的 Greenbone Security Manager (GSM) 之间。

以下是 Greenbone Basic 相对于 GCE 和 GSM 的主要特点和区别:

1、相对于 Greenbone Community Edition (GCE):

  • Vulnerability Feed: Greenbone Basic 通常包含 Greenbone Enterprise Feed,该规则库比 GCE 使用的 Greenbone Community Feed 更新更频繁、覆盖范围更广,并包含更多最新的漏洞信息,包括对零日漏洞的更快响应。
  • Support: Greenbone Basic 提供商业技术支持,通常有明确的服务级别协议 (SLA),这与 GCE 的社区支持形成鲜明对比。
  • Updates: 系统和软件更新通常由 Greenbone 提供和管理,更加便捷和可靠,而 GCE 的更新则需要用户自行负责。
  • Ease of Use: Greenbone Basic 的设计通常更注重易用性,提供了更友好的界面和更简化的工作流程,降低了用户的技术门槛。
  • Management Features: 虽然可能不如全功能的 GSM 强大,但 Greenbone Basic 通常会提供比 GCE 更高级的漏洞管理功能,例如更强大的报告功能、一定的资产管理能力等。
  • Scalability & Performance: Greenbone Basic 的性能通常会优于用户自行搭建和配置的 GCE,并且在一定程度上具备更好的可扩展性以适应中小型企业的需求。
  • Cost: Greenbone Basic 是商业产品,需要购买订阅或许可证,而 GCE 是免费的。

2、相对于 Greenbone Security Manager (GSM) / 云服务:

  • Functionality: 全功能的 GSM 通常提供最全面的漏洞管理功能,包括更高级的报告和分析、全面的合规性报告、更完善的资产管理、工作流和工单系统集成、更精细的 RBAC 等。Greenbone Basic 在这些高级功能上可能会有所限制。
  • Scalability & Performance: GSM 设备和云服务通常具备更高的可扩展性和更优化的性能,能够更好地应对大型和复杂的企业环境。
  • Deployment Options: GSM 提供多种部署选项,包括物理设备、虚拟设备和云服务,而 Greenbone Basic 的部署方式可能有所限制。
  • Cost: Greenbone Basic 的价格通常会低于全功能的 GSM 设备和云服务,使其成为中小型企业更经济的选择。

3、总结

总结来说,Greenbone Basic 定位为中小型企业的商业级漏洞扫描解决方案,它在以下方面优于免费的 GCE:

  • 更及时和全面的漏洞信息 (Enterprise Feed)
  • 专业的商业技术支持
  • 更便捷的更新管理
  • 更好的易用性
  • 更强的管理功能

同时,它在功能和可扩展性方面可能不如更高端的 GSM 产品,但价格上更具优势,更符合中小型企业的预算。

如果是中小型企业,希望获得比免费社区版更可靠、更易用且功能更强的漏洞扫描解决方案,Greenbone Basic 可能是一个不错的选择。

相关推荐
子非衣1 分钟前
Windows云主机远程连接提示“出现了内部错误”
服务器·windows
国科安芯7 分钟前
面向高性能运动控制的MCU:架构创新、算法优化与应用分析
单片机·嵌入式硬件·安全·架构·机器人·汽车·risc-v
绵绵细雨中的乡音7 分钟前
Linux进程学习【基本认知】
linux·运维·学习
灏瀚星空20 分钟前
用Obsidian四个插件打造小说故事关联管理系统:从模板到图谱的全流程实践
经验分享·笔记·开源
lLinkl1 小时前
项目笔记2:post请求是什么,还有什么请求
服务器·网络协议·http
ALe要立志成为web糕手1 小时前
[BJDCTF2020]EzPHP
web安全·网络安全·php·ctf
珹洺1 小时前
Linux操作系统从入门到实战(三)Linux基础指令(上)
linux·运维·服务器
再睡一夏就好1 小时前
Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别
linux·服务器·c语言·c++·笔记
剁椒排骨1 小时前
win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法
运维·windows·经验分享·计算机外设·win11·win10
angushine1 小时前
让Docker端口映射受Firewall管理而非iptables
运维·docker·容器