Rkhunter

Sécuriser son serveur Debian 9 avec Rkhunter

Généralités
Installation
Les dossiers et fichiers de configuration
Configuration
Activer l'analyse et les mises à jour régulières avec cron
Utilisation
Filtrage des faux positifs

Rkhunter (pour Rootkit Hunter) est un programme qui permet de détecter les rootkits, portes dérobées et exploits. Pour cela, il compare les hash SHA-256, SHA-512, SHA1 et MD5 des fichiers importants avec les hash connus, qui sont accessibles à partir d'une base de données en ligne. Ainsi, il peut détecter les répertoires généralement utilisés par les rootkit, les permissions anormales, les fichiers cachés, les chaînes suspectes dans le kernel.

Il suffit d'installer le paquet.

apt install rkhunter

Conrêtement, rkhunter s'axe autour de 2 fichiers.

/etc/default/rkhunter : Fichier où l'on active l'analyse et les mises à jour régulières avec cron
/etc/rkhunter.conf : Fichier de configuration 

Une fois l'installation terminée, il faut configurer Rkhunter avant de pouvoir l'utiliser pour analyser le système. Pour ce faire, il faut modifier le fichier /etc/rkhunter.conf.

nano /etc/rkhunter.conf

Définissez la valeur UPDATE_MIRRORS sur 1.
Cela garantit que les fichiers miroir sont également vérifiés pour les mises à jour lors de la recherche des fichiers de date mis à jour par rkhunter avec l'option --update.

UPDATE_MIRRORS=1

Définissez la valeur de MIRRORS_MODE sur 0.
L'option indique à rkhunter quels miroirs doivent être utilisés lorsque les options --versioncheck ou -–update sont fournies. Il y a trois valeurs possibles pour cela.
- Le mode 0 = utiliser n'importe quel miroir
- Le mode 1 = n'utiliser que des miroirs locaux
- Le mode 2 = n'utilisez que des rétroviseurs déportés

MIRRORS_MODE=0

Définissez la valeur de WEB_CMD sur "". 
Cette option peut être définie sur une commande que rkhunter utilisera lors du téléchargement de fichiers à partir d'Internet, c'est-à-dire lorsque l'option --versioncheck ou --update est utilisée.

WEB_CMD=""

Vous pouvez également envoyer les résultats par e-mail au cas où une menace serait détectée sur votre système. Pour ce faire, vous devez définir une valeur à MAIL-ON-WARNING votre adresse e-mail.

MAIL-ON-WARNING=username@domain

Vous devez également définir la commande mail à utiliser.

MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"

Modifiez le /etc/default/rkhunter.conf et apportez les modifications suivantes.

nano /etc/default/rkhunter.conf

Activez les vérifications d'analyse rkhunter pour qu'elles s'exécutent quotidiennement en définissant la valeur de CRON_DAILY_RUN sur true.

CRON_DAILY_RUN="true"

Définissez la valeur de CRON_DB_UPDATE sur true pour activer les mises à jour hebdomadaires de la base de données rkhunter.

CRON_DB_UPDATE="true"

Définissez la valeur de APT_AUTOGEN sur true pour activer les mises à jour automatiques de la base de données. 
Cela garantit que rkhunter --propupd est exécuté automatiquement après les mises à jour logicielles afin de réduire les faux positifs.

APT_AUTOGEN="true"

rkhunter --config-check

Vous pouvez également utiliser rkhunter -C. Si des problèmes de configuration sont détectés, ils seront affichés et le code de retour sera défini sur 1.

  • Mise à jour de la base

rkhunter --update

  • Vérifier la version de rkhunter

rkhunter --versioncheck

  • Prise d’empreinte du système

rkhunter --propupd

  • Effectuer une vérification du système

rkhunter --checkall

Pour éviter d'avoir à appuyer sur ENTER à chaque vérification, vous pouvez passer l'option --sk ou --skip-keypress.

rkhunter --checkall --skip-keypress

Pour afficher uniquement les messages d'avertissement, utilisez l'option --rwo ou --report-warnings-only.

rkhunter --checkall --report-warnings-only

Des fichiers relatif à une activité normale peuvent être considérés comme suspects, donc il faut ajuster la configuration pour indiquer à rkhunter que ces alertes sont normales et ne doivent pas déclencher d’avertissements.

Comme vous pouvez le voir ci-dessus, il y a quelques avertissements, par exemple l'accès root SSH est autorisé. Vous pouvez corriger le problème trouvé sur votre système par rkhunter en modifiant la valeur de ALLOW_SSH_ROOT_USER.

Vous avez également remarqué que des avertissements concernant les fichiers et répertoires cachés sont affichés. Pour éviter ces avertissements, vous pouvez reconfigurer rkhunter pour ignorer ces fichiers via une liste blanche. Par exemple dans mon test, j'ai trouvé cet avertissement.

Warning: Hidden directory found: /etc/.java

Donc j'ouvre le fichier de configuration rkhunter et décommente la ligne #ALLOWHIDDENDIR=/etc/.java de telle sorte qu'elle ressemble à ceci.

ALLOWHIDDENDIR=/etc/.java

Il y a un autre faux positif dans mon test.

Warning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: Perl script text executable

Ce n'est pas malveillant et donc l'erreur peut être ignorée. Cela peut être fait en décommentant la ligne #SCRIPTWHITELIST=/usr/bin/lwp-request de telle sorte qu'elle ressemble à ceci..

SCRIPTWHITELIST=/usr/bin/lwp-request

Si vous avez d'autres fichiers, vous pouvez les décommenter ou les rajouter dans le fichier de configuration rkhunter comme indiqué ci-dessus.