Búsqueda de sitios web

Aprenda la auditoría del sistema Linux con la herramienta Auditd en CentOS/RHEL


La auditoría del sistema simplemente se refiere al análisis en profundidad de un sistema específico: una auditoría se compone de un examen de las diversas partes que componen ese sistema, con una evaluación crítica (y pruebas, si es necesario) en diferentes áreas de interés.

Lea también: Lynis: herramienta de análisis y auditoría de seguridad para sistemas Linux

Uno de los subsistemas críticos en RHEL/CentOS, el sistema de auditoría de Linux comúnmente conocido como auditd. Implementa un medio para rastrear información relevante para la seguridad en un sistema: utiliza reglas preconfiguradas para recopilar grandes cantidades de información sobre eventos que suceden en el sistema y los registra en un archivo de registro, creando así una prueba de auditoría.

Puede registrar información como fecha y hora, tipo y resultado de un evento; usuarios que causaron el evento, cualquier modificación realizada a archivos/bases de datos; usos de mecanismos de autenticación del sistema, como PAM, LDAP, SSH y otros.

Auditd también registra cualquier cambio realizado en los archivos de configuración de auditoría o cualquier intento de acceder a los archivos de registro de auditoría, y cualquier esfuerzo para importar o exportar información hacia o desde el sistema, además de mucha otra información relacionada con la seguridad.

¿Por qué es importante el sistema de auditoría de Linux?

  1. No requiere que ningún programa o proceso externo se ejecute en un sistema, lo que lo hace autosuficiente.
  2. Es altamente configurable, por lo tanto, le permite ver cualquier operación del sistema que desee.
  3. Ayuda a detectar o analizar posibles compromisos de un sistema.
  4. Es capaz de funcionar como un sistema de detección independiente.
  5. Puede funcionar con sistemas de detección de intrusiones para permitir la detección de intrusiones.
  6. Es una herramienta vital para auditar investigaciones forenses.

Los componentes del sistema de auditoría de Linux

El sistema de auditoría tiene dos componentes principales, a saber:

  • aplicaciones y utilidades/herramientas del espacio de usuario, y
  • Procesamiento de llamadas al sistema del lado del kernel: acepta llamadas al sistema desde aplicaciones del espacio de usuario y las pasa a través de tres tipos de filtros, a saber: usuario, tarea, salida< o excluir.

La parte más importante es el demonio de auditoría del espacio de usuario (auditd), que recopila información basada en reglas preconfiguradas, del kernel y genera entradas en un archivo de registro: el El registro predeterminado es /var/log/audit/audit.log.

Además, el audispd (daemon despachador de auditoría) es un multiplexor de eventos que interactúa con auditd y envía eventos a otros programas que quieran realizar pruebas en tiempo real. procesamiento de eventos.

Hay una serie de herramientas de espacio de usuario para gestionar y recuperar información del sistema de auditoría:

  • auditctl: una utilidad para controlar el sistema de auditoría del kernel.
  • ausearch: una utilidad para buscar archivos de registro de auditoría para eventos específicos.
  • aureport: una utilidad para crear informes de eventos grabados.

Cómo instalar y configurar la herramienta de auditoría en RHEL/CentOS/Fedora

Primero asegúrese de verificar que la herramienta de auditoría esté instalada en su sistema usando el comando rpm y la utilidad grep de la siguiente manera:

rpm -qa | grep audit

Si no tiene instalados los paquetes anteriores, ejecute este comando como usuario root para instalarlos.

yum install audit

A continuación, verifique si auditd está habilitado y ejecutándose, ejecute los siguientes comandos systemctl en la terminal.

--------------- On CentOS/RHEL 7 --------------- 
systemctl is-enabled auditd
systemctl status auditd
systemctl start auditd   [Start]
systemctl enable auditd  [Enable]

--------------- On CentOS/RHEL 6 --------------- 
service auditd status
service auditd start     [Start]
chkconfig auditd on      [Enable]

Ahora veremos cómo configurar auditd usando el archivo de configuración principal /etc/audit/auditd.conf. Los parámetros aquí le permiten controlar cómo se ejecuta el servicio, como definir la ubicación del archivo de registro, la cantidad máxima de archivos de registro, el formato de registro, cómo manejar discos llenos, la rotación de registros y muchas más opciones.

vi /etc/audit/auditd.conf

A partir del resultado de muestra siguiente, los parámetros se explican por sí solos.

Comprender las reglas de auditoría

Como mencionamos anteriormente, auditd usa reglas para recopilar información específica del kernel. Estas reglas son básicamente opciones auditctl (consulte la página de manual) que puede preconfigurar reglas en el archivo /etc/audit/rules.d/audit.rules (en CentOS). 6, use el archivo /etc/audit/audit.rules), para que se carguen al inicio.

