Nessus : une autre brique dans le mur (de la s�curit�)

ArticleCategory: [Choose a category for your article]

System Administration

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to fr Georges Tarbouriech 

AboutTheAuthor:[A small biography about the author]

Georges est un vieil utilisateur d'Unix. Il pense que la s�curit� informatique est l'un des grands d�fis de ce si�cle.

Abstract:[Here you write a little summary]

Nessus est un scanner de s�curit� libre, disponible depuis http://www.nessus.org. Renaud Deraison est le cr�ateur et le mainteneur du projet. Au moment de cet article, la version stable est la 1.09 et la version exp�rimentale la 1.14. Le logiciel est publi� sous GPL et de nombreuses personnes contribuent au projet, particuli�rement pour ce qui concerne les plugins... pendant que d'autres profitent du travail de nessus sans m�me en mentionner le nom (plus d'information sur ce sujet � la fin de l'article). Nessus fonctionne sous de nombreuses saveurs d'Unix en tant que client et serveur et sous Win32 en tant que client. Regardons de plus pr�s ce fabuleux outil.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:[The article body]

Obtenir et installer nessus

En allant sur http://www.nessus.org, vous pouvez t�l�charger ce superbe logiciel. Un client nessus �tant disponible pour Win32, pr�cisons que nous parlerons ici de la version Posix, bien �videmment.
Pour utiliser nessus, il vous faut nmap et Gtk (le Gimp Toolkit). Le site de nessus propose des liens vers ces derniers. Cela dit, vous pouvez utiliser nessus � partir de la ligne de commande, par cons�quent Gtk n'est pas obligatoire.
Vous pouvez r�cup�rer nessus de trois mani�res diff�rentes : la bonne, la mauvaise et la pire.
La bonne, c'est le standard. En clair, vous t�l�chargez les archives � partir du site ftp le plus proche de chez vous. Vous disposez de quatre archives : les biblioth�ques nessus, les biblioth�ques nasl, le programme nessus proprement dit et les plugins. Une fois d�compact�es, vous les compilez et les installez comme d'habitude : ./configure, make, make install, dans l'ordre des archives cit�es au-dessus. Si une pr�c�dente version de nessus est install�e sur votre machine, vous devez la supprimer. Nessus vous propose un script de d�sinstallation devant �tre lanc� apr�s le premier "./configure", soit celui des biblioth�ques nessus. Ex�cutez ce script avant de taper "make". Faites la m�me chose pour chaque paquetage (sauf ex�cuter le script de d�sinstallation, bien s�r) et c'est fini.
La mauvaise m�thode consiste � ex�cuter un script t�l�chargeable nomm� nessus-installer.sh. Taper "sh nessus-installer.sh" installera automatiquement le paquetage. Les quatre paquetages sont devenus un seul.
La pire : si lynx est install� sur votre machine et si vous �tes connect� � Internet, tapez simplement "lynx -source http://install.nessus.org | sh" et c'est tout. Vous ne devez PAS �tre root pour ce faire.
De toute �vidence, la m�thode recommand�e est la "bonne"... Enfin, puisque vous t�l�chargez nessus, nous supposons que vous vous sentez concern�s par la s�curit� ! Et puisque nous parlons de s�curit�, n'oubliez pas de t�l�charger le checksum MD5.
Nessus fournit diff�rents utilitaires (nasl, un langage de script, nessus-adduser, nessus-build...). Chaque utilitaire poss�de sa page de manuel, de m�me pour les programmes client et serveur. De la documentation suppl�mentaire est disponible dans la distribution (README, INSTALL...) et sur le site de nessus.

Configurer et ex�cuter nessus

Pour rendre les choses plus faciles � comprendre, nous nous servirons d'exemples de la version X11 de nessus, autrement dit, celle utilisant Gtk.

Le serveur nessusd

