Détection de Rootkit Linux : Outils et techniques

10 min de lecture - 16 mai 2026

hero section cover
Table des matières
  • Détection des rootkits sous Linux : outils et techniques pour la sécurité des serveurs
  • Types de rootkits Linux
  • Analyse avec chkrootkit et rkhunter
  • Détection avancée : surveillance du comportement et contrôles d'intégrité
  • Renforcer la sécurité de votre serveur contre les rootkits
  • Conclusion
Partager

Comment détecter et prévenir les rootkits Linux en utilisant chkrootkit, rkhunter, Auditd, AIDE et la surveillance comportementale sur vos serveurs.

Détection des rootkits sous Linux : outils et techniques pour la sécurité des serveurs

Les rootkits offrent aux attaquants un accès persistant et caché aux systèmes Linux. Ils manipulent les opérations du noyau, masquent des fichiers et des processus, et échappent aux outils de sécurité standard. Certains sont restés indétectés pendant des années. Leur détection nécessite une approche multicouche, car aucun outil ne permet à lui seul de tout détecter.

Cet article présente les principaux types de rootkits Linux, explique comment les rechercher et décrit les techniques de surveillance avancées qui permettent de détecter ce que les scanners de base ne repèrent pas.


Types de rootkits Linux

Les rootkits opèrent à différents niveaux de privilèges, et plus ils sont enfouis, plus ils sont difficiles à détecter.

Les rootkits en mode utilisateur s’exécutent au niveau de l’application (Ring 3). Ils détournent la liaison dynamique en utilisant LD_PRELOAD pour injecter des bibliothèques malveillantes qui interceptent des fonctions standard de la bibliothèque C telles que readdir ou fopen, masquant ainsi les fichiers et les processus aux outils de l'espace utilisateur.

Les rootkits en mode noyau s'exécutent au niveau Ring 0 en se chargeant sous forme de modules de noyau chargeables (LKM). Ils interceptent les appels système, manipulent la mémoire du noyau et masquent leur propre présence. Comme ils sont liés à des versions spécifiques du noyau, un rootkit mal configuré peut provoquer une panique du noyau, ce qui, ironiquement, le rend visible.

Les rootkits basés sur eBPF exploitent le sous-système Extended Berkeley Packet Filter pour s'exécuter dans l'espace noyau sans charger de module traditionnel. Ils s'attachent à des hooks d'appels système, des tracepoints ou des événements LSM. Les scanners LKM standard ne les détectent pas. Boopkit est une preuve de concept bien connue qui crée un canal C2 caché en utilisant cette approche.

Les rootkits basés sur io_uring constituent la variante la plus récente. Ils utilisent l’ io_uring interface d'E/S asynchrone pour regrouper les opérations, générant ainsi moins d'événements d'appel système observables. RingReaper, un rootkit expérimental, a démontré comment cela peut remplacer silencieusement des appels tels que read, write, tout connect tout en échappant aux outils EDR.

Type de rootkit Niveau de privilège Méthode de hook Difficulté de détection
Mode utilisateur Anneau 3 (Utilisateur) LD_PRELOAD, détournement de bibliothèque Modérée
Mode noyau Anneau 0 (Noyau) Table des appels système, LKM, hooking en ligne Élevé
Basé sur eBPF Anneau 0 (noyau) Attachement de programme eBPF Très élevé
Basé sur io_uring Utilisateur/Noyau Regroupement asynchrone des E/S Très élevé

Analyse avec chkrootkit et rkhunter

Deux outils constituent la base de la détection des rootkits sur les serveurs Linux : chkrootkit pour les analyses rapides et rkhunter pour les vérifications plus approfondies.

chkrootkit

chkrootkit est un script shell qui analyse les binaires système critiques (ls, ps, netstat, sshd, ifconfig) à la recherche de signes d'altération. Il détecte également les interfaces réseau en mode promiscuous et les journaux supprimés. À partir de la version 0.59 (janvier 2026), il peut identifier plus de 75 rootkits, vers et LKM, y compris des menaces plus récentes telles que Linux BPFDoor, Syslogk et XZ Backdoor.

