¿Por qué Linux es mejor que Windows?
Desde el punto de vista de la investigación de sistemas operativos, Windows no es precisamente obsoleto, pero está claro que se debe mirar más allá. Tras el lanzamiento de Linux, que se espera gobierne el mundo en unos años, se produjo un cambio repentino. Debido a que el sistema operativo Linux es gratuito, la mayoría de las empresas lo utilizan. Incluso las pequeñas empresas están adoptando el sistema operativo Linux.
El sistema de auditoría de Linux es una característica útil para rastrear información relacionada con la seguridad. Se puede monitorear todo el comportamiento de las máquinas/servidores implementando la auditoría de Linux. Será adecuado para la organización en términos de seguridad, ya que los atacantes son astutos como un zorro.
Casos de uso del sistema de auditoría de Linux:
- Supervisión del acceso a archivos
- Monitoreo de llamadas al sistema
- Registro de comandos ejecutados por un usuario
- Registro de eventos de seguridad
- Búsqueda de eventos
- Ejecución de informes resumidos
- Monitoreo del acceso a la red
Los analistas deben estar al tanto de los registros de auditoría al implementar el servicio de auditoría de Linux. Las organizaciones definirán más reglas personalizadas para rastrear las actividades y servicios de auditoría, lo que dependerá de la organización. En SIEM, hay 10 reglas de auditoría predefinidas. Por lo tanto, simplemente implementar servicios de auditoría no será suficiente. Es necesario entender cómo analizar las alertas. Para analizarlas, es fundamental familiarizarse con los campos y directorios de los registros.
Empecemos por entender la lista de directorios en Linux.
Directorios de Registro de Sistema Linux
Directorio | Detalles |
---|---|
/var/log/syslog o /var/log/messages | Registro de todas las actividades del sistema, incluyendo mensajes e información general. |
/var/log/auth.log o /var/log/secure | Registro de inicios de sesión exitosos y fallidos, así como los procesos de autenticación. Varía según el sistema operativo. |
/var/log/boot.log | Registro de mensajes de inicio del sistema y la información de arranque. |
/var/log/maillog o var/log/mail.log | Registro del servidor de correo electrónico, útil para analizar problemas con servicios como postfix, smtpd, etc. |
/var/log/kern | Registro del núcleo del sistema (kernel) y las advertencias del sistema. |
/var/log/dmesg | Registro de comunicaciones del controlador de dispositivos. Puedes usar el comando “dmesg” para ver los mensajes. |
/var/log/faillog | Registro de intentos de inicio de sesión fallidos, útil para investigar posibles violaciones de seguridad. |
/var/log/cron | Registro de mensajes relacionados con los trabajos cron (tareas programadas). |
/var/log/daemon.log | Registro de servicios en segundo plano que no se muestran gráficamente. |
/var/log/btmp | Registro de intentos de inicio de sesión fallidos. |
/var/log/utmp | Registro de estados de inicio de sesión de usuario actual. |
/var/log/wtmp | Registro de cada inicio y cierre de sesión. |
/var/log/lastlog | Registro de cada inicio y cierre de sesión. |
/var/log/yum.log | Registro de información sobre instalaciones de paquetes yum. |
/var/log/httpd/ | Directorio que contiene los archivos de registro de errores y acceso del servidor web Apache. |
/var/log/mysqld.log o /var/log/mysql.log | Registro del servidor de bases de datos MySQL, incluyendo mensajes de depuración, fallos y éxitos. |
/var/log/pureftp.log | Registro de conexiones FTP, incluyendo inicios de sesión y fallos de autenticación. |
/var/log/spooler | Registro de correo USENET (generalmente vacío). |
/var/log/xferlog | Registro de transferencias de archivos FTP, incluyendo nombres de archivos e información de transferencia iniciada por el usuario. |
Antes de implementar las reglas de auditoría, familiarízate con los siguientes campos.
Hoja de Trucos para Analizar Registros de Auditoría de Linux
Nombre | Descripción | Ejemplo | Descripción de Ejemplo |
---|---|---|---|
type | Tipo de registro. | type=Syscall | Indica una llamada al sistema al kernel. |
msg | Marca de tiempo y ID único del registro. | msg=audit(1623564119.769:179143) | La marca de tiempo es en formato Unix epoch time (1623564119.769) y el ID del evento es 179143. |
arch | Arquitectura de la CPU del sistema. | arch=c000003e | Representa la arquitectura x86_64 (amd64 o Intel 64, 64-bit). |
syscall | Tipo de llamada al sistema. | syscall=59 | 59 corresponde a la llamada “execve” que ejecuta un programa. |
success | Indica si la llamada al sistema tuvo éxito. | success=yes | La llamada al sistema tuvo éxito. |
exit | Código de salida devuelto por la llamada al sistema. | exit=0 | 0 indica que la llamada al sistema fue exitosa. |
a0, a1, a2, a3 | Argumentos de la llamada al sistema en formato hexadecimal. | a0=a4567 a1=aa9680 a2=b858f0 a4=6cc | Se convierten a texto para facilitar la lectura. |
item | Número de registros de ruta asociados al evento. | item=2 | Indica que hay 2 rutas en el evento. |
ppid | ID del proceso padre. | ppid=18996 | El proceso que inició la actividad. |
pid | ID del proceso. | pid=765 | El proceso que llevó a cabo la acción. |
auid | ID de usuario de auditoría (ID de inicio de sesión). | auid=5645678934 | Identificador único del usuario que realizó la actividad. |
uid, gid, euid, suid, fsuid, egid, sgid, fsgid | IDs de usuario y grupo del usuario que inició el proceso. | uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root | Indican las diferentes identidades de usuario asociadas al proceso. |
tty | Terminal desde el que se invocó el proceso. | tty=pts0 | El terminal pseudo-terminal (pts) número 0. |
ses | ID de la sesión del usuario. | ses=14567 | Identificador único de la sesión del usuario. |
comm | Comando que se ejecutó. | comm=curl | Comando “curl” utilizado para transferir datos a través de HTTP. |
exe | Ruta del archivo ejecutable del comando. | exe=”usr/bin/curl” | La ruta del archivo ejecutable “curl”. |
Key | Palabra clave asociada a la regla de auditoría. | Key=”recon” | Palabra clave “recon” que indica una actividad de reconocimiento. |
cwd | Directorio de trabajo actual. | cwd=”/home/perk” | El directorio de trabajo actual era “/home/perk”. |
name | Ruta del archivo o directorio que se pasó a la llamada al sistema. | name=”bin/chmod” | La llamada al sistema se dirigió a la ruta “bin/chmod”. |
inode | Número de inodo asociado con el archivo o directorio. | inode=657456 | Identificador único del archivo o directorio en el sistema de archivos. |
mode | Permisos del archivo o directorio. | mode=0100755 | Los permisos del archivo son -rwxr-xr-x (rwx para el propietario, r-x para el grupo y otros). |
proctitle | Línea de comandos completa del comando ejecutado. | proctitle= 636174002F6574632F7373682 F737368645F636F6E666967 | Representa el comando “cat/etc/ssh/sshd_config”. |
Nota: El campo proctitle
está en formato hexadecimal y se debe convertir a texto para ser legible.
Conclusión
Los registros de auditoría de Linux no son tan difíciles como creemos. Será aún más sencillo cuando repasemos los campos del registro antes de avanzar con el análisis
Pingback: Registros Eventos Linux: Tipos, Detección y Respuesta » Blog