Cómo verificar la integridad de archivos y directorios usando "AIDE" en Linux


En nuestra mega guía para fortalecer y asegurar CentOS 7, en la sección "proteger el sistema internamente", una de las herramientas de seguridad útiles que enumeramos para la protección del sistema interno contra virus, rootkits, malware y detección de actividades no autorizadas es AIDE.

AIDE (Advanced Intrusion Detection Environment) es una pequeña pero poderosa herramienta de detección de intrusiones de código abierto, que utiliza reglas predefinidas para verificar la integridad de archivos y directorios en sistemas operativos similares a Unix como Linux. Es un binario estático independiente para configuraciones simplificadas de monitoreo de cliente/servidor.

Tiene muchas funciones: utiliza archivos de configuración de texto sin formato y una base de datos, lo que facilita su uso; admite varios algoritmos de resumen de mensajes como, entre otros, md5, sha1, rmd160, tiger; admite atributos de archivo comunes; también admite potentes expresiones regulares para incluir o excluir de forma selectiva archivos y directorios que se analizarán.

También se puede compilar con soporte excepcional para compresión Gzip, Posix ACL, SELinux, XAttrs y atributos de sistema de archivos extendidos.

Aide trabaja creando una base de datos (que es simplemente una instantánea de partes seleccionadas del sistema de archivos), a partir de las reglas de expresión regular definidas en los archivos de configuración. Una vez que se inicializa esta base de datos, puede verificar la integridad de los archivos del sistema con ella. Esta guía le mostrará cómo instalar y usar aide en Linux.

Cómo instalar AIDE en Linux

Aide está empaquetado en repositorios oficiales de las principales distribuciones de Linux, para instalarlo, ejecute el comando para su distribución utilizando un administrador de paquetes.

# apt install aide 	   [On Debian/Ubuntu]
# yum install aide	   [On RHEL/CentOS] 	
# dnf install aide	   [On Fedora 22+]
# zypper install aide	   [On openSUSE]
# emerge aide 	           [On Gentoo]

Después de instalarlo, el archivo de configuración principal es /etc/aide.conf. Para ver la versión instalada y los parámetros de tiempo de compilación, ejecute el siguiente comando en su terminal:

# aide -v
Aide 0.14

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

Puedes abrir la configuración usando tu editor favorito.

# vi /etc/aide.conf

Tiene directivas que definen la ubicación de la base de datos, la ubicación del informe, las reglas predeterminadas, los directorios/archivos que se incluirán en la base de datos.

Usando las reglas predeterminadas anteriores, puede definir nuevas reglas personalizadas en el archivo aide.conf, por ejemplo.

PERMS = p+u+g+acl+selinux+xattrs

La regla PERMS se usa solo para control de acceso, detectará cualquier cambio en el archivo o directorios según los permisos de archivo/directorio, usuario, grupo, permisos de control de acceso, contexto de SELinux y atributos de archivo.

Esto solo verificará el contenido y el tipo de archivo.

CONTENT = sha256+ftype

Esta es una versión extendida de la regla anterior, verifica el contenido extendido, el tipo de archivo y el acceso.

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

La regla DATAONLY a continuación ayudará a detectar cualquier cambio en los datos dentro de todos los archivos/directorios.

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256

Definición de reglas para ver archivos y directorios

Una vez que haya definido las reglas, puede especificar el archivo y los directorios a observar. Teniendo en cuenta la regla PERMS anterior, esta definición verificará los permisos para todos los archivos en el directorio raíz.

/root/\..*  PERMS

Esto comprobará todos los archivos en el directorio/root para ver si hay cambios.

/root/   CONTENT_EX

Para ayudarlo a detectar cualquier cambio en los datos dentro de todos los archivos/directorio en/etc /, use esto.

/etc/   DATAONLY 

Uso de AIDE para verificar la integridad de archivos y directorios en Linux

Empiece por construir una base de datos contra las comprobaciones que se realizarán utilizando la marca --init . Se espera que esto se haga antes de que su sistema esté conectado a una red.

El siguiente comando creará una base de datos que contiene todos los archivos que seleccionó en su archivo de configuración.

# aide --init

Luego cambie el nombre de la base de datos a /var/lib/aide/aide.db.gz antes de continuar, usando este comando.

# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Se recomienda mover la base de datos a una ubicación segura, posiblemente en un medio de solo lectura o en otras máquinas, pero asegúrese de actualizar el archivo de configuración para leerlo desde allí.

Una vez creada la base de datos, ahora puede verificar la integridad de los archivos y directorios usando el indicador --check .

# aide --check

Leerá la instantánea en la base de datos y la comparará con los archivos/directorios encontrados en el disco del sistema. Si encuentra cambios en lugares inesperados, genera un informe que luego puede revisar.

Dado que no se han realizado cambios en el sistema de archivos, solo obtendrá un resultado similar al anterior. Ahora intente crear algunos archivos en el sistema de archivos, en áreas definidas en el archivo de configuración.

# vi /etc/script.sh
# touch all.txt

Luego, ejecute una verificación una vez más, que debería informar los archivos agregados anteriormente. La salida de este comando depende de las partes del sistema de archivos que configuró para la verificación, puede ser un tiempo extra prolongado.

# aide --check

Debe ejecutar comprobaciones auxiliares con regularidad y, en caso de que se realicen cambios en los archivos ya seleccionados o se agreguen nuevas definiciones de archivo en el archivo de configuración, actualice siempre la base de datos con la opción --update :

# aide --update

Después de ejecutar una actualización de la base de datos, para usar la nueva base de datos para análisis futuros, siempre cámbiele el nombre a /var/lib/aide/aide.db.gz:

# mv /var/lib/aide/aide.db.new.gz  /var/lib/aide/aide.db.gz

¡Eso es todo por ahora! Pero tome nota de estos puntos importantes:

  • Una característica de la mayoría de los sistemas de detección de intrusos, incluido AIDE, es que no proporcionarán soluciones a la mayoría de los agujeros de seguridad en un sistema. Sin embargo, ayudan a facilitar el proceso de respuesta a intrusiones al ayudar a los administradores del sistema a examinar cualquier cambio en los archivos/directorios del sistema. Por lo tanto, siempre debe estar atento y seguir actualizando sus medidas de seguridad actuales.
  • Es muy recomendable mantener la base de datos recién creada, el archivo de configuración y el binario AIDE en una ubicación segura, como un medio de solo lectura (posible si lo instala desde la fuente).
  • Para mayor seguridad, considere firmar la configuración y/o la base de datos.

Para obtener información y configuraciones adicionales, consulte su página de manual o visite la página de inicio de AIDE: http://aide.sourceforge.net/