When Marty Roesch originally wrote Snort, he considered shipping it without any rules. Marty envisioned that Snort users would write their own rules, customized for their environment. Keep this in mind
Snort rules -- and any similar mechanism that performs some degree of matching against a packet or stream of packets -- are designed to alert an operator to a network event of interest. The two critical components in this statement are "network event" and "of interest." Snort rules often represent an inference -- sometimes even an educated guess -- that a particular network event has occurred. This network event is usually identified as a suspicious or malicious activity, but some of the network events could be utterly benign. Given the right combination of matching and/or inspection, Snort rules can be told to identify any sort of packet -- or even stream of packets -- desired by the rule author. In some cases, however, the means by which the rule author chooses to identify a network event might apply to traffic that is not what he wanted to identify. I'll return to this thought when I discuss false positives.
The second important part of the statement above is "of interest." One Snort operator might think a certain rule or set of rules is absolutely critical to his environment, while another Snort operator couldn't care less. There is no right or wrong answer here. This is one of the main reasons Marty Roesch didn't want to ship rules with Snort. Who could say that an operator of Microsoft Windows IIS Web servers would want to run a set of rules detecting attacks against Apache Web servers, or vice versa?
Snort Report -- IDS Snort rules
Bleeding Edge Threats rules
Acquiring Snort rules
Activating Snort rules
About the author
Richard Bejtlich is founder of TaoSecurity, author of several books on network security monitoring, including Extrusion Detection: Security Monitoring for Internal Intrusions, and operator of the TaoSecurity blog.
This was first published in April 2007