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.