Seguimos con las opciones de Snort que no está relacionadas con el contenido o Payload. Ya vimos en la primera parte las opciones Fragoffset y Fragbits. ahora nos centraremos en TTL, ID, Dsize, Seq, Ack, Icode, Itype y Tos, que forman parte de campos de la cabecera IP, segmento TCP, e ICMP.
TTL
Como ya vimos en su momento, el campo de la cabecera IP (TTL) Tiempo de vida de longitud 8 bits, impide que un paquete esté indefinidamente viajando por la red.
La opción TTL de las reglas Snort comprueba el valor exacto de este valor de la cabecera independientemente del protocolo involucrado en la regla.
alert icmp any any -> any any (msg: "Ping con TTL=100"; ttl:100;)
ID
La opción ID comprueba el campo de la cabecera IP ó número de identificación único por cada datagrama que permitirá el reensamblaje posterior al ser dividido en fragmentos más pequeños. Longitud 16 bits. Muy útil está regla por cuanto algunas herramientas fijan un valor contreto para este campo, con lo que podremos detectar paquetes «maliciosos».
alert udp any any - any any (msg: "Identificación ID Sopechoso"; ID:0;)
Dsize
Opción que comprueba el tamaño del contenido del paquete ó payload. Admite operadores mayor que o menor que.
alert ICMP $EXTERNAL any -> $INTERNAL any /
(msg: «ICMP ping en Windows 2000.»; dsize: 32; itype: 8; /
content: «abcdefghijklmnopqrstuvwabcdefghi»; depth: 32;)
Dsize entre 300 y 400
dsize: 300400;
Dsize mayor que 32
dsize > 32
Seq y Ack
La opción Seq comprueba el valor del campo de la sequencia TCP.
Ack comprueba el valor de ACK o acuse derecibo del segmento TCP.
alert tcp $EXTERNAL_NET any -> $HOME_NET any /
(msg:"Escaneo ping con nmap";flags:A;ack:0; /
reference:arachnids,28;classtype:attempted-recon; sid:628;/
rev:1;)
Como vemos ack es usado, por ejemplo, para detección de Scan con NMAP.
ICODE e ITYPE
Con Icode e Itype entramos en la comprobación de calores de campos de la cabecera ICMP .
-
Itype comprueba, para detectar, por ejemplo, posibles DoS, el campoy Type.
-
Icode comprueba el campo code ó código de error.
alert icmp 192.168.1.10 any -> $RED_EXTERNA any /
(msg:"lanzando un ping"; icode:0;itype:8;sid:00001;/
classtype:reglas_personales;rev:0;)
Recordando lo visto aquí respecto a ICMP:
……el formato de ICMP cambia dependiendo del tipo de mensaje. El formato sería:
- Tipo (8 bits) Tipo de mensaje ICMP. Y pueden ser:
Tipo Tipo de Mensaje 0 Respuesta de Eco 3 Destino Inalcanzable 4 Origen saturado 5 Redireccion (cambiar ruta) 8 Solicitud de eco 11 Tiempo excedido para un datagrama 13 Problema de parametros en un datagrama 13 Solicitud de fecha y hora 14 Respuesta de fecha y hora 17 Solicitud de nascara de direccion 18 Respuesta de mascara de direccion
- Codigo (8 bits) Contiene el código de error para el datagrama del que da parte el mensaje ICMP. La interpretación depende del tipo de mensaje. Se utiliza en algunos mensajes para distinguir, dentro de un tipo de mensaje, distintos subtipos.
- Suma de control (16 bits) Campo de control de la integridad de la totalidad del mensaje ICMP.
- Datos Depende del tipo de mensaje.
TOS
Comprueba el valor del campo TOD de la cabecera IP que corresponde al tipo de servicio respecto a la fiabilidad, velocidad, retardo, seguridad… Tiene un tamaño de 8 bits.
tos:!4;
tos:1;