Greenbone / OpenVAS dans un conteneur

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.

Source : https://www.greenbone.net/wp-content/uploads/The-Different-Flavors-of-Greenbones-Technology-20180205.pdf

 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 »

WordPress : liste de 25 points de sécurisation.

CMS parmi d’autres, WordPress permet comme les autres de créer et gérer facilement un site web, de le personnaliser à l’extrême, d’y ajouter des tonnes de fonctionnalités.

Bien que ce CMS soit l’un des plus infectés en 2018 sur internet (source Sucuri.net ), c’est aussi l’un des plus répandus, et qui bénéficie de nombreux articles pour le sécuriser.

L’objet de l’article n’est pas de faire la retape de WordPress mais de se concentrer sur les meilleurs moyens pour rendre son installation la plus securisée possible.

Les recommandations ci-dessous ne concernent pas les couches inférieures qui supportent WordPress (environnement virtuel ou physique, OS , moteur PHP,…). Tous ces éléments se doivent d’être à jour, bénéficier des derniers correctifs de sécurité, ne pas être obsolètes (EOL).

Très utile pour vérifier l’efficacité des mesures ci-dessous, quelques sites « d ‘audit » automatiques de votre propre CMS à la seule condition que vous en soyez le gestionnaire, propriétaire ou que vous ayez toutes les autorisations nécessaires (opérateur, hébergeur,…) avant de lancer ces tests.

Read more « WordPress : liste de 25 points de sécurisation. »

Security.txt

Fichier presque magique dont le nom de fichier (son format, et son emplacement) fait référence à la RFC 9116 de l’IETF.

Contexte :

Lorsqu’une vulnérabilité est détectée sur un site web par un chercheur en sécurité, pentesteur, ou n’importe qui, cette personne doit pouvoir contacter le responsable du site web pour lui signaler (cela devrait l’une des premières actions).

Le contact identifié dans un bas de page web, ou le formulaire contact mène parfois vers un service externalisé, un service comm qui peuvent n’avoir grand chose à faire du signalement d’une vulnérabilité (parfois). Alors l’alerte sur une vulnérabilité tombe aux oubliettes avant qu’elle ne soit exploitée par une autre personne mal intentionnée.

Solution :

La mise en œuvre de ce fichier security.txt doit permettre de contacter les bonnes personnes pour le signalement d’une vulnérabilité du site web. Pour cela, le fichier doit être déposé dans un répertoire précis, sous un nom précis, avec un contenu de fichier standardisé.

La source de cet article est disponible ici : https://securitytxt.org/ ainsi que le formulaire pour générer le fichier txt 😉

Où mettre ce fichier ? dans un répertoire nommé .well-know à la racine du site web, le fichier lui-même s’appelera security.txt

Les informations à mentionner dans ce fichier sont à minima :

  • Contact : un email,
  • Expires : la date d'expiration des informations contenues dans le fichier, date au format ISO 8601 (exemple : 2023-12-31T18:37:07.000Z )

En option, les informations peuvent être ajoutées (tous les liens seront en HTTPS) :

  • Encryption : l'url d'une clé de chiffrement destinée au chiffrement de la communication entre le découvrir et le responsable (par exemple, un fichier PGP)
  • Acknowledgements : l'url d'une page de remerciement/reconnaissance du signalement
  • Preferred-Languages : la langue préférée pour l'échange d'information
  • Canonical : l'url du fichier security.txt
  • Policy : l'url de politique de disclosure de l'entreprise pour appréhender les pratiques de reporting attendues par l'entreprise,
  • Hiring : un dernier lien sur les postes ouverts au recrutement dans le domaine de la cybersécurité.

A nouveau, le lien https://securitytxt.org/ est idéal car à jour des dernières évolution de la RFC, et surtout possède un formulaire qu’il suffit de compléter pour générer le fichier.

Vous voulez identifier si un site web contient ce fichier ? Soit par le navigateur, soit avec cette url : https://gotsecuritytxt.com en spécifiant le domaine requêté :

Et bien sûr, assurez-vous que le contact soit une mailing list ou une personne qui soit en mesure de répondre rapidement et traiter la vulnérabilité.