Pour d�marrer nessus, vous devez, bien �videmment, lancer le d�mon serveur, soit nessusd. Lorsque vous l'ex�cutez pour la premi�re fois, vous devez d�clarer un nom d'utilisateur et un mot de passe en utilisant la commande nessus-adduser. Si le paquetage des biblioth�ques nessus a �t� compil� avec l'option "--enable-cipher" (recommand�, pour ne pas dire obligatoire !), une cl� priv�e est g�n�r�e. Cette cl� peut �tre prot�g�e par une passphrase. De nombreuses options existent pour lancer le serveur et vous trouverez tout dans la page de manuel de nessusd.
De l�, vous cr�ez la base de donn�es des utilisateurs et les r�gles correspondantes. Autrement dit, qui est autoris� � ex�cuter le d�mon serveur, qui a le droit de scanner (une machine, un r�seau...). Les r�gles sont de la forme "accept" ou "deny" suivi de l'adresse IP du r�seau et de son netmask.
Par exemple : accept 192.168.1.0/24, permet � l'utilisateur de scanner l'ensemble du r�seau 192.168.1.
Il est aussi possible de d�finir un seul utilisateur sans r�gles du tout. Si vous souhaitez autoriser plusieurs utilisateurs � lancer nessusd, soyez tr�s prudents sur ce que vous leur permettez de faire. Vous ne pouvez pas autoriser n'importe quoi � n'importe qui sur votre r�seau, n'est-il pas ?
Enfin, nessusd d�pend d'un fichier de configuration situ� (normalement) dans /usr/local/etc/nessus/nessusd.conf. Vous pouvez le modifier manuellement si vous savez ce que vous faites.

Le client nessus

Vous pouvez maintenant d�marrer le client nessus pour vous connecter sur le serveur nessusd. Pour lancer le client, il suffit de taper "nessus &" dans un shell. Ceci ouvre la fen�tre de configuration de nessus apr�s vous avoir demand� la passphrase mentionn�e plus haut. Cette fen�tre propose sept onglets.
Le premier onglet se nomme "nessusd host". Depuis ce panneau, vous pouvez vous connecter sur l'h�te nessusd en cliquant sur le bouton "Log in". Bien s�r, cela suppose que vous �tes autoris� � vous connecter sous ce nom d'utilisateur, en d'autres termes, que votre nom d'utilisateur est bien d�clar� dans la base de donn�es.

nessusd host


Le deuxi�me onglet concerne les plugins. Vous y s�lectionnez (ou d�s�lectionnez) les plugins � utiliser pendant le scan. Par exemple, vous pouvez d�sactiver les plugins dangereux (ceux susceptibles de "planter" une machine !). Cliquer sur un plugin dans la partie inf�rieure du panneau affiche des informations le concernant.

plugins plugin detail


Le troisi�me onglet d�finit les pr�f�rences des plugins. Cela concerne ping, TCP, FTP... C'est l� que vous affinez les r�glages sur la fa�on d'utiliser nessus pour scanner l'h�te(s) ou le r�seau cible.

preferences


Le quatri�me onglet permet de d�finir les options de scan et le scanner de port � utiliser. Normalement, il s'agit de nmap. Plus sur nmap ici.

scan options


Dans le cinqui�me onglet vous fournissez � nessus la cible � scanner. Dans le champ "target" vous �crivez le nom d'un ou plusieurs h�tes, s�par�s par des virgules, une ou plusieurs adresses IP, toujours s�par�es par des virgules, ou une adresse de r�seau avec son netmask (par exemple 192.168.1.0/24). Vous disposez aussi d'une case � cocher pour effectuer un transfert de zone DNS. Autrement dit, si vous vous connectez � un serveur DNS, nessus essaiera de r�cup�rer la liste des h�tes dans ce domaine.

target selection


Le sixi�me onglet permet � l'utilisateur de changer sa passphrase, d'effacer sa cl� priv�e ou d'ajouter des r�gles.

user


Enfin, le septi�me onglet ouvre le panneau de cr�dits qui contient �galement des informations sur la version. C'est-�-dire, toute information � fournir lorsqu'on utilise nessus dans un projet externe... Enfin, c'est comme cela que ce devrait �tre !

credits


