<div dir="ltr">Looking at the snort documentation, regex, and what you suggested, I modified my rule to look like this now and I set the protocol to ip to catch everything going out of my machine<div class="gmail_extra"><br>
</div><div class="gmail_extra">alert ip $HOME_NET any -> any any (msg:"alert fired"; pcre:"/Host:\s.*?\.<a href="http://businessweek.com/H">businessweek.com/H</a>";)</div><div class="gmail_extra"><br>
</div><div class="gmail_extra">and when I start up my suricata with just that 1 rule and visit business week on the front page, no alerts show. I click on some subsequent links and the fast.log still doesn't populate. Only after I click on a few more links do I see the rules fire. But it's significantly less alerts than if I used the rule</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">alert ip $HOME_NET any -> any any (msg:"alert fired"; content:"<a href="http://businessweek.com">businessweek.com</a>"; http_header;)</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Can anyone explain why I'm not seeing it fire when I visit the front page?</div><div class="gmail_extra"><br></div><div class="gmail_extra">My setup is running wireshark, suricata, and google-chrome on VMPlayer with the OS being Fedora 17 and the host machine is Windows 7. I can't understand why the number of alerts isn't matching the number of packets I see matching in my wireshark with the filter http && ip.src == <a href="http://192.168.0.0/16">192.168.0.0/16</a> && http.host contains "<a href="http://businessweek.com">businessweek.com</a>"<br>
<br><div class="gmail_quote">On Tue, Jan 15, 2013 at 3:11 AM, Anoop Saldanha <span dir="ltr"><<a href="mailto:anoopsaldanha@gmail.com" target="_blank">anoopsaldanha@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, Jan 15, 2013 at 3:30 AM, Vincent Fang <<a href="mailto:vincent.y.fang@gmail.com">vincent.y.fang@gmail.com</a>> wrote:<br>
> Since I cannot rely on external ip addresses, I've been testing out a new<br>
> rule that examines the http content, specificially the http header. Looking<br>
> at the http-keyword page on redmine, this is the new rule I created for<br>
> testing<br>
><br>
> alert http any any -> any any (msg:"rule fired"; content:"<a href="http://businessweek.com" target="_blank">businessweek.com</a>";<br>
> http_header;)<br>
><br>
> Looking at the example, it explains it would look at the http header for any<br>
> matching and create an alert if it matches. My one question is how exactly<br>
> does it do the matching?<br>
><br>
><br>
> For instance, the <a href="http://businessweek.com" target="_blank">businessweek.com</a> address can appear in two places based on<br>
> what I examined in the wireshark http packets<br>
><br>
> Host: <a href="http://www.businessweek.com" target="_blank">www.businessweek.com</a>\r\n<br>
><br>
> or<br>
><br>
> Referer: <a href="http://www.businessweek.com/\r\n" target="_blank">http://www.businessweek.com/\r\n</a><br>
><br>
> The examples shown in redmine only show it matching to the Host field but<br>
> would this same rule also match if the address showed up in the Referer<br>
> field? Right now I'm running into issues with Chrome caching which is<br>
> fuddling my results so I can't tell based on my testing, but I was wondering<br>
> if anyone had any experience and knows what Suricata is doing with the<br>
> content matching in the header field.<br>
><br>
> Also is it possible to specify a wildcard * in the content:<br>
> "*<a href="http://businessweek.com" target="_blank">businessweek.com</a>" for matching?<br>
<br>
</div>No.<br>
<div class="im"><br>
><br>
> The end goal is for me to maybe specify that<br>
><br>
> content:"Host: *<a href="http://businessweek.com" target="_blank">businessweek.com</a>"; http_header;<br>
<br>
</div>This would work instead, although you are stuck with the subdomain -<br>
<br>
content:"Host: <a href="http://www.businessweek.com" target="_blank">www.businessweek.com</a>"; http_header;<br>
<br>
Contents can have fixed strings only.<br>
<br>
If you'd want to use wildcards you can use pcre -<br>
<br>
pcre:"/Host: .*<a href="http://businessweek.com" target="_blank">businessweek.com</a>"/H";<br>
<br>
The option "H" refers to matching on the http header filed.  We have<br>
other such pcre options to match on different http fields/buffers.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> so that Suricata would match all packets going to this address. I ran a test<br>
> with the modified rule<br>
><br>
> alert http any any -> any any (msg:"rule fired";<br>
> content:"*<a href="http://businessweek.com" target="_blank">businessweek.com</a>"; http_header;)<br>
><br>
> and fast.log isn't populating. I'm not sure if I'm doing it wrong or if<br>
> wildcards are not supported in Suricata rules.<br>
><br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Anoop Saldanha<br>
</font></span></blockquote></div><br></div></div>