¿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 reconocer un ataque en el tráfico

Después de esta lección: Puedo reconocer un ataque en el tráfico y en los registros.

Lección de 60 min4 comandosLaboratorio de pasarela NAT: masquerade y reenvío de puertos con nftables en tu navegador

¿Cómo se reconoce un ataque en la red?

Un ataque deja rastro en el tráfico y en los registros. Puede ser una cadena que nadie escribiría a mano o una cantidad de intentos que ninguna persona haría. Reconocerlo es mirar esos rastros con dos ideas: la firma y la tasa.

Una gestoría ve en su registro mil intentos de contraseña fallidos en dos minutos, desde una sola dirección. Nadie escribe tan rápido.

Al final de esta lección

Nota

Puedo reconocer un ataque en el tráfico y en los registros.

Palabras clave

PalabraQué significaEjemplo
Firmaun patrón conocido que delata un ataque../
Tasacuántos eventos ocurren en un tiempo dado
Fuerza brutaprobar muchas contraseñas hasta acertar
Falso positivouna alarma por algo que no es un ataque
Registroel archivo donde un servicio apunta lo que ocurre

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

Una firma es un patrón conocido

Muchos ataques repiten una huella reconocible. Una petición web con ../ intenta salir de la carpeta de la web y leer otros archivos. Una cadena como UNION SELECT aparece en un intento de inyección en una base de datos.

Un detector por firmas busca esos patrones. Acierta mucho con lo que ya conoce y no ve lo que es nuevo.

Ejemplo resuelto: firmas en un registro

Qué buscasQué intenta el atacanteDónde lo ves
../ en la dirección pedidaLeer archivos fuera de la webRegistro del servidor web
UNION SELECT en un parámetroSacar datos de la base de datosRegistro del servidor web
Failed password para rootAdivinar la clave de administraciónRegistro de SSH
Un programa de escaneo en la cabeceraPreparar un ataqueRegistro del servidor web

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

Busca una firma en un registro de ejemplo

Comando
printf "GET /index.html\nGET /../../etc/passwd\nGET /precios.html\n" | grep -F "../"

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

La tasa delata lo que ninguna persona haría

Otros ataques no tienen una cadena especial. Lo raro es la tasa: mil intentos en dos minutos, o un mismo origen que toca cien puertos en un segundo.

Un detector por tasa cuenta eventos por origen y por tiempo, y avisa cuando se pasa un umbral que tú eliges. Detecta ataques nuevos, a costa de algún aviso falso.

Ejemplo resuelto: contar intentos por dirección

OrigenIntentos fallidos en 2 minutosUmbral: 20¿Alerta?
203.0.113.501000Lo pasa de lejosSí
198.51.100.72No lo alcanzaNo
192.0.2.2022Lo pasa por pocoSí, a revisar

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

Cuenta intentos por dirección de origen

Comando
printf "203.0.113.50 22\n203.0.113.50 23\n203.0.113.50 25\n198.51.100.7 443\n" | awk '{print $1}' | sort | uniq -c

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 contraseñas fallidas

Comando
printf "Failed password for root from 203.0.113.50\nAccepted password for ana from 198.51.100.7\nFailed password for root from 203.0.113.50\n" | grep -c "Failed password"

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

Qué cuentan esos dos Run

El primero separa cada línea en dos columnas, se queda con la primera y cuenta cuántas veces sale cada dirección. Imprime un 1 para 198.51.100.7 y un 3 para 203.0.113.50.

El segundo cuenta las líneas con «Failed password» y imprime 2. Dos fallos de una misma cuenta no son un ataque, pero mil sí.

Un escaneo toca muchos puertos

Un escaneo de puertos deja un rastro claro: una misma dirección de origen que toca muchos puertos distintos en poco tiempo. Una persona normal usa un puerto por servicio.

Para verlo, haz tú mismo un mini escaneo. Pruebas cinco puertos seguidos de la máquina lan, que es tu laboratorio privado.

Prueba cinco puertos seguidos de tu propia máquina

Comando
sudo ip netns exec lan nc -zv -w 1 127.0.0.1 78-82

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

Cómo se ve un escaneo desde dentro

La orden imprime cinco líneas, una por puerto. Cuatro dicen Connection refused y una dice succeeded!, la del puerto 80, que sirve la página de la máquina.

Un monitor de esa máquina vería cinco intentos de un mismo origen en un segundo. Es justo el patrón que busca un detector por tasa.

Un error frecuente

Advertencia

Mucha gente cree que una dirección con muchos fallos es siempre un atacante. Si todo un instituto sale a internet con una sola dirección, veinticinco alumnos que se equivocan de clave suman muchos fallos. Antes de bloquear, mira si detrás de la dirección hay mucha gente.

Tras detectar: avisar, limitar, revisar

Un aviso no es una sentencia. Primero se avisa a una persona con los datos: quién, a qué, cuántas veces y cuándo.

Si el ataque es claro, se limita la dirección durante un rato con una regla de cortafuegos, y se revisa después si fue un error. Bloquear para siempre rara vez compensa.

Sobre este laboratorio y su código: Laboratorio de pasarela NAT: masquerade y reenvío de puertos con nftables en tu navegador

¿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.