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:

Configurazione
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:

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:

Keep the database offline and read-only
A second important aspect is that the result database should be stored offline when not needed and should be used in read-only mode when the database is needed. This gives some protection against a malicious user that might have compromised the machine to modify the results database. For instance, provide the result database on a read-only NFS mount (for servers) or read-only medium (when physical access to the machine is possible) such as a CD/DVD or a read-only USB drive.

After storing the database on a read-only location, update the file to have   point to this new location.

Do offline scanning
If applicable, try using offline scanning methods for the system. In case of virtual platforms, it might be possible to take a snapshot of the system, mount this snapshot (read-only) and then run the aide scan on the mounted file system.

The above approach uses. This is only needed when the initial file system has been scanned from the live system and the administrator wants to perform an offline validation. If the initial scan was done offline, then the file will point to the mount point already and the database will use these paths immediately, so then there is no need for chrooting.

External resources

 * Tutorial on how to use AIDE (Linux.com)
 * Securing Linux with AIDE article (Symantec.com)