Construire et tester la base de données AIDE
Garantit que AIDE est installé et qu'une base d'intégrité initiale existe sous /var/lib/aide/aide.db*.
Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
AIDE (Advanced Intrusion Detection Environment) détecte les modifications non autorisées de fichiers en comparant l'état courant à une référence. Cette référence n'est utile que si une base « known-good » a réellement été construite à partir d'une installation de confiance. Sans base initialisée, AIDE ne peut dire si un binaire, une config ou une bibliothèque a été altéré, n'offrant silencieusement aucune protection.
Ce que vérifie Pavois
Pavois confirme que le binaire aide est dans le PATH et qu'un fichier aide.db* est présent dans /var/lib/aide/. Il vérifie la base réellement sur disque, pas seulement l'état du paquet, car un paquet peut être installé sans que la base ait jamais été initialisée, l'artefact protecteur effectif est le fichier de base lui-même.
describe command('command -v aide >/dev/null 2>&1 && ls /var/lib/aide/aide.db* >/dev/null 2>&1 && echo ok || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez command -v aide && ls -l /var/lib/aide/aide.db*. Attendez-vous au chemin du binaire ainsi qu'à un fichier de base non vide. Une vérification manuelle avec aide --check (RHEL) ou aide.wrapper --check (Debian) doit ne signaler aucun changement inattendu sur un système propre.
Inspecter et investiguer
Les résultats des exécutions d'AIDE sont écrits dans /var/log/aide/aide.log (Debian) ou vers le chemin de rapport de /etc/aide.conf, et souvent envoyés par mail à root. Confirmez le paquet avec dpkg -l aide / rpm -q aide, et le fichier de base avec ls -l /var/lib/aide/aide.db*.
Remédiation
Aucun plan de durcissement automatisé n'est fourni ; appliquez-la manuellement. Installez AIDE (apt install aide / dnf install aide), puis initialisez la référence : sur Debian/Ubuntu aideinit (écrit aide.db.new, que vous déplacez vers aide.db) ; sur RHEL aide --init puis mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz. Construisez la référence uniquement sur un système de confiance fraîchement installé.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| command | aideinit -y -f >/dev/null 2>&1 || aide --init; mv -f /var/lib/aide/aide.db.new /var/lib/aide/aide.db 2>/dev/null || true |
|---|---|
| name | aide-build-database |
| not_if | ls /var/lib/aide/aide.db >/dev/null 2>&1 |
| resource | exec |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
La précaution essentielle est la confiance dans la référence : si vous initialisez la base sur un hôte déjà compromis, AIDE considérera les fichiers de l'attaquant comme sains et ne les signalera jamais. Construisez-la avant d'exposer la machine au réseau. Sur le plan opérationnel, le balayage initial est gourmand en E/S et peut prendre plusieurs minutes sur de grands systèmes de fichiers, et vous devez reconstruire la base (aide --update) après chaque changement légitime (mises à jour de paquets, modifications de config), sous peine de faux positifs en masse.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R76 | direct | 2.0 | haute |
| CIS | 11.5.2, 6.3.1, 6.1.1 | direct | per OS, see the benchmark table | haute |
| NIST | CM-6(a) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 11.5.2 | support | 4.0.1 | moyenne |
| DISA STIG | UBTU-22-651015, UBTU-24-100110 | direct | per OS STIG release | haute |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.