Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !



Nessus : scanner de vulnérabilité

Nessus est un outil de sécurité informatique. Il signale les faiblesses potentielles ou avérées sur les machines testées.

Plus précisément, Nessus est capable de scanner 1 équipement, un ensemble d'équipements (à partir d'un fichier ou d'une plage IP) ou encore 1 réseau. Le résultat du scan fournira :

  • la liste des vulnérabilités par niveaux de criticité,
  • une description des vulnérabilités,
  • et surtout la méthode ou un lien pour solutionner le problème.

Il s'appuie pour cela sur une base de signatures des failles connues sur un large panel de systèmes.

La procédure ci-après décrit l'installation de Nessus dans sa version 3, mais qui n'est pas encore disponible dans les dépôts Ubuntu.

Pour la suite des opérations, des pré-requis sont nécessaires :

AMD64 :ce lien

Attention : Sous Gutsy Gibbon, le paquet libssl0.9.7 a été remplacé par libssl0.9.8 dans les dépots et l'installation ne fonctionne pas, il y a une erreur de dépendance. Veillez à bien installer celui à l'adresse ci-dessus.

Nessus se divise en deux parties : nessusd qui est un daemon (serveur) exécutant les requêtes ainsi que la communication avec la cible, et nessus, une application client qui récupère les données et affiche le résultat. Ce découpage est classique, le daemon tournant avec des privilèges élevés (root) alors que l'interface graphique, plus complexe et donc vulnérable, tourne sous l'identité d'un utilisateur non privilégié. Les tests sont joués par des plugins.

Le serveur nessus (et ses plugins) ne se suffit pas à lui même dans le sens où il n'est pas possible de lancer un scan en ligne de commande. Il est indispensable d'installer une interface graphique pour 'piloter' nessusd. Par contre, il est tout à fait envisageable d'installer la partie serveur sur une machine et l'interface graphique sur une autre.

Note : Les plugins sont fournis gratuitement ou contre un abonnement payant. La différence réside dans le fait que le système payant met à disposition quasi immédiate des serveurs Nessus les dernieres failles découvertes. A l'inverse (sans abonnement), les plugins qui permettent de tester les failles sont publiés avec un retard de 7 jours.

Le serveur

Le paquet serveur est à récupérer directement sur le site de l'éditeur Tenable : http://www.nessus.org

Il est impératif de fournir une adresse email valide. Celle-ci sera utilisée pour recevoir la clé d'activation du logiciel et ainsi pouvoir obtenir les dernières versions de signatures

Les instructions consistent à partir de la rubrique Download à sélectionner la version Nessus 3.0.6 for Linux puis à télécharger la version au format .deb

Une fois le paquet téléchargé sur votre disque dur, l'installer avec la commande suivante (à adapter à votre version) :

sudo dpkg -i Nessus-3.0.6-debian3_i386.deb
Validation du code d'activation de Nessus

L'email reçu contient votre code d'activation pour votre compte. Sur Linux, pour activer votre compte, exécutez simplement la commande (XX à remplacer par votre code) :

sudo /opt/nessus/bin/nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX

Si vous avez une erreur lors de l'activation avec la commande ci-dessus, utilisez la commande ci-dessous :

sudo nessus-fetch --register XXXX-XXXX-XXXX-XXXX-XXXX

Ceci aura pour effet non seulement d'activer votre compte, mais aussi de télécharger automatique les derniers plugins depuis plugins.nessus.org

Création d'un compte utilisateur

Le serveur Nessus nouvellement installé nécessite la création d'un compte utilisateur interne au logiciel lui-même. Cela permet par exemple de créer plusieurs comptes avec des accès plus ou moins limité aux plages IP réseau. Pour cela exécuter la commande :

sudo /opt/nessus/sbin/nessus-add-first-user
Fabrication du certificat

Il m'a été necessaire de faire ceci pour pouvoir lancer nessusd:

sudo /opt/nessus/sbin/nessus-mkcert
Le script d'initialisation du service nessusd

