Una vez que el sistema está instalado y configurado, dejando al margen las actualizaciones de seguridad, normalmente no hay razón para que los archivos y directorios cambien con excepción de los datos. Por lo tanto, es interesante asegurarse que efectivamente los archivos no cambian: debería investigar cualquier cambio inesperado. Esta sección presenta algunas herramientas capaces de monitorizar archivos y advertir al administrador en caso de que se produzca algún cambio inesperado (o simplemente enumerar estos cambios).
14.3.3.1. Auditoría de paquetes: debsums
y sus límites
debsums
es una herramienta interesante ya que permite buscar qué archivos instalados han sido modificados (potencialmente por un atacante), pero debe tratarse con prudencia. En primer lugar, porque no todos los paquetes de Debian proporcionan las huellas digitales requeridas por este programa (si existen, se encuentran en
/var/lib/dpkg/info/paquete.md5sums
).
Como recordatorio: una huella digital es un valor, a menudo un número (aunque pueda estar en notación hexadecimal), que contiene un tipo de firma de los contenidos de un archivo. Se calcula esta firma mediante un algoritmo (MD5 o SHA1 son ejemplos muy conocidos) que más o menos garantizan que incluso el cambio más pequeño en el contenido de un archivo implica un cambio en su huella digital; esto es conocido como «efecto avalancha». Esto permite que una simple huella digital numérica sirva como patrón para comprobar si se alteró el contenido de un archivo. Estos algoritmos no son reversibles; en otras palabra, para la mayoría de ellos, conocer la huella digital no permite averiguar los contenidos correspondientes. Los avances matemáticos recientes parece que debilitan la verdad absoluta de estos principios, pero por el momento su uso no se ha puesto en cuestón, ya que crear distintos contenidos que produzcan la misma huella todavía parece una tarea muy complicada.
Adicionalmente, se almacenan los archivos md5sums
en el disco duro; por lo tanto un atacante meticuloso actualizará estos archivos para que contengan las nuevas sumas de control de los archivos sustituidos.
El primer inconveniente se puede evitar haciendo que debsums
base sus comprobaciones en un paquete .deb
en lugar de confiar en el archivo md5sums
. Pero esto requiere descargar previamente los archivos .deb
correspondientes:
#
apt-get --reinstall -d install `debsums -l`
[ ... ]
#
debsums -p /var/cache/apt/archives -g
También conviene notar que, en su configuración predeterminada, debsums
genera automáticamente los archivos md5sums
faltantes cada vez que instale un paquete utilizando APT.
Puede evitar el otro problema de forma similar: simplemente debe basar la comprobación en un archivo .deb
impoluto. Debido a que esto implica disponer de los archivos .deb
de todos los paquetes instalados, y además estar seguros de su integridad, la forma más sencilla es obtenerlos de una réplica Debian. Esta operación puede ser lenta y tediosa y, por lo tanto, no debe considerarse como una técnica proactiva a utilizar de forma regular.
#
apt-get --reinstall -d install `grep-status -e 'Status: install ok installed' -n -s Package`
[ ... ]
#
debsums -p /var/cache/apt/archives --generate=all
Sepa que este ejemplo utiliza el programa grep-status
del paquete dctrl-tools que no se instala de forma predeterminada.
14.3.3.2. Monitorización de archivos: AIDE
La herramienta AIDE (entorno avanzado de detección de intrusión: «Advanced Intrusion Detection Environment») permite comprobar la integridad de los archivos y detectar cualquier cambio frente a una imagen guardada previamente del sistema válido. Se almacena esta imagen como una base de datos (/var/lib/aide/aide.db
) que contiene la información relevante de todos los archivos del sistema (huella digital, permisos, marcas temporales, etc.). Se inicializa esta base de datos con aideinit
; luego se la utiliza diariamente (por el script /etc/cron.daily/aide
) para comprobar que nada importante haya cambiado. Cuando se detectan cambios, AIDE los almacena en archivos de registro (/var/log/aide/*.log
) y envía lo encontrado en un email al administrador.
Puede utilizar numerosas opciones en el archivo /etc/default/aide
para configurar el comportamiento del paquete aide. Se almacena la configuración de AIDE en sí en /etc/aide/aide.conf
y /etc/aide/aide.conf.d/
(de hecho, sólo update-aide.conf
utiliza estos archivos para generar /var/lib/aide/aide.conf.autogenerated
). La configuración indica qué propiedades se deben comprobar. Por ejemplo, el contenidos de los archivos de registro cambia continuamente, y se puede ignorar estos cambios mientras que los permisos de los archivos permanezcan inalterados, pero tanto el contenido como los permisos de los programas ejecutables debe permanecer constante. Aunque no es excesivamente compleja, la sintaxis de la configuración no es del todo intuitiva y, por lo tanto, recomendamos leer su página de manual aide.conf(5).
Cada día se genera una nueva versión de la base de datos en /var/lib/aide/aide.db.new
; si todos los cambios registrados son legítimos, puede utilizarla para reemplazar la base de datos de referencia.