17.5. Amministrare il Sottosistema Audit
Indietro | Capitolo 17. Auditing degli Eventi di Sicurezza | Avanti

## 17.5. Amministrare il Sottosistema Audit

### 17.5.1. Leggere le Tracce di Audit

Le tracce di audit sono conservate nel formato binario BSM, così devono essere usati degli strumenti appositi per modificare o convertirli a testo. Il comando praudit(1) converte file di traccia a semplice formato testo; il comando `auditreduce` può essere usato per ridurre file di traccia per analisi, archiviazione o stampa. auditreduce(1) supporta una varietà di parametri di selezione, incluso il tipo di evento, la classe dell'evento, l'utente, la data o l'ora dell'evento, ed il percorso del file o l'oggetto su cui si opera.

Per esempio, l'utility `praudit` farà il dump dell'intero contenuto di uno specifico file di log di audit in semplice formato testuale:

    # praudit /var/audit/AUDITFILE

Dove `AUDITFILE` è il nome del file di log di cui fare il dump.

Le tracce di audit consistono in una serie di record di audit composti da token, che `praudit` scrive sequenzialmente uno per linea. Ogni token è per un tipo specifico, come `header` che tiene un header di un record audit, o `path` che tiene un percorso di file da una ricerca del nome. Il seguente è un esempio di un evento `execve`:

    header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
    exec arg,finger,doug
    path,/usr/bin/finger
    attribute,555,root,wheel,90,24918,104944
    subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
    return,success,0
    trailer,133

Questo audit rappresenta una chiamata di successo a `execve`, in cui il comando `finger doug` è stato eseguito. Il token degli argomenti contiene la riga di comando presentata dalla shell al kernel. Il token `path` contiene il percorso dell'eseguibile usato dal kernel. Il token `attribute` descrive il binario, ed in particolare include i permessi del file che possono essere usato per determinare se l'applicazione era setuid. Il token `subject` descrive il processo in oggetto e conserva in sequenza l'id utente dell'audit, l'id effettivo dell'utente, il group id, lo user id reale ed il group id reale, il process id, l'id della sessione, l'id della porta e l'indirizzo di login. Nota che l'audit user id ed il real user id sono diversi: l'utente `robert` è diventato `root` prima di eseguire questo comando, ma questo viene tenuto sotto audit usando lo user id originale. Infine, il token `return` indica l'esecuzione andata a buon fine, ed il `trailer` chiude il record.

In FreeBSD 6.3 e successive, `praudit` supporta anche il formato di output XML, che può essere selezionato usando l'argomento `-x`.

### 17.5.2. Ridurre le Tracce di Audit

Dato che i log dell'audit possono essere molto grandi, un amministratore probabilmente vorrà selezionarne solo un sottoinsieme utile, ad esempio i record associati con un utente specifico:

    # auditreduce -u trhodes /var/audit/AUDITFILE | praudit

Questo selezionerà tutti i record di audit per l'utente `trhodes` conservati nel file `AUDITFILE`.

### 17.5.3. Delegare Diritti di Ispezionare l'Audit

I membri del gruppo `audit` hanno il permesso di leggere tracce di audit in `/var/audit`; di default questo gruppo e' vuoto, così solo `root` può leggere le tracce di audit. Utenti possono essere aggiunti al gruppo `audit` per delegare diritti di lettura sull'audit. Dato che l'abilità di tracciare contenuti del log di audit fornisce significative informazioni sul comportamento di utenti e processi, si raccomanda che la delega di lettura sia fatta con cautela.

### 17.5.4. Monitoraggio dal Vivo Usando Pipe di Audit

Le pipe di audit sono degli pseudo-device clonanti nel file system dei device che permettono alle applicazioni di intercettare lo stream dei record di audit in tempo reale. Questo è di primario interesse per i creatori di applicativi di intrusion detection e di monitoraggio di sistemi. In ogni caso, per l'amministratore il device della pipe dell'audit è un modo conveniente per permettere il monitaraggio dal vivo senza incontrare problemi con i permessi della traccia audit o la rotazione dei log che interrompono lo stream degli eventi. Per tracciare lo stream degli eventi dell'audit, usa la seguente linea di comando:

    # praudit /dev/auditpipe

Di default, i nodi di device delle pipe dell'audit sono accessibili solo dall'utente `root`. Per renderlo accessibile ai membri del gruppo `audit`, aggiungi una regola `devfs` al file `devfs.rules`:

    add path 'auditpipe*' mode 0440 group audit

Leggi devfs.rules(5) per altre informazioni su come configurare il filesystem devfs.

### Avvertimento:

È facile produrre cicli di feedback di eventi audit, in cui il semplice osservare ogni evento di audit risulta nella creazione di più eventi di audit. Per esempio, se tutto il traffico di rete viene tenuto sotto audit, e praudit(1) viene eseguito da una sessione SSH, un flusso continuo di notevoli dimensioni di eventi audit sarà generato, dato che ogni evento scritto genererà un altro evento. È consigliabile eseguire `praudit` su un device pipe di audit da sessioni senza audit I/O in grande dettaglio, per evitare fenomeni come questo.

### 17.5.5. Ruotare File di Traccia di Audit

Le tracce di audit sono scritte solo dal kernel, e gestite solo dal demone dell'audit, auditd. Gli amministratori non dovrebbero cercare di usare newsyslog.conf(5) o altri tool per ruotare direttamente i log di audit. Invece, il tool di gestione `audit` può essere usato per interrompere l'audit, riconfigurare il sistema di audit, ed eseguire la rotazione dei log. Il seguente comando fa sì che il demone audit crei un nuovo log di audit e segnali al kernel di usare il nuovo log. I vecchio log sarà terminato e rinominato, ed a questo punto potrà essere manipolato dall'amministratore.

    # audit -n

### Avvertimento:

Se il demone auditd non sta girando al momento, questo comando fallirà e sarà prodotto un messaggio di errore.

Aggiungendo la seguente linea a `/etc/crontab` forzerà la rotazione ogni dodici ore da parte di cron(8):

    0     */12       *       *       *       root    /usr/sbin/audit -n

Il cambiamento prenderà effetto dopo che hai salvato il nuovo `/etc/crontab`.

La rotazione automatica della traccia dell'audit basata sulla dimensione del file è possibile attraverso l'opzione `filesz` in audit_control(5), ed è descritta nella sezione sui file di configurazione di questo capitolo.

### 17.5.6. Comprimere le Tracce di Audit

Man mano che i file di traccia dell'audit diventano di grandi dimensioni, è spesso desiderabile comprimerli o in qualche modo archiviarli dopo che sono stati chiusi dal demone audit. Lo script `audit_warn` può essere usato per eseguire operazioni personalizzate per una varietà di eventi relativi all'audit, incluse la chiusura pulita delle tracce di audit quando sono ruotate. Ad esempio, il seguente comando può essere aggiunto allo script `audit_warn` per comprimere le tracce di audit alla chiusura:

    #
    # Compress audit trail files on close.
    #
    if [ "$1" = closefile ]; then
            gzip -9 $2
    fi

Altre attività di archiviazione possono includere copiare i file di traccia su di un server centralizzato, cancellare file di traccia vecchi, o ridurre la traccia di audit per rimuovere i record non voluti. Lo script sarà eseguito solo quando i file di traccia sono chiusi in maniera pulita, così non sarà eseguito su tracce lasciate non terminate a seguito di uno shutdown improprio.

Indietro | Risali | Avanti
17.4. Configurazione dell'Audit | Partenza | Capitolo 18. Archiviazione dei Dati

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 <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.