Détection de Rootkit Linux : Outils et techniques

10 min de lecture - 16 mai 2026

hero section cover
Table des matières
  • Linux Rootkit Detection : 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é
  • Durcir 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.

Linux Rootkit Detection : Outils et techniques pour la sécurité des serveurs

Les rootkits donnent aux attaquants un accès caché et persistant aux systèmes Linux. Ils manipulent les opérations du noyau, cachent les fichiers et les processus et échappent aux outils de sécurité standard. Certains sont restés indétectés pendant des années. Pour les détecter, il faut adopter une approche à plusieurs niveaux, car aucun outil ne peut tout détecter.

Cet article traite des principaux types de rootkits Linux, de la manière de les détecter et des techniques de surveillance avancées qui permettent d'attraper ce que les scanners de base ne détectent pas.


Types de rootkits Linux

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

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

Les rootkits en mode noyau s'exécutent au niveau de l'anneau 0 en se chargeant en tant que modules de noyau chargeables (LKM). Ils interceptent les appels système, manipulent la mémoire du noyau et dissimulent 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, l'expose.

les rootkits basés sur l'eBPF exploitent le sous-système Extended Berkeley Packet Filter pour fonctionner dans l'espace du noyau sans charger de module traditionnel. Ils s'attachent à des crochets de syscall, à des points de traçage ou à des événements LSM. Les scanners LKM standard ne les verront pas. Boopkit est une preuve de concept bien connue qui crée un canal C2 secret en utilisant cette approche.

lesrootkits basés sur l'io_uring sont la variante la plus récente. Ils utilisent l'interface d'E/S asynchrone io_uring pour effectuer des opérations par lots, générant ainsi moins d'événements syscall observables. RingReaper, un rootkit expérimental, a démontré comment il pouvait remplacer silencieusement des appels tels que read, write et connect tout en échappant aux outils EDR.

Type de rootkit Niveau de privilège Méthode d'accrochage Difficulté de détection
Mode utilisateur Anneau 3 (utilisateur) LD_PRELOAD, détournement de bibliothèque Modéré
Mode noyau Anneau 0 (noyau) Table de syscall, LKM, crochetage en ligne Élevée
basé sur l'eBPF Anneau 0 (noyau) attachement du programme eBPF Très élevé
basé sur io_uring Utilisateur/Noyau Mise en lots des E/S asynchrones 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 vérifie les binaires critiques du système(ls, ps, netstat, sshd, ifconfig) à la recherche de signes d'altération. Il détecte également les interfaces réseau promiscuous et les journaux supprimés. Depuis la version 0.59 (janvier 2026), il peut identifier plus de 75 rootkits, vers et LKM, y compris des menaces plus récentes comme Linux BPFDoor, Syslogk et la porte dérobée XZ.

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

rkhunter

rkhunter va plus loin. Il compare les hachages SHA-1 des binaires du système aux valeurs connues, surveille les autorisations de 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 les analyses quotidiennes automatisées, définissez CRON_DAILY_RUN="true" dans /etc/rkhunter.conf et utilisez --skip-keypress et --report-warnings-only pour une sortie propre. Examinez les journaux dans /var/log/rkhunter.log et mettez sur liste blanche les faux positifs confirmés.

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 cachant les processus au niveau du noyau. Les outils standards comme lsmod ne les verront pas, mais il existe des moyens de les repérer.

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

# 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 de /proc/modules (comme Diamorphine) peuvent encore être trouvé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, une modification qui n'affecte pas la fonctionnalité, a fait chuter les taux de détection de manière spectaculaire. 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 s'appuyer sur les signatures.

Analyse du comportement

