In un articolo precedente, abbiamo visto come installare Aide, in questa breve guida analizziamo la configurazione e l’utilizzo dell’applicazione.
Aide è un ids, intrusion detection system, che si basa sul controllo dell’integrità dei file.
L’applicazione costruisce un database dei file specificati nel file di configurazione aide.conf, nel database venfono archiviati diversi attribuiti relativi ai file come permesi, utente, gruppo, dimensione, data di creazione e modifica e numero di link.
Aide crea inoltre un hash di ogni file utizzando uno degli algoritmi supportati.
Il database iniziale dovrebbe essere quindi creato sul server dopo l’installazione e prima del collegamento in rete, in questo modo si ha la situazione di partenza e risulta poi possibile controllare tutte le modifiche che si sono verificate.
Nel database dovrebbero essere salvate le informazioni relative ai file di sistema che non dovrebbero cambiare come librierie e file binari.
Nel caso si verifichino degli accessi non autorizzati al proprio server, risulta possibile confrontare il database attuale con quello di partenza per individuare modifiche ai file.
La configurazione di Aide si basa sul file aide.conf che ha un contenuto simile al seguente.
#AIDE conf
# Here are all the things we can check – these are the default rules
#
#p: permissions
#i: inode
#n: number of links
#l: link name
#u: user
#g: group
#s: size
#b: block count
#m: mtime
#a: atime
#c: ctime
#S: check for growing size
#I: ignore changed filename
#md5: md5 checksum
#sha1: sha1 checksum
#sha256: sha256 checksum
#sha512: sha512 checksum
#rmd160: rmd160 checksum
#tiger: tiger checksum
#haval: haval checksum
#crc32: crc32 checksum
#R: p+i+l+n+u+g+s+m+c+acl+selinux+xattrs+md5
#L: p+i+l+n+u+g+acl+selinux+xattrs
#E: Empty group
#>: Growing logfile p+l+u+g+i+n+S+acl+selinux+xattrs
#The following are available if you have mhash support enabled:
#gost: gost checksum
#whirlpool: whirlpool checksum
#The following are available when explicitly enabled using configure:
#acl: access control list
#selinux SELinux security context
#xattr: extended file attributes
# You can alse create custom rules – my home made rule definition goes like this
#
MyRule = p+i+n+u+g+s+b+m+c+md5+sha1
# Next decide what directories/files you want in the database
/etc p+i+u+g #check only permissions, inode, user and group for etc
/bin MyRule # apply the custom rule to the files in bin
/sbin MyRule # apply the same custom rule to the files in sbin
/var MyRule
!/var/log/.* # ignore the log dir it changes too often
!/var/spool/.* # ignore spool dirs as they change too often
!/var/adm/utmp$ # ignore the file /var/adm/utmp
In questo esempio all’interno del database vengono inclusi i file che si trovano nelle directory /etc, /bin e /sbin.
Vengono inoltre inclusi i file che si trovano in /var, escludendo però /var/adm/utmp e quelli che si trovano in /var/log e /var/spool.
Questi file vengono infatti modificati spesso e includendoli si ottiene un numero particolarmente elevato di segnalazioni.
Come è possibile notare dal file di esempio, gli elementi che possono essere controllati sono numerosi.
/etc p+i+u+g
In questa riga viene specificato che per i file presenti nella directory /etc devono essere controllati solo permessi, inode, utente e gruppo.
Una volta che si è completata la configurazione, è possibile creare il database iniziale.
aide -c aide.conf –init
Aide crea, in fase di installazione, uno script in /etc/cron.daily/aide che verifica il sistema e invia una mail se vengono rilevati problemi.