Par défaut, le script d'initialisation (/etc/init.d/nessusd) s'éxecute dans les runlevel 4 et 6, qui correspondent respectivement à un mode de démarrage que l'on peut se configurer (4) et au redémarrage (6). Pour que le daemon nessusd soit lancé à chaque démarrage de la machine, nous allons le retirer des runlevels 4 et 6 puis l'ajouter dans tous les runlevels (vous pouvez aussi l'ajouter uniquement au runlevel 2 qui correspond mode de démarrage normal).

sudo update-rc.d -f nessusd remove
sudo update-rc.d nessusd defaults
Les actions sur le service nessusd

La lanceur de Nessus accepte les paramètres start stop et restart qui peuvent lui être passés par la commande (exemple d'un démarrage) :

sudo /etc/init.d/nessusd start

Le démarrage peut aussi se faire via la commande suivante qui a pour effet de mettre à jour les plugins au démarrage :

sudo /opt/nessus//sbin/nessusd -D

Les plugins

Il est important de tenir la liste des plugins à jour afin que Nessus soit capable de détecter les dernières failles.

A partir de la version 3 de Nessus, les plugins se mettent à jour automatiquement toutes les 24 heures après que vous ayez exécuté la procédure d'enregistrement (voir plus haut).

Si vous ne souhaitez pas de mise à jour automatique des plugins, éditez simplement le fichier nessusd.conf et changez 'auto_update' par 'no'.

Et pour lancer manuellement une mise à jour des plugins, exécutez le script nessus-update-plugins à l'aide de la commande :

sudo /opt/nessus/sbin/nessus-update-plugins

L'interface graphique cliente

L'éditeur Tanable propose l'interface graphique cliente (GUI) NessusClient pour utiliser le logiciel nessusd. Pour l'utiliser, il suffit de télécharger le paquet au format .deb depuis le site http://www.nessus.org/download/

Les instructions consistent à partir de la rubrique Download à sélectionner la version NessusClient 3.0.0 (the Linux/Windows graphical interface for nessusd) puis à télécharger la version NessusClient-3.0.0-ubuntu704.i386.deb (Ubuntu 7.04 (Feisty Fawn)) au format .deb

Une fois le paquet téléchargé sur votre disque dur, l'installer à l'aide de la commande dpkg (installez le paquet)

Note : cette version du paquet prévue pour la version 7.04 Feisty d'Ubuntu fonctionne également avec la version 7.10 Gutsy.

Note : le daemon serveur de nessus n'est pas lancé à chaque démarrage ; il est donc indispensable de le démarrer manuellement (cf plus haut).

Le raccourcis pour lancer l'interface graphique est situé dans le menu Applications/Internet/NessusClient

Par défaut, Nessus simule une exploitation des failles sur les hôtes distants. En décochant la case Safe checks dans les politiques de scan, Nessus exécute tous les checks même ceux susceptibles de causer des dommages irrémédiables sur l'hôte ciblé.

Les étapes qui caractérisent un scan :

  • Lancement de l'application
  • Connexion au serveur nessusd (local ou distant) à l'aide du bouton Connect
  • Ajout d'hôtes ou réseau à scanner à l'aide du bouton +
  • Sélection d'une politique de scan (ex. Par défaut, Patch Microsoft ou personnalisée)
  • Éventuellement édition de la politique pour la personnaliser (généralement pour adapter les plugins à exécuter en fonction des hôtes, fournir des identifications de compte…)
  • Démarrer le scan à l'aide du bouton Scan Now
  • Patienter pendant la durée du scan puis accéder au rapport :)

Résultat d'un scan sur une plage d'adresses IP

Le score CVSS (Common Vulnerability Scoring System)

Le système CVSS évalue le niveau de gravité d'une faille et lui attribue un score de 1 (faible) à 10 (élevé) en fonction de trois types du métrique distincts : les niveaux basiques, temporels & environnementaux.

L'objectif est d'accorder l'ensemble des éditeurs et constructeurs sur le même barème afin de bénéficier d'un cadre standard sur les informations relatives aux vulnérabilités logicielles et ainsi adapter l'urgence des correctifs sur les parc informatique.

Nessus affiche bien évidemment ce score comme vous pouvez le voir en bas de la copie d'écran ci-dessus.

  • nessus.1203992322.txt.gz
  • Dernière modification: Le 18/04/2011, 14:55
  • (modification externe)