Rechercher les virus et rootkits sur un système GNU/Linux
Rédigé par Marc GUILLAUME | 1 commentaireCet article est une traduction adaptation d'un article de Nick Congleton dont l'original peut être consulté à cette URL : https://www.maketecheasier.com/scan-linux-for-viruses-and-rootkits/
Vous inquiétez-vous du fait que votre ordinateur sous GNU/Linux puisse être infecté par des logiciels malveillants ? Avez-vous déjà vérifié si c'était le cas ? Même si le système GNU/Linux est moins susceptible d'être infecté que MSWindows, il peut tout de même l'être. Et cette infection est également parfois moins évidente.
Il existe une poignée d'excellents outils open-source pour vous aider à vérifier si votre système GNU/Linux a été victime d'un logiciel malveillant. Bien qu'aucun logiciel ne soit parfait, les trois outils que je présente ont une solide réputation et on peut leur faire confiance pour trouver les plus problèmes les plus courants.
ClamAV
ClamAV est l'anti-virus standard qui vous sera sans doute le plus familier. Il existe également une version de ClamAV pour MSWindows.
Installation de ClamAV et ClamTK
ClamAV et son interface graphique ClamTK sont deux paquets séparés. Ceci est du au fait que ClamAV peut être utilisé en ligne de commandes sans interface graphique. Cependant l'interface ClamTK est plus facile à utiliser pour la plupart des utilisateurs. Voici comment les installer.
Pour les distributions Debian et Ubuntu et leurs dérivées :
sudo apt-get install clamav clamtk
Si vous n'utilisez pas Debian, Ubuntu ou leurs dérivés vous trouverez clamv et clamtk dans les dépôts de paquets de votre distribution.
Une fois les programmes installés la première chose à faire est de mettre à jour la base de données des virus connus. A la différence de presque toutes les autres opérations avec ClamAV, ceci doit se faire en tant qu'utilisateur « root » ou en utilisant sudo. L'utilitaire de mise à jour est le processus freshclam.
sudo freshclam
Si cela ne fonctionne pas c'est que freshclam est déjà lancé en tant que démon. Pour pouvoir l'utiliser manuellement, il faut commencer par l'arrêter avec Systemd. On peut ensuite le lancer à la main normalement.
sudo systemctl stop clamav-freshclam
La mise à jour va prendre un peu de temps, laissez ClamAV s'en occuper.
Lancez l'analyse des disques
Le menu de ClamTK
Avant de lancer votre analyse, cliquez sur le bouton Settings (Configuration) et cochez les options « Scan files beginning with a dot », « Scan files larger than 20 MB », et « Scan directories recursively », c'est-à-dire vérifier les fichiers commençant par un point (fichiers cachés), les fichiers de taille supérieure à 20 Mo, et les sous-répertoires récursivement.
Configuration de ClamTK
Revenez au menu principal et cliquez sur « Scan a Directory ». Choisissez le dossier que vous voulez analyser. Si vous désirez analyser tous le disque, sélectionnez « Filesystem ». Vous pourriez avoir à relancer ClamTK en ligne de commande en tant que « root » ou avec sudo pour réaliser cette analyse.
Vérification d'un dossier avec ClamTK
Une fois l'analyse terminée, ClamTK vous présentera toutes les menaces qu'il a découvertes et vous permettra de choisir ce que vous voulez en faire. Les effacer est évidemment le mieux, mais peut déstabiliser le système. Vous devrez faire appel à votre jugement.
Chkrootkit
Le prochain outil à installer est Chkrootkit. Il recherche un type de logiciels malveillants spécifiques aux systèmes Unix et assimilés (dont MacOSX) qui sont les rootkits. Comme leur nom le suggère le but des rootkits est d'obtenir un accès « root » sur le système cible.
Chkrootkit analyse les fichiers système à la recherche de signes d'altérations malignes et les compare avec une base de données de rootkits connus.
Chkrootkit est disponible dans la plupart des dépôts logiciels des distributions. Installez-le avec votre gestionnaire de paquets.
sudo apt-get install chkrootkit
À la recherche des Rootkits
Analyse du système avec Chkrootkit
Celui-ci est vraiment facile à utiliser. Tapez juste cette commande en tant que root ou avec sudo.
sudo chkrootkit
Il va dérouler une liste de potentiels rootkits très rapidement. Il peut ralentir un moment quand il analyse certains fichiers. Vous devriez lire, pour chacun de ces fichiers, « nothing found » ou « not infected ».
Le programme ne présente pas un rapport final quand il a fini son analyse, donc parcourez les résultats qu'il a affichés pour voir si il a trouvé quelque chose.
Vous pouvez également filtrer la sortie avec un pipe et grep en cherchant la chaîne « INFECTED », mais vous n'attraperez pas tout.
sudo chkrootkit | grep INFECTED
Les faux positifs connus
Il existe un bug étrange avec Chkrootkit qui rapporte un faux positif pour Linux/Ebury – Operation Windigo. Ce bug est connu depuis très longtemps et est du à l'introduction d'une option -G dans OpenSSH. Il y a deux tests manuels que vous pouvez faire pour confirmer qu'il s'agit bien d'un faux positif.
D'abord lancez cette commande en tant que root (ou avec sudo).
find /lib* -type f -name libns2.so
Elle ne devrait rien renvoyer. Ensuite vérifiez que le logiciel malveillant n'est pas en train d'utiliser un socket Unix.
netstat -nap | grep "@/proc/udevd"
Si aucune des deux commandes ne renvoie de résultat, c'est que le système est sain.
Il semble aussi qu'il y ait un relativement nouveau faux positif pour tcpd sur Ubuntu. Si vous obtenez un faux positif sur votre système, poussez un peu l'investigation, mais soyez averti que le résultat pourrait être incorrect.
Vous pouvez également rencontrer des alertes pour wted. Celles-ci peuvent être causées par des corruptions ou des erreurs d'authentification lors de plantages du système. Essayez de voir si ces erreurs sont correllées à des redémarrages ou des plantages. Dans ce cas les alertes sont probablement dues à ces événements et pas à une activité malicieuse.
Rkhunter
Rkhunter est encore un autre outil pour la recherche de rootkits. Il est recommandé de le coupler avec Chkrootkit sur votre système pour vous assurer que rien n'est passé à travers les mailles du filet et vérifier les faux positifs.
Celui-ci aussi devrait se trouver dans les dépôts de votre distribution.
sudo apt-get install rkhunter
Lancer l'analyse
Première chose à faire, mettre à jour la base de données.
sudo rkhunter --update
Vérification du système avec Rkhunter
Puis lancer l'analyse.
sudo rkhunter --check
Le programme se met en pause entre chaque section. Vous verrez probablement quelques alertes (« warning »). Beaucoup surgissent à cause de configuration non optimisées. A la fin de l'analyse, le programme vous indique de jeter un oeil sur le détail de son activité dans le fichier de log /var/log/rkhunter.log. Vous y trouverez la raison de chacune des alertes.
Il vous présente également un résumé complet des résultats de son analyse.
Réflexions finales
Espérons que votre système se rèvèlera propre. Soyez prudent et vérifiez chaque résultat avant de faire quelque chose de drastique.
Si quelque chose ne va vraiment pas, pesez le pour et le contre. Si vous avez un rootkitk, sauvegardez vos fichiers et formatez le disque. Il n'y a pas d'autre solution.
Maintenez ces programmes à jour et analysez régulièrement. La sécurité évolue toujours et les problèmes vont et viennent. Il ne dépend que de vous de vous tenir au courant et d'être vigilant