AIDE/it

AIDE (Advanced Intrusion Detection Environment) è un HIDS (Host-based Intrusion Detection System). AIDE scansiona file ed altre risorse, immagazzinando informazioni riguardo a questi in un database. Le informazioni immagazzinate includono alcuni attributi chiave dei file come l'hash, la dimensione, ownership, modification time, creation time, ed altri. Dopo la creazione iniziale del database, AIDE riscansiona il sistema e compara i nuovi risultati con quelli precedentemente immagazzinati. Se i valori differiscono, il file è stato modificato ed il cambiamento viene riportato. L'idea dietro all'utilizzo di AIDE è di creare un'immagine del sistema e poi compararla con una già creata in modo da identificare file compromessi.

Opzioni USE
Installare è semplice una volta settate le opzioni USE.

Le opzioni USE specifiche ad un certo pacchetto dovrebbero essere definite in, oppure in un file di testo dentro una directory chiamata. Per esempio, utilizzando come file:

Emerge
Dopo aver settato le opzioni USE, si installi il software:

Panoramica
Il file di configurazione per non è così spaventoso come può sembrare a prima vista. Il file predefinito si trova in, ma gli amministratori possono facilmente creare molteplici file se necessario. Oltre ad alcune variabili, il file di configurazione utilizza una notazione breve per i vari aspetti dei file da scansionare (solo hash, o anche informazioni sugli inode, ecc.) e quali file scansionare.

Di seguito sono riportate le variabili relative al database:

La prima riga dell'esempio sopra definisce il percorso del database che contiene i valori conosciuti. La seconda riga definisce dove scrivere il nuovo database quando viene generato. Si raccomanda di non far puntare queste variabili allo stesso database (con lo stesso percorso per ogni variabile). Se un database deve sovrascrivere l'altro, il miglior metodo è di copiare manualmente il nuovo database da un posto all'altro. Per esempio, per sovrascrivere il primo database con il secondo, è possibile usare questo comando:

Per ora, si lascino le impostazioni sul database così come sono; le vedremo in dettaglio in seguito.

Successivamente, si considerino le variabili che sono notazioni brevi che indicano quali informazioni registrare nel database.

Le lettere sono descritte nel file di default, ma per comodità riportiamo nella tabella seguente le opzioni più comuni:

Di seguito un'overview di quali directory scansionare e di cosa cercare. Con le tre righe d'esempio seguenti, AIDE è configurato per esaminare le directory e  con gli elementi identificati dalla notazione in Binlib. Il path utilizzerà invece quanto definito nella variabile Logs sopra.

AIDE supporta le espressioni regolari ed agli utenti è permesso "rimuovere" le corrispondenze. Per esempio, per controllare il path ma non il  è possibile impostare un set di esclusioni utilizzando il   prima dei percorsi da escludere:

Opzioni dettagliate
Il file di configurazione è basato su espressioni regolari, macro e regole per i file e i percorsi. Gli utenti esperti con tripwire non hanno difficoltà a gestire il file di configurazione di AIDE. Sono disponibili le seguenti macro:

Queste macro diventano molto comode quando si ha a che fare con più sistemi Gentoo usando la stessa configurazione su ciascuna di esse. Non tutte le macchine eseguono gli stessi servizi o possiedono gli stessi utenti.

Inoltre, abbiamo un insieme di opzioni che identificano i permessi, le proprietà dei file, i checksum, gli hash crittografici, ... per convalidare i file e i percorsi.

Se AIDE viene compilato con il supporto a mhash, allora si dovrebbero usare anche le seguenti opzioni:

Inizializzazione e scansioni frequenti
Per un setup di base di AIDE, è necessario inizializzare un database. Questo avviene utilizzando l'opzione. Per sincerarsi che AIDS utilizzi le configurazioni definite nelle sezioni precedenti, assicurarsi di passare l'opzione  con il puntamento alla configurazione corretta:

Una volta inizializzato, ogni database preesistente può essere sovrascritto:

Con il nuovo database disponibile, le risorse possono essere esaminate nuovamente utilizzando l'opzione. Questo creerà un altro database contente ogni modifica fatta al filesystem dalla creazione del primo database. Assicuratevi di utilizzare l'opzione  con il puntamento alla stessa configurazione utilizzata per la creazione del primo database:

Se ci sono state modifiche, verrà inviata una notifica:

Specificate cosa esaminare
La configurazione di default è utile, ma necessità di alcune rifiniture per andare incontro alle necessità dell'utente. E' dunque importante sapere quali file esaminare e perché.

Per esempio, per esaminare solo i file relativi all'autenticazione ma non altri, utilizzate una configurazione come la seguente:

Mantenete il database offline ed in sola lettura
Un secondo aspetto importante è che il database risultante dovrebbe essere memorizzato "offline" quando "non" necessario e dovrebbe essere utilizzato in sola lettura quando "è" necessario. Questo aggiunge un certo grado di protezione contro un utente malevolo che possa aver compromesso la macchina e modificato il database. Per esempio, memorizzare il database su una share NFS read-only (per i server) o su un media non scrivibile (quando l'accesso fisico alla macchina è possibile), come un CD o una chiavetta USB in sola lettura.

Dopo aver memorizzato il database in una posto in sola lettura, aggiornate il file in modo che la variabile   punti a questo nuovo file.

Fare scansioni offline
Se possibile, provate ad utilizzare metodi di scansione offline per i vostri sistemi. In caso di piattaforme virtuali, è possibile fare delle snapshot del sistema, montare queste snapshot (in read-only) e fare lo scan su quest'ultimo filesystem.

L'approccio sopra utilizza. Questo è necessario solamente quando il filesystem iniziale è stato scansionato dal sistema "live" e l'amministratore vuole eseguire una verifica offline. Se lo scan iniziale è stato fatto anch'esso offline, allora il file punterà già al mount point corretto ed il database utilizzerà quei percorsi immediatamente, quindi non ci sarà bisogno di alcun chroot.

Ulteriori informazioni

 * In Integrity/Concepts vengono discussi concetti relativi all'integrità dei sistemi (in inglese)

Risorse esterne

 * Tutorial sull'utilizzo di AIDE (Linux.com)
 * Articolo "Difendere Linux con AIDE" (Symantec.com)