Auditoría del sistema con auditd
La auditoría del sistema es una tarea muy importante que debe ser parte de cada servidor. Nos permite auditar detalles minuciosos relacionados con lo que sucede exactamente dentro del sistema. auditd es un componente de espacio de usuario para el sistema de auditoría de Linux. Esto significa que los usuarios del sistema podrán ejecutar auditd para configurar reglas y alertas para la funcionalidad de auditoría con el sistema Linux.
Una de las mejores cosas de auditd es que está estrechamente integrado con el kernel, por lo que nos da el poder de monitorear casi todo lo que queremos, de verdad. Para permitir que los usuarios vean lo que está pasando, auditd puede registrar todos los eventos relacionados con la auditoría en un disco y podemos usar varias herramientas como ausearch o aureport para revisar los archivos de registro.
De forma predeterminada, no hay reglas configuradas. Necesitamos escribir nuestras reglas en /etc/audit/audit.rules archivo de configuración que se leerá y se aplicarán las acciones de auditoría correspondientes.
Instalando Auditd
Ahora que entendemos un poco de qué se trata auditd, sigamos adelante y trabajemos con auditd con el caso de uso anterior:
1. Instale los paquetes auditd. Los paquetes auditd son parte de la instalación predeterminada de los sistemas CentOS 7. Podemos verificarlo con el siguiente comando:
# rpm -qa | grep audit audit-libs-2.6.5-3.el7_3.1.x86_64 audit-2.6.5-3.el7_3.1.x86_64 audit-libs-python-2.6.5-3.el7_3.1.x86_64
2. Si el paquete no es parte de nuestro sistema, podemos continuar e instalarlo:
# yum install audit
3. Asegúrese de que el demonio de auditoría se esté ejecutando. Usaremos el siguiente comando:
# systemctl status auditd auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-10-24 04:33:48 UTC; 4min 21s ago Docs: man:auditd(8) https://people.redhat.com/sgrubb/audit/ Process: 425 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Main PID: 424 (auditd) CGroup: /system.slice/auditd.service └─424 /sbin/auditd -n
Dado que tenemos un demonio de auditoría en funcionamiento, veamos cómo podemos usar auditd para lograr los 4 casos de uso.
Reglas de auditoría para copiar, mover, eliminar y eliminar comandos
1. Realice una copia de seguridad del archivo de configuración existente (reglas de auditoría):
# cp /etc/audit/audit.rules /etc/audit/audit.rules.bkp
2. Edite el archivo /etc/audit/audit.rules y agregue las siguientes reglas para que sea persistente:
# vi /etc/audit/audit.rules # Audit Copy, Move, Delete & Create file commands -a exit,always -F arch=b64 -S execve -F path=/bin/cp -k Copy -a exit,always -F arch=b64 -S execve -F path=/bin/mv -k Move_Rename -a exit,always -F arch=b64 -S execve -F path=/bin/rm -k Delete -a exit,always -F arch=b64 -S execve -F path=/bin/vi -k Create_Edit_View_File # Audit shutdown & Reboot command -a exit,always -F arch=b64 -S execve -F path=/sbin/reboot -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/init -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/poweroff -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/shutdown -k Reboot # Audit mount unmount commands -a exit,always -F arch=b64 -S execve -F path=/bin/mount -k mount_device -a exit,always -F arch=b64 -S execve -F path=/bin/umount -k unmount_device # Kill Process -a exit,always -F arch=b64 -S kill -k Kill_Process
3. Reinicie el servicio auditd para aplicar los cambios.
# service auditd restart
4. Enumere las reglas agregadas para verificar que sean correctas:
# auditctl -lNota :bash (y muchos otros shells) tiene un comando "matar" incorporado que en realidad no ejecuta /usr/bin/kill. Entonces, si en su lugar se ejecuta el comando incorporado, comm=bash es correcto. No hay forma de obligar al sistema a usar el programa externo /usr/bin/kill. comm=matar no va a suceder en todos los casos, porque los shells pueden llamar a la llamada al sistema directamente sin ejecutar el programa externo llamado "matar"