Se encuentra usted aquí

Verificación de integridad de archivos con aide

Valoración: 
5

En algún punto dentro de nuestra carrera, tendremos la necesidad de corroborar que nuestros archivos y directorios no han sido modificados por alguien mas, ya sea por una intrusión al sistema o por modificaciones de algún colaborador.
Para este articulo hablaremos sobre una herramienta que nos facilitará la detección de modificaciones en nuestros archivos, aide.

Acerca de

AIDE (Advanced Intrusion Detection Environment) es un remplazo libre para Tripwire. Utiliza una base de datos con la lista de archivos y directorios definidos en el archivo de configuración, sobre la cual aplica diferentes algoritmos de "resumen" que se encargan de detectar inconsistencias. También realiza la verificación sobre los atributos de los datos y soporta múltiples algoritmos de "resumen".

Para utilizar aide en FreeBSD, lo podemos instalar desde ports con los siguientes comandos:

cd /usr/ports/security/aide
make install clean

Configuración

Una vez instalado nos generará un archivo de configuración de muestra en la ruta /usr/local/etc/aide.conf.sample, el cual debemos copiar como /usr/local/etc/aide.conf.

El archivo de configuración es realmente simple, en el se define la lista de archivos y directorios; y las rutas a la base de datos utilizadas por aide.

Cada archivo o directorio va en una linea, utiliza expresiones regulares para hacer "match" a rutas, puede llevar o no un prefijo, e incluye la lista de atributos y algoritmos a utilizar. Los prefijos indican lo siguiente:

  • sin prefijo Se incluye el archivo o directorio de forma recursiva
  • ! Ignorar ese archivo o directorio de forma recursiva
  • = Solo el directorio, no es recursivo

Los atributos van precedidos por signos de + y -, que indican si el atributo es agregado o ignorado. Algunos de ellos (no son todos), aparecen a continuación:

  • p: permisos y bits de modo
  • a: timestamp de acceso
  • m: modification timestamp
  • u: id del propietario del archivo o directorio
  • g: id del grupo del archivo o directorio
  • s: tamaño del archivo
  • md5: resumen md5
  • sha1: resumen sha1

La siguiente linea es un ejemplo de como agregar el directorio /etc y varios de los atributos a tomar en cuenta:

/etc    +p+i+n+u+g+s+m+md5+tiger+rmd160+sha1-a

Para evitar escribir cada uno de los atributos por cada archivo o directorio, se cuenta con las siguiente plantillas:

  • R: Solo lectura (+p+i+n+u+g+s+m+md5+tiger+rmd160+sha1-a)
  • L: Archivo de log (+p+i+n+u+g-s-a-m-md5-tiger-rmd160-sha1)
  • N: Ignorar nada (+p+i+n+u+s+g+s+a+m+c+md5+tiger+rmd160+sha1)
  • E: Ignorar todo (-p-i-n-u-s-g-s-a-m-c-md5-tiger-rmd160-sha1)

Usándolas, la linea anterior se reduce a lo siguiente:

/etc    R

Una vez que tenemos definidos los archivos y directorios que verificaremos, lo que sigue es inicializar la base de datos, esto lo realizamos de la siguiente manera:

aide -i

Con lo cual se generara la base de datos definida en el archivo de configuración con la directiva "database_out". Después hay que moverla a nuestra base de datos que fue especificada con la directiva "database", por defecto en FreeBSD, /var/db/aide/databases/aide.db.

Detección de cambios

Para realizar las verificaciones simplemente hay que ejecutar el comando sin parámetros. En caso de que se haya realizado algún cambio, aparecerá un mensaje como el siguiente:


AIDE found differences between database and filesystem!!
Start timestamp: 2009-06-21 20:46:34

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

---------------------------------------------------
Added files:
---------------------------------------------------

added: /usr/local/etc/apache22/vhosts/demo.com

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

changed: /usr/local/etc/apache22/httpd.conf

Conclusión

Aide es una excelente herramienta para detectar modificaciones de nuestros archivos, sin duda alguna, una utileria vital en la detección de cambios en configuraciones, ejecutables y archivos. Para mi, es un de las herramientas básicas de seguridad que todo administrador de sistemas debe de conocer y utilizar, tales como ssh y gpg.

Referencias

Autor
Angel Gabriel León Rodríguez