Tripwire est un Système de Détection d\'Intrusion Basé sur l\'Hôte (HIDS) et un outil de Surveillance de l\'Intégrité des Fichiers (FIM - File Integrity Monitoring). Son fonctionnement est simple en théorie : il crée une "baseline", une base de données contenant les signatures cryptographiques (comme SHA-256) de fichiers et répertoires importants. Ensuite, à intervalles réguliers, il compare l\'état actuel des fichiers à cette baseline pour détecter toute modification, suppression ou ajout.
Pourquoi utiliser Tripwire ?
- Détection de compromission : Si un attaquant modifie un binaire système (ex:
/bin/ls) pour cacher ses traces, Tripwire le détectera. - Conformité (Compliance) : De nombreuses normes de sécurité (PCI-DSS, HIPAA) exigent une surveillance de l\'intégrité des fichiers. Tripwire est un outil parfait pour cela.
- Contrôle des changements : Permet de s\'assurer que seules les modifications autorisées sont apportées aux serveurs de production.
Prérequis
- Un serveur Linux (Ubuntu/Debian, CentOS/RHEL) sur un état "propre" connu. Il est crucial d\'installer Tripwire avant que le serveur ne soit potentiellement compromis.
- Accès root ou privilèges sudo.
Installation et Initialisation
Étape 1 : Installation
# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y tripwire
# Sur CentOS / RHEL (via le dépôt EPEL)
sudo yum install -y epel-release
sudo yum install -y tripwire
Pendant l\'installation, on vous demandera de créer une clé de site et une clé locale. Choisissez des phrases de passe robustes et conservez-les en lieu sûr. Ces clés protègent la base de données de Tripwire et ses fichiers de configuration contre toute manipulation.
Étape 2 : Configuration
Le fichier de politique principal est /etc/tripwire/twpol.txt. Il définit quels fichiers sont surveillés et quels attributs sont vérifiés pour chaque fichier (permissions, hash, taille, etc.).
Le fichier par défaut est très complet, mais vous pouvez l\'éditer pour l\'adapter à vos besoins.
sudo nano /etc/tripwire/twpol.txt
Étape 3 : Initialisation de la base de données
Cette commande scanne votre système selon la politique définie et crée la première "baseline". C\'est l\'étape la plus importante.
sudo tripwire --init
Vous devrez entrer votre phrase de passe de site. Ce processus peut prendre plusieurs minutes. La base de données chiffrée sera créée dans /var/lib/tripwire/.
Votre système a maintenant une empreinte de référence. Toute déviation par rapport à cet état sera signalée.
Utilisation au quotidien
Lancer une vérification d\'intégrité
sudo tripwire --check
Tripwire va rescanner le système et vous présenter un rapport listant tous les fichiers qui ont été modifiés, ajoutés ou supprimés depuis la dernière mise à jour de la baseline. Vous devrez entrer votre phrase de passe locale pour voir le rapport.
Analyser le rapport
Le rapport est la partie la plus délicate. Pour chaque modification, vous devez déterminer si elle est légitime ou non.
- Légitime : Une mise à jour de paquet (via
apt upgrade) va modifier des fichiers. C\'est normal. - Illégitime : Un binaire système qui change de hash sans raison apparente est extrêmement suspect.
Mettre à jour la base de données après des changements légitimes
Après avoir vérifié que les changements dans un rapport sont normaux (ex: après une mise à jour système), vous devez "accepter" ces changements pour mettre à jour la baseline. Sinon, ils apparaîtront dans chaque futur rapport.
- Ouvrez le rapport généré (fichier
.twrdans/var/lib/tripwire/report/) avec un éditeur. - Décochez (en retirant le `x`) les cases des modifications que vous ne voulez PAS accepter.
- Lancez la commande de mise à jour :
sudo tripwire --update --twrfile /var/lib/tripwire/report/VOTRE_RAPPORT.twr
Cela intègre les changements acceptés dans la baseline pour les futurs scans.
Automatisation
Il est indispensable d\'exécuter des vérifications Tripwire régulièrement. Voici une tâche cron quotidienne qui envoie un rapport par email :
sudo nano /etc/cron.daily/tripwire-check
Ajoutez ce contenu :
#!/bin/sh
/usr/sbin/tripwire --check | mail -s "Rapport d'intégrité Tripwire pour $(hostname)" [email protected]
N\'oubliez pas de le rendre exécutable :
sudo chmod +x /etc/cron.daily/tripwire-check
Le plus grand défi avec Tripwire est de gérer le "bruit". Sur un système qui change souvent, vous recevrez de nombreux rapports. Il est crucial d\'affiner votre politique (
twpol.txt) pour ignorer les fichiers qui changent constamment et légitimement (comme certains fichiers de log, de cache, etc.).
Conclusion
Tripwire est un outil de sécurité fondamental, bien que parfois exigeant. Il offre une assurance puissante contre les modifications non autorisées de votre système de fichiers. Sa mise en place sur un serveur propre et son exécution régulière sont une des meilleures pratiques pour la détection d\'intrusions et le maintien de l\'intégrité d\'un système critique.