Tutti i file di configurazione per l'audit di sicurezza si trovano in /etc/security. I seguenti file devono essere presenti prima dell'avvio del demone audit:
audit_class - Contiene le definizioni delle classi di audit.
audit_control - Controlla aspetti del sottosistema dell'audit, come le classi audit di default, il minimo spazio su disco da lasciare al log di audit, la massima dimensione della traccia di audit, etc.
audit_event - Nomi testuali e descrizioni degli eventi di audit di sistema, cosí come una lista di quali classi contengano quali eventi.
audit_user - Requisiti specifici dell'audit per l'utente, combinati con i default globali al login.
audit_warn - Uno script customizzabile usato da auditd per generare messaggi di warning in situazioni eccezionali, come ad esempio quando sta finendo lo spazio per i record o quando le tracce dell'audit sono ruotate.
Avvertimento: I file di configurazione dell'audit dovrebbero essere editati e manotenuti con attenzione, dato che errori nella configurazione possono risultare in un tracciamento improprio degli eventi.
Le espressioni per la selezione sono usate in un certo numero di posti nella configurazione dell'audit per determinare quali eventi dovrebbero essere sotto audit. Le espressioni contengono una serie di classi di eventi, ognuna con un prefisso che indica se i record che sono indicati debbano essere accettati o ignorati, ed opzionalmente ad indicare se i record che vengono individuati siano da tracciare ad un successo o ad un fallimento. Le espressioni di selezione sono valutate da sinistra a destra, e due espressioni sono combinate aggiungendo una all'altra.
La seguente lista contiene le classi di eventi di default presenti in audit_class:
all - all - Indica tutte le classi di eventi.
ad - administrative - Le azioni amministrative eseguite su un sistema nel suo complesso.
ap - application - Azioni definite dall'applicazione.
cl - file
close - Chiamate audit alla system call close
.
ex - exec - Fa l'audit delle esecuzioni di un programma. L'audit degli argomenti della command line e delle variabili di ambiente è controllato da audit_control(5) usando i parametri argv e envv nelle impostazioni della policy.
fa - file attribute access - Fa l'audit dell'accesso ad attributi di accesso come stat(1), pathconf(2) ed eventi simili.
fc - file create - Fa l'audit di eventi che hanno come risultato la creazione di un file.
fd - file delete - Fa l'audit di eventi in cui avvenga una cancellazione di file.
fm - file attribute modify - Fa l'audit di eventi in cui avvenga una modifica degli attributi dei file, come chown(8), chflags(1), flock(2), etc.
fr - file read - Fa l'audit di eventi nei quali dei dati siano letti, file siano aperti in lettura, etc.
fw - file write - Fa l'audit di eventi in cui dati siano scritti, file siano scritti o modificati, etc.
io - ioctl - Fa l'audit dell'uso della system call ioctl(2).
ip - ipc - Fa l'audit di varie forme di Inter-Process Communication, incluse pipe POSIX e operazioni IPC System V.
lo - login_logout - Fa l'audit di eventi di login(1) e logout(1) che occorrano nel sistema.
na - non attributable - Fa l'audit di eventi non attribuibili.
no - invalid class - Indica nessun evento di audit.
nt - network - Fa l'audit di eventi relativi ad azioni di rete, come connect(2) e accept(2).
ot - other - Fa l'audit di eventi miscellanei.
pc - process - Fa l'audit di operazioni dei processi, come exec(3) e exit(3).
Queste classi di eventi audit possono essere personalizzate modificando i file di configurazione audit_class e audit_event.
Ogni classe di audit nella lista è combinata con un prefisso che indica se le operazione di successo o andate in fallimento siano intercettate, e se la entry sta aggiungendo o togliendo delle regole di intercettazione per la classe ed il tipo.
(none) Fa l'audit di istanze dell'evento sia di successo che fallite.
+ Fa l'audit di eventi di successo in questa classe.
- fa l'audit di eventi falliti in questa classe.
^ Non fa l'audit di eventi nè di successo nè falliti in questa classe.
^+ Non fa l'audit di eventi di successo in questa classe.
^- Non fa l'audit di eventi falliti in questa classe.
Il seguente esempio di selezione indica eventi di login/logout sia di successo che non, ma solo eventi di successo di esecuzione:
lo,+ex
Nella maggior parte dei casi, gli amministratori dovranno solo modificare due file quando configurano il sistema audit: audit_control ed audit_user. Il primo controlla le proprietà e le politiche di tutto il sistema, il secondo può essere usato per fare del fine tuning iper il singolo utente.
Il file audit_control specifica un certo numero di valori di default per il sottosistema audit. Leggendo i contenuti di questo file, notiamo le seguenti righe:
dir:/var/audit flags:lo minfree:20 naflags:lo policy:cnt filesz:0
L'opzione dir
viene usata per impostare una o più
directory dove i file di log dell'audit vengono salvati. Se appare più di una directory,
saranno usati in ordine uno dopo l'altro, dopo che uno si riempie. È comune configurare
audit cosicchè i log siano tenuti in un filesystem dedicato, per prevenire interferenze
fra il sottosistema audit ed altri sottosistemi se il filesystem si riempie.
Il campo flags
imposta la maschera di preselzione per gli
eventi attribuibili per tutto il sistema. Nell'esempio sopra, i login ed i logout di
successo e quelli falliti sono tenuti sotto audit per tutto il sistema.
L'opzione minfree
definisce la minima percentuale di
spazio libero per i file system dove vengono conservate le tracce dell'audit. Quando
questo limite viene superato, sarà generato un warning. L'esempio sopra imposta il minimo
spazio libero al venti per cento.
L'opzione naflags
specifica le classi di audit da tenere
sotto audit per gli eventi non attribuibili, come il processo di login ed i demoni di
sistema.
L'opzione policy
specifica una lista separata da virgole
di flag per le politiche che controllano vari aspetti del comportamento dell'audit. Il
flag di default cnt indica che il sistema dovrebbe continuare a
funzionare nonostante un errore dell'audit (questa flag è altamente consigliato). Un
altro flag usato di comune è argv, che fa sì che gli argomenti
di command line della sistema call execve(2) siano tenuti
sotto audit come parte dell'esecuzione del comando.
L'opzione filesz
specifica la massima dimensione in bytes
da tenere per le tracce di audit, prima di terminarli automaticamente e routarli. Il
default, 0, disabilita la rotazione dei file di log. Se la dimensione è diversa di zero
ma minore del minimo, 512k, sarà ignorata ed un messaggio di log sarà generato.
Il file audit_user permette all'amministratore di specificare ulteriori requisiti dell'audit per utenti specifici. Ogni linea configura l'audit per un utente attraverso due campi: il primo campo è alwaysaudit, che specifica un insieme di eventi che dovrebbero sempre essere tenuti sotto audit per l'utente, ed il secondo è il campo neveraudit, che specifica un insieme di eventi che non dovrebbero mai essere tenuti sotto audit per l'utente.
Il seguente esempio di file audit_user fa l'audit di eventi di login/logout e delle esecuzioni di successo per l'utente root, e fa l'audit della creazione e dell'esecuzione di successo per l'utente www. Se usato con il file di esempio audit_control sopra riportato, l'entry lo per root è ridondante, e gli eventi di login/logout sarano tenuti sotto audit anche per l'utente www.
root:lo,+ex:no www:fc,+ex:no
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.