Il est possible d'avoir un huiti�me onglet si nessus a �t� compil� avec l'option de configuration "--enable-save-kb". Kb signifie "knowledge base" (base de connaissance). C'est une fonctionnalit� exp�rimentale permettant d'utiliser les r�sultats d'un test pr�c�dent. Cette fonctionnalit� sera int�gr�e par d�faut dans la version 1.1.0 de nessus. Vous en saurez plus sur kb � kb_saving.
Apr�s avoir "visit�" chaque onglet, vous pouvez lancer la "b�te". Il suffit de cliquer sur le bouton "Start the scan". Que se passe-t-il alors ?

Nessus au travail

Lorsque vous d�marrez le scan, nessus ouvre une fen�tre affichant le status dudit scan. Imaginons par exemple, que vous testiez le r�seau 192.168.1.0/24 dans son int�gralit�. Huit machines (h�tes) seront affich�es en m�me temps, et vous pourrez voir chaque plugin utilis� pour chaque machine ainsi qu'une jauge de progression. Voici � quoi �a ressemble :

scan status


Comme vous pouvez le voir, le test peut �tre arr�t� n'importe quand, en cliquant sur le bouton "Stop the whole test".
De toute �vidence, si vous scannez un r�seau entier comprenant de nombreux h�tes, le test peut durer un certain temps. Ca d�pendra des OS, de la vitesse du r�seau, du r�le des machines (plus ou moins de ports ouverts), du nombre de plugins actifs, etc.
Vous pouvez aussi tester de deux autres mani�res : les scans dissoci�s ou les scans diff�rentiels. Cela suppose que nessus a �t� compil� avec l'option de configuration "--enable-save-kb", mentionn�e ci-dessus. Les scans dissoci�s permettent d'effectuer les tests en t�che de fond alors que les scans diff�rentiels, comme leur nom l'indique, montrent seulement les diff�rences entre deux scans.
Vous trouverez plus ample information sur ces fonctionnalit�s en visitant la documentation nessus.
L'essentiel, c'est le r�sultat obtenu � la fin du scan. L'une des meilleures caract�ristiques de nessus concerne sa mani�re d'�tablir des rapports.

report


