Sécurité des systèmes informatiques/Sécurité informatique/Outils de recherche de vulnérabilité

Un livre de Wikilivres.

Une dernière catégorie d'outils utiles à la gestion de la sécurité d'un système informatique est celle constituée par les outils de recherche de vulnérabilités, souvent appelés des outils d'audit du système.

Ces outils permettent d'effectuer des analyses du système d'exploitation, des logiciels ou de la configuration d'un système informatique, éventuellement à distance, et produisent des rapports identifiant les éventuels problèmes de sécurité rencontrés dans le périmètre soumis à leur recherche. Différents types d'outils de recherche existent dans ce domaine, depuis les précurseurs (notamment COPS sous Unix) jusqu'à des solutions ou des services commerciaux actuels. Ces offres externes peuvent d'ailleurs être complétées par des scripts spécifiques réalisés par les administrateurs du système eux-mêmes pour surveiller certains points précis (présence d'un virus particulier par exemple).

Nous nous intéresserons plus particulièrement dans cette section à deux outils de la catégorie des outils de recherche de vulnérabilités via le réseau, probablement la plus répandue). L'un d'entre eux, Nessus est diffusé dans le domaine du logiciel libre et a connu un succès grandissant. L'autre, Internet Scanner d'ISS est un des premiers outils de ce type a avoir été diffusé avec succès dans le domaine commercial.

Nessus[modifier | modifier le wikicode]

Nessus est l'outil de recherche de vulnérabilités le plus connu dans le domaine des logiciels libres. Ce logiciel est focalisé sur la recherche de vulnérabilités très variées sur les systèmes et dispose d'un mécanisme d'extension permettant d'ajouter assez facilement l'analyse de nouvelles vulnérabilités (via des plugins). Nessus effectue ses analyses à partir d'un serveur Unix situé sur le réseau qui constitue un point central pour l'administration du logiciel et le stockage des informations collectées. L'essentiel des tests de présence d'une vulnérabilité sont donc effectués à partir du réseau (bien que la nouvelle version 2.2 inclus également des fonctions d'analyse locale exécutées à distance au travers d'une session SSH) Des interfaces graphiques permettent d'accéder au serveur Nessus via le réseau (par des connexions SSL généralement authentifiées à l'aide d'un certificat) et de piloter l'exécution des sessions d'analyse (ou scan). L'interface graphique native fonctionne sous Unix/X11 mais des implémentations existent également pour MS/Windows (comme NessusWX ou NeWT 2.0).

À partir de l'interface de Nessus, on peut accéder successivement aux différents paramètres utilisés au cours du scan et exploiter les résultats obtenus. La page de démonstration du serveur Web du projet Nessus (http://www.nessus.org/demo/), illustre le déroulement d'une session d'analyse utilisant ce logiciel.

Tout d'abord l'écran initial de l'interface permet d'indiquer le serveur Nessus utilisé et le mot de passe permettant de s'authentifier auprès de ce serveur, soit directement, soit en déverrouillant la clef privée du certificat utilisé. (Bien entendu, une phase préalable de déclaration des utilisateurs et de mise en place des certificats doit être effectuée.) Une fois la connexion établie, on peut accéder aux autres paramètres.

Plusieurs écrans permettent ensuite de sélectionner les vulnérabilités à tester lors de la recherche et de fournir des paramètres spécifiques aux différents types de vulnérabilité recherchés (par exemple les comptes à utiliser pour certains tests). Les vulnérabilités testées par Nessus étant très nombreuses elles sont regroupées par catégories (CGI abuses, FTP, Windows, Backdoors, etc.) pour faciliter la sélection. Une particularité de Nessus est de réaliser un test de vulnérabilité le plus complet possible. Si ce n'est pas toujours systématique, c'est du moins l'esprit dans lequel sont développés les vérifications. L'exécution de certains tests peut donc réellement tenter d'exploiter une vulnérabilité, avec les effets secondaires que cela peut impliquer en terme de perturbation des machines (arrêt d'un service réseau, erreur du système d'exploitation). Ces tests risqués sont repérés explicitement et il est généralement recommandé de les désactiver pour un système informatique en exploitation.

Enfin, un autre onglet de l'interface permet de définir la plage d'adresses IP cible de la recherche de vulnérabilités. Associé à ces définitions réseau on trouve également les paramètres de déroulement du scan réseau précédent les tests individuels, ainsi que certaines options d'optimisation ou d'identification. Enfin, il est possible d'enregistrer la session d'analyse au niveau du serveur. Ceci permet notamment d'interrompre puis de reprendre une session particulière, mais également d'effectuer dans une certaines mesures des tests incrémentaux pour rechercher l'apparition de nouvelles vulnérabilités.

L'interface présente ensuite le déroulement d'un scan. L'exécution se déroule de manière concurrente sur plusieurs cibles simultanément. Pour chaque cible, une première phase de scan des ports réseau ouvert est exécutée, suivie par la recherche effective des vulnérabilités sur les services réseau identifiés. (L'exécution de tests locaux à un système n'est pas illustrée dans la démo car c'est une fonctionnalité encore assez récente à ce jour.)

Enfin, l'interface fourni un accès aux informations collectées par Nessus. Nessus permet aussi de générer un certain nombre de rapports dans divers format (notamment HTML) listant l'ensemble des vulnérabilités identifiées. Toutefois, pour un système informatique de taille usuelle comptant plusieurs dizaines de machines, les informations contenues dans un tel rapport peuvent être extrêmement nombreuses et l'exploitation des résultats nécessite un outil permettant de faire facilement des recherches. Certains patches pour Nessus permettent de rassembler les vulnérabilités identifiées dans une base de données (notamment par rapport au projet Prelude-IDS) mais l'exploitation de la masse d'information collectée par un tel outil n'est pas toujours facile à réaliser. C'est toutefois un problème commun à la plupart des outils de ce type dès qu'ils atteignent une certaine exhaustivité par rapport aux problèmes de sécurité référencés.

ISS Internet Scanner[modifier | modifier le wikicode]

Un des premiers outils commerciaux dans le domaine de la recherche de vulnérabilité via la réalisation de scan réseau a été Internet Scanner d'ISS. C'est toujours un outil de référence dans ce domaine, avec un nombre affiché de vulnérabilités prises en compte extrêmement important et des procédures automatiques de mise à jour des tests de vulnérabilité. Celles-ci sont similaires à celles utilisées par la sonde de détection d'intrusion du même éditeur (RealSecure). Les deux produits bénéficient d'ailleurs de la mutualisation des efforts de prise en compte des vulnérabilités au sein du même éditeur (soit pour la détection de l'attaque, soit pour le test de présence).