Exécutez-le après toute activité suspecte. Prêtez attention aux avertissements du ifpromisc composant et aux alertes concernant les lastlog ou wtmp .

rkhunter

rkhunter va plus loin. Il compare les hachages SHA-1 des binaires système à des valeurs connues pour être correctes, surveille les permissions des fichiers et les fichiers cachés, vérifie les configurations de démarrage et effectue une analyse du noyau et du réseau.

Configurez-le correctement dès le départ :

# Establish a baseline after a clean install or update
rkhunter --propupd
 
# Update rootkit definitions
rkhunter --update
 
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all

Pour des analyses quotidiennes automatisées, définissez CRON_DAILY_RUN="true" dans /etc/rkhunter.conf et utilisez --skip-keypress et --report-warnings-only pour un résultat propre. Vérifiez les journaux à l'adresse /var/log/rkhunter.log et ajoutez les faux positifs confirmés à la liste blanche.

Détection des rootkits LKM

Les rootkits LKM sont particulièrement dangereux car ils fonctionnent comme des extensions du noyau, interceptant les appels système et masquant les processus au niveau du noyau. Les outils standard tels que lsmod ne les détectent pas, mais il existe des moyens de les repérer.

Comparez lsmod la sortie avec /sys/module/ les listes. Vérifiez les journaux système à la recherche de messages du noyau suspects :

# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
 
# Check for module verification failures
grep "module verification failed" /var/log/syslog
 
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm

Même les rootkits qui se cachent de lsmod et /proc/modules (comme Diamorphine) peuvent tout de même être détectés en vérifiant /sys/module/diamorphine/coresize ou en examinant les avertissements du syslog.

Détection avancée : surveillance du comportement et contrôles d'intégrité

Les scanners statiques présentent une faiblesse fondamentale. Lors d'une expérience menée en 2026, l'ajout d'un seul octet nul à un binaire de rootkit, modification qui n'affecte pas la fonctionnalité, a considérablement réduit les taux de détection. Les détections de Diamorphine sont passées de 33/66 à 8/64 simplement en supprimant ses tables de symboles. Il ne suffit pas de se fier uniquement aux signatures.

Analyse comportementale

Au lieu de se demander « ce fichier correspond-il à un rootkit connu ? », l'analyse comportementale se demande « ce processus fait-il quelque chose d'inhabituel ? ». Surveillez ces signaux :

  • Utilisez Auditd pour surveiller init_module() et finit_module() les appels système, qui chargent des modules du noyau quelle que soit la méthode utilisée.
  • Surveillez les kill() les appels dont le numéro est supérieur à 31, ce qui peut indiquer une communication rootkit dissimulée.
  • Vérifiez /proc/sys/kernel/tainted s'il y a une activité non autorisée des modules du noyau.
  • Surveillez les fichiers inattendus .so fichiers inattendus /tmp ou /dev/shm.
  • Suivez l'activité eBPF, en particulier les bpf_probe_write_user les appels. Des outils tels que BCC peuvent tracer les opérations io_uring via des points de trace tels que sys_enter_io_uring_enter.

En ce qui concerne spécifiquement les rootkits eBPF et io_uring, des outils de surveillance en exécution tels que Tetragon, Falco et Tracee permettent d’observer l’activité au sein du noyau en temps réel.

Surveillance de l'intégrité des fichiers

AIDE (Advanced Intrusion Detection Environment) établit une base de référence des fichiers système de confiance et vérifie les modifications. Initialisez avec aide --init, puis planifiez aide --check via cron. Il suit les sommes de contrôle, les permissions, la propriété et les horodatages sur les binaires critiques tels que /bin/login et /usr/bin/sshd.

Pour la vérification au niveau des paquets, debsums (Debian/Ubuntu) ou rpm -Va (RHEL/CentOS) permettent de confirmer l’intégrité des fichiers système. Pour obtenir les résultats les plus fiables, démarrez à partir d’un support de secours fiable et inspectez le système de fichiers hors ligne, car les rootkits peuvent altérer les rapports d’un noyau en cours d’exécution.

Surveillez également les mécanismes de persistance. Les rootkits modifient souvent /etc/ld.so.preload pour injecter des objets partagés, ou modifient .bashrc et .profile. Les modifications légitimes de ces fichiers sont rares, ce qui confère aux alertes un rapport signal/bruit élevé.