Hay tres tipos de reglas de auditoría que puede definir:

  • Reglas de control: permiten modificar el comportamiento del sistema de auditoría y algunas de sus configuraciones.
  • Reglas del sistema de archivos (también conocidas como vigilancia de archivos): permiten auditar el acceso a un determinado archivo o directorio.
  • Reglas de llamadas al sistema: permite el registro de llamadas al sistema realizadas por cualquier programa.

Ahora abra el archivo de configuración principal para editarlo:

vi /etc/audit/rules.d/audit.rules

Tenga en cuenta que la primera sección de este archivo debe contener reglas de control. Luego agregue sus reglas de auditoría (vigilancia de archivos y reglas de llamadas al sistema) en la sección central y, finalmente, la última sección contiene configuraciones de inmutabilidad que también son reglas de control.

Ejemplos de reglas de control auditadas

-D		#removes all previous rules
-b  3074	#define buffer size
-f 4		#panic on failure 
-r 120		#create at most 120 audit messages per second

Ejemplos de reglas del sistema de archivos auditados

Puede definir vigilancias de archivos utilizando esta sintaxis:

-w /path/to/file/or/directory -p permissions -k key_name

Donde la opción:

  • w: se utiliza para especificar un archivo o directorio a supervisar.
  • p – permisos para registrar, r – para acceso de lectura, w – para acceso de escritura, x – para ejecutar acceso y a – para cambio de archivo o atributo de director.
  • -k: le permite establecer una cadena opcional para identificar qué regla (o un conjunto de reglas) creó una entrada de registro específica.

Estas reglas permiten que la auditoría observe los eventos que realizan cambios en estos archivos críticos del sistema.

-w /etc/passwd -p wa -k passwd_changes
-w /etc/group -p wa -k group_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/sudoers -p wa -k sudoers_changes

Ejemplos de reglas de llamadas al sistema auditado

Puede configurar una regla de llamada al sistema utilizando el siguiente formulario:

-a action,filter -S system_call -F field=value -k key_name

dónde :

  • acción – tiene dos valores posibles: siempre o nunca.
  • filtro: especifica que el filtro de coincidencia de reglas del kernel (tarea, salida, usuario y exclusión) se aplica al evento.
  • llamada al sistema: nombre de la llamada al sistema.
  • campo: especifica opciones adicionales como arquitectura, PID, GID, etc. para modificar la regla.

Aquí hay algunas reglas que puede definir.

-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S sethostname -S setdomainname -k system_locale

Luego, por último, agregue la configuración de inmutabilidad al final del archivo, por ejemplo:

-e 1	#enable auditing
-e 2	#make the configuration immutable -- reboot is required to change audit rules
Ejemplo de archivo de configuración de reglas auditadas

Cómo establecer reglas Auditd usando la utilidad auditctl

Alternativamente, envíe las opciones a auditd mientras se está ejecutando, usando auditctl como en los siguientes ejemplos. Estos comandos pueden anular las reglas en el archivo de configuración.

Para enumerar todas las reglas de auditoría actualmente cargadas, pase el indicador -l:

auditctl -l

A continuación, intente agregar algunas reglas:

auditctl -w /etc/passwd -p wa -k passwd_changes
auditctl -w /etc/group -p wa -k group_changes
auditctl -w /etc/sudoers -p wa -k sudoers_changes
auditctl -l

Comprensión de los archivos de registro auditados

Todos los mensajes de auditoría se registran en el archivo /var/log/audit/audit.log de forma predeterminada. Para comprender el formato de entrada del registro, cargaremos una regla y verificaremos la entrada del registro generada después de un evento que coincida con la regla.

Suponiendo que tenemos un directorio de copias de seguridad secreto, esta regla de auditoría registrará cualquier intento de acceder o modificar este directorio:

auditctl -w /backups/secret_files/ -p rwa -k secret_backup

Ahora, utilizando otra cuenta del sistema, intente acceder al directorio anterior y ejecute el comando ls:

cd /backups/secret_files/
ls

La entrada del registro se verá así.

El evento anterior se compone de tres tipos de registros de auditoría. El primero es type=SYSCALL:

type=SYSCALL msg=audit(1505784331.849:444): arch=c000003e syscall=257 success=yes exit=3 a0=ffffffffffffff9c a1=8ad5c0 a2=90800 a3=0 items=1 ppid=2191 pid=2680 auid=1000 uid=1000 gid=1000 euid=1000 suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="secret_backup"

El segundo es type=CWD.

type=CWD msg=audit(1505784331.849:444):  cwd="/backups/secret_files"

Y el último es type=PATH:

type=PATH msg=audit(1505784331.849:444): item=0 name="." inode=261635 dev=08:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL

Puede encontrar una lista completa de todos los campos de eventos (como msg, arch, ses, etc.) y sus significados en la Referencia del sistema de auditoría.

Eso es todo por ahora. En el próximo artículo, veremos cómo utilizar ausearch para consultar archivos de registro de auditoría: explicaremos cómo buscar información específica en los registros de auditoría. Si tiene alguna pregunta, comuníquese con nosotros a través de la sección de comentarios a continuación.