Aller au contenu

rkHunter

Mise à jour :

Si vous êtes comme moi et que la sécurité de vos systèmes Linux est une priorité, alors vous avez probablement entendu parler de RKHunter. Sinon, laissez-moi vous expliquer pourquoi cet outil mérite votre attention.

RKHunter, ou Rootkit Hunter, est un outil open source conçu pour détecter des rootkits, des backdoors, et d’autres types de menaces qui pourraient compromettre votre système. Pour faire simple, un rootkit est un logiciel malveillant qui cherche à s’infiltrer profondément dans un système d’exploitation pour éviter la détection. Ces menaces peuvent donner à un attaquant un accès total à votre machine, souvent sans que vous le sachiez. Effrayant, non ?

À mon avis, l’un des points forts de RKHunter est sa simplicité. Contrairement à d’autres solutions de sécurité qui nécessitent des heures de configuration, RKHunter est rapide à installer et efficace dès le départ. Son but principal ? Vérifier l’intégrité de vos fichiers systèmes et alerter en cas de modification suspecte.

Pourquoi utiliser RKHunter ?

Que vous soyez administrateur système ou simplement un passionné de Linux, RKHunter est un outil essentiel pour renforcer la sécurité. Dans ce guide, je vais vous montrer comment l’installer, le configurer et en tirer le meilleur parti.

Mais ce n’est pas tout. RKHunter ne se limite pas à la chasse aux rootkits. Il analyse également des aspects critiques de votre système, comme les permissions des fichiers sensibles, les configurations réseau, et même les variables d’environnement. En somme, c’est un véritable garde du corps pour votre serveur.

Comment installer RKHunter ?

Plutôt que d’utiliser les gestionnaires de paquets, je vous recommande de télécharger la dernière version de RKHunter depuis le site officiel. Cela vous permettra de bénéficier de la dernière version.

  1. Téléchargez l’archive depuis le site officiel:

    Terminal window
    wget https://sourceforge.net/projects/rkhunter/files/latest/download -O rkhunter.tar.gz
  2. Extrayez l’archive :

    Terminal window
    tar -xvzf rkhunter.tar.gz
  3. Installez :

    Terminal window
    cd rkhunter-*
    sudo ./installer.sh --install

Une fois installé, il est important de vérifier que RKHunter fonctionne correctement. Tapez la commande suivante pour afficher la version installée :

Terminal window
sudo rkhunter --versioncheck

Si tout est en ordre, vous verrez la version actuelle ainsi qu’un message indiquant si une mise à jour est nécessaire.

Après l’installation, la première chose à faire est de mettre à jour les bases de données de RKHunter, qui contiennent les signatures de rootkits et autres anomalies :

Terminal window
sudo rkhunter --update

Cela garantit que votre installation est prête à détecter les menaces les plus récentes.

Configuration initiale

Pour permettre à RKHunter de détecter les modifications des fichiers système, vous devez générer un fichier de référence. Cela crée une base de données contenant les propriétés actuelles des fichiers critiques.

Terminal window
sudo rkhunter --propupd

⚠️ Attention : N’exécutez cette commande que si vous êtes sûr que tous les fichiers de votre système sont intacts et fiables.

Le fichier principal de configuration, /etc/rkhunter.conf, contient des options qui permettent d’adapter le comportement de l’outil à vos besoins.

Voici quelques paramètres :

  • UPDATE_MIRRORS=1
    • Active les mises à jour automatiques des miroirs.
  • DB_UPDATE=1
    • Permet de mettre à jour la base de données utilisée pour les vérifications.
  • ALLOWHIDDENDIR=/chemin/vers/repertoire
    • Autorise un répertoire caché spécifique (exemple : /etc/.java).
  • ALLOWHIDDENFILE=/chemin/vers/fichier
    • Autorise un fichier caché spécifique (exemple : /etc/.myconfig).
  • SCRIPTWHITELIST=/chemin/vers/script
    • Ajoute un script à la liste blanche pour éviter les alertes (exemple : /usr/bin/which).
  • DISABLE_TESTS=<liste_de_tests>
    • Désactive certains tests spécifiques, comme suspscan (analyse des fichiers suspects).
  • PORT_WHITELIST="22 80 443"
    • Spécifie les ports réseau à autoriser, pour éviter des avertissements inutiles.
  • ALLOW_SSH_ROOT_USER=0
    • Signale si l’utilisateur root est autorisé à se connecter via SSH.
  • ALLOW_SSH_PROT_V1=0
    • Désactive les alertes si le protocole SSH v1 est utilisé.

