用于验证http请求内容的Snort规则不起作用

时间:2014-06-21 08:43:38

标签: snort

我正在尝试验证http响应的内容,以便在其中找到内容“abbb”。所以我的规则是

alert tcp MY_SERVER HTTP_PORTS - > any any(msg:“访问的页面有内容abbb”; to_client;已建立;内容:“abb”; sid:XXXXX; rev:x;)

不幸的是,这条规则似乎不起作用。任何人都可以告诉我的规则是否存在问题。

1 个答案:

答案 0 :(得分:1)

对于初学者,您需要修复规则的to_client部分,因为这不是有效的语法。您需要将其更改为:

流量:to_client成立;

您可以在here上找到更多信息。

如果您只是在寻找从服务器发送到客户端的内容“abbb”,那么您只需要像您一样进行简单的内容匹配。我建议在这里使用快速模式匹配器来提高规则的效率。所以你的内容匹配看起来像是:

内容: “ABBB”; fast_pattern:仅;

将它们放在一起,您的规则可能类似于:

alert tcp MY_SERVER HTTP_PORTS - >任何任何(msg:“访问的页面有内容abbb”; 流量:to_client,建立;内容:“AB | BB”; fast_pattern:只; SID:XXXXX;启:X;)

如果仍未触发,则可能还有其他事情发生。由于您只是在内容中查找此内容,因此需要在http预处理器中检查您的检查深度。有server_flow_depth和client_flow_depth。尝试将这些设置为0(无限制)并查看您的规则是否在之后触发。例如,如果您的client_flow_depth为300且内容“abbb”直到500字节之后才会出现,则该规则永远不会触发,因为snort未配置为检查远处的有效负载。

如果启用了自适应性能分析,则需要为http添加元数据服务,否则规则将与http流量不匹配。这看起来像是:

元数据:服务http;

如果您不使用自适应性能分析,那么它将使用规则标题中的端口。