Aller au contenu

Advanced Intrusion Detection Environment (AIDE)

Mise à jour :

De nos jours les cyberattaques sont omniprésentes, garantir l’intégrité de nos systèmes est indispensable. AIDE (Advanced Intrusion Detection Environment) est un outil conçu pour surveiller les modifications des fichiers système et détecter toute altération potentiellement malveillante.

Historique et origine de AIDE

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.

Fonctionnalités principales de AIDE

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.

Installation de AIDE

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 :

Terminal window
sudo apt update
sudo apt install aide

Sur CentOS ou Fedora :

Terminal window
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 :

Terminal window
./configure
make
sudo make install

Configuration initiale de AIDE

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.

Fichier /etc/default/aide

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.

Fichier /etc/aide/aide.conf

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 :

    Terminal window
    sudo vi /etc/aide/aide.conf

    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.

Initialisation de la base de données

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

Terminal window
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 :

Terminal window
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.

Exécution et analyse des rapports AIDE

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

Terminal window
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.

Que faire en cas de modifications légitimes

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).

    Terminal window
    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 :

    Terminal window
    sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Automatisation des vérifications

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 :

Terminal window
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

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.

Conclusion

AIDE est un outil puissant et flexible pour surveiller l’intégrité des fichiers système, en détectant les changements non autorisés qui pourraient indiquer une intrusion. Son installation et sa configuration sont simples, et avec une automatisation adéquate, AIDE devient un atout essentiel pour toute stratégie de sécurité informatique.