Análisis de alertas de Snort

CiberseguridadBeginner
Practicar Ahora

Introducción

Snort es un potente Sistema de Detección de Intrusiones (IDS) de código abierto que monitorea el tráfico de red en tiempo real y lo compara con un conjunto de reglas predefinidas. Cuando una actividad sospechosa coincide con una regla, Snort genera una alerta. Comprender cómo leer e interpretar estas alertas es una habilidad fundamental para cualquier profesional de la ciberseguridad.

Generar una alerta es solo el comienzo del flujo de trabajo defensivo. Los analistas aún deben decidir si el evento es significativo, qué sucedió en la red y si se requiere una acción de seguimiento. Por eso, la interpretación de alertas es tan importante como la creación de reglas. Una pila de detección robusta es inútil si los humanos no pueden leer y clasificar sus resultados con precisión.

En este laboratorio, aprenderás a interactuar con las alertas de Snort. Iniciarás Snort con una configuración personalizada, generarás tráfico de red para activar reglas de detección específicas y luego analizarás los archivos de registro resultantes. Snort puede generar registros en varios formatos; nos centraremos en el registro fast (que proporciona un resumen rápido de una línea del evento) y el registro full (que incluye información detallada del encabezado del paquete).

Activar múltiples reglas

En este paso, iniciarás el Sistema de Detección de Intrusiones Snort y generarás tráfico de red para activar las reglas personalizadas que han sido preconfiguradas para ti.

Crear tráfico de prueba conocido como "bueno" es un hábito estándar en la ingeniería de detección. Si sabes exactamente qué paquetes deben activar qué reglas, tendrás una línea base clara para validar que la canalización de monitoreo funciona de extremo a extremo.

El entorno ha sido configurado con dos reglas simples de Snort: una que detecta tráfico ICMP (Ping) y otra que detecta tráfico HTTP (web) en el puerto 80. También hemos creado un archivo de configuración personalizado en /etc/snort/custom.conf que le indica a Snort que guarde las alertas en dos formatos diferentes: un registro "fast" y un registro "full".

Primero, inicia Snort en modo demonio (segundo plano) usando el archivo de configuración personalizado. El indicador -D le dice a Snort que se ejecute en segundo plano, -c especifica el archivo de configuración, -l especifica el directorio de registros y -i eth0 le indica a Snort que escuche en la interfaz de red predeterminada.

sudo snort -c /etc/snort/custom.conf -l /var/log/snort -i eth0 -D

Deberías ver un mensaje indicando que Snort se ha inicializado y ejecutado como demonio correctamente.

A continuación, genera algo de tráfico de red para activar las reglas. Enviaremos tres paquetes de ping ICMP a un servidor DNS público (8.8.8.8) para activar la regla ICMP.

ping -c 3 8.8.8.8

Ahora, genera algo de tráfico HTTP usando el comando curl para obtener una página web. Esto activará la regla HTTP. Usamos > /dev/null para evitar que la salida HTML sature tu terminal.

curl -s http://example.com > /dev/null

Finalmente, espera un momento a que Snort procese los paquetes y los escriba en los archivos de registro. Puedes verificar que los archivos de registro se hayan creado listando el contenido del directorio de registros de Snort.

sleep 2
ls -l /var/log/snort

Deberías ver fast_alert.log y full_alert.log en la salida, lo que indica que Snort detectó correctamente el tráfico y generó las alertas.

total 8
-rw-r--r-- 1 root root  345 Sep 15 10:00 fast_alert.log
-rw-r--r-- 1 root root 1250 Sep 15 10:00 full_alert.log

Analizar el registro rápido (Fast Log)

En este paso, examinarás el archivo fast_alert.log. El formato de alerta "fast" está diseñado para ser conciso y fácil de leer. Registra la información más crítica sobre una alerta en una sola línea, lo que lo hace ideal para revisiones rápidas o para el análisis mediante scripts automatizados.

Este es el formato con el que muchos analistas interactúan primero, ya que la clasificación (triage) suele comenzar de forma general. Quieres saber qué se activó, cuándo ocurrió y qué puntos finales estuvieron involucrados antes de decidir si son necesarios detalles más profundos del paquete.

Usa el comando cat para mostrar el contenido del archivo de registro rápido.

cat /var/log/snort/fast_alert.log

Tu salida se verá similar a la siguiente:

