Al usar múltiples sistemas operativos, es ideal contar siempre con herramientas que nos permitan mantener un control centralizado y directo sobre ella. Uno de los temas mas delicados es indiscutiblemente la seguridad e integridad de los archivos ya que esto nos garantiza la disponibilidad y fiabilidad de este.
Hoy Solvetic hablará de una herramienta practica llamada AIDE mediante la cual será posible comprobar la integridad de un archivo o directorio en las diversas distribuciones de Linux y así estar seguros de la completa fiabilidad del archivo seleccionado.
Su funcionamiento consiste en la creación de una base de datos diseñada a partir de las reglas de expresiones regulares que están disponibles en los archivos de configuración. Una vez que esta base de datos se inicializa, podrá ser usada para verificar la integridad de los archivos requeridos.
- tipo de archivo
- permisos
- usuario y grupo
- tamaño de archivo
- mtime, ctime y atime
- tamaño de crecimiento
- número de enlaces y nombre de enlace.
Asimismo, AIDE crea una suma de comprobación criptográfica o hash de cada archivo usando uno o una combinación de los siguientes algoritmos de resumen de mensaje: sha1, sha256, sha512, md5, rmd160, tigre, haval, crc32 y además, los atributos acl, xattr, selinux y e2fsattrs se pueden usar cuando se habilitan explícitamente durante el tiempo de compilación.
AIDE cuenta con varios algoritmos de resumen de mensaje los cuales se usan para verificar la integridad del archivo. Todos los atributos de archivo habituales también se pueden verificar en busca de inconsistencias dentro de él. AIDE esta en la capacidad de leer bases de datos de versiones más antiguas o más nuevas.
- Algoritmos compatibles con resumen de mensajes como: md5, sha1, rmd160, tigger, crc32, sha256, sha512, whirlpool (adicionalmente con libmhash: gost, haval, crc32b)
- Atributos de archivo soportados: Tipo de archivo, Permisos, Inode, Uid, Gid, Nombre del enlace, Tamaño, Número de bloque, Número de enlaces, Mtime, Ctime y Atime
- Cuenta con soporte para Posix ACL, SELinux, XAttrs y atributos extendidos del sistema de archivos si el soporte se compila en archivos de configuración de texto sin formato y base de datos para simplificar
- Cuenta con soporte de expresiones regulares para incluir o excluir selectivamente archivos y directorios con el fin de ser monitoreados
- Debian
- Gentoo
- MacPorts
- FreeBSD
- CentOS / RedHat
- IPCop
- OpenSUSE
Es importante aclarar que AIDE no puede proporcionar seguridad absoluta sobre el cambio en un archivo, ya que al igual que cualquier otro archivo de sistema, la base de datos y/o binarios de AIDE también puede ser alterada usando las herramientas adecuadas.
1. Instalación de AIDE en Linux
AIDE esta disponible en repositorios oficiales para las distribuciones mas conocidas de Linux, para ello podemos instalarla haciendo uso de un administrador de paquetes según la distro seleccionada así:
apt install aide (Debian/Ubuntu) yum install aide CRHEL/CentOS) dnf install aide (Fedora) zypper install aide (OpenSUSE) emerge aide (Gentoo)
En este caso usamos Ubuntu. Allí ingresamos la letra S para aceptar la descarga e instalación de AIDE. Una vez instalada veremos lo siguiente:
Como vemos, el archivo de configuración principal es /etc/aide/aide.conf. Para visualizar la versión instalada, así como los parámetros de tiempo de compilación podemos ejecutar lo siguiente:
aide -v
2. Acceso al archivo de configuración AIDE Linux
Podremos acceder al archivo de configuración de AIDE ejecutando la siguiente línea con el editor deseado:
nano /etc/aide/aide.confVeremos lo siguiente:
En este archivo encontramos directivas que definen la ubicación de la base de datos, la ubicación del informe, las reglas predeterminadas, los directorios o archivos que se incluirán en la base de datos y muchas más.
3. Cómo administrar y comprender las reglas de AIDE
AIDE administra reglas como:
A partir de estas reglas será posible crear reglas personalizadas en el archivo de configuración de AIDE. Por ejemplo, podremos crear la siguiente regla:
PERMS = p+u+g+acl+selinux+xattrsEn este caso la regla PERMS se implementa para el control de acceso, la cual detectará cualquier cambio en el archivo o directorios según los permisos de archivo o directorio, usuario, grupo, permisos de control de acceso, atributos de archivos y más.
Otra regla que podremos implementar es alguna que solo verifique el contenido del archivo y el tipo de archivo seleccionado, por ejemplo:
CONTENT = sha256+ftypeSi deseamos verificar el contenido extendido, el tipo de archivo y el acceso podremos crear una regla como:
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrsUna regla que nos ayuda a detectar cambios en el directorio solo a nivel de datos es:
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha256Estas reglas las debemos añadir en la parte inferior del archivo de configuración de AIDE:
Guardamos los cambios usando las teclas Ctrl + O y salimos usando Ctrl + X.
4. Cómo definir reglas para visualizar archivos y directorios AIDE
Con AIDE también será posible crear reglas para determinados archivos o directorios a analizar. Para esto accedemos de nuevo a la ruta /etc/aide/aide.conf y podremos crear las siguientes reglas:
/root/\..* PERMS (Esta regla verifica los permisos en el directorio root) /root/ CONTENT_EX (Esta regla verifica todos los archivos en root ante cualquier cambio) /etc/ DATAONLY (Esta regla nos permite detectar cualquier cambio en el directorio /etc)
Podremos guardar los cambios en el archivo de configuración de AIDE.
5. Cómo usar AIDE para verificar archivos e integridad de directorios en Linux
Una vez definidas las reglas a usar con AIDE, el siguiente paso será construir la base de datos contra las comprobaciones que se realizarán haciendo uso del parámetro --init.
Con el siguiente comando se creará una base de datos que contiene todos los archivos que definimos en el archivo de configuración de AIDE:
Aide --init
una vez realizado esto, procedeos a cambiar el nombre de la base de datos a /var/lib/aide/aide.db.gz antes de continuar, para ello podemos hacer uso del siguiente comando:
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db.gzSe recomienda mover esta base de datos a una ubicación segura pero debemos estar seguros de actualizar el archivo de configuración para que se pueda leer desde allí.
A continuación, debernos compilar un nuevo archivo de configuración de Aide. Ejecutamos el siguiente comando:
update-aide.confAhora copiaremos este nuevo archivo al directorio /etc/aide:
cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.confDespués de que la base de datos sea creada, podremos verificar la integridad de los archivos y directorios usando el indicador –check:
aide --check
6. Cómo evaluar AIDE
Para probar el funcionamiento de AIDE ejecutaremos las siguientes líneas:
mkdir /root/aide-test touch /root/aide-test/testsolvetic touch /root/aide-test/testsolvetic1Con ellas estamos creando un nuevo directorio y archivos en el sistema. Posteriormente ejecutamos la siguiente línea para su validación y verificación:
Aide –checkEl resultado será el siguiente:
Allí podemos ver que se encuentra una diferencia en el archivo e indica que tipo de acción fue, adición, eliminación o cambio.
De esta manera AIDE es una herramienta útil para determinar en tiempo real los cambios ocurridos en el sistema.