Linux: comando “auditd” per monitorare e registrare eventi di sicurezza

INFORMATICA, LINUX, TUTORIAL

Nel mondo della sicurezza informatica, il monitoraggio e la registrazione degli eventi sono fondamentali per garantire l’integrità e la riservatezza dei sistemi. Uno degli strumenti più potenti e versatili disponibili su piattaforme Linux per questo scopo è il comando auditd, parte del sistema di auditing Linux. Auditd monitorizza e registra varie attività e eventi del sistema, fornendo agli amministratori una visione dettagliata di ciò che accade sui loro server.

Il sistema di auditing Linux è composto da vari componenti che lavorano insieme per catturare, archiviare e analizzare i dati relativi agli eventi di sicurezza. Il componente principale è auditd, il demone di audit, che opera in background e raccoglie i dati di audit basandosi sulle regole configurate. Questi dati possono includere accessi ai file, modifiche ai permessi, esecuzioni di comandi, e molto altro.

Come funziona il comando ‘auditd’

Auditd funziona intercettando le chiamate di sistema (syscall) e altri eventi configurati, registrandoli in file di log situati solitamente in /var/log/audit/audit.log. Le informazioni registrate possono poi essere analizzate utilizzando vari strumenti e comandi associati, come ausearch e aureport.

Per configurare auditd, è necessario definire delle regole di audit che specificano quali eventi devono essere monitorati. Queste regole sono generalmente scritte nel file di configurazione /etc/audit/audit.rules. Ecco un esempio di regola che registra ogni tentativo di accesso a un file specifico:

-w /etc/passwd -p rwxa -k passwd_changes

-w specifica il file da monitorare (/etc/passwd), -p indica i permessi (lettura, scrittura, esecuzione e modifica dell’attributo), e -k assegna una chiave per facilitare la ricerca e il reporting.

Vantaggi dell’utilizzo di ‘auditd’

Utilizzare auditd offre numerosi vantaggi per la sicurezza e la gestione del sistema, tra cui:

  • Tracciamento dettagliato: Auditd fornisce un log dettagliato di tutte le attività monitorate, rendendo più facile individuare problemi di sicurezza e comportamenti anomali.
  • Conformità: Molte normative di sicurezza richiedono la registrazione dettagliata degli eventi di sistema. L’auditing con auditd aiuta a soddisfare tali requisiti.
  • Analisi forense: I log di auditd possono essere usati per ricostruire eventi e identificare vulnerabilità in caso di incidente di sicurezza.
  • Versatilità: Auditd è altamente configurabile e può monitorare una vasta gamma di eventi, adattandosi alle necessità specifiche di ogni ambiente.

In conclusione, il comando auditd e il sistema di auditing Linux sono strumenti indispensabili per qualsiasi amministratore di sistema che desideri garantire la sicurezza del proprio ambiente. La capacità di monitorare e registrare ogni evento migliora la sicurezza e facilita la conformità normativa e l’analisi forense.

Configurazione di base di ‘auditd’ e dei suoi file di configurazione

Per iniziare con auditd su un sistema Linux, la configurazione iniziale è fondamentale per un monitoraggio efficace degli eventi di sicurezza. La configurazione di auditd prevede la modifica di vari file di configurazione, come /etc/audit/auditd.conf.

Il file auditd.conf contiene impostazioni generali per il demone di audit, tra cui la posizione dei file di log, la gestione della rotazione dei log e altre opzioni relative alla performance e alla sicurezza. Ecco un esempio di alcune impostazioni comuni:

log_file = /var/log/audit/audit.log
max_log_file = 8
num_logs = 5
space_left_action = email
admin_space_left_action = halt
max_log_file_action = rotate

Accanto a auditd.conf, un altro file cruciale è /etc/audit/audit.rules. Questo file definisce le regole specifiche per il monitoraggio degli eventi. Un esempio di regola può essere:

-a always,exit -F arch=b64 -S open,openat,creat -F auid>=1000 -F auid!=unset -k file_open

Creazione e gestione delle regole di auditing

