Outils de vérification d'intrusion

Dernière mise à jour : 29/10/2004

    Cet article ouvre une nouvelle section du site sur la s√©curit√© informatique, que cela soit locale ou bien encore orient√©e r√©seau. Ce premier article vous donnera quelques pistes et programmes pour v√©rifier qu'un syst√®me est sain de corps et d'esprit et que personne ne s'est aventur√© dessus. Cela ne constitue bien √©videmment pas une bible mais plus un tutoriel pratique pour y voir plus clair sur son serveur.

    Les tentatives d'attaques et d'intrusion ne sont d√©sormais plus un mythe et m√™me une personne se connectant depuis son domicile peut √™tre sujet √† des attaques sur sa machine. Le premier point √† aborder concerne les mises √† jour (et ce quelque soit l'OS). Il est en effet primordial de toujours mettre √† jour son syst√®me vers les versions les plus r√©centes de logiciels pour √©viter qu'ils ne contiennent des failles. Cela vaut bien √©videmment pour le noyau mais aussi pour tous les services qui tournent sur une machine. Au sujet des services, il est conseill√© d'en tourner le moins possible (genre √©viter d'avoir des partages NFS accessibles depuis le web ou bien un serveur web depuis sa machine personnelle si celui-ci ne contient que des infos personnelles).

    Il existe depuis un petit moment des outils fort pratiques pour tenter de savoir si un intrus a r√©ussit √† s'introduire sur une machine sur laquelle il n'√©tait pas sens√© avoir acc√®s. On parle dans ce cas l√† de piratage d'une machine. Il est important de noter que dans un monde d'entreprise, les attaques peuvent aussi venir des utilisateurs de votre r√©seau, et qu'il est toujours judicieux de bien maintenir un serveur de production m√™me si celui-ci n'est pas ouvert √† l'internet. Cela est d'autant plus vrai concernant un serveur sur lequel les utilisateurs ont un compte.

    Dans la gamme des attaques sur l'exploitation de machines, on notera les rootkits (genre suckit). Ce type de programmes s'installent en m√©moire en se cachant afin de faire des actions destin√©es √† b√©n√©ficier aux pirates qui les installents. Suckit par exemple se cache dans les modules du kernel (il n'est pas visible par un lsmod), √©coute le d√©mon SSH pour enregistrer les utilisateurs et les mots de passe, et ouvre √©galement un port accessible au pirate depuis l'ext√©rieur sans avoir √† se soucier d'un √©ventuel pare-feu.

    Pour v√©rifier l'existence de tels immondices, il est possible d'installer des anti-rootkits tels que chkrootkit, ou bien rkhunter (voir plus bas). Il est conseill√© de toujours r√©installer un v√©rificateur de rootkit lors d'une v√©rification car il se peut qu'un pirate n'installe une version v√©rol√©e d'un anti-rootkit pour tromper l'administrateur.


Checkrootkit - http://www.chkrootkit.org

    Ce projet est n√© il y a fort longtemps. Il a pour but de v√©rifier si des rootkits sont pr√©sents localement. Comme mentionn√© auparavant, il est important de veiller √† l'installer au moment de la v√©rification et de le d√©sinstaller par la suite. Si vous t√©l√©chargez le source, un binaire d√©j√† pr√©-compil√© vous permet de v√©rifier le syst√®me sans avoir √† compiler la b√™te ce qui peut s'av√©rer utile sur un syst√®me de production sans outils de d√©veloppements. Vous pouvez v√©rifier les options de ce programme en faisant : chkrootkit --help.

    Si vous lancez chkrootkit tout seul sans aucune autre option, il v√©rifiera tout le syst√®me contre tous les rootkits connus, les fichiers cach√©s, les zones m√©moire, etc ... Une autre option excessivement int√©ressante (permettant d'ailleurs de d√©tecter un rootkit dans la plupart des cas) est chkrootkit -x lkm. Cette option lance chkrootkit en mode expert et v√©rifie les LKM (Loadable Kernel Module) pour v√©rifier qu'il ne se trouve aucun module de rootkit. Il d√©tectera suckit sans aucun soucis.

    Il est important de signaler qu'un anti-rootkit peut trouver quelque chose alors qu'il n'y a pas raison de s'inqui√©ter, on appelle cela un false positive. Il y a eu il y a quelques temps un probl√®me sur chkrootkit sur Debian sid/sarge qui √† cause de la nouvelle gestion de glibc trouvait 5 processus cach√©s et actifs dans le LKM. C'est d√©sormais r√©solu avec la derni√®re version du programme.

    Pr√©cisons enfin qu'une version Fran√ßaise du site existe disponible √† : http://frenchkrootkit.free.fr. Ce site comprends la version traduite du site ainsi qu'un miroir de t√©l√©chargement, et quelques infos en plus sur la s√©curit√©.

    Il est important de signaler qu'un probl√®me de d√©tection (false positives) existe actuellement notemment sur Debian avec la derni√®re version de glibc. M√™me la version 0.44 est touch√©e, il est conseill√© de t√©l√©charger la derni√®re version source et de modifier chkproc.c √† la ligne 69 pour remplacer la ligne par celle-ci : ps mauxw. Puis de recompiler. La commande qui marchera lors correctement sera : ./chkproc -p 2.


Rootkit Hunter - http://www.rootkit.nl

    Rootkit Hunter est un projet plus r√©cent r√©alis√© par un jeune Hollandais du nom de Micha√ęl Boelen. Je participe au projet en tant que d√©velopeur, b√©n√©ficiant d'une grande vari√©t√© de syst√®mes, plateformes et versions disponibles sur mon r√©seau d'entreprise. Rootkit Hunter propose √† peu pr√®s les m√™mes fonctionalit√©s que chkrootkit mais avec des choses en plus. Il est actuellement arriv√© √† bonne maturit√© proposant beaucoup de recherches et d'analyses.

    Il vous faudra avoir perl install√© sur votre syst√®me. T√©l√©chargez la derni√®re version puis d√©compressez la en faisant : tar xvzf rkhunter-x.x.x.tar.gz. Puis installez-la en tapant : cd rkhunter/ && ./installer.sh. Vous pouvez ensuite v√©rifier que vous avez la derni√®re version en tapant rkhunter --versioncheck. Si vous n'avez pas la derni√®re vous obtiendrez un message similaire √† ceci :

    Avant de commencer la v√©rification, il est conseill√© de mette √† jour les fichiers de d√©finition, pour ce faire, taper : chkrootkit --update, vous devriez alors obtenir quelque chose comme suit :

    Pour v√©rifier le syst√®me, tapez : rkhunter -c. Vont s'en suivre alors plusieurs pages de tests. Le logiciel v√©rifie √©galement les sommes md5 de vos fichiers. Il est actuellement compatible avec pas mal de versions de Linux, *BSD et Unix, consultez la liste pour plus d'informations. Il n'est pas rare que rkhunter se trompe concernant la v√©rification de versions vuln√©rables de services, ne lui en tenez pas rigueur, si vous savez que vous avez la derni√®re version, n'h√©sitez pas √† contacter l'auteur (en Anglais) pour le lui signaler.


Debsums - http://packages.debian.org/debsums

    Les possesseurs de serveurs et machines Debian seront heureux de savoir qu'il existe un outil qui v√©rifie les sommes md5 des fichiers install√©s par des paquets officiels Debian. Ces sommes assurent l'int√©grit√© d'un programme et assurent g√©n√©ralement que le code n'a pas √©t√© alt√©r√©. Pour l'installer, il suffit de faire un apt-get install debsums. Pour v√©rifier ensuite un syst√®me et trouver les fichiers qui ont √©t√© modifi√©s, faire : debsums -i. Dans ce mode, il n'affichera que ce qui a √©t√© modifi√©.

    Il est conseill√© par la suite de d√©sinstaller debsums pour ne pas laisser trop de traces sur le syst√®me. Fa√ģtes alors un apt-get remove --purge debsums && rm -rf /var/cache/apt/archives/debsums* afin de supprimer le paquet du syst√®me, les fichiers de configuration et les paquets du cache d'apt.

    Voil√† pour le moment, j'en mettrais bient√īt plus en ligne, n'h√©sitez pas √† m'√©crire pour proposer d'autres am√©liorations ou des articles sur la s√©curit√© que vous aimeriez voir dans cette section. Le prochain article traitera des IDS (Intrusion Detection Systems), les syst√®mes de d√©tection d'intrusions (snort, aide, rfc, etc ...).