Au lieu de demander "ce fichier correspond-il à un rootkit connu ?", l'analyse du comportement demande "ce processus fait-il quelque chose d'inhabituel ?" Surveillez ces signaux :

  • Utilisez Auditd pour surveiller les appels système init_module() et finit_module(), qui chargent les modules du noyau indépendamment de la méthode.
  • Surveillez les appels kill() dont les signaux sont supérieurs à 31, ce qui peut indiquer une communication secrète de rootkit.
  • Vérifiez que le fichier /proc/sys/kernel/tainted ne contient pas d'activité de module de noyau non autorisée.
  • Surveillez les fichiers .so inattendus dans /tmp ou /dev/shm.
  • Suivez l'activité d'eBPF, en particulier les appels de bpf_probe_write_user. Des outils tels que BCC peuvent retracer les opérations io_uring grâce à des tracepoints tels que sys_enter_io_uring_enter.

Pour les rootkits eBPF et io_uring en particulier, des outils de surveillance de l'exécution comme Tetragon, Falco et Tracee peuvent observer l'activité dans le noyau en temps réel.

Surveillance de l'intégrité des fichiers

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

Pour une vérification au niveau du paquet, debsums (Debian/Ubuntu) ou rpm -Va (RHEL/CentOS) peuvent 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 altèrent .bashrc et .profile. Les modifications légitimes de ces fichiers sont rares, de sorte que les alertes ont 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 ces règles avec les mises à jour automatiques de rkhunter. Définissez UPDATE_MIRRORS=1 et MIRRORS_MODE=0 dans la configuration, et exécutez rkhunter --propupd après les mises à jour légitimes du système pour rafraîchir la ligne de base.

Durcir votre serveur contre les Rootkits

La détection est importante, mais la prévention est meilleure. La plupart des rootkits nécessitent des privilèges élevés pour s'installer, de sorte que la réduction de la surface d'attaque fait une réelle différence.

Maintenez le noyau et les paquets à jour. Les attaquants exploitent les vulnérabilités non corrigées pour élever les privilèges et déployer des rootkits basés sur LKM ou eBPF. Après avoir appliqué les correctifs, mettez à jour vos lignes de base de détection avec rkhunter --propupd.

Appliquer le principe du moindre privilège. Ne donnez pas aux utilisateurs ou aux processus plus d'accès qu'ils n'en ont besoin. Utilisez SELinux ou AppArmor pour 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 complètement 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 pourquoi les environnements dédiés ou VPS offrent une meilleure posture de sécurité.

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

Procédez à des audits réguliers. Des outils tels que Lynis peuvent identifier les erreurs de permission et les mauvaises configurations avant que les attaquants ne les exploitent.

Conclusion

Les rootkits sont conçus pour se cacher à la vue de tous. Au moment où les symptômes apparaissent, le système peut déjà être compromis et ne plus pouvoir être récupéré facilement. Aucun scanner ne peut tout détecter, et il est facile d'échapper à une détection de base basée sur des signatures.

Une défense pratique 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 les activités suspectes du noyau
  • Surveillance de l'intégrité des fichiers avec AIDE pour détecter les modifications non autorisées
  • Outils d'exécution tels que Tetragon ou Falco pour les menaces eBPF et io_uring
  • Contrôles d'accès renforcés, correctifs et segmentation du réseau pour réduire la surface d'attaque

Automatisez ce que vous pouvez, maintenez les lignes de base à jour et démarrez à partir d'une installation de système d'exploitation propre en laquelle vous avez confiance.

FDC Servers propose des hébergements dédiés et VPS avec un accès complet à la racine et des configurations de noyau personnalisables. Explorez les options de serveurs dédiés pour construire 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
Liste de contrôle pour le durcissement des serveurs Linux

Liste de contrôle pour le durcissement des serveurs Linux

Liste de contrôle étape par étape pour durcir un serveur Linux. Couvre SSH, les pare-feu, les correctifs, les autorisations de fichiers, SELinux/AppArmor et l'enregistrement des audits

15 min de lecture - 8 mai 2026

tutoriel iperf3 : Tester la vitesse du réseau sous Linux et Windows

10 min de lecture - 7 mai 2026

Plus d'articles