AIDE (Advanced Intrusion Detection Environment)

AIDE (Advanced Intrusion Detection Environment) es, como su nombre indica un sistema avanzado de detección de intrusiones a nivel de sistema operativo. Es muy sencillo de instalar y con una configuración estándar puede funcionar realmente bien.

El funcionamiento consiste en que se crea una base de datos basada en la configuración especificada en el fichero de configuración, una vez inicializada permite ser utilizada para verificar la integridad de los ficheros del sistema y muchas otras cosas como atributos de ficheros (tipo de fichero, permisos, nº de inodo, uid, gid, tamaño, bloques, mtime, ctime, atime…), Posix ACL, SELinux, XAttrs

AIDE se ofrece precompilado en paquete para la mayoría de distribuciones por lo que la instalación es sencilla:

Debian, Ubuntu, etc:

# apt-get install aide
# aptitude install aide

FreeBSD:

# pkg_add -r aide

Red Hat, CentOS, Fedora, Scientific Linux:

#  yum install aide

Una vez instalado debemos familiarizarnos con el fichero de configuración, en el caso de Red Hat se encuentra en /etc/aide.conf, probablemente será igual en el resto de distribuciones. También podemos revisar la página man (man /etc/aide.conf) para tener más idea de todas las posibilidades y personalización.

Como os decía, la instalación base nos permite funcionar sin problemas, lo primer que hay que hacer es generar una nueva base de datos, por defecto es un fichero comprimido pero veréis en el fichero de configuración que hay más opciones:

# /usr/sbin/aide --init

Una vez terminado tendremos la nueva base de datos en /var/lib/aide/aide.db.new.gz, para evitar sobreescribir la de producción se almacena ahí, luego la copiamos o movemos a la definitiva:

# cp -p /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

En la configuración se define así:

# The location of the database to be read.
database=file:@@{DBDIR}/aide.db.gz

# The location of the database to be written.
database_out=file:@@{DBDIR}/aide.db.new.gz

Una vez generada la base de datos ya podemos ejecutar un chequeo del sistema, no debería haber ningún problema ya que acabamos de generar la base de datos y es muy difícil tener algo distinto en pocos segundos:

# /usr/sbin/aide --check

El resultado que todos esperamos es el siguiente, todo correcto:

AIDE, version 0.14

### All files match AIDE database. Looks okay!

Este mismo chequeo es el que podríamos configurar periódicamente vía cron:

# crontab -e -u root
0 5 * * * /usr/sbin/aide --check

En el momento que se generara un problema veríamos en el informe algo así (también se guarda en /var/log/aide/aide.log). Por ejemplo he modificado el fichero /etc/passwd para que saltara en el escaneo:

AIDE found differences between database and filesystem!!
Start timestamp: 2012-08-10 09:58:03

Summary:
  Total number of files:	31858
  Added files:			0
  Removed files:		0
  Changed files:		1

---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /etc/passwd

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------

File: /etc/passwd
  Mtime    : 2012-08-06 12:11:53              , 2012-08-10 09:58:01
  Ctime    : 2012-08-06 12:11:53              , 2012-08-10 09:58:01
  Inode    : 22457                            , 22487

Hay que tener en cuenta que cuando tenemos un problema como este, mientras no actualicemos la base de datos de aide seguirá «cantando«. Una vez solucionado o revisado hay que generar un nuevo «snapshot» del estado del sistema para empezar de 0:

# /usr/sbin/aide --update

Os recomiendo revisar el manual si os resulta interesante para estar al tanto de todo lo que pasa en vuestros sistemas.

5 comentarios en “AIDE (Advanced Intrusion Detection Environment)

  1. A simple vista, otro comprobador de integridad de archivos (como tripwire, systraq, integrit…).

    Yo creo que este tipo de aplicaciones no acaba de cuajar por varias desventajas: lo que tarda en hacer la base de datos inicial y las comprobaciones posteriores y, sobretodo, el tema de ir revisando cualquier tipo de cambio (por ejemplo, los updates del propio sistema operativo y su paquetería).

    • Así es, tal y como dices jors.

      Para entornos muy cambiantes… complicado, a no ser que tunearas la configuración por defecto con exclusiones, parámetros, etc. En ese sentido se podría dejar fino si quieres ceñirte a ciertas partes del sistema, las más comprometedoras.

      Saludos

      • Buenas,

        efectivamente, AIDE es «algo complicado de afinar». Lo suyo es ir configurando excepciones hasta dejarlo fino y generar un paquete propio para los servidores que sea adecuado para ellos, sin dar falsas alarmas y «ruído blanco» en las alertas.

        Saludos.

  2. Buena tarde,

    Estoy probando AIDE pero no es capaz de identificar el usuario que realiza los cambios, alguien ha tenido algun inconveniente o conoce otra herramienta efectiva para dicha actividad?

    Gracias

Comments are closed.