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:
- Hay una sesión establecida (flujo: establecido)
- Desencadenar solicitudes de cliente desde $ HOME_NET a $ EXTERNAL_NET (to_server)
- El contenido incluye 'GET'
- 'GET' dentro de los 4 bytes del comienzo de la carga útil
- El contenido incluye 'Set-Cookie:' dentro de los encabezados HTTP
- '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.