Audit système (auditd)

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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

Voir aussi

  • AIDE — contrôle d'intégrité des fichiers (complémentaire de l'audit d'accès)
  • OpenSCAP — évaluation de conformité intégrant des contrôles auditd