Audit système (auditd)
| Fiche express | |
|---|---|
| Domaine | Audit et traçabilité système |
| Démon | auditd
|
| Config | /etc/audit/auditd.conf, /etc/audit/audit.rules
|
| Outils | auditctl, ausearch, aureport
|
| Voir aussi | AIDE · OpenSCAP |
auditd est le démon d'audit du noyau Linux. Il enregistre de manière fiable les événements de sécurité du système (accès à des fichiers sensibles, appels système, authentifications, changements de configuration) afin de répondre aux exigences de traçabilité et de conformité (PCI-DSS, STIG, ANSSI). Les règles définissent quels événements sont journalisés ; les journaux sont ensuite interrogés avec ausearch et synthétisés avec aureport.
Installation
# RHEL / Rocky / AlmaLinux / Fedora
dnf install -y audit
# Debian / Ubuntu
apt install -y auditd
Fichiers principaux :
ls -asl /etc/audit/
# auditd.conf -> configuration du démon (rotation, taille des logs, actions)
# audit.rules -> règles chargées au démarrage
Gestion des règles
Règles à chaud (non persistantes)
Une règle posée avec auditctl reste active jusqu'au prochain redémarrage :
# Surveiller les écritures et changements d'attributs sur /etc/passwd
auditctl -w /etc/passwd -p wa -k password-file
# Rechercher les événements associés à ce fichier
ausearch -f /etc/passwd
ausearch -f /etc/passwd -i # -i : rendu lisible (résolution des identifiants)
# Afficher les règles actives
auditctl -l
Permissions surveillées via -p :
| Indicateur | Signification |
|---|---|
r |
lecture |
w |
écriture |
x |
exécution |
a |
changement d'attributs |
Règles persistantes
Les règles permanentes sont déclarées dans /etc/audit/audit.rules :
# Écritures et changements d'attributs sur /etc/passwd
-w /etc/passwd -p wa -k passwd_changes
# Règle sur appel système / chemin, avec filtres
-a always,exit -F path=/file.txt -F perm=wa -F group=helpdesk -F user!=john
# Exclure un service bruyant
-a never,user -F subj_type=crond_t
-a never,exit -F subj_type=crond_t
Syntaxe générale d'une règle sur appel système :
auditctl -a <action>,<filter> -S <system_call> -F arch=b64 -F <champ>=<valeur> -k <clé>
Rechargement après modification :
augenrules --load # recompile /etc/audit/rules.d/ vers audit.rules
systemctl restart auditd
Rapports
# Rapport sur une plage de dates
aureport --start 04/08/2013 00:00:00 --end 04/11/2013 00:00:00
# Exécutions
aureport -x
aureport -x --summary
# Tentatives d'accès en échec
aureport -u --failed --summary
# Résumé des connexions
aureport --login --summary -i
# Chaîner ausearch et aureport
ausearch --start today --loginuid 500 --raw | aureport -f --summary
Règles préconfigurées
Des jeux de règles prêts à l'emploi (STIG, etc.) sont fournis avec le paquet :
ls /usr/share/audit/sample-rules/ # ou /usr/share/doc/audit-<version>/rules
auditctl -R /usr/share/audit/sample-rules/30-stig.rules