L’article ici consiste à mettre en oeuvre rapidement OpenVAS (aka : on prend une image Docker déjà packagée). Un petit rappel de ce qu’est OpenVAS, suivi de sa configuration, et d’un premier scan.
Concept d’OpenVAS
OpenVAS est un framework, et un fork (ou une branche dérivée) de NESSUS. Nessus étant sous licence propriétaire, OpenVAS s’est développé sous licence GNU GPL.
Il est constitué d’éléments Backoffice :
– Scanner en charge du scan des vulnérabilités
-Manager qui contient toute l’intelligence du framework, il contrôle notamment le scanner, écrit dans la base SQLite. Il planifie, les audits, génère les reports, …
– Administator qui se charge de la gestion des utilisateurs, de l’alimentation en modèle de vulnérabilités ou en plugins.
D’éléments FrontEnd :
o Interface CLI en ligne de commande pour transmettre les ordres d’audit au Manager
o Greenbone Security Desktop, l’interface complète qui suit via un tableau de bord l’état des audits, des vulnérabilités. Disponible pour Linux comme pour Windows.
o GreenBone Security Assistant, un client http/HTTPS pour le Manager.
A noter que la solution OpenVAS s’appuie sur un ensemble de vulnérabilités connues (environ +134 000 NVTs connues en 2023 – NVT = Network Vulnerabilities Tests).
Le schéma présente les différents composants de l’architecture d’OpenVAS ainsi que les sources d’alimentation des NVTs.
Depuis 2017, il existe 2 éditions bien distinctes : l’edition Entreprise (GSF = Greenbone Security Feed) et l’édition Communautaire (GCF = Greenbone Communauty Feed). Le tableau ci-dessous précise les NVTs auxquels vous pourrez souscrire.
Il peut être utile de rappeler que cet outil ne peut être utilisé sur son propre réseau, uniquement à destination de son environnement, à l’exclusion de tout autre serveur, application, site web tiers.
Installation/Configuration – Docker (sous Ubuntu 22)
L’installation documentée est sur une base Ubuntu 22 LTS en respectant ces prérequis :
https://greenbone.github.io/docs/latest/22.4/container/index.html#introduction
La version d’OpenVAS/GVM installée via l’image docker est la version 22.09. Les instructions et l’image sont issues de ce site : https://immauss.github.io/openvas/
Installation de Docker :
mise à jour préalable :
sudo apt update sudo apt upgrade
Installation de Docker
sudo apt install docker.io
Ajout d’OpenVAS
On récupère l’image Docker contenant OpenVAS :
docker pull immauss/openvas
Création du volume openvas
sudo docker volume create openvas
Confirmation du Docker OpenVas
sudo docker run --detach --publish 9392:9392 -e PASSWORD="montmotdepasseamoi" --volume openvas:/data --name openvas immauss/openvas
Attention à bien préciser votre mot de passe. Le port de connexion sur l’ip de votre machine Ubuntu sera 9392 (GVM https://mon@ip:9392)
Démarrage du docker
docker restart openvas
Lancement des mises à jour des NVT
sudo docker exec -it openvas /scripts/sync.sh
Patientez quelques minutes que les mises à jour soient réalisées, puis vérifiez que l’image soit bien UP :
sudo docker stats
Mon premier scan !
Avant de commencer, vérifiez dans le menu Administration / Feedstatus que le status soit bien à Current pour les feed.
La connexion à l’interface se fait via https://@ip:9392 avec le login admin et le mot de passe défini plus haut.
Deux méthodes pour lancer un audit depuis Openvas :
1 – La plus rapide
aller dans le menu Scans / Tasks
cliquer sur l’icone assistant et sélectionnez Task Wizard
saisir l’adresse IP à scanner et cliquer sur Start Scan
2- La plus complète
Le principe d’un scan dans Openvas consiste à configurer au préalable son environnement de test , c’est à dire définir au préalable les éléments suivants (dans l’ordre : ports, config des scans, credentials éventuels puis les targets) :
- le type de scan (listés dans Configuration / Scan Configs) qui définir le nombre de vulnérabilités testées (nombre de NVTs actives), ce qui aura un impact sur la richesse des résultats, la lenteurs d’exécution,.. il est possible de créer, personnaliser son propre scan en utilisant le bouton News Scan Config (étoile blanche/bleue en haut à gauche). Cela permet d’adapter un scan à un environnement spécifique (service Web, équipement réseau,…)
- les identifiants (dans Configuration/ Credentials). Pour le cas, où vous avez déjà des indices sur les identifiants, mots de passe à utiliser pour l’exécution de certains tests applicatifs : vous pouvez déclarez ceux-ci en créant un nouveau « Credential »
- la liste des ports (dans Configuration/ Port Lists) ; un certain nombre de listes de port est déjà préconfigurée, mais vous pouvez ajouter/créer une liste de ports personnalisés comme par exemple vouloir scanner que ce qui touche au HTTPS (en ajouter une nouvelle liste, déclarer dans port range : T:443 pour ne scanner que le port 443 sur TCP).
- les cibles (dans Configuration / targets) ; ici vous déclarer vers quelles IP l’audit va s’exécuter, en se basant sur quels ports (présents dans Port Lists), en utilisant quelle authentification (parmi celles présentent dans Credential) et enfin avec quelle méthode de détection (Alive Test) : le choix par défaut « Scan Config Default » est trop souvent bien inadapté, il est préférable de test avec TCP-ACK Service Ping ou ICMP & TCP-Ack Service Ping (voire ARP Ping si vous êtes sur un réseau local direct).
Quand vous avez précisé tous les paramètres, cliquez sur CREATE.
Allez ensuite dans Scans /Tasks, puis cliquez sur l’icone NEW TASK
Nommez votre tâche d’audit, sélectionnez la TARGET créée précédemment, choisissez le type de scan (Full, Fast, ou personnalisé), si vous avez plusieurs IP vous pouvez choisir un scan basé sur un choix séquentiel ou aléatoire, et enfin vous pouvez ajuster (baisser) le nombre d’IP scannée en simultané ainsi que le nombre de tests de vulnérabilités simultanés par IP.
Puis créez la tâche en finissant sur Create.
Retournez dans le menu Scans / Tasks puis au regard de votre nouvelle tâche, cliquez sur le bouton Play pour lancer l’exécution de l’audit. Celui-ci sera terminé lorsque le status passera à DONE.
Tous les rapports sont accessibles via le menu DashBoards :
La colonne Status vous permet de suivre l’avancement du scan, la colonne Reports indiquera le nombre d’audit exécuté, la dernière date de l’audit et le niveau de sévérité détecté.
En cliquant sur la date der dernier audit vous afficherez le résultat de l’audit !
En cliquant sur chacune des vulnérabilités, vous aurez accès au résumé, au détail de la détection, la solution proposées, les logiciels affectés, la méthode de détection ainsi que les références CVE/CERT ou autres organisme.
Sur la page de report, en haut à gauche, vous pourrez exporter le rapport complet au format XML, HTML ou PDF (entre autres).
Exemple d’un scan sur un Windows 2016 non patché.
Ce qu’on voit ici est puissant et plutôt basique : OPENVas offre des fonctionnalités à ne pas négliger comme, la programmation régulière d’audit afin d’identifier automatiquement si de nouvelles vulnérabilités sont trouvées (par exemple après une livraison ou mise à jour applicative) ; il est également possible de générer des alertes par mail au delà d’un certain seuil, …
Liens complémentaires :
http://wiki.networksecuritytoolkit.org/index.php/OpenVAS
https://immauss.github.io/openvas/
https://hub.docker.com/r/immauss/openvas
https://greenbone.github.io/docs/latest/22.4/container/index.html
https://www.diva-portal.org/smash/get/diva2:1480596/FULLTEXT01.pdf
Article sous licence Creative Commons « CC-NC »