Analizar Registros del Sistema en Busca de Entradas Anómalas
En este paso, aprenderá a analizar los registros del sistema para encontrar evidencia de actividad sospechosa. Los registros del sistema son registros de eventos que ocurren en el sistema y son una fuente crítica de información para el monitoreo de seguridad y el análisis forense. Nos centraremos en los registros de autenticación, que rastrean los inicios de sesión de usuarios y las escaladas de privilegios, y utilizaremos herramientas estándar de Linux como grep, tail y journalctl para encontrar entradas anómalas.
La mayoría de los registros del sistema en un sistema Linux se almacenan en el directorio /var/log. Uno de los más importantes para la seguridad es /var/log/auth.log, que registra eventos relacionados con la autenticación, incluidos los inicios de sesión SSH y el uso del comando sudo. Comencemos visualizando las últimas líneas de este archivo usando el comando tail. Necesita sudo porque este archivo está protegido.
sudo tail /var/log/auth.log
Verá una serie de entradas con marcas de tiempo. El formato típicamente incluye la fecha, hora, nombre del host, el proceso que generó el registro y el mensaje del evento.
Jul 22 10:30:01 labex-vm sudo: labex : TTY=pts/0 ; PWD=/home/labex/project ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
Jul 22 10:30:01 labex-vm sudo: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=1000)
Jul 22 10:30:01 labex-vm sudo: pam_unix(sudo:session): session closed for user root
Ahora, simulemos un evento sospechoso común: un intento de inicio de sesión fallido. Los atacantes a menudo intentan adivinar contraseñas para nombres de usuario válidos o comunes. Podemos simular esto intentando conectarnos por SSH a nuestra propia máquina (localhost) con un nombre de usuario que no existe, como baduser.
ssh baduser@localhost
El sistema le pedirá una contraseña (puede usar labex como contraseña). Dado que el usuario no existe, cualquier contraseña fallará. Simplemente presione Ctrl+C para cancelar la solicitud de contraseña y regresar a la terminal. El intento de conexión fallará, pero se registrará.
Ahora, busquemos la evidencia. Podemos usar el comando grep para filtrar el archivo auth.log en busca de líneas que contengan la palabra "Failed". Esto aísla rápidamente los eventos infructuosos.
sudo grep "Failed" /var/log/auth.log
La salida ahora mostrará claramente la entrada de registro de nuestro intento de inicio de sesión SSH fallido, que es un fuerte indicador de un posible intento de intrusión.
Jul 22 10:35:15 labex-vm sshd[12345]: Failed password for invalid user baduser from 127.0.0.1 port 54321 ssh2
Los sistemas Linux modernos que utilizan systemd también tienen un sistema de registro centralizado administrado por journald. El comando journalctl es una herramienta potente para consultar estos registros. Usemoslo para encontrar el mismo evento de inicio de sesión fallido buscando mensajes del proceso sshd. Tenga en cuenta que debe usar sudo para ver los registros a nivel del sistema.
sudo journalctl | grep sshd
Desplácese por la salida (usando las teclas de flecha, y presione q para salir) y encontrará la misma entrada "Failed password". Para que sea aún más fácil, puede filtrar por prioridad del mensaje. Pidamos a journalctl que muestre solo las entradas con una prioridad de "error" (err) o superior para el servicio sshd.
sudo journalctl -p err | grep sshd
Este comando le brinda una vista mucho más concisa solo de las condiciones de error, lo que lo hace muy eficiente para detectar problemas.
-- Logs begin at ... --
Jul 22 10:35:15 labex-vm sshd[12345]: Failed password for invalid user baduser from 127.0.0.1 port 54321 ssh2
-- End of logs --
Finalmente, también puede inyectar manualmente mensajes en los registros usando el comando logger. Esto es útil para que los scripts personalizados informen sobre eventos de seguridad. Creemos una alerta personalizada.
logger "SECURITY-ALERT: Unauthorized file access detected in /etc"
Ahora, busque esta alerta específica en los registros del sistema.
sudo grep "SECURITY-ALERT" /var/log/syslog
Verá su mensaje personalizado, lo que demuestra cómo puede integrar su propio monitoreo con la instalación de registro del sistema.
Jul 22 10:40:00 labex-vm labex: SECURITY-ALERT: Unauthorized file access detected in /etc
Ahora ha aprendido los conceptos básicos de navegación por los registros del sistema para encontrar evidencia de actividad anómala y potencialmente maliciosa.