Installation de Rootkit Hunter (rootkit)

Rootkit Hunter ou RkHunter est un logiciel de recherche de rootkits.

Installation de RKHunter

Pour installer RkHunter on utilise les lignes de commandes suivantes :

if [ -n "$(command apt-cache pkgnames libmd5-perl)" ]; then
  command apt-get -y install rkhunter libmd5-perl
else
  command apt-get -y install rkhunter libdigest-md5-file-perl
fi

Configuration de RKHunter

Commençons par ignorer les faux positifs déclenchés par les dossiers et fichiers systèmes cachés:

command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.udev\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.static\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.initramfs\)$|\1|' \
         "/etc/rkhunter.conf"

Ensuite si votre système utilise Java, entrer les lignes suivantes :

if [ -e "/etc/.java" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/etc/.java\)$|\1|' \
         "/etc/rkhunter.conf"
fi

Si votre système utilise le raid logiciel, ignorez le dossier associé:

if [ -x "/sbin/mdadm" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.mdadm\)$|\1|' \
         "/etc/rkhunter.conf"
fi

Si votre système utilise l'utilitaire hdparm, ignorer les fichiers associés:

if [ -x "/sbin/hdparm" ]; then
  command sed -i -e 's|^[#]*\(RTKT_FILE_WHITELIST="\)\(.*\)$|\1/etc/init.d/.depend.boot /etc/init.d/hdparm\2|' \
         "/etc/rkhunter.conf"
fi

Si votre système ne dispose pas du fichier /proc/modules, désactivez le test concerné:

if [ ! -e "/proc/modules" ]; then
  command sed -i -e 's|^[#]*\(DISABLE_TESTS="\)\(.*\)$|\1os_specific \2|' \
         "/etc/rkhunter.conf"
fi

Ignorer les fichiers block temporaires:

command sed -i -e '0,/ALLOWHIDDENFILE/{//a\
ALLOWHIDDENFILE=/dev/.tmp-block-*
;}' \
           "/etc/rkhunter.conf"

Autoriser la présence des informations de configuration réseau:

if [ -e "/dev/shm/network/ifstate" ]; then
  command sed -i -e '0,/ALLOWDEVFILE/{//a\
ALLOWDEVFILE=/dev/shm/network/ifstate
;}' \
           "/etc/rkhunter.conf"
fi

La distribution Debian mettant en place des patchs de sécurité sans mettre à jour les numéros de version des applications, nous ajoutons les applications concernées en liste blanche:

if [ -n "$(command apt-cache show ssh | command grep "5.1p1")" ]; then
  command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"exim:4.69 gpg:1.4.9 openssl:0.9.8g sshd:5.1p1"|' \
      "/etc/rkhunter.conf"
fi
if [ -n "$(command apt-cache show ssh | command grep "5.5p1")" ]; then
  command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"gpg:1.4.10 openssl:0.9.8o sshd:5.5p1"|' \
      "/etc/rkhunter.conf"
fi

Si votre système autorise les connexions de l'utilisateur root en SSH, désactivez l'alerte associée:

SSH_ROOT_ALLOWED=no
TEST_ROOT_ALLOWED=$(/bin/grep -i "PermitRootLogin.*yes" /etc/ssh/sshd_config)
if [ -n "$TEST_ROOT_ALLOWED" ]; then
  SSH_ROOT_ALLOWED=yes
fi
command sed -i \
            -e "s|^[#]*\\(ALLOW_SSH_ROOT_USER=\\).*$|\\1${SSH_ROOT_ALLOWED}|" \
         "/etc/rkhunter.conf"

Rootkit Hunter permet de maintenir une base de signatures des fichiers système basées sur les informations fournies par le gestionnaire de paquets Debian. Cette base est ensuite utilisée pour vérifier si les fichiers systèmes critiques ont subit une modification par un tiers. De telles modifications sont souvent le signe d'une infection. Activez cette fonctionnalité à l'aide de la commande:

command sed -i -e 's|^[#]*\(HASH_FUNC=\).*$|\1md5sum|' \
            -e 's|^[#]*\(PKGMGR=\).*$|\1DPKG|' \
    "/etc/rkhunter.conf"
 

Activez la mise à jour automatique de la base des signatures après chaque utilisation d'apt-get:

if [[ ! -e '/etc/apt/apt.conf.d/90rkhunter' ]]; then
  command echo '// Update rkhunter file signatures databases after running dpkg.
DPkg::Post-Invoke {
  "if [ -x /usr/bin/rkhunter ]; then if [ $(/usr/bin/rkhunter --help | /bin/grep "propupd" | /usr/bin/wc -l) -gt 0 ]; then /usr/bin/rkhunter --propupd; fi; fi";
};' > '/etc/apt/apt.conf.d/90rkhunter'
fi
[[ -e '/etc/default/rkhunter' ]] && command sed -i -e 's/^APT_AUTOGEN=.*$/APT_AUTOGEN="yes"/' '/etc/default/rkhunter'

Mettre à jour la base des signatures:

command rkhunter --propupdate

Mettre à jour la base des menaces de Rootkit Hunter (par la suite elle est mise à jour chaque semaine):

command rkhunter --update

La commande suivante est exécutée quotidiennement. Son résultat est envoyé par e-mail à l'utilisateur root si un problème est détecté. Exécutez-le une première fois pour vérifier que tout fonctionne correctement:

command rkhunter --configfile /etc/rkhunter.conf --report-warnings-only --checkall

Auteurs et sources