Aller au contenu
Sécurité medium

Advanced Intrusion Detection Environment (AIDE)

12 min de lecture

AIDE (Advanced Intrusion Detection Environment) prend une empreinte de référence de vos fichiers, puis signale toute modification, ajout ou suppression. C'est un HIDS (Host-based Intrusion Detection System) léger : il ne surveille pas le réseau, il garantit l'intégrité des fichiers d'une machine Linux. Ce guide montre comment l'installer, écrire des règles de surveillance, construire la base de référence et lire un rapport de vérification, avec une démonstration réelle où une altération est détectée. Public visé : administrateurs et équipes sécurité sur Linux. Testé avec AIDE 0.19 (Debian 13).

  • Comprendre ce qu'AIDE surveille (l'intégrité des fichiers) et ce qu'il ne fait pas.
  • Installer AIDE et écrire des règles de surveillance dans aide.conf.
  • Construire la base de référence puis lancer une vérification.
  • Distinguer une altération suspecte d'une modification légitime à intégrer.
  • Automatiser les scans et relier AIDE à une démarche de durcissement.

Créé dans les années 2000 comme alternative open-source à Tripwire, AIDE est devenu populaire dans les environnements Linux et Unix en tant qu'outil efficace et léger pour vérifier l'intégrité des fichiers. Bien que des solutions plus sophistiquées aient émergé, AIDE reste un choix fiable pour la surveillance des systèmes, particulièrement dans les configurations où les ressources sont limitées ou pour des administrateurs cherchant une approche plus simple de détection d’intrusion. À travers les années, il a évolué pour inclure des algorithmes de hachage sécurisés et une configuration plus flexible, s’adaptant aux besoins de sécurité modernes.

AIDE offre plusieurs fonctionnalités clés :

  • Détection précise des modifications de fichiers : AIDE excelle dans la surveillance des changements de fichiers système. Son fonctionnement repose sur deux étapes clés :
    1. Création d'une base de données de référence : AIDE capture l'état initial des fichiers système, enregistrant des informations détaillées telles que les permissions, la taille, le contenu et le propriétaire.
    2. Vérifications régulières : Lors de chaque scan, AIDE compare l'état actuel des fichiers à cette référence. Tout écart est immédiatement signalé, permettant de détecter rapidement les modifications non autorisées. Cette approche permet une détection fine et fiable des changements, qu'ils soient mineurs ou majeurs, contribuant ainsi à maintenir l'intégrité du système.
  • Utilisation d'algorithmes de hachage sécurisés : Pour vérifier l'intégrité des fichiers, AIDE utilise des algorithmes de hachage tels que MD5, SHA-1, et SHA-256 pour calculer une empreinte unique des fichiers surveillés. Ces empreintes sont stockées dans la base de données et comparées aux empreintes recalculées lors de chaque scan, détectant ainsi toute altération.
  • Configuration flexible des règles de surveillance : Le fichier de configuration d'AIDE permet de personnaliser finement les règles de surveillance en définissant les fichiers et répertoires à surveiller, les attributs à observer et les éléments à exclure pour réduire les faux positifs. Cette personnalisation permet d'adapter AIDE à chaque système en fonction des besoins de sécurité spécifiques.
  • Rapports de changement détaillés : AIDE génère des rapports listant les modifications détectées avec des détails tels que les attributs modifiés et les valeurs avant/après. Ces rapports facilitent l'analyse et permettent de distinguer rapidement les changements légitimes des altérations suspectes.

L'installation de AIDE est simple et varie selon le système d’exploitation. Sur les distributions Debian et Ubuntu, l’installation se fait avec :

Fenêtre de terminal
sudo apt update
sudo apt install aide

Sur CentOS ou Fedora :

Fenêtre de terminal
sudo dnf install aide

Une fois installé, exécutez la commande aide --init pour générer une base de données initiale. Si vous préférez compiler AIDE depuis la source, téléchargez le code depuis le site officiel, extrayez-le, configurez et compilez avec les commandes :

