Explicación de la firma de Suricata

0

Estoy tratando de averiguar algunas firmas de Suricata (o Snort), más específicamente, qué significan, qué evitan y tienen algunos problemas con el significado de las palabras clave. No escribiré partes irrelevantes. Por ejemplo:

 ...flow:established,to_server;  content:"/advert/get"; nocase; http_uri; pcre:"/\/advert\/get(?:ads|kws)(?:\.cgi)?\?(?:d|[ex]_dp_)id=/Ui";  classtype:trojan-activity; sid:2013983; rev:6;)
  

"Produce una alarma si la carga útil contiene /advert/get ruta y coincide con la expresión pcre"

¿Qué parte debe emparejarse exactamente con esa expresión regular? ¿URI en sí mismo ( advert/get ) o después de /advert/get/..... ?

Segundo,

flow:established,to_server; content:"POST"; nocase; http_method; content:"/check.php?tcpc="; http_uri; content:!"User-Agent|3a|"; http_header; ...
  

"Producir alarma si el método de solicitud http es post y la carga útil contiene /check.php?tcpc=".

¿Qué captura el segundo contenido? Lo interpreté como "producir alarma si el agente de usuario no está vacío en el encabezado http" ¿Es cierto?

Y como último, suponga que tiene varios contenidos como

 content:"&AFFILIATE="; http_uri; content:"&ID="; http_uri; content:"&ERROR=0 

Debo interpretar como "y" o "o".

  

"Producir alarma si el contenido contiene & AFILIADO Y & ID & & ERROR" ¿Es sensato?

Estoy muy confundido y su documentación no ayuda, por lo que cualquier respuesta o recurso que explique el contenido más detallado sería increíble.

    
pregunta sarah 13.07.2016 - 21:16
fuente

1 respuesta

0

Has interpretado el primero correctamente.

El segundo:

flow:established,to_server; content:"POST"; nocase; http_method; \
content:"/check.php?tcpc="; http_uri;                            \
content:!"User-Agent|3a|"; http_header; ...

Esto alerta si: el método es POST, el URI contiene /check.php?tcpc= y NO tiene un User-Agent. Los ! delante de la cadena de contenido significa que es una coincidencia negada. Por lo tanto, coincide si está ausente del tráfico inspeccionado.

Tercero:

content:"&AFFILIATE="; http_uri; content:"&ID="; http_uri; content:"&ERROR=0 

Esto coincide si todos de los contenidos están presentes. Esto es generalmente cierto para las reglas de Suricata. Todas las condiciones deben coincidir para que una regla genere una alerta.

Puede encontrar documentación sobre el lenguaje de reglas de Suricata aquí: enlace

    
respondido por el Victor Julien 14.07.2016 - 08:33
fuente

Lea otras preguntas en las etiquetas