Ces rapports sont plut�t d�taill�s et proposent souvent une solution � la vuln�rabilit� d�couverte. Encore mieux, ils sont tr�s fiables. Si une vuln�rabilit� est "douteuse", nessus pr�cise qu'il peut s'agir d'une fausse alerte. Ceci peut se produire, par exemple, avec des versions corrig�es de certains d�mons : une vuln�rabilit� r�cemment corrig�e peut appara�tre comme un risque potentiel. Toutefois, pour ces cas pr�cis, les plugins sont rapidement mis � jour.
Un autre genre de petite erreur peut venir de nmap (2.53) dans l'identification de la version de l'OS. Mais c'est vraiment de peu d'int�r�t. Personnellement, �a ne me d�range pas que NonTermin� 4.0 avec SP6a soit reconnu comme NonTermin� 4.0 avec SP5, ou si le noyau Linux 2.2.19 est identifi� comme 2.2.14. Je ne vais pas me plaindre non plus, de ce que des OS "exotiques" tels que AmigaOS ou BeOS soient d�tect�s comme des imprimantes ou des routeurs. Je ne me vois pas envoyer un courrier � fyodor (l'auteur de nmap) pour lui dire un truc pareil : qui utilise ce genre d'OS sur un r�seau aujourd'hui ? Concernant AmigaOS, je dirais bien 5 personnes... dans le monde :-(
Quelques autres OS ne sont pas non plus parfaitement identifi�s, mais il s'agit souvent de produits plut�t r�cents ou peu utilis�s. Ca se v�rifie pour MacOS X ou QNX. Mais encore une fois, ce n'est pas si important et le probl�me est sans doute d�j� r�solu dans la nouvelle version beta 2.54 de nmap (et, d'ailleurs, cette nouvelle version propose un port pour MacOS X).
De toutes fa�ons, ce qu'il faut retenir c'est que nessus vous fournit des tonnes d'informations permettant de corriger les vuln�rabilit�s ou faiblesses des machines de votre r�seau local.
Ces rapports peuvent �tre sauvegard�s en tant que texte, NSR, HTML, HTML avec graphiques... permettant ainsi de comparer entre deux scans. Ca peut para�tre �vident, mais l'�tat d'un r�seau � un moment donn� peut �tre totalement diff�rent de ce qu'il sera 30 minutes plus tard. Pourquoi ? C'est vivant un r�seau ! C'est l'une des principales raisons pour lesquelles la s�curisation d'un r�seau n'est pas si simple : tout change tout le temps. Si vous vous demandiez pourquoi utiliser des outils tels que nessus ou nmap, voici la r�ponse.
Si vous �tes curieux de la mani�re dont fonctionne nessus, �pluchez les logs ou, si vous utilisez snort, regardez les logs de snort. Vous trouverez aussi des informations dans /usr/local/var/nessus.
A partir de l�, vous aurez certainement du travail pour r�duire les faiblesses de nombreuses machines de votre r�seau. Plus vous renforcerez la s�curit� de chaque h�te, mieux ce sera. Pour vous aider dans ce travail de longue haleine, nessus (et nmap avec lui) sont les outils indispensables.

Plugins

Les plugins sont le "coeur" de nessus. Ce sont des tests de s�curit�, autrement dit, un moyen de d�couvrir une vuln�rabilit� donn�e. NASL (Nessus Attack Scripting Language) est le langage recommand� pour �crire des tests de s�curit�. Vous trouverez tout sur NASL en visitant l'URL : NASL.
En cons�quence, si vous souhaitez contribuer au projet nessus en �crivant des plugins, c'est l� que vous trouverez l'information ad hoc (comme... non, je ne la ferai pas, j'aurais honte... quoique !). Au moment de cet article, il y a 756 plugins dans la base de donn�es !
Il y a presque 20 familles de plugins : les backdoors, les d�nis de service, les acc�s root distants... Comme d�j� pr�cis�, chaque plugin fournit des informations. Il vous dit ce qui ne va pas et propose des solutions pour corriger le(s) probl�me.
Nous ne pouvons pas parler des plugins sans mentionner CVE (Common Vulnerabilities and Exposures). C'est une �norme base de donn�es disponible � http://cve.mitre.org. Vous y trouverez tout sur les risques de s�curit� connus. Un autre lieu incontournable pour le partage des connaissances. Un tel site est la r�f�rence absolue � visiter.
Bien s�r, il y aurait des tas de choses � dire sur les plugins mais un livre n'y suffirait pas. Un bon moyen de comprendre leur fonctionnement, comment ils sont �crits, consiste � les lire dans le r�pertoire /usr/local/lib/nessus/plugins. Encore une fois, merci � Renaud Deraison et aux contributeurs pour ce superbe travail.

Et maintenant, quelque chose de compl�tement diff�rent !

M�me si ce titre �voque Monty Python, il n'y a malheureusement aucun humour l�-dedans. Les trois ou quatre personnes qui lisent mes articles connaissent mes phrases hors-sujet : cette fois-ci, c'est un paragraphe entier ! Est-ce vraiment hors-sujet, c'est une autre histoire. Allons-y.
Comme je m'int�resse � la s�curit� informatique, je visite souvent les sites d�di�s. Ce peut �tre pour d�couvrir de nouvelles vuln�rabilit�s ou pour d�couvrir de nouveaux outils de s�curit�. Par hasard, j'ai d�couvert quelques produits bas�s sur des sevices de scan en ligne. En fait, ils se nomment eux-m�mes (au moins pour l'instant) ASP (Application Service Provider). Si vous allez un peu plus loin, vous d�couvrez rapidement que le moteur derri�re le service n'est autre que nessus. Jusque l�, �a va. Par contre, si vous essayez de trouver une information explicite, vous ne trouverez m�me pas le mot "nessus". C'est l� que je ne marche plus et que j'ai vraiment envie de me f�cher !
La plupart des gens travaillant pour la communaut� du logiciel libre font �a gratuitement et non pour vivre. Le seul salaire qu'ils per�oivent se nomme : cr�dit (pas au sens bancaire !). Nessus est distribu� sous GPL. En clair, tout le monde peut utiliser le produit, le modifier, l'adapter... tant que l'auteur(s) original est cit�. Bien s�r, cette licence en dit beaucoup plus. Si vous ne la connaissez pas, jetez un oeil l�.
Pour moi, cela ressemble � du vol. Je n'ai m�me pas besoin d'une licence pour cr�diter le travail d'autres personnes. J'ai beaucoup de respect pour ces gens qui travaillent gratuitement (presque toujours) et qui partagent avec une communaut� (sans doute mon c�t� soixante-huitard attard�). Ils m�ritent r�ellement la reconnaissance de cette communaut�. C'est encore plus vrai, lorsque certains essaient de gagner de l'argent � partir du travail de quelqu'un d'autre. Appelez �a respect, reconnaissance, �a n'a aucune importance. Le fait est que ces mots semblent avoir perdu leur signification. Bien s�r, nous pourrions accuser la GPL d'�tre responsable de ce comportement. Mais, avec l'ASP, vous n'�tes pas consid�r�s comme vendant le logiciel. De plus, selon le pays concern�, la GPL peut n'avoir aucune valeur l�gale.
Un d�but de solution au probl�me serait que les utilisateurs de tels ASP demandent le nom du moteur de scan effectuant r�ellement le travail. La r�ponse permettrait au moins de savoir si les gens proposant le service sont "honn�tes". S'ils ne r�pondent pas ou s'ils vous disent qu'ils ont "invent�" le moteur (dans lequel vous avez reconnu nessus), n'utilisez pas le service ! Installez plut�t nessus (le vrai), de toute mani�re ce sera plus s�r.
Encore une fois, avons-nous besoin d'une licence pour dire "merci" � des gens ayant accompli un travail formidable et souvent �norme ? Au fait, Renaud Deraison ne veut pas changer de licence : nessus restera GPL.
Pardon pour cette longue digression, mais je crois que ce devait �tre dit.

C'est tout fini !

Malgr� ce dernier paragraphe, ce qui est � retenir de cet article c'est le degr� de qualit� de nessus. C'est un logiciel vraiment impressionant. Utilis� avec nmap, il devient incontournable lorsque la s�curit� est une priorit�. C'est un outil tr�s fiable qui �volue en permanence. Merci � Renaud et � ses pairs pour leur mise � jour constante des plugins.
Aujourd'hui, un administrateur peut difficilement travailler sans nessus et nmap. Ces outils sont capables de d�couvrir des vuln�rabilit�s dont vous pensiez vous �tre d�barrass�s. Ca se v�rifie pour la plupart des OS pr�sents dans votre r�seau. Et lorsque vous savez que certains OS sont des passoires, nessus vous permet de respirer un peu.
Encore mieux, nessus peut vous aider � comprendre la mani�re dont un r�seau (ou un machine) peut �tre compromis.
Si vous lisez attentivement les rapports produits, les prenez en compte et apportez les corrections adapt�es, vous am�liorerez consid�rablement la s�curit� de votre r�seau (ou machine). J'ai bien dit "am�liorerez" : votre r�seau ne sera pas s�curis� � 100% simplement parce que vous utilisez nessus. La route vers la s�curit� est tr�s longue et nous sommes loin d'en voir le bout.
Encore une fois, merci � la communaut� du logiciel libre pour son �norme travail sur la s�curit�.
Concernant les charmantes personnes qui essaient de faire de l'argent � partir du travail des membres de la communaut� du logiciel libre, je souhaiterais ajouter quelque chose. Dire "merci" n'a rien de honteux. Est-ce si �pouvantable d'�tre honn�te ? Si ce type de comportement se r�pand, le risque est soit la fin de la dite communaut� soit un gros changement dans les licences (et probablement, de plus en plus de brevets !). Dans les deux cas, vous vous d�brouillerez seuls et les choses deviendront beaucoup plus compliqu�es pour vous. Et malheureusement, nous n'aurons plus la possibilit� d'utiliser du logiciel libre. Cela ne signifie en rien que vous aurez l'opportunit� de vendre votre produit. Pensez-y !
Quand je vous dis que nous vivons une �poque formidable !