Surveillance automatisée avec Auditd

Ajoutez ces règles à /etc/audit/rules.d/rootkit.rules pour une détection en temps réel des activités suspectes du noyau :

# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
 
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32

Combinez-les avec les mises à jour automatiques de rkhunter. Définissez UPDATE_MIRRORS=1 et MIRRORS_MODE=0 dans la configuration, puis exécutez rkhunter --propupd après les mises à jour légitimes du système pour actualiser la base de référence.

Renforcer la sécurité de votre serveur contre les rootkits

La détection est importante, mais mieux vaut prévenir que guérir. La plupart des rootkits nécessitent des privilèges élevés pour s'installer ; réduire la surface d'attaque fait donc une réelle différence.

Maintenez le noyau et les paquets à jour. Les attaquants exploitent les vulnérabilités non corrigées pour élever leurs privilèges et déployer des rootkits basés sur LKM ou eBPF. Après l'application des correctifs, mettez à jour vos bases de référence de détection avec rkhunter --propupd.

Appliquez le principe du moindre privilège. Ne donnez pas aux utilisateurs ou aux processus plus d'accès que nécessaire. Utilisez SELinux ou AppArmor pour mettre en place des contrôles d'accès obligatoires qui bloquent les actions non autorisées, même si un processus est compromis.

Désactivez le chargement des modules du noyau après le démarrage. Sur les serveurs dédiés, vous pouvez empêcher totalement les rootkits LKM en verrouillant le chargement des modules après le démarrage du système. Cela n'est pas possible sur un hébergement mutualisé, ce qui explique en partie pourquoi les environnements dédiés ou VPS offrent une posture de sécurité plus solide.

Segmentez votre réseau. L'isolation de certaines parties de votre infrastructure limite les mouvements latéraux si une machine est compromise.

Effectuez des audits réguliers. Des outils tels que Lynis permettent d'identifier les erreurs de permissions et les erreurs de configuration avant que les attaquants ne les exploitent.

Conclusion

Les rootkits sont conçus pour se dissimuler à la vue de tous. Lorsque les symptômes apparaissent, le système est peut-être déjà compromis au point de ne plus pouvoir être facilement restauré. Aucun scanner ne détecte tout, et la détection basique par signature est facile à contourner.

Une défense efficace combine plusieurs couches :

  • Des analyses régulières avec chkrootkit et rkhunter pour les menaces connues
  • Règles d'Auditd et surveillance du comportement pour détecter toute activité suspecte du noyau
  • Surveillance de l'intégrité des fichiers avec AIDE pour détecter les modifications non autorisées
  • Des outils d'exécution tels que Tetragon ou Falco pour les menaces eBPF et io_uring
  • Des contrôles d'accès renforcés, l'application de correctifs et la segmentation du réseau pour réduire la surface d'attaque

Automatisez ce que vous pouvez, maintenez vos bases de référence à jour et partez d'une installation propre du système d'exploitation en laquelle vous avez confiance.

FDC Servers propose un hébergement dédié et VPS avec un accès root complet et des configurations de noyau personnalisables. Découvrez les options de serveurs dédiés pour créer un environnement Linux renforcé.

background image
Votre serveur freine-t-il votre croissance ?

Fatigué des déploiements lents ou des limites de bande passante ? FDC Servers offre une puissance dédiée instantanée, une portée mondiale et des plans flexibles conçus pour n'importe quelle échelle.

Mettre à jour maintenant

Blog

À l'honneur cette semaine

Plus d'articles
Pourquoi il est important d'avoir un VPS puissant et sans compteur

Pourquoi il est important d'avoir un VPS puissant et sans compteur

Un VPS sans compteur offre une bande passante forfaitaire à une vitesse de port fixe. En quoi il diffère des forfaits avec compteur, quand il est rentable et ce qu'il faut vérifier avant d'acheter.

7 min de lecture - 9 mai 2025

Gestion de la mémoire sous Linux : Swap, OOM Killer & Cgroups

12 min de lecture - 31 mai 2026

Plus d'articles