Linux: comando “auditd” per monitorare e registrare eventi di sicurezza
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
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.