MaciejKrupa-1/openvas-vulnerability-scanner

GitHub: MaciejKrupa-1/openvas-vulnerability-scanner

基于 GVM/OpenVAS 的自动化漏洞扫描器,支持定时扫描并按 CVSS 生成 PDF 报告和邮件通知。

Stars: 0 | Forks: 0

# GVM/OpenVAS 自动化报告漏洞扫描器 本项目为华沙理工大学 (WEiTI) **系统与软件安全 (BSO)** 课程作业。 **作者:** Maciej Krupa, Wojciech Sondej ## 描述 ## 功能 - 使用 OpenVAS (`Full and fast`) 自动扫描网络 - 生成按 CVSS 排序的漏洞 PDF 报告 - 两种报告模式:**概述** (OGÓLNY) 和 **详细** (SZCZEGÓŁOWY) - 根据最低 CVSS 等级过滤漏洞 - 通过 SMTP 发送电子邮件报告 - 每 24 小时定时扫描(可选) - 通过 `.env` 文件进行配置 ## 项目结构 ``` GVM-SCANNER/ ├── config/ │ ├── .env.example # Szablon konfiguracji (bez danych wrażliwych) │ └── .env # Konfiguracja lokalna — NIE jest w repo ├── controller/ │ ├── Dockerfile │ ├── main.py # Główna pętla — skan, raport, e-mail, scheduler │ ├── scanner.py # Komunikacja z GVM przez Unix socket │ ├── report.py # Parsowanie XML i generowanie PDF (reportlab) │ ├── mailer.py # Wysyłanie e-mail przez SMTP │ └── requirements.txt ├── reports/ # Wygenerowane raporty PDF (nie są w repo) ├── compose.yaml # Docker Compose — Greenbone Community Edition ├── docker-compose.dev.yml # Docker Compose — kontroler skanera └── install.sh # Skrypt instalacyjny i konfiguracyjny ``` ## 环境要求 - Docker - Docker Compose - 已运行的 Greenbone Community Edition 栈 (`compose.yaml`) ## 运行说明 脚本将引导您逐步完成配置: - 收件人电子邮件地址 - 待扫描的网络范围(默认自动检测) - 扫描计划(单次 / 每 24 小时) - 报告类型(概述 (OGÓLNY) / 详细 (SZCZEGÓŁOWY)) - 最低 CVSS 等级(默认为 7.0) - Greenbone 密码 ## 配置 配置通过 `config/.env` 文件完成。模板位于 `config/.env.example`: ``` NETWORK=192.168.1.0/24 GVM_PASSWORD= EMAIL=odbiorca@example.com SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SMTP_USER= SMTP_PASSWORD= SCHEDULE=TAK REPORT=OGÓLNY MIN_SEVERITY=7.0 LOGIN=user_1 ``` ## PDF 报告 报告包含: - 根据等级划分的漏洞摘要(CRITICAL / HIGH / MEDIUM / LOW) - 每个漏洞的详细信息:主机、端口、描述、解决方案、CVE 参考 - 详细模式 (SZCZEGÓŁOWY) 下包含:解决方案类型、影响、受影响系统、QoD、检测结果 CVSS 等级: | 等级 | CVSS | |----------|------------| | CRITICAL | ≥ 9.0 | | HIGH | 7.0 – 8.9 | | MEDIUM | 4.0 – 6.9 | | LOW | < 4.0 | ## 使用的技术 - Python 3.11 - GVM/OpenVAS (Greenbone Community Edition) - Docker, Docker Compose - `python-gvm` — 通过 Unix socket 与 GVM 通信 - `reportlab` — 生成 PDF - `apscheduler` — 扫描计划程序 - `python-dotenv` — 通过 `.env` 进行配置 - `smtplib` — 通过 SMTP 发送电子邮件
标签:版权保护, 请求拦截, 逆向工具