OpenVAS / Greenbone : scanner de vulnérabilités

OpenVAS / Greenbone : scanner de vulnérabilités

Installez Greenbone Vulnerability Manager (anciennement OpenVAS) pour scanner vos VPS et identifier les CVE, configurations faibles, services obsolètes. La référence open-source du pentest passif.

Introduction

Greenbone Vulnerability Manager (GVM), anciennement OpenVAS, est le scanner de vulnérabilités open-source de référence. Il identifie :

  • CVE (Common Vulnerabilities and Exposures)
  • Configurations faibles (SSL/TLS, SSH, services)
  • Versions obsolètes de logiciels exposés
  • Mots de passe par défaut
  • Mauvaises permissions

Plus de 100 000 tests (NVT) maintenus quotidiennement par Greenbone.

Prérequis

  • VPS Linux Debian / Ubuntu
  • 4 Go RAM minimum, 8 Go recommandé
  • 30 Go disque
  • Accès root

Étape 1 : Installation via Docker (recommandée)

L'install native est lourde. Utilisons Docker :

sudo mkdir -p /opt/greenbone
cd /opt/greenbone
curl -O https://greenbone.github.io/docs/latest/_static/docker-compose-22.4.yml
mv docker-compose-22.4.yml docker-compose.yml
sudo docker compose up -d

Le démarrage initial prend 30-60 minutes (download des feeds NVT).

Surveillez :

sudo docker compose logs -f

Attendez le message "User created".

Étape 2 : Récupérer le mot de passe admin

sudo docker compose logs gvmd | grep "User created with password"

Notez l'utilisateur admin et son mot de passe.

Étape 3 : Accès web

sudo docker compose ps

Le port 9392 est exposé. Ouvrez https://IP_VPS:9392 dans votre navigateur.

⚠️ Cert auto-signé : acceptez l'avertissement.

Login admin + mot de passe.

Étape 4 : Premier scan

  1. Configuration → Targets → New Target
  2. Nom : prod-vps
  3. Hosts : IP ou hostname (ex 192.168.1.10)
  4. Port List : All IANA assigned TCP
  5. Create

Puis :

  1. Scans → Tasks → New Task
  2. Nom : Scan prod-vps
  3. Scan Targets : prod-vps
  4. Scan Config : Full and fast (équilibre vitesse / profondeur)
  5. Create puis Start

Le scan dure 1-3 heures selon le nombre de services exposés.

Étape 5 : Lire le rapport

Une fois fini, Scans → Reports → cliquez sur la dernière exécution.

Vulnérabilités classées par sévérité :

  • High (>= 7.0 CVSS) : à corriger immédiatement
  • Medium (4.0-6.9) : à corriger sous 30 jours
  • Low (< 4.0) : à corriger quand possible
  • Log : informationnel

Pour chaque vulnérabilité :

  • CVE associée
  • Score CVSS
  • Solution proposée (mise à jour, désactivation, hardening)
  • Exploit disponible ou non

Étape 6 : Scan authentifié (plus profond)

Un scan non-authentifié voit ce qu'un attaquant externe voit. Un scan authentifié (SSH credentials) audite l'intérieur :

  1. Configuration → Credentials → New Credential
  2. Type : Username + SSH Key (ou Password)
  3. Username : root
  4. SSH Key Private : collez la clé privée
  5. Create

Ajoutez ces credentials au target :

  1. Targets → editez le target
  2. SSH Credentials : sélectionnez votre credential
  3. SSH Port : 22

Re-lancez le scan : il liste maintenant aussi les paquets vulnérables installés.

Étape 7 : Scans programmés

  1. Configuration → Schedules → New Schedule
  2. Récurrence : hebdomadaire, mensuel
  3. Create

Sur votre tâche :

  1. Tasks → editez la tâche
  2. Schedule : sélectionnez le planning
  3. Save

Vous recevrez un rapport régulier sans intervention.

Étape 8 : Notifications par email

  1. Configuration → Alerts → New Alert
  2. Event : Task run status changed
  3. Condition : Severity at least 7.0 (uniquement les High+)
  4. Method : Email
  5. To : votre email
  6. From : [email protected]
  7. Create

Liez l'alert à votre tâche → vous recevrez un mail dès qu'une nouvelle vulnérabilité High est trouvée.

Étape 9 : Maintenance des feeds

Les feeds (NVTs, CERT, SCAP) sont mis à jour quotidiennement par Greenbone.

sudo docker compose exec gvmd gvmd --feed-status

Forcer une update manuelle :

sudo docker compose restart gvmd
sudo docker compose exec ospd-openvas greenbone-nvt-sync

Étape 10 : Performance

Pour les scans rapides :

  • Utilisez Scan Config : Discovery au lieu de Full and fast
  • Limitez le port range : All TCP au lieu de All IANA assigned
  • Désactivez les NVT inutiles via Scan Configs → Edit

Étape 11 : Export des rapports

Dans Reports :

  • PDF : pour management
  • CSV : pour pivot Excel
  • XML : pour intégration SIEM
  • LaTeX : pour pentest reports

Étape 12 : API et automatisation

GVM expose une API GMP (Greenbone Management Protocol) :

sudo apt install -y python3-gvm gvm-tools

gvm-cli socket --xml "<get_tasks/>"

Permet d'automatiser : créer un target, lancer un scan, exporter le rapport, parser les High.

Dépannage

Accès web "ERR_CONNECTION_REFUSED"

sudo docker compose ps
sudo docker compose logs gsa

Vérifiez que gsa est UP et que le port 9392 est ouvert dans le firewall.

Login échoue

Mot de passe pas affiché ? Re-créez l'admin :

sudo docker compose exec gvmd gvmd --user=admin --new-password=nouveaupass

Scan reste à "Queued"

Le scanner (ospd-openvas) est busy. Vérifiez :

sudo docker compose logs ospd-openvas

Souvent un feed update en cours. Patientez.

"Could not connect to scanner"

sudo docker compose restart ospd-openvas

Scan extrêmement lent

Réduisez le scan config ou limitez les targets parallèles dans Settings.

Commandes utiles

# Status général
sudo docker compose ps

# Logs
sudo docker compose logs -f gvmd
sudo docker compose logs -f ospd-openvas

# Mettre à jour les images
sudo docker compose pull && sudo docker compose up -d

# Reset complet (perte des scans)
sudo docker compose down -v
sudo docker compose up -d

# Backup config et données
sudo docker compose exec gvmd gvmd --backup

Conclusion

Greenbone vous donne :

  • Identification rapide des vulnérabilités connues sur votre infra
  • Rapports détaillés pour prioriser les patches
  • Scans planifiés sans intervention
  • Couverture des CVE en quasi temps réel

Pour aller plus loin :

  • Combinez avec Lynis pour audit configuration Linux
  • Utilisez Nuclei pour des scans rapides ciblés
  • Adoptez Wazuh pour SIEM + détection en plus

Ressources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members