Dans ce tutoriel dédié à la sécurité, je vais vous expliquer comment installer OpenVAS avec Docker, qui est un scanner de vulnérabilité.
Avant de commencer, je vais rapidement vous expliquez ce qu’est un scanner de vulnérabilité, c’est un applicatif qui va permettre de scanner votre environnement informatique (serveurs, équipements réseaux, sites …) à la recherche de failles de sécurité, une fois le scan terminé, vous aurez un rapport, avec l’ensemble de faille connus qui sont sur votre réseau et vous pourrez ainsi prendre des mesures pour les corrigés.
OpenVAS également connu sous le nom de Greenbone Security Assistant est un scanner de vulnérabilité open source et gratuit.
Pour ce tutoriel, j’ai fait choisie d’utiliser Docker pour faire fonctionner OpenVAS, car cela permet de l’installer facilement et rapidement.
Prérequis
Vous devez avoir une machine sous Linux (pour ma part Ubuntu) avec Docker d’installé et docker-compose.
Vous trouverez ici un tutoriel sur l’installation de Docker : https://rdr-it.com/docker-installation-et-utilisation-concrete-sur-ubuntu/installation-de-docker-sur-ubuntu/
Si vous utilisez Ubuntu, voici un script pour l’installation de Docker et Docker Compose :
J’ai l’habitude de stocker mes conteneurs dans le dossier à l’emplacement /containers/<stack-name>
. pour cela je vais créer un dossier openvas
dans mon dossier containers
.
sudo mkdir openvas
Déploiement des conteneurs pour OpenVas
Vous trouverez la documentation officiel ici : https://greenbone.github.io/docs/latest/21.04/container/
On va commencer pas créer le fichier docker-compose.yml et ensuite l’ouvrir avec nano :
sudo touch docker-compose.yml
sudo nano docker-compose.yml
Copier le contenu du fichier docker-compose.yml qui se trouve ici : https://git.rdr-it.io/docker/OpenVAS/-/blob/main/docker-compose.yml
Enregistrer et fermer le fichier docker-compose.yml
Comment vous pourrez le voir dans les différentes commandes, j’ai laissé le project name (-p) au niveau des commandes docker-compose.
Télécharger les différentes images :
sudo docker-compose -p greenbone-community-edition pull
Une fois les images téléchargés, démarrer les :
sudo docker-compose -p greenbone-community-edition up -d
Vous pouvez vérifier que les conteneurs sont bien démarrés avec la commande :
sudo docker ps
OpenVas est déployé mais pas encore fonctionnel.
Synchronisation des tests de vulnérabilités et des données de vulnérabilités
Ca va être la partie plus longue, l’injection des données de vulnérabilités et les tests, pour le moment OpenVAS ne contient aucune données.
Pour cette partie, il faut prévoir 1 à 2 heures.
On va commencer par injecter les différents tests de vulnérabilité, pour cela entrer la commande :
sudo docker-compose -p greenbone-community-edition exec -u ospd-openvas ospd-openvas greenbone-nvt-sync
Patienter pendant le téléchargement des fichiers …
Les données sont téléchargées comme on peut le voir sur la capture ci-dessous :
Il faut maintenant patienter pour passer à la suite, car celle-ci sont en cours d’injection dans la base de données, le seul moyen que j’ai trouvé pour vérifier l’avancement, c’est de vérifier la charge CPU avec la commande htop
.
Quand la charge du serveur est de nouveau faible, on peut considérer que l’injection des données en base est terminée.
Synchronisation des données SCAP, CERT et GVMD
Maintenant, on va passer à la synchronisation des données SCAP, CERT et GVMD, le procédure est identique pour la synchronisation des tests, après le téléchargement, patienter pendant l’injection dans la base de données.
SCAP :
sudo docker-compose -p greenbone-community-edition exec -u gvmd gvmd greenbone-feed-sync --type SCAP
CERT :
sudo docker-compose -p greenbone-community-edition exec -u gvmd gvmd greenbone-feed-sync --type CERT
GVMD :
sudo docker-compose -p greenbone-community-edition exec -u gvmd gvmd greenbone-feed-sync --type GVMD_DATA
Le scanner de vulnérabilité est prêt à être utilser.
Utiliser le scanner de vulnérabilités – Greenbone – OpenVAS
OpenVAS s’utilise à l’aide d’un navigateur Internet, depuis un navigateur Internet, entrer l’ip ou l’url du serveur sur le port 9392 : http://ip:9392
Les identifiants par défaut sont admin / admin.
Après la connexion, on est redirigé vers tableau de bortd (Dashboard) qui contient différente information sur les scan, vide pour le moment et une chronologie du nombre de CVE découverte dans le temps.
Maintenant, on va voir comment lancer un scan pour voir si des vulnérabilités sont présentes.
Depuis le menu de navigation, passer le curseur sur Scans 1 et cliquer sur Tasks 2.
Sur la nouvelle page, passer le curseur sur la baguette « magique » 1 et cliquer sur Task Wizard 2.
Entrer une adresse, une plage IP ou CIDR 1 de ce que vous souhaitez scanner puis cliquer sur Start Scan 2.
La tâche de scan a été ajoutée, celle-ci est normalement dans la liste, elle va passer par plusieurs status : Requests -> Queue -> Running.
Il est possible d’avoir des informations sur la tâche et les découvertes en cours de plusieurs, cliquer le numéro dans la colonne Reports 1.
Patienter pendant la durée du scan, qui va dépendre du nombre d’IP.
Une fois le scan terminée, dans les rapports, on a un score de criticité qui s’affiche, qui correspond souvent à celui de la faille la dangereuse trouvée.
Cliquer de nouveau sur la date rapport pour accéder à celui-ci.
Une fois sur le rapport, cliquer sur Results 1 pour afficher la liste des vulnérabilité découverte.
Pendant le scan, OpenVAS va aussi créer un inventaire en créant un hôte et en collectant des informations comme la version du système d’exploitation.
Dans la partie CVEs, on retrouve les vulnérabilités détectées.
En cliquant sur la CVE, vous aurez plus d’information dessus et notamment les mesures à prendre.
Dans la partie Closed CVE, on retrouve les vulnérabilités connues qui sont corrigées.
Vous avez maintenant toutes les informations nécessaires afin de pouvoir commencer à utiliser OpenVAS pour trouver les vulnérabilités sur votre système d’information.
Conclusion
Au vue du nombre de CVE qui sont découvertes régulièrement, l’utilisation d’un scanner de vulnérabilités facilite beaucoup la recherche des éléments pouvant être impactés par des failles.
Le fait de pouvoir scanner des plages, cela permet de découvrir des éléments vulnérables que l’on peut avoir « oublier ».
Solutions alternatives pour le déploiement
Depuis la réalisation de ce tutoriel, OpenVAS a été mise à jour et j’ai eu pas mal de soucis pour refaire une installation, j’ai trouve une alternative toujours avec des conteneurs Docker, qui est plus simple : https://github.com/isaudits/docker-gvm
Vous pouvez aussi utiliser la solution ici : https://git.rdr-it.io/docker/openvas-securecompliance