Exécution de RKHunter

Maintenant que RKHunter est installé et mis à jour, il est temps de le mettre au travail. Je vais vous montrer comment utiliser cet outil pour analyser votre système et interpréter ses résultats.

La commande la plus courante pour utiliser RKHunter est :

Terminal window
sudo rkhunter --check

Cette commande effectue une vérification complète de votre système. Voici ce qui se passe :

  • Examen des fichiers système critiques, comme /etc/passwd et /etc/shadow.
  • Recherche de rootkits connus.
  • Vérification des permissions des fichiers importants.
  • Analyse des ports réseau ouverts pour détecter des comportements suspects.

Pendant l’analyse, vous verrez des messages détaillés apparaître à l’écran. Chaque vérification est marquée comme :

  • [OK] si tout est normal.
  • [Warning] si quelque chose semble suspect.

Lorsque RKHunter détecte un problème potentiel, il vous le signale avec un avertissement. Pour réduire le nombre d’avertissements non pertinents (faux positifs), utilisez l’option suivante lors de l’analyse :

Terminal window
sudo rkhunter --report-warnings-only --check

Le flag --report-warnings-only permet de n’afficher que les avertissements importants.

Exemple de sortie de RKHunter :

Terminal window
Warning: The command '/usr/sbin/adduser' has been replaced by a script: /usr/sbin/adduser: Perl script text executable
Warning: The command '/usr/bin/egrep' has been replaced by a script: /usr/bin/egrep: POSIX shell script, ASCII text executable
Warning: The command '/usr/bin/fgrep' has been replaced by a script: /usr/bin/fgrep: POSIX shell script, ASCII text executable
Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne-Again shell script, ASCII text executable
Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: Perl script text executable
Warning: The command '/usr/bin/which.debianutils' has been replaced by a script: /usr/bin/which.debianutils: POSIX shell script, ASCII text executable
Warning: The SSH configuration option 'PermitRootLogin' has not been set.
The default value may be 'yes', to allow root access.
Warning: The SSH configuration option 'Protocol' has not been set.
The default value may be '2,1', to allow the use of protocol version 1.
Warning: Hidden directory found: /etc/.java
Warning: Hidden file found: /etc/.resolv.conf.systemd-resolved.bak: ASCII text
Warning: Hidden file found: /etc/.updated: ASCII text

Ces avertissements générés par RKHunter montrent des points potentiellement préoccupants sur votre système. Analysons ensemble ce qu’ils signifient et comment y répondre.

Interprétation des avertissements RKHunter

Après avoir lancé une analyse avec RKHunter, vous obtenez un rapport détaillé qui met en lumière les éventuels problèmes détectés. Comprendre et interpréter ces résultats est une étape cruciale pour déterminer si votre système est en sécurité ou non.

Par défaut, le rapport d’analyse est enregistré dans ce fichier log :

/var/log/rkhunter.log

Pour consulter rapidement son contenu, utilisez une des commandes suivantes :

Terminal window
sudo cat /var/log/rkhunter.log # Affiche tout le fichier
sudo less /var/log/rkhunter.log # Pour naviguer plus facilement
sudo grep Warning /var/log/rkhunter.log # Filtre les avertissements

Le rapport est organisé en sections. Voici un aperçu des éléments clés et ce qu’ils signifient :

Quelques exemples d’avertissements courants

Vérification des fichiers critiques

Examine les fichiers essentiels comme /etc/passwd, /etc/shadow, et autres. Exemple d’avertissement :

Warning: File properties have changed: /etc/passwd
  • Explication : Cela indique que les propriétés (permissions, taille, hash) du fichier ont été modifiées.

  • Action : Si vous n’avez pas effectué de mise à jour ou de modification intentionnelle, investiguez immédiatement :

    Terminal window
    ls -l /etc/passwd

    Vérifiez également l’historique des modifications avec auditd ou des outils comme grep.

Détection des rootkits

Cette section signale la présence potentielle de rootkits connus. Exemple :

