我试图找出一些Suricata(或Snort)签名,更确切地说,它们意味着什么,它们阻止了什么,并且在关键字的意义上有一些问题。我不会写不相关的部分。例如:
...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;)“如果有效负载包含
/advert/get路径并与pcre表达式匹配,则生成警报”
哪个部分应该与正则表达式匹配?URI本身(advert/get)还是在/advert/get/.....之后?
第二个,
flow:established,to_server; content:"POST"; nocase; http_method; content:"/check.php?tcpc="; http_uri; content:!"User-Agent|3a|"; http_header; ...“如果http请求方法是post而有效负载包含/check.php?tcpc=,则生成警报”。
第二个内容是什么?我把它解释为“如果用户代理在http头中不是空的,就会产生警报”,这是真的吗?
最后,假设您有多个内容,如
content:"&AFFILIATE="; http_uri; content:"&ID="; http_uri; content:"&ERROR=0 我应该把它解释为“和”或“或”。
“如果内容包含&附属公司和&ID和&ERROR”,是否合理?
我很困惑,它的文档也帮不上忙,所以任何解释内容更详细的答案或资源都是很棒的。
发布于 2016-07-14 06:33:50
你正确地解释了第一个问题。
第二项:
flow:established,to_server; content:"POST"; nocase; http_method; \
content:"/check.php?tcpc="; http_uri; \
content:!"User-Agent|3a|"; http_header; ...如果:方法是POST,URI包含/check.php?tcpc=,并且没有用户代理,则会发出警告。那个!在内容字符串前面,意味着它是一个被否定的匹配。所以如果它不在被检查的交通中,它就匹配了。
第三项:
content:"&AFFILIATE="; http_uri; content:"&ID="; http_uri; content:"&ERROR=0 如果所有内容都已存在,则此匹配。对于Suricata规则来说,这通常是正确的。所有条件都必须匹配规则才能生成警报。
Suricata规则语言文档可以在这里找到:https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_规则
https://security.stackexchange.com/questions/129997
复制相似问题