Perché conta
Un sistema che non osservi è un sistema di cui non sai nulla: non puoi accorgerti di una compromissione, né ricostruire cosa è successo dopo. auditd è la scatola nera di Linux: registra, a livello di kernel, eventi di sicurezza — chi ha letto un file sensibile, chi ha eseguito un comando, chi ha modificato la configurazione, quali syscall sono state invocate. È indispensabile per le indagini forensi e richiesto da molti standard (PCI DSS, CIS). A differenza del semplice logging applicativo, opera sotto le applicazioni, quindi è difficile da eludere.
Come funziona
Il kernel genera eventi secondo le regole che carichi; auditd li scrive in
/var/log/audit/audit.log. Le regole possono sorvegliare file (watch) o syscall (con filtri).
|
|
Regole utili
Si mettono in /etc/audit/rules.d/*.rules (caricate al boot). Due famiglie:
|
|
I watch su /etc/passwd, /etc/shadow, /etc/sudoers catturano esattamente le modifiche che un
attaccante fa per persistere (creare un account, darsi sudo). La regola su execve registra ogni
comando eseguito — preziosissima in un’indagine.
|
|
-e 2 è importante: blocca le regole finché non si riavvia, così un attaccante non può disattivare
l’audit al volo per nascondersi.
Interrogare i log
|
|
Le chiavi (-k) sono il trucco di usabilità: etichetti le regole per argomento e poi filtri gli
eventi per argomento, senza grep a mano in un log enorme.
Attenzione al volume
auditd può generare moltissimi eventi: la regola su execve su un sistema attivo produce molto. Si
bilancia — sorvegliare i file davvero sensibili e i comandi di root, non tutto — e si gestiscono
rotazione e spazio (max_log_file, space_left_action in /etc/audit/auditd.conf), inviando
idealmente i log a un collettore esterno (prossimo capitolo).
Conclusione
auditd registra a livello di kernel chi tocca i file sensibili e chi esegue comandi, in modo difficile
da eludere (regole immutabili con -e 2), interrogabile per chiavi con ausearch/aureport: la
scatola nera per indagini e compliance. auditd è specializzato sugli eventi di sicurezza; il resto dei
log di sistema — servizi, kernel, boot — passa per journald, il prossimo capitolo.