La palabra “auditoría” se utiliza en la mayoría de las tecnologías en una variedad de contextos. Como analista de SOC, se escucha el término “auditoría de registros” al menos una docena de veces durante un turno de trabajo. La mayoría de las veces estará relacionado con los registros de auditoría de Linux.
El sistema de auditoría de Linux es una característica útil para rastrear información relacionada con la seguridad. Al utilizar la auditoría de Linux, se puede monitorear todo el comportamiento de la máquina/servidor. El archivo /var/log/audit/audit.log
contiene entradas de registro del sistema de auditoría.
Hay momentos en los que realmente no se puede saber qué registro de eventos es qué. Dado que los registros de auditoría de Linux difieren mucho de los registros de auditoría de Windows, la mayoría de los especialistas encontrará difícil entenderlos.
Sin embargo, manejar los registros de auditoría de Linux es simple si estamos familiarizados con cada campo. Ya publiqué un artículo de blog sobre una hoja de trucos de registros de auditoría de Linux. En esa publicación del blog, discutí cómo analizar los registros de auditoría de Linux, junto con una breve explicación de cada nombre de campo. Ahora analizaré cómo determinar la actividad con la que estaba asociado.
Cada registro de auditoría de Linux tendrá un campo llamado “Type
” que se puede utilizar para identificar rápidamente el tipo de actividad. La siguiente lista ayudará a identificar el tipo de actividad en el registro de auditoría de Linux:
Nota:
- Cada tipo de evento de auditoría que termina en RESP está destinado a ser una respuesta de un sistema de detección de intrusiones si encuentra actividad maliciosa en el sistema.
- Este tipo de evento está asociado con la Integrity Measurement Architecture (IMA), que funciona de manera más efectiva cuando se combina con un chip Trusted Platform Module (TPM).
- Una aplicación de detección de intrusiones está destinada a procesar todos los tipos de eventos de auditoría que están precedidos por ANOM.
Eventos de Auditoría de Linux: Tipos y Explicaciones
Aquí tienes una tabla de los tipos de eventos de auditoría de Linux y lo que significan:
Tipo de evento | Explicación |
---|---|
ACCT_LOCK | Se activa cuando una cuenta de usuario de espacio de usuario es bloqueada por el administrador. |
ACCT_UNLOCK | Se activa cuando una cuenta de usuario de espacio de usuario es desbloqueada por el administrador. |
ADD_GROUP | Se activa cuando se agrega un grupo de espacio de usuario. |
ADD_USER | Se activa cuando se agrega una cuenta de usuario de espacio de usuario. |
ANOM_ABEND1 | Se activa cuando un proceso termina de forma anormal (con una señal que podría causar un volcado de memoria, si está habilitado). |
ANOM_ACCESS_FS1 | Se activa cuando un acceso a un archivo o directorio termina de forma anormal. |
ANOM_ADD_ACCT1 | Se activa cuando una adición de cuenta de espacio de usuario termina de forma anormal. |
ANOM_AMTU_FAIL1 | Se activa cuando se detecta un error de la utilidad de prueba de máquina abstracta (AMTU). |
ANOM_CRYPTO_FAIL1 | Se activa cuando se detecta un error en el sistema criptográfico. |
ANOM_DEL_ACCT1 | Se activa cuando una eliminación de cuenta de espacio de usuario termina de forma anormal. |
ANOM_EXEC1 | Se activa cuando la ejecución de un archivo termina de forma anormal. |
ANOM_LINK1 | Se activa cuando se detecta un uso sospechoso de enlaces de archivos. |
ANOM_LOGIN_ACCT1 | Se activa cuando un intento de inicio de sesión de cuenta termina de forma anormal. |
ANOM_LOGIN_FAILURES1 | Se activa cuando se alcanza el límite de intentos fallidos de inicio de sesión. |
ANOM_LOGIN_LOCATION1 | Se activa cuando se realiza un intento de inicio de sesión desde una ubicación prohibida. |
ANOM_LOGIN_SESSIONS1 | Se activa cuando un intento de inicio de sesión alcanza la cantidad máxima de sesiones concurrentes. |
ANOM_LOGIN_TIME1 | Se activa cuando se realiza un intento de inicio de sesión a una hora en la que está impedido por, por ejemplo, pam_time. |
ANOM_MAX_DAC1 | Se activa cuando se alcanza la cantidad máxima de errores de control de acceso discrecional (DAC, Discretionary Access Control). |
ANOM_MAX_MAC1 | Se activa cuando se alcanza la cantidad máxima de errores de control de acceso obligatorio (MAC, Mandatory Access Control). |
ANOM_MK_EXEC1 | Se activa cuando un archivo se vuelve ejecutable. |
ANOM_MOD_ACCT1 | Se activa cuando una modificación de cuenta de espacio de usuario termina de forma anormal. |
ANOM_PROMISCUOUS1 | Se activa cuando un dispositivo habilita o deshabilita el modo promiscuo. |
ANOM_RBAC_FAIL1 | Se activa cuando se detecta un error de autoprueba de control de acceso basado en roles (RBAC, Role-Based Access Control). |
ANOM_RBAC_INTEGRITY_FAIL1 | Se activa cuando se detecta un error de prueba de integridad de archivo de control de acceso basado en roles (RBAC). |
ANOM_ROOT_TRANS1 | Se activa cuando un usuario se convierte en root. |
AVC | Se activa para registrar una verificación de permiso SELinux. |
AVC_PATH | Se activa para registrar el par dentry y vfsmount cuando se produce una verificación de permiso SELinux. |
BPRM_FCAPS | Se activa cuando un usuario ejecuta un programa con una capacidad del sistema de archivos. |
CAPSET | Se activa para registrar las capacidades que se están estableciendo para las capacidades basadas en procesos, por ejemplo, ejecutar como root para eliminar capacidades. |
CHGRP_ID | Se activa cuando se cambia un ID de grupo de espacio de usuario. |
CHUSER_ID | Se activa cuando se cambia un ID de usuario de espacio de usuario. |
CONFIG_CHANGE | Se activa cuando se modifica la configuración del sistema de auditoría. |
CRED_ACQ | Se activa cuando un usuario adquiere credenciales de espacio de usuario. |
CRED_DISP | Se activa cuando un usuario elimina las credenciales de espacio de usuario. |
CRED_REFR | Se activa cuando un usuario actualiza sus credenciales de espacio de usuario. |
CRYPTO_FAILURE_USER | Se activa cuando falla una operación criptográfica de descifrado, cifrado o aleatorización. |
CRYPTO_IKE_SA | Se activa cuando se establece una Asociación de Seguridad de Intercambio de Claves de Internet. |
CRYPTO_IPSEC_SA | Se activa cuando se establece una Asociación de Seguridad de Protocolo de Internet. |
CRYPTO_KEY_USER | Se activa para registrar el identificador de clave criptográfica utilizado para fines criptográficos. |
CRYPTO_LOGIN | Se activa cuando se detecta un intento de inicio de sesión de un oficial criptográfico. |
CRYPTO_LOGOUT | Se activa cuando se detecta un intento de cierre de sesión de un oficial criptográfico. |
CRYPTO_PARAM_CHANGE_USER | Se activa cuando se detecta un cambio en un parámetro criptográfico. |
CRYPTO_REPLAY_USER | Se activa cuando se detecta un ataque de reproducción. |
CRYPTO_SESSION | Se activa para registrar parámetros establecidos durante el establecimiento de una sesión TLS. |
CRYPTO_TEST_USER | Se activa para registrar los resultados de la prueba criptográfica según lo requiere el estándar FIPS-140. |
CWD | Se activa para registrar el directorio de trabajo actual. |
DAC_CHECK | Se activa para registrar los resultados de la verificación DAC. |
DAEMON_ABORT | Se activa cuando un demonio se detiene debido a un error. |
DAEMON_ACCEPT | Se activa cuando el demonio auditd acepta una conexión remota. |
DAEMON_CLOSE | Se activa cuando el demonio auditd cierra una conexión remota. |
DAEMON_CONFIG | Se activa cuando se detecta un cambio en la configuración del demonio. |
DAEMON_END | Se activa cuando un demonio se detiene correctamente. |
DAEMON_ERR | Se activa cuando se detecta un error interno del demonio auditd. |
DAEMON_RESUME | Se activa cuando el demonio auditd reanuda el registro. |
DAEMON_ROTATE | Se activa cuando el demonio auditd rota los archivos de registro de auditoría. |
DAEMON_START | Se activa cuando se inicia el demonio auditd. |
DEL_GROUP | Se activa cuando se elimina un grupo de espacio de usuario. |
DEL_USER | Se activa cuando se elimina un usuario de espacio de usuario. |
DEV_ALLOC | Se activa cuando se asigna un dispositivo. |
DEV_DEALLOC | Se activa cuando se desasigna un dispositivo. |
EOE | Se activa para registrar el final de un evento de varios registros. |
EXECVE | Se activa para registrar los argumentos de la llamada al sistema execve(2). |
FANOTIFY | Se activa cuando se toma una decisión de acceso fanotify. |
FD_PAIR | Se activa para registrar el uso de las llamadas al sistema pipe y socketpair. |
FEATURE_CHANGE | Se activa cuando un valor de característica de auditoría cambia. |
FS_RELABEL | Se activa cuando se detecta una operación de etiquetado de sistema de archivos. |
GRP_AUTH | Se activa cuando una contraseña de grupo se utiliza para autenticarse frente a un grupo de espacio de usuario. |
GRP_CHAUTHTOK | Se activa cuando se modifica la contraseña o el PIN de una cuenta de grupo. |
GRP_MGMT | Se activa para registrar la modificación de atributos de cuenta de grupo de espacio de usuario. |
INTEGRITY_DATA2 | Se activa para registrar un evento de verificación de integridad de datos ejecutado por el kernel. |
INTEGRITY_EVM_XATTR2 | Se activa cuando se modifica un atributo extendido cubierto por EVM. |
INTEGRITY_HASH2 | Se activa para registrar un evento de verificación de integridad de tipo hash ejecutado por el kernel. |
INTEGRITY_METADATA2 | Se activa para registrar un evento de verificación de integridad de metadatos ejecutado por el kernel. |
INTEGRITY_PCR2 | Se activa para registrar mensajes de invalidación del Registro de Configuración de Plataforma (PCR). |
INTEGRITY_RULE2 | Se activa para registrar una regla de política. |
INTEGRITY_STATUS2 | Se activa para registrar el estado de la verificación de integridad. |
IPC | Se activa para registrar información sobre un objeto de Comunicación Interprocesos al que hace referencia una llamada al sistema. |
IPC_SET_PERM | Se activa para registrar información sobre los nuevos valores establecidos por una operación de control IPC_SET en un objeto IPC. |
KERN_MODULE | Se activa para registrar el nombre de un módulo del kernel al cargarse o descargarse. |
KERNEL | Se activa para registrar la inicialización del sistema de auditoría. |
KERNEL_OTHER | Se activa para registrar información de módulos de kernel de terceros. |
LABEL_LEVEL_CHANGE | Se activa cuando se modifica la etiqueta de nivel de un objeto. |
LABEL_OVERRIDE | Se activa cuando un administrador anula la etiqueta de nivel de un objeto. |
LOGIN | Se activa para registrar información de inicio de sesión relevante cuando un usuario inicia sesión para acceder al sistema. |
MAC_CALIPSO_ADD | Se activa cuando se agrega una entrada DOI de NetLabel CALIPSO. |
MAC_CALIPSO_DEL | Se activa cuando se elimina una entrada DOI de NetLabel CALIPSO. |
MAC_CHECK | Se activa cuando se toma una decisión de MAC (Control de Acceso Obligatorio) de espacio de usuario. |
MAC_CIPSOV4_ADD | Se activa cuando un usuario de Commercial Internet Protocol Security Option (CIPSO) agrega un nuevo Dominio de Interpretación (DOI). Agregar DOI es parte de las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_CIPSOV4_DEL | Se activa cuando un usuario CIPSO elimina un DOI existente. Agregar DOI es parte de las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_CONFIG_CHANGE | Se activa cuando se cambia un valor booleano SELinux. |
MAC_IPSEC_EVENT | Se activa para registrar información sobre un evento IPSec, cuando se detecta uno, o cuando cambia la configuración de IPSec. |
MAC_MAP_ADD | Se activa cuando se agrega una nueva asignación de dominio de Módulo de Seguridad de Linux (LSM). La asignación de dominio LSM es parte de las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_MAP_DEL | Se activa cuando se elimina una asignación de dominio LSM existente. La asignación de dominio LSM es parte de las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_POLICY_LOAD | Se activa cuando se carga un archivo de política SELinux. |
MAC_STATUS | Se activa cuando se cambia el modo SELinux (aplicación, permisivo, apagado). |
MAC_UNLBL_ALLOW | Se activa cuando se permite el tráfico sin etiquetar cuando se utilizan las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_UNLBL_STCADD | Se activa cuando se agrega una etiqueta estática cuando se utilizan las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MAC_UNLBL_STCDEL | Se activa cuando se elimina una etiqueta estática cuando se utilizan las capacidades de etiquetado de paquetes del kernel proporcionadas por NetLabel. |
MMAP | Se activa para registrar un descriptor de archivo y las marcas de la llamada al sistema mmap(2). |
MQ_GETSETATTR | Se activa para registrar los atributos de la cola de mensajes mq_getattr(3) y mq_setattr(3). |
MQ_NOTIFY | Se activa para registrar los argumentos de la llamada al sistema mq_notify(3). |
MQ_OPEN | Se activa para registrar los argumentos de la llamada al sistema mq_open(3). |
MQ_SENDRECV | Se activa para registrar los argumentos de las llamadas al sistema mq_send(3) y mq_receive(3). |
NETFILTER_CFG | Se activa cuando se detectan modificaciones en la cadena de Netfilter. |
NETFILTER_PKT | Se activa para registrar paquetes que atraviesan cadenas de Netfilter. |
OBJ_PID | Se activa para registrar información sobre un proceso al que se envía una señal. |
PATH | Se activa para registrar información de ruta de nombre de archivo. |
PROCTITLE | Da el comando completo que desencadenó este evento de auditoría, desencadenado por una llamada al sistema al kernel. |
RESP_ACCT_LOCK3 | Se activa cuando se bloquea una cuenta de usuario. |
RESP_ACCT_LOCK_TIMED3 | Se activa cuando se bloquea una cuenta de usuario durante un período de tiempo específico. |
RESP_ACCT_REMOTE3 | Se activa cuando se bloquea una cuenta de usuario desde una sesión remota. |
RESP_ACCT_UNLOCK_TIMED3 | Se activa cuando se desbloquea una cuenta de usuario después de un período de tiempo configurado. |
RESP_ALERT3 | Se activa cuando se envía un correo electrónico de alerta. |
RESP_ANOMALY3 | Se activa cuando no se actuó sobre una anomalía. |
RESP_EXEC3 | Se activa cuando un programa de detección de intrusiones responde a una amenaza originada en la ejecución de un programa. |
RESP_HALT3 | Se activa cuando se apaga el sistema. |
RESP_KILL_PROC3 | Se activa cuando se termina un proceso. |
RESP_SEBOOL3 | Se activa cuando se establece un valor booleano SELinux. |
RESP_SINGLE3 | Se activa cuando el sistema se coloca en modo de usuario único. |
RESP_TERM_ACCESS3 | Se activa cuando se termina una sesión. |
RESP_TERM_LOCK3 | Se activa cuando se bloquea un terminal. |
ROLE_ASSIGN | Se activa cuando un administrador asigna un usuario a un rol SELinux. |
ROLE_MODIFY | Se activa cuando un administrador modifica un rol SELinux. |
ROLE_REMOVE | Se activa cuando un administrador elimina un usuario de un rol SELinux. |
SECCOMP | Se activa cuando se detecta un evento SECure COMPuting. |
SELINUX_ERR | Se activa cuando se detecta un error interno de SELinux. |
SERVICE_START | Se activa cuando se inicia un servicio. |
SERVICE_STOP | Se activa cuando se detiene un servicio. |
SOCKADDR | Se activa para registrar una dirección de socket. |
SOCKETCALL | Se activa para registrar los argumentos de la llamada al sistema sys_socketcall (utilizada para multiplexar muchas llamadas al sistema relacionadas con el socket). |
SOFTWARE_UPDATE | Se activa para registrar eventos de actualización de software. |
SYSCALL | Se activa para registrar una llamada al sistema al kernel. |
SYSTEM_BOOT | Se activa cuando se arranca el sistema. |
SYSTEM_RUNLEVEL | Se activa cuando se cambia el nivel de ejecución del sistema. |
SYSTEM_SHUTDOWN | Se activa cuando se apaga el sistema. |
TEST | Se activa para registrar el valor de éxito de un mensaje de prueba. |
TIME_ADJNTPVAL | Se activa cuando se modifica el reloj del sistema. |
TIME_INJOFFSET | Se activa cuando se inyecta una compensación de mantenimiento del tiempo en el reloj del sistema. |
TRUSTED_APP | El registro de este tipo puede ser utilizado por aplicaciones de terceros que requieren auditoría. |
TTY | Se activa cuando se envió entrada TTY a un proceso administrativo. |
USER_ACCT | Se activa cuando se detecta un intento de autorización de usuario de espacio de usuario. |
USER_AUTH | Se activa cuando se detecta un intento de autenticación de usuario de espacio de usuario. |
USER_AVC | Se activa cuando se genera un mensaje AVC de espacio de usuario. |
USER_CHAUTHTOK | Se activa cuando se modifica la contraseña o el PIN de una cuenta de usuario. |
USER_CMD | Se activa cuando se ejecuta un comando de shell de espacio de usuario. |
USER_DEVICE | Se activa cuando se cambia un dispositivo de hotplug de espacio de usuario. |
USER_END | Se activa cuando se termina una sesión de espacio de usuario. |
USER_ERR | Se activa cuando se detecta un error de estado de cuenta de usuario. |
USER_LABELED_EXPORT | Se activa cuando un objeto se exporta con una etiqueta SELinux. |
USER_LOGIN | Se activa cuando un usuario inicia sesión. |
USER_LOGOUT | Se activa cuando un usuario cierra sesión. |
USER_MAC_POLICY_LOAD | Se activa cuando un demonio de espacio de usuario carga una política SELinux. |
USER_MGMT | Se activa para registrar la modificación de atributos de cuenta de usuario de espacio de usuario. |
USER_ROLE_CHANGE | Se activa cuando se cambia el rol SELinux de un usuario. |
USER_SELINUX_ERR | Se activa cuando se detecta un error de SELinux de espacio de usuario. |
USER_START | Se activa cuando se inicia una sesión de espacio de usuario. |
USER_TTY | Se activa cuando se envía desde el espacio de usuario un mensaje explicativo sobre la entrada TTY a un proceso administrativo. |
USER_UNLABELED_EXPORT | Se activa cuando un objeto se exporta sin etiqueta SELinux. |
USYS_CONFIG | Se activa cuando se detecta un cambio en la configuración del sistema de espacio de usuario. |
VIRT_CONTROL | Se activa cuando una máquina virtual se inicia, se pausa o se detiene. |
VIRT_MACHINE_ID | Se activa para registrar la vinculación de una etiqueta a una máquina virtual. |
VIRT_RESOURCE | Se activa para registrar la asignación de recursos de una máquina virtual. |
Ejemplos
Veamos algunos escenarios con los tipos mencionados anteriormente:
Caso 1:
Registro sin procesar:
Time= 4/28/24 16:41:07:000 PM node= anulinux type=ACCT_LOCK msg=audit(65432.657.987): pid=2341 uid=0 auid=3424567 ses=753456326 subj=system_u:system_r:passwd_t:s0 msg=`op=locked-password id=2000 exe=\”/usr/bin/passwd\” hostname=anulinux addr=? terminal=? res=success UID=\”root\” AUID=”anu”
Explicación:
- ACCT_LOCK: Se activa cuando una cuenta de usuario de espacio de usuario es bloqueada por el administrador.
- En el registro anterior, el tipo de evento se observa como “ACCT_LOCK”, lo que indica que la cuenta “anu” está bloqueada.
- El mensaje se observa como “locked-password”, lo que indica que la cuenta está bloqueada debido a la contraseña. La cuenta podría estar bloqueada por usar una contraseña incorrecta o caducada al intentar iniciar sesión en la cuenta de Linux.
Caso 2:
Registro sin procesar:
Time= 4/28/24 16:50:07:000 PM node= anulinux type=USER_CHAUTHTOK msg=audit(4353566765.645.7545): pid=1806 uid=0 auid=3424567 ses=7648 msg=`op=updating-password id=2001 exe=\”/usr/sbin/usermod\” hostname=anulinux addr=? terminal=? res=success UID=\”root\” AUID=”anu”
Explicación:
- USER_CHAUTHTOK: Se activa cuando se modifica la contraseña o el PIN de una cuenta de usuario.
En el registro anterior, el tipo de evento se observa como “USER_CHAUTHTOK”, lo que indica que se restableció la contraseña/PIN de la cuenta “anu”. El mensaje se observa como “updating-password” y el resultado se observa como “success”. Entonces, de acuerdo con el registro anterior, se puede confirmar que la contraseña se actualizó para la cuenta “anu”.
Caso 3:
Registro sin procesar:
Time= 4/28/24 17:00:34:000 PM node= anulinux type= NETFILTER_CFG msg=audit(4353566765.645.7545): table=filter:54234 familiy=4 entries=3 op=nft_register_rule pid=1807 comm=\”iptables”\
Explicación:
- NETFILTER_CFG: Se activa cuando se detectan modificaciones en la cadena de Netfilter.
- ¿Qué es Netfilter? Es un filtro de paquetes y un cortafuegos implementado en el kernel estándar de Linux. La herramienta de espacio de usuario iptables se utiliza para la configuración y es solo una herramienta de línea de comandos que se utiliza para agregar o eliminar reglas de netfilter. Admite el filtrado de paquetes (sin estado o con estado), muchos tipos de traducción de direcciones y puertos de red (NAT/NAPT) y varias capas de API para extensiones de terceros.
- En el registro anterior, el tipo de evento se observa como “NETFILTER_CFG”, lo que indica que se realizaron cambios en la configuración a nivel de cortafuegos para el host “anulinux”.
Caso 4:
USER_AUTH = fail username= anu ipaddress =127.0.0.1
Explicación:
Cuando ves “USER_AUTH = fail
” en el registro de auditoría, significa que alguien intentó autenticarse (como iniciar sesión) en el sistema, pero el intento no tuvo éxito. La mayoría de las veces sucede cuando los intentos de fuerza bruta de SSH y SFTP intentan iniciar sesión en tu servidor.
El uso de USER_AUTH ayudará al analista a ver si los intentos de fuerza bruta del atacante tuvieron éxito o no.
Conclusión
Con los tipos de eventos anteriores, es fácil identificar los eventos del registro de auditoría de Linux y comprender el escenario.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.