Le démon d'audit Linux (
auditd) est le composant user-space du système d'audit Linux. Il est responsable de l'écriture des enregistrements d'audit, générés par le noyau, sur le disque. C'est l'outil fondamental pour suivre les événements pertinents pour la sécurité sur votre système.
Pourquoi Utiliser auditd ?
- Traçabilité : Savoir qui a fait quoi, et quand. Essentiel pour les investigations forensiques.
- Conformité : Aide à répondre aux exigences de nombreuses normes de sécurité (PCI-DSS, HIPAA, etc.).
- Détection d'intrusions : Permet de détecter des activités anormales, comme des accès non autorisés à des fichiers critiques.
Prérequis
- Système d'exploitation : Toute distribution Linux moderne.
- Privilèges : Accès root ou privilèges sudo.
Installation et Activation
auditd est souvent installé par défaut sur les systèmes orientés serveur.
# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y auditd audispd-plugins
# Sur CentOS / RHEL / Fedora
sudo yum install -y audit
Une fois installé, activez et démarrez le service :
sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd
Configuration des règles d'audit
La puissance d'auditd réside dans ses règles. Elles sont définies dans des fichiers .rules dans le répertoire /etc/audit/rules.d/. Le fichier principal est souvent audit.rules.
Les règles permettent de surveiller des appels système (syscalls), des accès à des fichiers, etc.
Exemple 1 : Surveiller un fichier critique
Pour surveiller toute tentative de lecture ou de modification du fichier /etc/shadow :
# Surveille les écritures (w) et les modifications d'attributs (a)
# La clé "shadow_changes" permet de retrouver facilement ces événements dans les logs
-w /etc/shadow -p wa -k shadow_changes
Exemple 2 : Surveiller les commandes d'un utilisateur
Pour auditer toutes les commandes exécutées par un utilisateur avec un UID de 1001 :
# -a: always add rule, -S: syscall, -F: field filter
-a always,exit -F arch=b64 -S execve -F auid=1001 -k user_commands
Exemple 3 : Détecter les modifications de configuration réseau
-w /etc/sysconfig/network-scripts/ -p wa -k network_scripts_changed
Après avoir modifié les règles, il faut les charger :
sudo augenrules --load
auditd utilise maintenant vos nouvelles règles pour surveiller le système.
Interroger les logs d'audit
Les logs sont stockés dans /var/log/audit/audit.log. Ils sont denses, il est donc préférable d'utiliser les outils fournis pour les analyser.
ausearch : Rechercher des événements
C'est l'outil principal pour fouiller dans les logs.
# Rechercher par clé
sudo ausearch -k shadow_changes
# Rechercher par type d'événement (syscall) et par code de succès
sudo ausearch -sc execve -sv yes
# Rechercher les événements pour un utilisateur spécifique
sudo ausearch -ua 1001
aureport : Générer des rapports
aureport fournit des résumés sur l'activité enregistrée.
# Rapport sur les tentatives de connexion
sudo aureport -l
# Résumé des événements
sudo aureport -s
# Rapport sur les échecs d'authentification
sudo aureport -au -i --failed
Une configuration d'audit verbeuse peut générer une très grande quantité de logs. Assurez-vous d'avoir une politique de rotation et de gestion de l'espace disque adéquate (configurable dans
/etc/audit/auditd.conf).
Conclusion
auditd est un outil de sécurité indispensable pour tout administrateur système Linux. Il fournit un niveau de détail et de traçabilité qu'aucun autre outil ne peut égaler. Bien que la syntaxe de ses règles puisse être complexe, commencer avec quelques règles de surveillance de fichiers critiques est une première étape essentielle pour renforcer la sécurité de n'importe quel serveur.