09/15-10:00:01.123456  [**] [1:1000001:1] ICMP Ping Detected [**] {ICMP} 192.168.1.10 -> 8.8.8.8
09/15-10:00:01.123456  [**] [1:1000001:1] ICMP Ping Detected [**] {ICMP} 8.8.8.8 -> 192.168.1.10
09/15-10:00:05.654321  [**] [1:1000002:1] HTTP Traffic Detected [**] {TCP} 192.168.1.10:45678 -> 93.184.216.34:80

Desglosemos los componentes de una línea de alerta rápida:

  • Marca de tiempo (Timestamp): 09/15-10:00:01.123456 muestra la fecha y hora exactas en que se capturó el paquete.
  • Generador, SID y Revisión: [1:1000001:1] representa el ID del generador (1 significa que es una regla estándar de Snort), el ID de Snort (SID) que identifica de forma única la regla (1000001) y el número de revisión de la regla (1).
  • Mensaje: ICMP Ping Detected es el mensaje legible por humanos definido en la regla.
  • Protocolo: {ICMP} o {TCP} indica el protocolo de red utilizado.
  • Origen y Destino: 192.168.1.10:45678 -> 93.184.216.34:80 muestra la IP y el puerto de origen, una flecha que indica la dirección del tráfico y la IP y el puerto de destino.

Al leer este registro, un analista de seguridad puede determinar rápidamente quién está atacando (IP de origen), cuál es su objetivo (IP y puerto de destino) y qué tipo de ataque se sospecha (Mensaje).

Inspeccionar volcados completos de paquetes

Aunque el registro rápido es excelente para una visión general, carece de los detalles técnicos profundos necesarios para una investigación exhaustiva. En este paso, examinarás el archivo full_alert.log.

El registro completo responde a una pregunta diferente: no solo "¿qué alerta se activó?", sino "¿cómo era realmente el paquete que la activó?". Este contexto más profundo ayuda a los analistas a validar alertas, comprender el comportamiento del protocolo e investigar posibles falsos positivos o evasiones.

El formato de alerta "full" incluye la información completa del encabezado del paquete. Esto permite a los analistas inspeccionar detalles como el Tiempo de Vida (TTL), el Tipo de Servicio (TOS), la longitud del paquete y las banderas (flags) TCP, que pueden ser cruciales para comprender la naturaleza de un ataque o identificar falsos positivos.

Debido a que el registro completo contiene varias líneas por alerta, puede ser bastante largo. Usa el comando head para ver las primeras 30 líneas del archivo, lo que te mostrará los detalles de las primeras alertas.

head -n 30 /var/log/snort/full_alert.log

Tu salida se verá similar a esto:

[**] [1:1000001:1] ICMP Ping Detected [**]
09/15-10:00:01.123456 192.168.1.10 -> 8.8.8.8
ICMP TTL:64 TOS:0x0 ID:12345 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:15  Seq:1  ECHO
...
[**] [1:1000002:1] HTTP Traffic Detected [**]
09/15-10:00:05.654321 192.168.1.10:45678 -> 93.184.216.34:80
TCP TTL:64 TOS:0x0 ID:54321 IpLen:20 DgmLen:60 DF
******S* Seq: 0x1A2B3C4D  Ack: 0x0  Win: 0xFAF0  TcpLen: 40

Observa los detalles adicionales proporcionados en el registro completo:

  • Información del encabezado IP: TTL:64 (Time to Live), TOS:0x0 (Type of Service), ID:12345 (Identificación IP) y DgmLen:84 (Longitud del datagrama).
  • Detalles específicos de ICMP: Type:8 Code:0 indica una solicitud de eco ICMP (un ping estándar).
  • Detalles específicos de TCP: ******S* representa las banderas TCP establecidas en el paquete (en este caso, la bandera SYN está establecida, lo que indica el inicio de una conexión). También muestra los números de secuencia (Seq), números de confirmación (Ack) y el tamaño de la ventana (Win).

Al analizar estos volcados completos de paquetes, puedes obtener una comprensión mucho más profunda del tráfico de red que activó la alerta del IDS.

Resumen

En este laboratorio, configuraste y ejecutaste con éxito el Sistema de Detección de Intrusiones Snort para monitorear el tráfico de red. Aprendiste a activar reglas de detección personalizadas generando tipos específicos de tráfico de red, como pings ICMP y solicitudes HTTP. Además, exploraste las diferencias entre los registros de alertas fast y full de Snort, obteniendo experiencia práctica en la lectura e interpretación de la información crítica que contienen, desde las IPs básicas de origen y destino hasta los detalles detallados de los encabezados de los paquetes. Estas habilidades son esenciales para monitorear eficazmente la seguridad de la red y responder a posibles amenazas.