Fenêtre de terminal
./configure
make
sudo make install

Pour configurer AIDE après l’installation, il est nécessaire d’éditer deux fichiers principaux : /etc/aide/aide.conf pour les règles de surveillance et /etc/default/aide pour les paramètres généraux. Voici comment effectuer cette configuration et exclure certains répertoires si nécessaire.

Ce fichier contient des paramètres globaux pour AIDE et contrôle comment l’outil fonctionne dans le système. Voici quelques paramètres communs que l’on peut configurer dans /etc/default/aide :

  1. Définir les chemins de base de données :

    DATABASE=/var/lib/aide/aide.db
    DATABASE_NEW=/var/lib/aide/aide.db.new
  2. Configurer les options de compression : Vous pouvez activer la compression pour la sortie des bases de données en réglant gzip_dbout=yes.

  3. Contrôle des notifications et des résumés : Il est possible de configurer les notifications et résumés des changements détectés avec des paramètres comme :

    report_summarize_changes=yes
    report_grouped=yes

Ces options permettent de personnaliser l’expérience de surveillance avec AIDE et de l’adapter aux besoins spécifiques du système.

Le fichier aide.conf est le cœur de la configuration, où vous pouvez spécifier les règles de surveillance et les attributs à observer sur chaque fichier ou répertoire. Voici les étapes principales de la configuration initiale :

  1. Ouvrir le fichier de configuration :

    Fenêtre de terminal
    sudo vi /etc/aide/aide.conf

    Si vous ne maitrisez l'éditeur vi, je vous recommande de lire mon guide sur vi.

    Ce fichier contient des sections pour définir les règles de surveillance, les répertoires à inclure et ceux à exclure【30†source】【31†source】.

  2. Définir les règles de surveillance : Les règles indiquent quels attributs (permissions, taille, contenu, etc.) AIDE doit surveiller pour chaque répertoire ou fichier spécifié. Par exemple, pour surveiller le répertoire /etc et détecter des changements sur plusieurs attributs, vous pouvez ajouter cette ligne :

    /etc = p+i+n+u+g+s+b+m+c+acl+selinux+xattrs
  3. Exclusion de répertoires : Pour exclure certains répertoires de la vérification (comme les dossiers temporaires), utilisez le symbole ! devant le chemin du répertoire à exclure. Par exemple, pour exclure /tmp et /var/tmp, ajoutez à la fin du fichier :

    !/tmp
    !/var/tmp

Ces exclusions sont utiles pour éviter les faux positifs et réduire les alertes inutiles sur les fichiers temporaires ou les montages réseau.

Une fois la configuration terminée, il faut créer la première base de données d'intégrité avec :

Fenêtre de terminal
sudo aide --init

Cela crée une base de données dans /var/lib/aide/aide.db.new, qui doit ensuite être déplacée pour devenir la base de référence :

Fenêtre de terminal
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Après cette configuration initiale, AIDE est prêt à détecter toute modification dans les fichiers et répertoires surveillés lors des prochains scans.

Pour vérifier l’intégrité des fichiers, exécutez la commande suivante :

Fenêtre de terminal
sudo aide --check

Cette commande compare l’état du système à la base de données de référence et génère un rapport listant les modifications. Les rapports d’AIDE indiquent les ajouts, modifications et suppressions de fichiers, avec des détails sur chaque changement. Par exemple :

File: /etc/ssh/sshd_config
Change: Permissions, Owner
Old permissions: 0644, root:root
New permissions: 0600, root:root

Les changements comme les modifications de permissions peuvent nécessiter une enquête approfondie.

Démonstration : d'une base saine à une altération détectée

Section intitulée « Démonstration : d'une base saine à une altération détectée »

Rien ne vaut un cycle complet pour comprendre AIDE. On surveille un répertoire de test /srv/data avec une règle simple (permissions, propriétaire, taille, horodatage et empreinte SHA-256), on construit la base de référence, puis on simule une intrusion.

