MaciejKrupa-1/openvas-vulnerability-scanner

GitHub: MaciejKrupa-1/openvas-vulnerability-scanner

Stars: 0 | Forks: 0

# Skaner podatności GVM/OpenVAS z automatycznym raportowaniem Projekt realizowany w ramach przedmiotu **Bezpieczeństwo Systemów i Oprogramowania (BSO)** na Politechnice Warszawskiej (WEiTI). **Autorzy:** Maciej Krupa, Wojciech Sondej ## Opis ## Funkcjonalności - Automatyczne skanowanie sieci z użyciem OpenVAS (`Full and fast`) - Generowanie raportu PDF z podatnościami posortowanymi według CVSS - Dwa tryby raportu: **OGÓLNY** i **SZCZEGÓŁOWY** - Filtrowanie podatności według minimalnego poziomu CVSS - Wysyłanie raportu e-mailem przez SMTP - Harmonogram skanowania co 24h (opcjonalnie) - Konfiguracja przez plik `.env` ## Struktura projektu 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 ## Wymagania - Docker - Docker Compose - Uruchomiony stos Greenbone Community Edition (`compose.yaml`) ## Uruchomienie Skrypt przeprowadzi przez konfigurację krok po kroku: - adres e-mail odbiorcy - zakres sieci do skanowania (domyślnie wykrywany automatycznie) - harmonogram skanowania (jednorazowo / co 24h) - typ raportu (OGÓLNY / SZCZEGÓŁOWY) - minimalny poziom CVSS (domyślnie 7.0) - hasło do Greenbone ## Konfiguracja Konfiguracja odbywa się przez plik `config/.env`. Szablon dostępny w `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 ## Raport PDF Raport zawiera: - podsumowanie podatności według poziomu (CRITICAL / HIGH / MEDIUM / LOW) - szczegóły każdej podatności: host, port, opis, rozwiązanie, referencje CVE - w trybie SZCZEGÓŁOWYM: typ rozwiązania, wpływ, systemy dotknięte, QoD, wynik detekcji Poziomy CVSS: | Poziom | CVSS | |----------|------------| | CRITICAL | ≥ 9.0 | | HIGH | 7.0 – 8.9 | | MEDIUM | 4.0 – 6.9 | | LOW | < 4.0 | ## Użyte technologie - Python 3.11 - GVM/OpenVAS (Greenbone Community Edition) - Docker, Docker Compose - `python-gvm` — komunikacja z GVM przez Unix socket - `reportlab` — generowanie PDF - `apscheduler` — harmonogram skanowania - `python-dotenv` — konfiguracja przez `.env` - `smtplib` — wysyłanie e-mail przez SMTP