Introduction
Dans cet atelier, vous allez apprendre à utiliser Tripwire, un puissant système de détection d'intrusion basé sur l'hôte (HIDS), pour surveiller l'intégrité de vos fichiers. Tripwire fonctionne en créant une base de données de référence des fichiers de votre système, puis en les analysant périodiquement pour détecter tout ajout, suppression ou modification. Ce processus est essentiel pour identifier les changements non autorisés et maintenir la sécurité du système.
Vous passerez en revue l'ensemble du processus, de la configuration initiale des clés de sécurité à la personnalisation des politiques de surveillance, en passant par la création d'une base de référence, la détection des changements et l'examen des rapports.
Configurer les clés Tripwire
Bienvenue dans cet atelier. Le paquet tripwire a été pré-installé dans votre environnement pour gagner du temps. Votre première tâche consiste à configurer les clés cryptographiques que Tripwire utilise pour protéger sa base de données et ses fichiers de configuration. Ces clés garantissent qu'un attaquant ne peut pas falsifier les propres fichiers de Tripwire pour effacer ses traces.
Tout d'abord, vérifiez que Tripwire est installé en contrôlant sa version.
tripwire --versionVous devriez voir une sortie affichant la version installée de Tripwire.
Tripwire(R) 2.4.3.7 (i686-pc-linux-gnu) ...Ensuite, générez manuellement les clés cryptographiques à l'aide de
twadmin. Vous devez créer une clé de site (site key) et une clé locale (local key). La clé de site protège les fichiers de politique et de configuration, tandis que la clé locale protège la base de données sur la machine locale.Commencez par générer la clé de site :
sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.keySi le fichier de clé existe déjà, le système vous demandera si vous souhaitez l'écraser. Tapez
yet appuyez sur Entrée pour confirmer.Lorsqu'on vous demande la phrase de passe (passphrase) de la clé de site, saisissez
labex-passwordet appuyez sur Entrée. Confirmez ensuite la phrase de passe en la saisissant à nouveau.Note : La saisie de la phrase de passe est masquée pour des raisons de sécurité - vous ne verrez aucun caractère s'afficher pendant la frappe, mais le système reçoit bien votre saisie.
Ensuite, générez la clé locale :
sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.keyDe même, si l'on vous propose d'écraser un fichier de clé existant, tapez
yet appuyez sur Entrée.Lorsqu'on vous demande la phrase de passe de la clé locale, saisissez
labex-passwordet appuyez sur Entrée. Confirmez la phrase de passe. N'oubliez pas que la saisie est masquée.Une fois les phrases de passe saisies, les deux clés seront générées et enregistrées dans le répertoire
/etc/tripwire/. Le processus de génération des clés peut prendre plusieurs minutes.
Personnaliser la politique de surveillance
Avant de créer la base de données initiale (la référence), vous devez configurer les fichiers et répertoires que Tripwire doit surveiller. En raison de problèmes de compatibilité avec le fichier de politique par défaut qui pourraient provoquer des erreurs de segmentation lors de l'initialisation, vous allez créer une politique simplifiée axée sur les fichiers système essentiels et votre répertoire de projet.
Tout d'abord, créez une sauvegarde du fichier de politique d'origine.
sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bakCréez un nouveau fichier de politique simplifié qui évite les systèmes de fichiers virtuels problématiques.
sudo nano /etc/tripwire/twpol-simple.txtAjoutez le contenu suivant au fichier. Cette politique simplifiée surveille les fichiers système essentiels et votre répertoire de projet tout en évitant les chemins susceptibles de provoquer des erreurs d'initialisation :
# ## Simplified Tripwire Policy File for Lab Environment # @@section GLOBAL TWBIN = /usr/sbin; TWETC = /etc/tripwire; TWVAR = /var/lib/tripwire; @@section FS SEC_CRIT = $(IgnoreNone)-SHa ; SEC_BIN = $(ReadOnly) ; SEC_CONFIG = $(Dynamic) ; SEC_LOG = $(Growing) ; SEC_INVARIANT = +tpug ; SIG_LOW = 33 ; SIG_MED = 66 ; SIG_HI = 100 ; ( rulename = "Tripwire Binaries", severity = $(SIG_HI) ) { $(TWBIN)/siggen -> $(SEC_BIN) ; $(TWBIN)/tripwire -> $(SEC_BIN) ; $(TWBIN)/twadmin -> $(SEC_BIN) ; $(TWBIN)/twprint -> $(SEC_BIN) ; } ( rulename = "Tripwire Data Files", severity = $(SIG_HI) ) { $(TWVAR)/$(HOSTNAME).twd -> $(SEC_CONFIG) -i ; $(TWETC)/tw.pol -> $(SEC_BIN) -i ; $(TWETC)/tw.cfg -> $(SEC_BIN) -i ; $(TWETC)/$(HOSTNAME)-local.key -> $(SEC_BIN) ; $(TWETC)/site.key -> $(SEC_BIN) ; $(TWVAR)/report -> $(SEC_CONFIG) (recurse=0) ; } ( rulename = "Critical system files", severity = $(SIG_HI) ) { /bin -> $(SEC_BIN) ; /sbin -> $(SEC_BIN) ; /etc/passwd -> $(SEC_CONFIG) ; /etc/shadow -> $(SEC_CONFIG) ; } ( rulename = "Lab Project Files", severity = $(SIG_HI) ) { /home/labex/project -> $(SEC_BIN) ; }Enregistrez le fichier et quittez
nanoen appuyant surCtrl + O, puisEntrée, et enfinCtrl + X.Remplacez le fichier de politique d'origine par votre version simplifiée.
sudo cp /etc/tripwire/twpol-simple.txt /etc/tripwire/twpol.txt
Vous avez maintenant créé une politique de surveillance simplifiée qui fonctionnera de manière fiable dans cet environnement d'expérimentation. Dans l'étape suivante, vous utiliserez cette politique pour créer la base de données initiale.
Initialiser la base de données Tripwire
Une fois votre politique simplifiée en place, vous êtes prêt à créer la base de données Tripwire. Cette base de données sert d'instantané de référence "sain" de votre système. Tripwire comparera l'état actuel de vos fichiers à cette référence pour détecter tout changement.
Tout d'abord, recréez le fichier de configuration avec votre nouvelle clé de site pour garantir la compatibilité.
sudo twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txtLa phrase de passe de votre clé de site vous sera demandée. Saisissez
labex-passwordet appuyez sur Entrée.Convertissez le fichier de politique simplifié au format binaire signé utilisé par Tripwire.
sudo twadmin --create-polfile /etc/tripwire/twpol.txtÀ nouveau, saisissez la phrase de passe de votre clé de site (
labex-password) lorsque vous y êtes invité.Initialisez la base de données. Cette commande analyse tous les fichiers et répertoires spécifiés dans votre politique et enregistre leurs signatures cryptographiques et leurs attributs.
sudo tripwire --initLa phrase de passe de votre clé locale vous sera demandée. Saisissez
labex-passwordet appuyez sur Entrée.Pendant l'initialisation, vous pourriez voir un avertissement indiquant que le fichier de base de données n'existe pas encore :
#### Warning: File system error. #### Filename: /var/lib/tripwire/68b1139d06fc790d9895e107.twd #### No such file or directory #### Continuing...Ceci est normal et attendu lors de la première initialisation. Le processus se poursuivra et créera le fichier de base de données.
Une fois le processus terminé, vérifiez que le fichier de base de données a bien été créé.
ls -l /var/lib/tripwire/Vous devriez voir un fichier nommé d'après le nom d'hôte de votre machine avec une extension
.twd(par exemple,68b1139d06fc790d9895e107.twd). La présence de ce fichier confirme que votre base de données de référence a été établie avec succès.total 8 -rw-r--r-- 1 root root 4164 Aug 29 11:00 68b1139d06fc790d9895e107.twd drwxr-xr-x 2 root root 6 Nov 11 2021 report
Votre système Tripwire est maintenant correctement initialisé avec une base de données de référence. Toute modification future des fichiers surveillés sera détectée lors de l'exécution des vérifications d'intégrité.
Détecter et signaler les modifications de fichiers
Maintenant que Tripwire dispose d'une base de référence, vous pouvez tester sa capacité à détecter les changements. Vous allez créer un nouveau fichier dans votre répertoire de projet pour voir comment Tripwire détecte les modifications dans les zones surveillées.
Tout d'abord, créez un nouveau fichier dans le répertoire
project. C'est un répertoire que vous avez explicitement ajouté à la politique de surveillance.touch ~/project/test_file.txtUne fois la modification effectuée, lancez une vérification d'intégrité. Tripwire va scanner le système et le comparer à la base de données de référence.
sudo tripwire --checkLa phrase de passe de votre clé locale vous sera demandée. Saisissez
labex-passwordet appuyez sur Entrée.Une fois l'analyse terminée, Tripwire générera un rapport et affichera un résumé dans la console. Le résumé mettra en évidence les objets qui ont été ajoutés ou modifiés. Vous devriez voir une sortie similaire à celle-ci :
=============================================================================== Rule Summary: =============================================================================== Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Tripwire Binaries 100 0 0 0 Critical system files 100 0 0 0 * Tripwire Data Files 100 1 0 0 * Lab Project Files 100 1 0 1 (/home/labex/project) Total objects scanned: 16 Total violations found: 3 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- Rule Name: Lab Project Files (/home/labex/project) Severity Level: 100 ------------------------------------------------------------------------------- Added: "/home/labex/project/test_file.txt" Modified: "/home/labex/project"Le rapport montre que Tripwire a détecté :
- Added (Ajouté) : Le nouveau fichier
test_file.txtdans votre répertoire de projet. - Modified (Modifié) : Le répertoire
/home/labex/projectlui-même (car son contenu a changé). - Tripwire Data Files : Le fichier de base de données a également été marqué comme "ajouté" car il s'agit de la première vérification depuis l'initialisation.
- Added (Ajouté) : Le nouveau fichier
Ce résultat confirme que Tripwire a détecté avec succès les modifications que vous avez apportées au système de fichiers.
Examiner le rapport d'intégrité
Le résumé de la commande --check fournit une bonne vue d'ensemble, mais pour une analyse approfondie, vous pouvez consulter le fichier de rapport complet. Ces rapports sont stockés dans un format binaire et doivent être lus à l'aide de l'utilitaire twprint.
Tout d'abord, listez le contenu du répertoire des rapports pour trouver le nom du rapport le plus récent. Les rapports incluent un horodatage dans leur nom de fichier.
sudo ls -lt /var/lib/tripwire/report/La sortie listera les fichiers de rapport, le plus récent étant en haut. Notez son nom de fichier, qui suit généralement le format
hostname-YYYYMMDD-HHMMSS.twr.total 4 -rw------- 1 root root 3456 Aug 29 11:02 68b1139d06fc790d9895e107-20250829-110252.twrUtilisez la commande
twprintpour afficher le rapport dans un format lisible par l'homme. Remplacez[REPORT_FILENAME]par le nom de fichier réel que vous avez noté précédemment.sudo twprint --print-report --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Par exemple :
sudo twprint --print-report --twrfile /var/lib/tripwire/report/68b1139d06fc790d9895e107-20250829-110252.twrLe rapport détaillé affiche les mêmes informations que le résumé, mais avec des métadonnées supplémentaires :
Report created on: Fri Aug 29 11:02:52 2025 Database last updated on: Never Host name: 68b1139d06fc790d9895e107 Host IP address: 172.18.0.8 Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/68b1139d06fc790d9895e107.twd Command line used: tripwire --checkLe rapport fournit des détails complets sur chaque changement, y compris les horodatages, les propriétés des fichiers et les sommes de contrôle (checksums). Ce niveau de détail est crucial pour l'analyse forensique afin de comprendre exactement quelles modifications ont eu lieu sur votre système.
Vous pouvez également afficher une version plus détaillée avec les attributs de fichiers en utilisant l'option
--verbose:sudo twprint --print-report --verbose --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Cela affichera des informations supplémentaires telles que les permissions des fichiers, le propriétaire, la taille et divers hachages cryptographiques pour chaque changement détecté.
Savoir lire ces rapports est essentiel pour les administrateurs système afin d'enquêter sur d'éventuels incidents de sécurité et de maintenir l'intégrité du système.
Résumé
Dans cet atelier, vous avez appris les bases de l'utilisation de Tripwire pour la surveillance de l'intégrité des fichiers. Vous avez configuré avec succès les clés de sécurité de Tripwire, personnalisé sa politique de surveillance pour inclure un répertoire de projet spécifique et établi une base de données de référence de l'état des fichiers de votre système.
De plus, vous avez pratiqué le flux de travail type d'un administrateur système en modifiant intentionnellement des fichiers, en exécutant une vérification d'intégrité pour détecter ces changements et en analysant le rapport détaillé pour comprendre ce qui a été altéré. Ces compétences sont fondamentales pour assurer la sécurité du système et détecter toute activité non autorisée.



