Utilisation de rkhunter

Pour faire la chasse aux rootkits, il y a plusieurs pistes. Mais une des plus simples est de faire appelle à un bon chasseur : rkhunter.

Tout d’abord, qu’est-ce qu’un rootkit ?

Le but de tout rootkit est de permettre l’execution de programmes, si possible en tant qu’utilisateur root (tant qu’à faire), le tout en étant le plus discret possible (très important). La discrétion est le point clef de ce genre de pratique, et les pirates sont débordants d’idées pour y arriver. Souvent, vous ne verrez donc rien dans la liste des processus, ou dans la liste des ports en écoute etc. Certains rootkits savent même lire votre /etc/sysconfig/iptables pour voir un port dans une plage que vous aurez autorisée (merci aux clients bittorrent par ex).

Il est logique aussi de comparer le rootkit à un virus, vu que les plus évolués possèdent des mécanismes pour se reinstaller, voire se propager. Certains rootkits modifient par exemple la commande ls, pour qu’à chaque fois qu’elle est appellé s’assure que le rootkit est présent. Difficile du coup, de nettoyer une machine prise au piège avec un rootkit.

Quelle est la cible des rootkits ?

Malheureusement, comme souvent sur Internet, la faune sauvage est assez agressive et aveugle. Dû à l’automatisation des attaques (robots et autres scripts), du moment que vous laissez un service accessible sur internet (SSH, ou autres), vous êtes concernés. Que ce soit donc une machine personnelle, ou un serveur, peu importe. Tout le monde est potentiellement concernés !

Comment un rootkit s’installe ?

Comme expliqué juste avant, le premier point pour un attaquant (pirate, robots/scripts), c’est de trouver un point d’entrée sur la machine. Les scripts naviguent sur toutes les adresses internet, un peu au hasard, mais passeront plus de temps quand un service répondra sur un port donné. Ce peut donc être via l’exploitation d’une faille, sur un serveur Apache, sur un vieux démon SSH, ou même du brute force pour trouver votre mot de passe (qui n’aurait que 8 caractères par ex). Une fois la faille trouvée, l’installation du rootkit est elle aussi souvent automatisée. Le but étant la rapidité, et surtout de savoir s’installer sur n’importe quel Linux. Donc en quelques secondes, des fois via l’utilisation de certains exploit pour gagner des privilges supérieurs, le rootkit est posé. Souvent il y a même compilation de binaires, histoire d’être sûr de bien tourner sur l’architecture et l’OS de la machine en question !

Certains rootkits, les plus évolués, essayeront tout de suite de se repliquer sur les autres machines accessibles via le réseau de la 1ere machine infectée. Si vous avez des machines à peu près identiques, vous aurez droit à un rootkit sur chacunes. Merci aux outils modernes qui permettent tel que puppet, Ansible pour l’homogénéisation des configurations.

Comment tracer un rootkit ?

Tout comportement qui semblerait suspect, peut venir d’un rootkit. Par ex votre connexion SSH ne passe plus du premier coup, quelques commandes shell sont plus lentes que d’habitude. Ou alors des pics de charge à des horaires plutôt inhabituels.

Comme le rootkit est une espèce très discrète, ce sera très difficile de le voir tourner. L’installation du rootkit a pu remplacer la commande ps pour l’exclure de la liste des process. Il y a aussi quelques humoristes qui appellent leur démon rootkit « sshd  » ou « crontab », bref vous ne verrez jamais un « rootkitd ».

Rechercher les fichiers créés ou modifiées récemment est une bonne idée. Les rootkits ont souvent besoin de déposer des binaires, en compiler certains, et même s’ils pensent à nettoyer les logs, leurs fichiers doivent bien exister quelque part. La grosse partie du fonctionnement de rkhunter est basée la dessus.

Le point commun à une grosse partie des rootkits est qu’ils modifient des fichiers sur l’OS. Ils déposent ou modifient certains binaires. Je ferais sûrement un billet spécifique sur la recherche de modifications sur Fedora/CentOS, car avec RPM c’est assez efficace.

Heureusement il existe des outils dédiés à la recherche de rootkits. Revenons donc à rkhunter.

Comment installer rkhunter ?

Son installation est très simple vu qu’il est fournit dans les dépôts EPEL.

Si vous n’avez pas encore EPEL :

# yum install epel-release

Ensuite, tout simplement :

# yum install rkhunter

Et voilà !

Comment utiliser rkhunter ?

Pour lancer un scan complet :

# rkhunter --checkall

Le scan peut prendre un certain temps, et il faudra valider pour chaque categorie le passage à la suivante.

Nous verrons sûrement dans un autre billet les utilisations un peu plus poussées de rkhunter.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *