Escritura de reglas Snort (La alerta se dispara pero el tráfico no coincide con la regla * Intended *)

2

Tengo la siguiente regla:

alerta tcp $ HOME_NET cualquier > $ EXTERNAL_NET any (msg: "Esto no debería ocurrir"; flow: establecido, to_server; contenido: "GET"; profundidad: 4; contenido: "Set-Cookie:"; http_header; en: 100; classtype: trojan-activity; sid: 1000001; rev: 1;)

El encabezado y las opciones generales no son el problema, son las opciones de carga útil y de no carga lo que me está desechando. Tengo entendido que esta regla solo debe activarse en las siguientes condiciones:

  1. Hay una sesión establecida (flujo: establecido)
  2. Desencadenar solicitudes de cliente desde $ HOME_NET a $ EXTERNAL_NET (to_server)
  3. El contenido incluye 'GET'
  4. 'GET' dentro de los 4 bytes del comienzo de la carga útil
  5. El contenido incluye 'Set-Cookie:' dentro de los encabezados HTTP
  6. 'GET' y 'Set-Cookie' están dentro de los 100 bytes entre sí

Esta es la versión 2.9.1.x. El preprocesador http_inspect se ha modificado de forma predeterminada, pero no creo que este sea el problema. Entonces, me pregunto cómo esta regla se activa en el tráfico que no tiene 'Set-Cookie' proveniente del cliente (Set-Cookie solo debería aparecer en una respuesta del servidor, mientras que Cookie solo debería aparecer en una solicitud del cliente). Tal vez voy por el camino equivocado que mi investigación reveló que Snort utiliza el algoritmo de búsqueda de cadenas Boyer-Moore ( enlace ) que coincide con "... en la cola del patrón en lugar de con la cabeza ...". Entonces, en mi caso, ¿la regla se activa en el tráfico del cliente que incluye una cookie ya que vería 'Cookie' (que es parte de 'Set-Cookie')?

No escribí la regla y la persona que lo hizo no está disponible. Necesito entender por qué esto se está disparando en el tráfico que, en mi opinión, no coincide con lo que está buscando la regla. ¿La regla está escrita de manera incorrecta para capturar el tráfico de $ HOME_NET (cliente) a $ EXTERNAL_NET (servidor) que tiene el conjunto de encabezado HTTP 'Set-Cookie'?

Gracias por su tiempo y comentarios.

    
pregunta user1801810 27.02.2014 - 20:57
fuente

1 respuesta

1

Boyer-Moore no es el problema. Snort debe coincidir con toda la cadena, siempre. No tiene sentido tener el "within: 100" en la segunda coincidencia de contenido porque http_header es un búfer completamente diferente. Eso debería ser eliminado. Pero eso no explica por qué esto alertaría si el contenido no estuviera en el paquete original.

¿Tiene un pcap de tráfico que dispara esto?

Gracias,

~ Patrick

    
respondido por el phoo 13.06.2014 - 03:16
fuente

Lea otras preguntas en las etiquetas