Por ejemplo, flow:established
está detectando solo paquetes con sesiones conectadas.
Entonces, ¿el servidor está rechazando los paquetes que se reciben después de que la sesión se desconecta?
Simplemente, flow
es una opción de regla de detección sin carga que utiliza el preprocesador Stream (anteriormente Stream5, Stream4). Recomiendo leer la siguiente documentación:
Por ejemplo, el flujo: establecido está detectando solo paquetes con sesiones conectadas.
Me gustaría ampliar esto. Las conexiones TCP utilizan un protocolo de enlace de 3 vías ( 3WHS ). El cliente envía un SYN, el servidor responde con un SYN + ACK, y luego el cliente responde con un ACK.
Imagende:
Al usar flow:established
en una regla, le está diciendo a Snort que no se moleste en mirar [típicamente] los primeros tres paquetes en una secuencia TCP. Esto se hace porque normalmente no hay contenido (Datos de la aplicación) dentro.
Cuándo no utilizar established
en su opción flow
:
Al escribir una firma que no usa TCP (por ejemplo, UDP, ICMP, IP)
Al escribir una firma que está diseñada para apuntar paquetes dentro de 3WHS.
Entonces, ¿el servidor está rechazando los paquetes que se reciben después de que la sesión se desconecta?
Recuerde, Snort no es un servidor; es un Sistema de prevención / detección de intrusos en la red ( NIPS / NIDS ). La única forma en que rechazará los paquetes es si lo tiene configurado y ejecutándose en una configuración en línea (NIPS). Si no, solo puede observar el tráfico y no puede rechazar ni eliminar paquetes de forma activa.
Suponiendo que tenía Snort configurado y ejecutándose en modo en línea, si tuviera que escribir una regla como:
drop tcp any any -> any any (msg:"Dropping packets"; flow:established; sid:1; rev:1; )
... La regla se activará en cualquier paquete TCP que se haya visto después del 3WHS inicial. Esto le parecería tanto al cliente como al servidor como una conexión exitosa, pero no se transferirían datos, porque Snort estaría eliminando paquetes.
Recuerde que Snort es un motor de detección, así que no lo piense en términos de enviar / recibir datos o iniciar / establecer conexiones. Piense en ello como un observador pasivo (o en el caso de un IPS, un portero en un club nocturno).
Para obtener más información sobre flow
o el preprocesador de Stream, lea la documentación que vinculé anteriormente.
¡Espero que esto responda a tu pregunta!
Lea otras preguntas en las etiquetas snort