Per monitorare e registrare eventi specifici, è necessario comprendere la configurazione delle regole di auditing in /etc/audit/audit.rules. Ecco un esempio di come monitorare l’apertura o la modifica di file di configurazione critici:

-w /etc/passwd -p wa -k passwd_changes

Le regole possono variare in complessità e potenza. La chiave è trovare un equilibrio tra dettaglio e gestione della dimensione del log per evitare di produrre volumi di dati inutili.

Per visualizzare e analizzare i log generati, auditd mette a disposizione strumenti come ausearch e aureport. Ad esempio:

ausearch -k passwd_changes
aureport -f

Analisi dei log generati da ‘auditd’

La capacità di analizzare efficacemente i log generati da auditd è cruciale. Gli strumenti ausearch e aureport permettono di interrogare e visualizzare i dati in modo mirato. La correlazione degli eventi può rivelarsi estremamente utile per comprendere il contesto dietro un’anomalia.

Oltre agli strumenti di auditd, esistono soluzioni di analisi come SIEM che possono integrare i log da auditd con quelli di altre sorgenti, offrendo una visione più completa della sicurezza del sistema. Inoltre, è essenziale impostare allarmi e notifiche automatizzate per eventi critici.

La manutenzione continua dei log è cruciale. È consigliabile implementare rotazioni regolari dei log con strumenti come logrotate. Questo garantisce una gestione efficiente dello spazio di archiviazione e mantiene il sistema operativo performante.

Integrazione di ‘auditd’ con altri strumenti di sicurezza

L’integrazione di auditd con altri strumenti di sicurezza garantisce una protezione robusta in ambienti Linux. Ad esempio, l’uso di sistemi SIEM (Security Information and Event Management) consente di aggregare e analizzare i log provenienti da auditd e altre sorgenti, fornendo una visione centralizzata delle minacce.

Per l’elaborazione avanzata dei log, l’integrazione con la ELK Stack (Elasticsearch, Logstash, Kibana) è molto efficace. Logstash raccoglie i log da auditd, li normalizza e li invia a Elasticsearch. Kibana offre strumenti per la visualizzazione e l’analisi interattiva dei dati.

Strumenti come swatch (Simple Log Watcher) possono monitorare continuamente i log e inviare notifiche in tempo reale per eventi critici. Questo miglioramento della reattività è cruciale per la sicurezza.

Oltre a soluzioni commerciali e open source, si possono sviluppare script personalizzati per analizzare i log di auditd in base alle esigenze specifiche dell’organizzazione. La chiave è trovare un equilibrio tra dettaglio e gestione della dimensione del log per evitare di produrre volumi di dati inutili.

Esempi pratici nell’uso di ‘auditd’

Il comando auditd su Linux è essenziale per monitorare e registrare eventi di sicurezza, contribuendo alla conformità e alla sicurezza del sistema. Di seguito sono riportati alcuni esempi pratici per configurare e utilizzare auditd:

Installazione di auditd

Su una distribuzione basata su Debian, come Ubuntu, eseguire:

sudo apt-get install auditd audispd-plugins

Su una distribuzione basata su Red Hat, come CentOS o Fedora, utilizzare:

sudo yum install audit audit-libs

Configurazione di auditd

Configurare auditd modificando il file /etc/audit/auditd.conf:

log_file = /var/log/audit/audit.log
max_log_file = 50
num_logs = 5

Definizione delle regole di audit

Le regole di audit possono essere aggiunte nel file /etc/audit/rules.d/audit.rules o applicate dinamicamente usando auditctl:

sudo auditctl -w /etc/ -p wa -k etc_files

Monitoraggio delle esecuzioni di comandi specifici

Per monitorare l’uso del comando passwd:

sudo auditctl -w /usr/bin/passwd -p x -k passwd_changes

Consultazione e reporting dei log di audit

Per cercare eventi correlati ai file di configurazione di /etc:

sudo ausearch -k etc_files

Per un’analisi più dettagliata:

sudo aureport -f -i

 

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form