Lorsqu'un serveur a été compromis, le pirate masque
généralement son passage en supprimant les traces dans les journaux d'activités.
Par ailleurs, il installe un certain nombre d'outils lui permettant de créer une porte
dérobée, afin d'être à même de pouvoir revenir ultérieurement.
Nec plus ultra, le pirate pense généralement à corriger la vulnérabilité lui
ayant permis de s'introduire afin d'éviter que d'autres pirates s'infiltrent.
Sa présence sur un serveur peut néanmoins être trahie par un certains
nombre de commandes d'administration permettant d'afficher la liste des processus en cours ou
bien tout simplement les utilisateurs connectés à la machine.
Il existe ainsi des logiciels, appelés rootkits, chargés d'écraser la plupart
des outils du système et de les remplacer par des commandes équivalentes masquant
la présence du pirate.
Il est donc aisé de comprendre qu'en l'absence de détérioration il peut
être très difficile pour un administrateur de s'apercevoir qu'une machine a été compromise.
Une des premières actions lors de la découverte d'une compromission consiste à dater la compromission
afin d'évaluer l'étendue potentielle sur les autres serveurs.
En effet, d'une manière générale les serveurs stockent
dans des fichiers une trace de leur activité et en particulier des erreurs rencontrées.
Or, lors d'une attaque informatique il est rare que le pirate parvienne à compromettre
un système du premier coup. Il agit la plupart du temps par tâtonnement, en essayant
différentes requêtes.
Ainsi la surveillance des journaux permet de détecter une activité suspecte.
Il est en particulier important de surveiller les journaux d'activité des dispositifs de protection
car tout aussi bien configuré qu'il soient, il se peut qu'ils soient un jour la cible
d'une attaque.
Il existe certains logiciels (chkrootkit par exemple) permettant de vérifier la présence de rootkirs sur le système.
Néanmoins, afin de pouvoir utiliser ce type d'outils, il est essentiel d'être certain de
l'intégrité de l'outil et de l'affichage qu'il délivre. Or, un système compromis
ne peut pas être considéré comme fiable.
Afin de s'assurer de l'intégrité d'un système, il est donc nécessaire
de détecter les compromissions en amont. C'est ainsi l'objectif poursuivi par les
contôleurs d'intégrité tel que Tripwire.
Le logiciel Tripwire, développé à l'origine par
Eugène Spafford et gene Kim en 1992, permet d'assurer l'intégrité des systèmes en
surveillant de façon permanente les modifications apportées à certains fichiers
ou répertoires. Tripwire effectie en effet un contrôle d'intégrité et maintient
à jour une base de signature. A intervalles réguliers il inspecte notamment les caractéristiques
suivantes des fichiers afin d'identifier les modifications et les éventuelles compromissions :
- permissions ;
- date de dernière modification ;
- date d'accès ;
- taille du fichier ;
- signature du fichier.
Les alertes sont envoyées par courrier électronique, de préférence
sur un serveur distant, afin d'éviter tout effacement de la part du pirate.
Afin de pouvoir s'appuyer sur les résultats d'un contrôleur d'intégrité il est
essentiel d'être sûr de l'intégrité de la machine lors de l'installation. Il est
également très difficile de configurer ce type de logiciel tant le nombre potentiel
de fichiers à surveiller peut être important. De plus, lors de l'installation de nouvelles
applications il est indispensable de mettre leurs fichiers de configuration sous contrôle.
Par ailleurs, ce type de solution est susceptible d'envoyer un grand nombre de fausses
alertes, notamment lorsque le système modifie seul des fichiers de configuration ou lors de mises
à jour du système.
Enfin, si la machine est effectivement compromise, il est possible que le pirate tentera
de compromettre le contrôleur d'intégrité avant la prochaine mise à jour, d'où
l'importance de stocker les alertes sur une machine distante ou bien un support externe non réinscriptible.
Article rédigé le 22 juillet 2005 par Jean-François PILLOU.
|