¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cómo encontrar un intruso en un registro

Después de esta lección: Puedo encontrar las pistas de un ataque en un registro.

Lección de 50 min6 comandosLaboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

¿Cómo se encuentra un ataque en un registro?

Un registro es un archivo donde un sistema apunta, línea a línea, lo que ocurre. Para encontrar un ataque, se lee con calma, se filtran las líneas que importan y se ordenan por hora.

Piensa en el historial de acceso de tu cuenta de una red social: dice cuándo y desde dónde entraron. Hoy aprenderás a hacer lo mismo con un servidor.

Al terminar esta lección

Nota

Puedo encontrar las pistas de un ataque en un registro.

Palabras clave

PalabraQué significa
Registroun archivo que apunta lo que pasa, con su hora
Filtrarquedarse solo con las líneas que cumplen algo
Línea del tiempolos hechos puestos en orden de hora
Pistaun dato que ayuda a saber qué pasó
SSHla forma segura de entrar en una máquina desde lejos

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La regla de este laboratorio

Advertencia

Trabaja solo con las copias de registros de tu máquina privada. No hay malware: todo es texto. Nunca investigues ni entres en un sistema sin permiso de su dueño. Un buen investigador mira, apunta y no toca.

Dos líneas de un registro de SSH, inventadas

Código: bash
Oct 14 02:41:07 web01 sshd[1201]: Failed password for root from 203.0.113.9 port 51234 ssh2
Oct 14 02:43:11 web01 sshd[1215]: Accepted password for alice from 198.51.100.14 port 40024 ssh2

Ejemplo resuelto: las partes de la primera línea

ParteValorQué dice
Hora02:41:07Cuándo ocurrió
Máquinaweb01Qué servidor lo apuntó
MensajeFailed passwordLa clave fue incorrecta
CuentarootLa cuenta que se probó
Dirección203.0.113.9Desde dónde vino el intento

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra superior y espera a que la máquina diga que está en marcha. Cada botón Ejecutar escribe su comando en el terminal de la máquina.

Filtrar y contar saca las pistas

Un registro puede tener miles de líneas. El programa grep enseña solo las que contienen una palabra. Con -c cuenta las líneas en vez de enseñarlas.

Después, sort, uniq -c y wc -l ordenan y cuentan. Así se pasa de un montón de líneas a un número que dice algo.

Entra en la carpeta case

Comando
cd ~/case

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cuenta las veces que alguien entró por SSH

Comando
grep -c Accepted var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cuenta los intentos fallidos

Comando
grep -c "Failed password" var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cuenta las líneas de crear usuarios

Comando
grep -c useradd var/log/auth.log

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que la dirección con más intentos fallidos es la del intruso. Puede ser solo ruido: un robot que prueba claves y nunca entra. Lo que importa es quién falló y después entró.

Una línea del tiempo ordena lo que pasó

Una línea del tiempo pone los hechos de todos los archivos en orden de hora. Un cambio hecho antes de que llegara el atacante no puede ser suyo.

El archivo mtimes.txt ya viene ordenado: apunta fecha, hora, dueño y ruta de cada cambio. Cuenta sus líneas y mira dos de ellas.

Cuenta las líneas de mtimes.txt

Comando
wc -l < mtimes.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Mira las líneas segunda y tercera

Comando
sed -n 2,3p mtimes.txt

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo resuelto: una línea del tiempo inventada

HoraHecho¿Puede ser del intruso?
02:10El administrador cambia su claveNo, es anterior
02:41Muchos intentos fallidos desde una direcciónQuizá, es ruido
02:44Entra una cuenta desde esa direcciónSí, falló y entró
02:50Aparece un archivo nuevo en esa cuentaSí, es posterior

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Para ir más lejos: tu propio caso

Cuando hagas el trabajo del laboratorio, escribe tus respuestas con una línea del tiempo: hora, hecho y qué prueba lo demuestra.

Antes, dibuja en papel una línea del tiempo del ejemplo de esta lección. ¿Qué hecho cambia tu idea de quién fue el intruso?

Sobre este laboratorio y su código: Laboratorio de respuesta a incidentes y forense: investiga un servidor comprometido

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.