Il existe deux approches pour défendre le système contre les rootkits LKM, une défense proactive et une défense réactive. La détection peut être simple et sans douleur ou difficile et fatigante selon la mesure que vous choisissez.
10.4.2.1. Défense proactive
L'avantage de ce type de défense est qu'elle prévient des dommages que pourrait entraîner un rootkit au système. Une telle stratégie est de les attraper en premier, c'est-à-dire de charger un LKM bien défini pour protéger le système d'autres LKM infectés. Une deuxième stratégie consiste à retirer la fonctionnalité de chargement des modules du noyau lui-même. Notez, cependant, qu'il existe des rootkits qui peuvent fonctionner même dans ce cas, certains altèrent même directement /dev/kmem
(la mémoire du noyau) pour se rendre indétectables.
Debian GNU/Linux fournit quelques paquets à utiliser pour mettre en place une défense proactive :
lcap — interface utilisateur agréable pour retirer les
fonctionnalités (contrôle d'accès basé sur le noyau) dans le noyau, rendant le système plus sécurisé. Par exemple, exécuter
lcap CAP_SYS_MODULE
enlèvera des fonctionnalités de chargement des modules (même pour le superutilisateur).
De vieilles informations sur ces fonctionnalités sont dans la section de Jon Corbet
http://lwn.net/1999/1202/kernel.php3 sur LWN datant de décembre 1999.
Si vous n'avez pas besoin de toutes ces fonctionnalités de noyau sur un système GNU/Linux, vous pourriez désactiver la prise en charge des modules chargeables lors de la configuration du noyau. Pour désactiver la prise en charge des modules chargeables, positionnez simplement CONFIG_MODULES=n lors de l'étape de configuration de construction du noyau ou dans le fichier .config
. Cela prévient des rootkits LKM mais vous ne pourrez plus utiliser les modules avec le noyau GNU/Linux. La désactivation des modules peut surcharger le noyau, rendant la gestion du chargement nécessaire.
10.4.2.2. Défense réactive
L'avantage d'une défense réactive est qu'elle représente une faible surcharge au niveau des ressources systèmes. Elle fonctionne en comparant la table des appels systèmes avec une copie sûre d'un fichier du disque, System.map
. Bien sûr, une défense réactive n'avertira l'administrateur qu'après la compromission du système.
La détection des rootkits dans Debian peut être accomplie avec le paquet
chkrootkit. Le programme
http://www.chkrootkit.org cherche des signes de présence de plusieurs rootkits connus sur le système local, mais ce n'est pas un test définitif.