使用 Greenbone 实施漏洞管理
概述
Greenbone 漏洞管理(GVM,Greenbone Vulnerability Management)是 OpenVAS 背后的开源框架,提供超过 100,000 个网络漏洞测试(NVT)的全面漏洞扫描。python-gvm 库提供 Python API,通过 Greenbone 管理协议(GMP,Greenbone Management Protocol)与 GVM 交互,支持以编程方式创建扫描目标、管理任务、执行扫描和获取报告。本技能涵盖通过 Unix 套接字或 TLS 连接 GVM、认证、创建扫描配置和目标、启动扫描,以及解析基于 XML 的漏洞报告以生成可操作的发现结果。
前置条件
- 已安装 Greenbone 社区版或 Greenbone 企业版设备
- Python 3.9+,安装
python-gvm(pip install python-gvm) - GMP 访问凭据(用户名/密码)
- 到 GVM 守护进程的网络连接(Unix 套接字或 TCP/TLS)
- 了解 CVSS 评分和漏洞分类
步骤
- 安装 python-gvm:
pip install python-gvm - 通过
UnixSocketConnection或TLSConnection建立 GMP 连接 - 使用
gmp.authenticate(username, password)进行认证 - 使用
gmp.create_target(name, hosts=[...], port_list_id=...)创建目标 - 使用
gmp.create_task(name, config_id, target_id, scanner_id)创建扫描任务 - 使用
gmp.start_task(task_id)启动扫描 - 使用
gmp.get_task(task_id)监控扫描进度 - 使用
gmp.get_report(report_id, report_format_id=...)获取结果 - 解析 XML 报告中的漏洞、CVSS 分数和受影响主机
- 生成包含严重程度分布和修复优先级的 JSON 摘要报告
预期输出
JSON 报告,包含发现的漏洞总数、严重程度细分(关键/高/中/低)、每台主机的发现结果(含 CVE 参考和 CVSS 分数),以及包括持续时间和 NVT 漏洞库版本的扫描元数据。