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.

Flags USE
L'installazione di è semplice una volta settate le flags USE.

Le flag 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 flag USE, installate il software:

Overview
Il file di configurazione per non è così spaventoso come può sembrare a prima vista. Il file di default 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 le variabili relative al database:

La prima riga dell'esempio sopra definisce la collocasione del database che contiene i valori conosciuti. La seconda riga definisce dove scrivere il nuovo database quando viene generato. Si raccomanda di non 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 db da un posto all'altro. Per esempio, per sovrascrivere il primo database con il secondo, è possibile usare questo comando:

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

Il prossimo file considerato è. I valori delle variabili 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:

Detailed options
The configuration file is based on regular expressions, macros and rules for files and directories. Users experienced with the tripwire solution will have no difficulties dealing with AIDE's configuration file. The following macros are available:

These macros become very handy when dealing with multiple Gentoo boxes, while using the same configuration on all. Not all machines run the same services or even have the same users.

Next we have a set of flags which identify the permissions, file properties, checksums, cryptographic hashes, ... to validate on files and directories.

If AIDE is compiled with mhash support, then the following flags can be used as well:

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)