AIDE

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Contrôle d'intégrité des fichiers
Type HIDS (host-based IDS)
Config /etc/aide.conf (RHEL), /etc/aide/aide.conf (Debian)
Licence GPLv2
Voir aussi Audit système (auditd) · Tripwire

AIDE (Advanced Intrusion Detection Environment) est un outil open-source de détection d'intrusion basé sur l'hôte (HIDS). Il fonctionne en créant une base de données de référence des fichiers du système, puis en comparant périodiquement l'état actuel à cette base pour détecter toute modification non autorisée (intégrité des fichiers).

Présentation

AIDE construit une base de données contenant les attributs et empreintes cryptographiques des fichiers surveillés. Lors des contrôles ultérieurs, il signale toute différence : ajout, suppression, modification de contenu, changement de permissions, de propriétaire, d'inode, etc.

  • Site officiel : https://aide.github.io/
  • Licence : GPLv2
  • Langage : C
  • Type : HIDS (Host-based Intrusion Detection System)

Installation

Sur RHEL / Rocky / AlmaLinux / Fedora

sudo dnf install aide

Sur Debian / Ubuntu

sudo apt install aide aide-common

Fichiers principaux

Chemin Rôle
/etc/aide.conf Fichier de configuration principal (RHEL-like)
/etc/aide/aide.conf Fichier de configuration (Debian-like)
/var/lib/aide/aide.db.gz Base de données de référence
/var/lib/aide/aide.db.new.gz Nouvelle base générée lors d'une initialisation/mise à jour
/var/log/aide/aide.log Journal des contrôles d'intégrité

Configuration

Le fichier aide.conf définit :

  • les chemins surveillés et ceux à exclure
  • les groupes de règles (quels attributs vérifier)
  • l'algorithme de hachage utilisé (SHA256, SHA512, etc.)
  • l'emplacement de la base de données

Exemple de règles

# Définition de groupes de contrôle
NORMAL = p+i+n+u+g+s+m+c+md5+sha256
DIR    = p+i+n+u+g

# Surveillance
/etc        NORMAL
/bin        NORMAL
/sbin       NORMAL
/usr/bin    NORMAL
/usr/sbin   NORMAL

# Exclusions
!/var/log/.*
!/proc
!/sys

Principaux attributs de contrôle

Attribut Signification
p Permissions
i Numéro d'inode
n Nombre de liens
u Propriétaire (UID)
g Groupe (GID)
s Taille
m mtime (modification)
c ctime (changement d'inode)
md5, sha256, sha512 Empreintes cryptographiques

Utilisation

Initialisation de la base de données

sudo aide --init

La base est créée dans /var/lib/aide/aide.db.new.gz. Il faut la renommer pour la rendre active :

sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Contrôle d'intégrité

sudo aide --check

Sortie typique en cas de modification :

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

Mise à jour de la base

Après des modifications légitimes (mises à jour système, changements de configuration) :

sudo aide --update
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Sous Debian, la commande aideinit effectue l'initialisation et le déplacement de la base automatiquement :

sudo aideinit

Comparaison de deux bases

sudo aide --compare

Automatisation

Via cron

Exemple dans /etc/cron.daily/aide-check :

#!/bin/bash
/usr/sbin/aide --check | mail -s "AIDE check $(hostname)" root

Via systemd timer

Unité /etc/systemd/system/aide-check.service :

[Unit]
Description=AIDE integrity check

[Service]
Type=oneshot
ExecStart=/usr/sbin/aide --check

Timer /etc/systemd/system/aide-check.timer :

[Unit]
Description=Daily AIDE integrity check

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Activation :

sudo systemctl enable --now aide-check.timer

Bonnes pratiques

  • Stocker la base hors du système surveillé (NFS en lecture seule, support amovible, serveur centralisé) afin d'empêcher un attaquant de la falsifier.
  • Conserver le binaire et la configuration sur un support de confiance pour les exécuter depuis l'extérieur en cas de doute.
  • Régénérer la base après chaque mise à jour système légitime pour limiter le bruit.
  • Centraliser les rapports (mail, syslog, SIEM) pour ne pas dépendre uniquement de la machine auditée.
  • Signer ou hasher la base de référence et conserver l'empreinte hors-ligne.
  • Auditer la configuration AIDE elle-même : aide.conf doit être en lecture seule pour root et idéalement contrôlé par AIDE.

Codes de retour

Code Signification
0 Aucune différence détectée
1 Nouveaux fichiers détectés
2 Fichiers supprimés
4 Fichiers modifiés
14 Erreur d'écriture
15 Erreur de configuration / invalidité

Les codes 1, 2 et 4 sont combinables (somme bit à bit).

Voir aussi