[successivo] [precedente] [inizio] [fine] [indice generale] [licenze] [indice analitico] [tomo] [parte]
AIDE (1) è un altro programma per la verifica dell'integrità dei file attraverso il confronto con le informazioni accumulate precedentemente, segnalando le aggiunte, le rimozioni e le alterazioni di file e directory. Si tratta di uno strumento prezioso per scoprire gli utilizzi impropri del sistema comprendendo l'azione di cavalli di Troia e virus.
Il funzionamento di AIDE è controllato da un file di configurazione, che generalmente è bene non lasciare nel file system per motivi di sicurezza, inserendolo solo nel momento del bisogno. Tale file di configurazione verrà identificato qui con il nome aide.conf
, senza stabilire una collocazione ben precisa.
Nello stesso modo, anche il file contenente le informazioni accumulate riguardo allo stato del file system va protetto, preferibilmente togliendolo dal file system stesso, in modo da garantire che non possa essere letto e alterato.
AIDE può utilizzare diversi algoritmi crittografici per generare i codici di controllo necessari per le sue verifiche. Per questa ragione, a causa delle norme che impediscono l'esportazione di algoritmi del genere, è improbabile che possa trovarsi all'interno delle distribuzioni di origine USA.
La configurazione di AIDE è simile a quella di Tripwire, con l'aggiunta di direttive nuove. In generale, a parte i commenti che si indicano preceduti dal simbolo # e le righe che non contengono direttive, si distinguono tre gruppi:
direttive di configurazione, con le quali si stabiliscono delle modalità di funzionamento generali;
direttive di selezione, con le quali si stabiliscono quali file e directory tenere sotto controllo;
macroistruzioni.
In generale, sono indispensabili solo le direttive di selezione che assomigliano molto alle direttive corrispondenti di Tripwire. Le macroistruzioni servono per scandire il file di configurazione in modo differente in base a condizioni determinate, come fa un preprocessore di un linguaggio di programmazione. Anche questa funzionalità è analoga a qualla di Tripwire e qui non viene descritta; eventualmente si può consultare la pagina di manuale aide.conf(5).
Le direttive di configurazione hanno la forma seguente:
nome = valore
In particolare, quando il valore assegnato si riferisce a un file, viene usata una forma particolare descritta nella tabella 238.1. La descrizione delle direttive di configurazione appare invece nella tabella 238.2.
Tabella 238.1. Modalità di indicazione dei file nelle direttive di configurazione.
Nome | Predefinito | Descrizione |
database | file://./aide.db | File delle informazioni accumulate in precedenza. |
database_out | file://./aide.db.new | File delle informazioni da accumulare. |
report_url | stdout | File usato per emettere le informazioni sull'elaborazione. |
Tabella 238.2. Direttive di configurazione principali.
Una direttiva di configurazione che fa riferimento a un nome non conosciuto, serve a definire un gruppo. Ciò può essere utile successivamente nelle direttive di selezione, dove si può fare riferimento a questi gruppi senza dover ripetere sempre la stessa espressione di selezione. Questo verrà mostrato meglio successivamente.
Le direttive di selezione hanno il formato seguente:
{/|!|=} voce espressione
Il primo carattere definisce il modo in cui va interpretata la direttiva:
/
include un file, o una directory e tutto il suo contenuto, per la scansione e la verifica;
!
escludere completamente un file, o una directory e tutto il suo contenuto, dalla scansione e dalla verifica;
=
escludere il contenuto di una directory dalla scansione e dalla verifica.
Ciò che segue il primo carattere è inteso come un'espressione regolare che descrive uno o più percorsi di file e directory. All'interno di queste espressioni regolari, la barra obliqua normale, /, ha significato letterale.
Il confronto attraverso espressioni regolari avviene se tale gestione è stata inclusa in fase di compilazione, pertanto ciò potrebbe anche mancare, funzionando solo un confronto letterale. |
L'espressione che segue rappresenta il tipo di controllo da attuare, attraverso l'indicazione di uno o più gruppi. Questi «gruppi» sono parole chiave che definiscono in breve ciò che deve essere verificato; queste parole chiave possono essere unite assieme inserendo il simbolo +, ma può essere usato anche il simbolo - per sottrarre delle verifiche incluse precedentemente. La tabella 238.3 elenca i gruppi predefiniti e di seguito vengono mostrati alcuni esempi elementari:
# Include la directory / e tutte le directory successive / p+i+n+u+g+s+m+c+md5 # Esclude la directory /dev/ !/dev # Analizza esclusivamente la directory /tmp/ senza il suo contenuto =/tmp
Tabella 238.3. Elenco dei gruppi predefiniti.
In precedenza è stata descritta la possibilità di definire dei gruppi aggiuntivi nell'ambito delle direttive di configurazione. La sintassi di questa direttiva particolare è la seguente:
nome_gruppo = gruppo_esistente [{+|-} gruppo_esistente ]...
In pratica, il segno + aggiunge il controllo del gruppo che precede, mentre il segno - sottrae il controllo del gruppo che precede. A titolo di esempio, viene mostrata la definizione di un gruppo personalizzato, in cui si utilizza il gruppo predefinito R senza la verifica della firma MD5:
Personale = R-md5
Successivamente si può utilizzare esattamente come i gruppi predefiniti:
/usr Personale
È da osservare che i nomi usati nelle direttive di configurazione sono sensibili alla differenza tra maiuscole e minuscole.
/etc p+i+n+u+g+s+m+c+md5
Verifica la directory /etc/
e tutto il suo contenuto in modo ricorsivo, verificando: i bit dei permessi, i numeri di inode, i riferimenti agli inode, i numeri UID e GID, le date di modifica, le date di creazione degli inode e la firma MD5.
/etc R
Esattamente come nell'esempio precedente, dal momento che il gruppo riassuntivo R rappresenta le stesse cose.
/etc R+sha1
Come nell'esempio precedente, aggiungendo il controllo della firma SHA1.
!/home/pippo
Esclude qualunque verifica a partire dal percorso /home/pippo/
.
=/tmp R
Verifica esclusivamente la directory /tmp/
, senza analizzarne il contenuto.
aide è l'eseguibile che svolge il compito di scansione e verifica dell'integrità dei file e delle directory specificati nel file di configurazione. Si distinguono tre situazioni: la creazione del file contenente le informazioni sulla situazione attuale di ciò che si vuole tenere sotto controllo; l'aggiornamento di queste informazioni in presenza di modifiche volontarie da parte dell'amministratore; la verifica di integrità, cioè il confronto di queste informazioni con la situazione attuale.
aide [ opzioni ]
A seconda di come viene compilato il programma, si stabilisce la collocazione predefinita e il nome del file di configurazione e del file di registrazione delle informazioni. In generale, conviene utilizzare le opzioni necessarie a specificare tali file, quando queste sono disponibili.
--init
Genera il file delle informazioni da conservare, in base alle specifiche della configurazione.
--update
Aggiorna il file delle informazioni (legge quello vecchio e ne genera uno nuovo).
--check
Verifica l'integrità dei file secondo le informazioni accumulate in precedenza, informando l'utente di conseguenza.
--config= file_di_configurazione
Consente di indicare esplicitamente il file di configurazione da utilizzare.
#
aide --init --config=/root/aide.conf
Genera il file di raccolta delle informazioni, utilizzando un nome predefinito in base alla compilazione dei sorgenti, oppure in base alla configurazione, che in questo caso viene indicato espressamente come /root/aide.conf
.
#
aide --update --config=/root/aide.conf
Genera un nuovo file di raccolta delle informazioni aggiornato. Il file di configurazione utilizzato è /root/aide.conf
.
#
aide --check --config=/root/aide.conf
Esegue una verifica di integrità, utilizzando il file di configurazione /root/aide.conf
.
1) AIDE GNU GPL
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome aide.html
[successivo] [precedente] [inizio] [fine] [indice generale] [licenze] [indice analitico] [tomo] [parte]