OpenVAS 项目的历史
在2005年,Nessus漏洞扫描器的开发者决定停止在开源许可下的工作,转而采用专有商业模式。
此时,来自Intevation和DN-Systems的开发者已经在为Nessus贡献开发工作,主要集中在客户端工具的开发。这些工作得到了德国联邦信息安全办公室(BSI)的支持。
在2006年,Nessus停止开源后,出现了几个Nessus的分支。其中,只有OpenVAS(Open Vulnerability Assessment System)继续活跃。OpenVAS项目注册在Software in the Public Interest, Inc.,以保护域名“openvas.org”。
2006年和2007年间,OpenVAS项目的主要活动是对现状的清理。然而,到2008年底,总部位于德国奥斯纳布吕克的Greenbone AG成立,推动了OpenVAS的发展。Greenbone的商业计划基于三个核心:
- 超越简单的漏洞扫描,提供全面的漏洞管理解决方案。
- 为企业客户创建即插即用的设备产品。
- 继续开源理念,创建透明的安全技术。
同样在2008年,来自印度的Secpod和加拿大的Security Space两家公司也开始活跃起来,专注于贡献漏洞测试,并与Greenbone合作,开始生产可靠和最新的漏洞测试内容。
2009年,Greenbone增加了第一个额外模块,构建了一个漏洞管理解决方案。Web界面和中央管理服务从零开始开发,并定义了通用协议作为其API。同时,OpenVAS扫描器也得到了小心改进,很快就与其祖先失去了兼容性。所有的开源工作都被品牌化为“OpenVAS”。首批“Greenbone Security Manager”设备产品于2010年春季进入市场。
从2010年至2016年,商业产品系统地改进和扩展,同时开源模块也得到了相应的改进。漏洞管理扩展到包括每日更新的安全咨询,这些咨询由德国CERTs DFN-CERT和CERT-Bund(BSI的一个部门)以GPL兼容许可证提供给公众。
2017年3月,OpenVAS框架达到了版本9。发布周期内添加了许多新模块和众多功能,开发团队每天都发布一些代码改进。2017年标志着一个新时代的开始:首先,Greenbone作为OpenVAS的推动力变得更加明显,引入了几个命名更改,最重要的是使用“Greenbone Vulnerability Management”(GVM)代替“OpenVAS框架”。自此以后,OpenVAS Scanner只是众多模块中的一个,这导致了“GVM-10”成为“OpenVAS-9”的继任者。没有改变许可证,所有模块仍然是免费和开源软件。
2017年的第二个重大变化是馈送服务。除了品牌混淆外,几家公司集成了这项技术和馈送,并将其作为自己的工作或声称是Greenbone产品的更好替代品。为了更好地提高知名度,减少误解并更好地区分其他基于OpenVAS的产品,公共馈送更名为Greenbone Community Feed,并且馈送开发被内化。此外,发布方案从14天延迟改为每日发布,无延迟,但不包括企业产品的漏洞测试。
第三个重大变化是向现代基础设施的过渡,即GitHub和社区论坛。整个过渡在2018年完成,极大地提高了生产力和社区活动。
与GVM-10一起发布的OpenVAS Scanner进行了大量性能优化,以应对日益增长的漏洞测试数量,扫描目标网络的规模和异质性不断增加的挑战。
GVM-11引入了重大架构变化:前服务openvassd被转变为命令行工具openvas。它由服务层ospd-openvas控制。这个概念本质上用新的无状态、请求-响应XML基础和通用OSP(Open Scanner Protocol)替代了旧的有状态、永久和专有的OTP(OpenVAS Transfer Protocol)。
随着GVM 20.08,版本控制改为日历版本控制。此版本中最重要的变化是随馈送一起发布和同步gvmd对象数据,包括报告格式、端口列表、策略和扫描配置。
除了删除旧功能如GMP扫描器外,21.4版本还增加了对CVSSv3.0/CVSSv3.1的支持。
Greenbone Community Edition 22.4版本增加了Notus Scanner,并删除了一些旧功能如对通用OSP扫描器的支持。
在2023年,为了允许组件的更灵活开发,决定将它们独立发布。为了表达软件兼容性,大多数组件转向了语义版本控制。
openVAS介绍
背景:
Greenbone 社区版最初是作为社区项目构建的 命名为 OpenVAS,主要由 Greenbone 开发和转发。
Greenbone 社区版的架构分为三个主要部分:
-
运行漏洞测试 (VT) 的可执行扫描程序应用程序 目标系统
-
Greenbone 漏洞管理守护程序 (gvmd)
-
Greenbone Security Assistant (GSA) 与 Greenbone Security Assistant 守护进程 (gsad)
来源:https://greenbone.github.io/docs/latest/22.4/container/index.html
组成
-
Greenbone 漏洞管理守护程序 (gvmd)
-
[Greenbone 漏洞管理守护程序 (gvmd)] – 也称为 Greenbone 漏洞 Manager 是将普通漏洞扫描整合到 一个完整的漏洞管理解决方案。gvmd 通过 Open 控制 OpenVAS 扫描仪 扫描仪协议 (OSP)。
-
该服务本身提供基于 XML 的 Greenbone 管理协议 (GMP)。 gvmd 还控制 SQL 数据库 (PostgreSQL),其中所有配置和扫描结果数据都位于 集中存储。此外,gvmd 还处理用户管理,包括权限 使用组和角色进行控制。最后,该服务具有内部运行时 计划任务和其他事件的系统。
-
-
Greenbone 安全助理 (GSA)
-
Greenbone Security Assistant (GSA) 是 用户控制、扫描和访问漏洞信息。这是主要的 用户的联系点。它通过 Web 服务器 Greenbone 连接到 gvmd Security Assistant Daemon (gsad) 提供功能齐全的 Web 应用程序 漏洞管理。使用 Greenbone 管理协议 (GMP) 进行通信,用户也可以使用该协议 使用不同的工具直接沟通。
-
-
OpenVAS扫描器
-
主扫描程序 OpenVAS 扫描程序是一个功能齐全的扫描引擎,可针对目标系统执行漏洞测试 (VT)。为此,它使用 每日更新和全面的 Feed:功能齐全、内容广泛、商业化的 Greenbone Enterprise Feed 或免费的 可用的 Greenbone 社区提要。
-
扫描仪由组件 ospd-openvas 和 openvas-scanner 组成。 OpenVAS扫描器通过OSP进行控制。OSP 守护程序 OpenVAS 扫描器 (ospd-openvas) 通过 OSP 与 gvmd 通信:VT 数据为 收集,开始和停止扫描,并将扫描结果传输到 通过 OSPD 的 GVMD。
-
-
Notus 扫描仪
-
Notus 扫描仪在每次常规扫描期间进行扫描,因此无需用户交互 必要。由于系统资源较少,它提供了更好的性能 消耗,因此,扫描速度更快。
-
Notus 扫描仪取代了所有基于 NASL 的本地 安全检查 (LSC)。主机上已安装软件与 完成已知易受攻击软件的列表,而不是运行 VT 脚本 每个 LSC。
-
常规 OpenVAS 扫描器单独加载每个 NASL LSC 并执行它 每个主机一个接一个。然后将单个已知漏洞与 已安装的软件。对所有 LSC 重复此操作。
-
使用 Notus Scanner,已安装的软件列表加载到相同的 方式,而是直接与所有已知的易受攻击的软件进行比较 扫描主机的操作系统。这样就无需运行 LSC,因为收集了有关已知易受攻击软件的信息 在一个列表中,而不是分布在单个 NASL 脚本中。
-
-
附加软件
-
Greenbone 漏洞管理工具 (gvm-tools) 是 帮助远程控制Greenbone Community Edition安装的工具 或 Greenbone 企业设备。这些工具有助于访问通信 协议 GMP(Greenbone 管理协议)和 OSP(开放扫描仪协议)。
-
该模块由交互式和非交互式客户端组成。 交互式脚本直接支持编程语言 Python。 但是,也可以在不进行编程的情况下发出远程 GMP/OSP 命令
-
Greenbone、GVM、OpenVAS
当OpenVAS项目启动时,它只包含一个用于扫描的引擎 漏洞。不久之后,Greenbone公司成立,以实现 为漏洞扫描提供专业支持。Greenbone开始领导 开发OpenVAS,添加多个软件组件,并转向OpenVAS 转化为漏洞管理解决方案,同时保持免费的价值 软件。这个漏洞管理解决方案后来被命名为 Greenbone 漏洞管理 (GVM),以反映起源和 品牌变化。因此,在 OpenVAS 9 发布后 框架,以下版本被命名为 GVM。
考虑到这一点,OpenVAS 可能意味着
-
漏洞扫描器(OpenVAS Scanner),
-
由多个组件组成的软件框架 (GVM) 的名称,
-
由Greenbone公司领导的软件项目(Greenbone Source Edition),
-
漏洞管理解决方案(OpenVAS 9、GVM 20.08 等)的源代码版本,或
-
一个由用户和开发者组成的社区(Greenbone Community)
部署流程
首先安装docker、docker-compose。由于过于简单,此处不在叙述
下载用的docker compose 文件
export DOWNLOAD_DIR=nidemulu
cd $DOWNLOAD_DIR && curl -f -L https://greenbone.github.io/docs/latest/_static/docker-compose-22.4.yml -o docker-compose.yml
拉取镜像
使用 docker compose 文件,可以下载(拉取)容器镜像 容器可以在后台启动。之前需要配置科学上网,不然无法拉取镜像
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition pull
修改yml文件,去掉127.0.0.1来允许其它电脑访问
gsa:
image: greenbone/gsa:stable
restart: on-failure
ports:
# - 127.0.0.1:9392:80
- 9392:80
volumes:
- gvmd_socket_vol:/run/gvmd
depends_on:
- gvmd
启动
#直接启动
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition up -d
#查看容器状态
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition ps
Name Command State Ports
----------------------------------------------------------------------------------------------------------------------------------
greenbone-community-edition_cert-bund-data_1 /bin/init.sh Exit 0
greenbone-community-edition_configure-openvas_1 /bin/sh -c printf "table_d ... Exit 0
greenbone-community-edition_data-objects_1 /bin/init.sh Exit 0
greenbone-community-edition_dfn-cert-data_1 /bin/init.sh Exit 0
greenbone-community-edition_gpg-data_1 /bin/init.sh Exit 0
greenbone-community-edition_gsa_1 /usr/local/bin/entrypoint ... Up 0.0.0.0:9392->80/tcp,:::9392->80/tcp
greenbone-community-edition_gvm-tools_1 /usr/local/bin/entrypoint ... Exit 0
greenbone-community-edition_gvmd_1 /usr/local/bin/entrypoint ... Up
greenbone-community-edition_notus-data_1 /bin/init.sh Exit 0
greenbone-community-edition_openvas_1 /bin/sh -c cat /etc/openva ... Up
greenbone-community-edition_openvasd_1 /bin/sh -c /usr/local/bin/ ... Up
greenbone-community-edition_ospd-openvas_1 /usr/bin/tini -- /usr/loca ... Up
greenbone-community-edition_pg-gvm_1 /usr/local/bin/entrypoint ... Up
greenbone-community-edition_redis-server_1 /bin/sh -c rm -f /run/redi ... Up
greenbone-community-edition_report-formats_1 /bin/init.sh Exit 0
greenbone-community-edition_scap-data_1 /bin/init.sh Exit 0
greenbone-community-edition_vulnerability-tests_1 /bin/init.sh Exit 0
一些命令以备使用
#查看容器的实时日志
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition logs -f
#进入特定容器
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition exec <service_name> /bin/bash
#关闭所有容器
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition down
启动漏洞管理
在服务启动并加载所有源数据后, Greenbone Security Assistant Web 界面 – GSA – 可以在浏览器中打开。
在浏览器中输入:http://nideIP:9392
默认用户名密码:admin:admin
需要修改密码不能在webUI上修改,通过下面命令修改。
docker-compose -f $DOWNLOAD_DIR/docker-compose.yml -p greenbone-community-edition exec -u gvmd gvmd gvmd --user=admin --new-password='nidemima'
建立任务
使用scan-tasks建立任务
查看结果
Secoinfo中提供了cve、cpe、npt的分类查看
CVE(Common Vulnerabilities and Exposures)
是一种在全球范围内识别和公布信息安全漏洞的标准方法。每个CVE标识符都提供了一个独一无二的编号,专门用于识别特定的安全漏洞。这个系统由美国的MITRE公司管理,旨在标准化对信息安全漏洞的描述,使得用户、研究者和软件供应商可以以一致的方式讨论、研究和解决这些漏洞。
CVE 的关键特点包括:
-
唯一性:每个CVE编号对应一个具体的安全漏洞。这确保了全球范围内对特定漏洞的引用是一致的。
-
公开访问:CVE数据库对公众开放,任何人都可以查看详细的漏洞信息,包括受影响的软件、漏洞的性质和潜在的影响。
-
广泛采用:CVE是业界广泛接受的标准,被各种安全产品和服务用来链接漏洞管理、安全自动化和合规性报告。
CVE的主要组成部分:
-
CVE编号:这是一个唯一的标识符,通常形式为“CVE-年份-序号”,例如CVE-2024-5636。
-
描述:对漏洞进行简要的描述,说明漏洞的性质和可能的影响。
-
相关链接和引用:提供更深入的技术细节、补丁信息和其他相关文档的链接。
-
CVSS分数(Common Vulnerability Scoring System):一个用来量化漏洞严重性的评分系统,分数范围从0到10,越高表示越严重。
CVE的使用场景:
-
安全评估和审计:通过检查系统中已知的CVE列表,评估潜在的安全风险。
-
合规性检查:确保软件和系统符合特定的安全标准和法规要求。
-
安全研究和教育:提供一个公共的知识库,用于培训和教育目的,帮助安全专家和开发者了解并防范常见的安全威胁。
-
漏洞响应和补救:使组织可以快速识别受影响的产品并部署必要的补丁或解决方案。
NPT(网络协议测试)
NPT 是指对网络协议进行测试的过程,以确保它们的实现和操作没有安全缺陷或性能问题。网络协议测试主要关注以下几个方面:
-
功能性测试:确保协议正常工作,符合其技术规范。
-
安全性测试:识别和修复可能导致数据泄露、未授权访问或服务拒绝(DoS)攻击的安全漏洞。
-
性能测试:评估网络协议在高负载和压力条件下的表现,确保网络应用的可靠性和稳定性。
CPE(通用平台枚举)
CPE 是一个结构化的标识符系统,用于在整个信息安全社区中统一地标识和分享有关软件和硬件产品的信息。CPE 由NIST(美国国家标准与技术研究院)维护,其目的是提供一种方法来标准化和跟踪信息系统中使用的所有组件。
CPE 标识符包含三个主要部分:
-
部件:标识产品类型(操作系统、应用程序、硬件设备等)。
-
供应商:标识制造或开发该产品的公司。
-
产品:标识特定的产品名称和版本。
例如,一个典型的 CPE 名称可以是cpe:/a:microsoft:internet_explorer:8
,这表明产品是由 Microsoft 开发的 Internet Explorer 浏览器,版本是 8。
CPE 在安全漏洞管理中非常有用,因为它允许安全专业人员和系统管理员准确识别哪些具体产品受到某个漏洞的影响,并采取相应的补救措施。
补充
CVSS 基础分数和风险评级
CVSS(Common Vulnerability Scoring System,通用漏洞评分系统)是一个开放标准,用于评估计算机系统安全漏洞的严重性。评分系统从0到10分,分数越高表示漏洞的严重性越大。分数分为三个等级:
-
低危(0.0 - 3.9分)
-
中危(4.0 - 6.9分)
-
高危(7.0 - 10.0分)
每个漏洞都会根据一系列标准(比如攻击复杂度、所需权限等)计算出一个基础分数。在你的例子中,CVSS 基础分数为 8.0,这表示该漏洞被评为高危,意味着它可以对受影响的系统造成严重影响。
CVSS 分数的组成:
-
攻击向量(AV):描述攻击者利用漏洞的方式,可以是本地访问(L)、相邻网络(A)或网络(N)。
-
攻击复杂度(AC):描述攻击的难度,可以是低(L)或高(H)。
-
所需权限(PR):攻击前需要的权限,可以是无(N)、低(L)或高(H)。
-
用户交互(UI):是否需要用户参与来利用漏洞,可以是无(N)或有(R)。
-
影响范围(S):漏洞是否会影响系统的其他部分,可以是未变更(U)或已变更(C)。
-
机密性影响(C)、完整性影响(I)和可用性影响(A):这三个指标描述漏洞被利用后对系统的机密性、完整性和可用性的影响程度,可以是无(N)、低(L)或高(H)。
后记
最后,千万不要随意扫描别人的服务器。不然赶紧跑路。