On initialise la base, puis on la met en place comme référence :

Fenêtre de terminal
sudo aide --init
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
AIDE successfully initialized database.
New AIDE database written to /var/lib/aide/aide.db.new
Number of entries: 3

Tant que rien ne bouge, la vérification est propre :

Fenêtre de terminal
sudo aide --check
AIDE found NO differences between database and filesystem. Looks okay!!

Simulons maintenant une intrusion : un fichier de configuration modifié, un script déposé et un binaire supprimé. La vérification suivante les remonte tous les trois, classés par catégorie :

AIDE found differences between database and filesystem!!
Summary:
Total number of entries: 3
Added entries: 1
Removed entries: 1
Changed entries: 1

C'est tout l'intérêt d'AIDE : une exécution sans différence vous rassure, et la moindre altération ressort immédiatement avec le fichier concerné et les attributs qui ont changé. À vous ensuite de qualifier chaque écart.

La commande aide --update est utilisé pour mettre à jour la base de données d'intégrité lorsque des modifications légitimes ont été effectuées sur le système (comme une mise à jour de configuration ou de sécurité). Voici son fonctionnement et son utilité :

  1. Utilisation de aide --update : Cette commande génère une nouvelle base de données d'intégrité en comparant l’état actuel du système avec la base existante, mais elle ne remplace pas automatiquement la base de données initiale. Au lieu de cela, elle crée un fichier mis à jour dans le chemin spécifié dans la configuration (généralement /var/lib/aide/aide.db.new).

    Fenêtre de terminal
    sudo aide --update
  2. Déplacer la nouvelle base de données : Une fois la commande exécutée, vous devez manuellement remplacer la base de données de référence actuelle par la nouvelle pour que AIDE prenne en compte les modifications lors des prochains scans :

    Fenêtre de terminal
    sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Pour une surveillance continue, il est conseillé d’automatiser les scans AIDE avec un cron. Créez un script aide_check.sh qui lance un scan et envoie le rapport par e-mail aux administrateurs :

#!/bin/bash
aide --check | mail -s "AIDE Report" admin@stephrobert.tech

Ensuite, ajoutez une tâche cron pour exécuter ce script tous les jours :

Fenêtre de terminal
0 0 * * * /path/to/aide_check.sh

Cette approche assure une surveillance constante sans intervention manuelle, en générant des alertes en temps réel.

Bonnes pratiques pour optimiser l’utilisation de AIDE

Section intitulée « Bonnes pratiques pour optimiser l’utilisation de AIDE »

Pour réduire les faux positifs, maintenez la base de données d’AIDE à jour après chaque changement légitime du système, comme une mise à jour ou un changement de configuration. Il est aussi recommandé d’exclure les répertoires volatils comme /tmp et de personnaliser les règles en fonction des fichiers critiques de votre environnement pour éviter de surcharger le rapport d’alertes inutiles.

  1. AIDE est un HIDS d'intégrité de fichiers : il détecte modifications, ajouts et suppressions par rapport à une base de référence, il ne surveille pas le réseau.
  2. Le cycle tient en deux temps : aide --init construit la référence, aide --check la compare à l'état réel ; une base saine affiche found NO differences.
  3. Les règles d'aide.conf choisissent les attributs surveillés (permissions, propriétaire, empreinte SHA-256) et les répertoires à exclure (/tmp) pour limiter le bruit.
  4. Une modification légitime s'intègre avec aide --update, puis en promouvant la nouvelle base de référence.
  5. Protégez la base de référence et le binaire (support en lecture seule ou hors ligne) : un attaquant qui a compromis la machine peut sinon régénérer la base pour masquer ses traces.
  6. Automatisé par cron avec alerte, AIDE fournit une surveillance continue.
  7. AIDE complète le durcissement et l'audit système, il ne les remplace pas.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn