AIDE
| 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.confdoit ê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
- Audit système (auditd) — audit des accès et appels système
- Tripwire — autre outil de contrôle d'intégrité (HIDS)
- Site officiel
- Dépôt GitHub