Sto cercando di capire alcune firme in Suricata (o Snort), in particolare, cosa significano, cosa impediscono e hanno alcuni problemi sui significati delle parole chiave. Non scriverò parti irrilevanti. Ad esempio:
...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 alarm if payload contains
/advert/get
path and matches with pcre expression"
Quale parte dovrebbe esattamente accoppiarsi con quell'espressione regolare? URI stesso ( advert/get
) o dopo /advert/get/.....
?
Secondo,
flow:established,to_server; content:"POST"; nocase; http_method; content:"/check.php?tcpc="; http_uri; content:!"User-Agent|3a|"; http_header; ...
"Produce alarm if http request method is post and payload contains /check.php?tcpc=" .
Che cosa cattura il secondo contenuto? Ho interpretato come "produce allarme se l'agente utente non è vuoto nell'intestazione http" È vero?
E come ultimo, supponi di avere più contenuti come
content:"&AFFILIATE="; http_uri; content:"&ID="; http_uri; content:"&ERROR=0
Devo interpretare come "e" o "o".
"Produce alarm if content contains &AFFILIATE AND &ID AND &ERROR" Is it sensible?
Sono molto confuso e la sua documentazione non aiuta, quindi qualsiasi risposta o risorsa che spiega il contenuto più dettagliato sarebbe fantastico.