Warning: Possible rootkit detected: X
  • Explication : Cela signifie que des traces ou comportements associés à un rootkit spécifique ont été détectés.

  • Action : Vérifiez manuellement les fichiers ou processus suspects. Par exemple, pour un fichier suspect :

    Terminal window
    file /chemin/vers/fichier_suspect

    Supprimez-le uniquement si vous êtes sûr qu’il est malveillant.

Permissions des fichiers et répertoires

Vérifie si des fichiers ou répertoires sensibles ont des permissions trop permissives. Exemple :

Warning: Suspicious file permissions: /usr/bin/sudo
  • Explication : Cela indique que des fichiers exécutables critiques sont mal configurés.

  • Action : Corrigez les permissions :

    Terminal window
    sudo chmod 4755 /usr/bin/sudo

Comportements inhabituels dans les commandes

Certaines commandes standard peuvent être remplacées par des scripts ou des exécutables suspects. Exemple :

Warning: The command '/usr/bin/which' has been replaced by a script.
  • Explication : Les commandes remplacées peuvent être légitimes (dépendant de la distribution), mais cela nécessite une vérification.

  • Action : Identifiez le type du fichier :

    Terminal window
    file /usr/bin/which

    Comparez-le avec une version saine ou réinstallez le paquet contenant cette commande :

    Terminal window
    sudo apt reinstall debianutils # Exemple pour Ubuntu/Debian

Configuration SSH

Analyse les paramètres de sécurité dans /etc/ssh/sshd_config. Exemple :

Warning: The SSH configuration option 'PermitRootLogin' has not been set.
  • Explication : Si des paramètres sensibles comme PermitRootLogin ou Protocol ne sont pas explicitement définis, cela peut ouvrir des vulnérabilités.

  • Action : Configurez le fichier SSH :

    Terminal window
    sudo nano /etc/ssh/sshd_config

    Ajoutez ou modifiez les lignes suivantes :

    PermitRootLogin no
    Protocol 2

Identifier les faux positifs

Certains avertissements de RKHunter peuvent être des faux positifs, notamment sur des fichiers ou scripts modifiés par des mises à jour système ou des outils légitimes. Exemple :

Warning: Hidden directory found: /etc/.java
  • Explication : Les fichiers ou répertoires cachés ne sont pas toujours malveillants. Par exemple, /etc/.java est souvent créé par des environnements Java.

  • Action : Inspectez leur contenu pour confirmer leur légitimité :

    Terminal window
    ls -la /etc/.java

Si vous êtes sûr qu’il s’agit d’un faux positif, ajoutez ces éléments à la liste blanche dans /etc/rkhunter.conf :

Terminal window
ALLOWHIDDENDIR=/etc/.java

Quand prévoir une réinstallation du système ?

Une réinstallation devient nécessaire lorsqu’un système montre des signes clairs de compromission. Si RKHunter détecte un rootkit ou des altérations inexpliquées sur des fichiers critiques comme /etc/passwd ou /usr/bin/sudo, cela peut indiquer une attaque. Une activité réseau suspecte ou des modifications dans des configurations sensibles, comme SSH, sont également des signaux d’alerte. Avant de réinstaller, sauvegardez uniquement les données essentielles et les journaux pour enquête, sans inclure de binaires potentiellement compromis. Préparez une ISO officielle et réinstallez proprement. Après l’installation, effectuez une analyse initiale avec RKHunter, appliquez les mises à jour, configurez la sécurité, changez les mots de passe, et installez des outils comme un pare-feu ou Fail2Ban. Une réinstallation est souvent la meilleure solution pour garantir la fiabilité et la sécurité d’un système compromis.

Conclusion

Vous l’aurez compris RKHunter est un outil puissant pour surveiller et sécuriser vos systèmes Linux. Il aide à identifier les rootkits, les altérations suspectes et les configurations à risque. En suivant les bonnes pratiques d’analyse, de configuration et de gestion des alertes, vous pouvez minimiser les menaces. Cependant, en cas de doute sérieux ou de compromission avérée, une réinstallation propre reste la solution la plus sûre pour repartir sur un système sain. La sécurité repose autant sur la vigilance humaine que sur l’efficacité des outils.

Jetter un œil à d’autres outils de sécurité pour renforcer la protection de vos systèmes comme Lynis.