During DEFCON’s Capture the Flag competition, Snort proved invaluable as I provided network analysis and defense for our team. I used it to detect attacks and block them using the "inline" blocking capabilities based on rules written on-the-fly. When tuned properly and with the right rules, Snort is an incredibly powerful tool.
One thing that has been lacking is a free, usable, and speedy interface to the alerts produced by Snort. And free. Did I mention free, because there have been few truly usable free and open-source interfaces that are fast. Many interfaces have come and gone, but I've never actually found one I really enjoyed using that was also reasonably efficient at both reviewing alerts and drilling down into the events of interest.
I think that's why a lot of time I ended up relying on the custom scripts to query a database containing the Snort alerts. Something I should point out real quick is that I have not worked extensively with commercial products that support Snort alerts and cannot speak to their features and capabilities.
During a recent flight, I decided to try out a newly updated analysis interface called Snorby. I'd previously downloaded the Snorby "live" CD image that provides a quick way to get started with a working Snorby system. It can run directly from the CD or be installed to a hard drive. Within about five minutes, I had it installed within VMware and was ready to log into the Web interface.
The first thing I noticed was the nice-looking dashboard that is presented to the user immediately upon login. It provides a count and graph of the different High, Medium, and Low severity alerts. There is also an interactive graph and information on the right about top users, top sensors, and last five unique events.
On top of having a well-done interface, what surprised me most was Snorby's speed. I processed more than 50 GB of network traffic with Snort (and an untuned ruleset) that resulted in about 700,000 alerts that I imported into Snorby's database using Barnyard2. Browsing through the alerts using hotkeys to switch to the next page and classify alerts was surprisingly fast, and the details of each alert, including payload, was accessible quickly by just clicking on the event summary.
The caveat I must make regarding speed is that my analysis was done after all the alerts were imported and no new updates were being made to the database. In a busy environment with several sensors feeding alerts into the underlying database, Snorby's performance could be impacted.
One area within Snorby I think could be improved is the searching capabilities. The current search fields are based on the main fields in a Snort alert (signature name, IPs, ports, severity, etc.), but does not include payload, which can be very valuable during an investigation when correlating different data sources where you might have filenames or URLs you're interested in.
Also, searching for events with a particular name and choosing "Unclassified" returns all events instead of just events that have not been classified. To get around those issues, I ended up parsing through the raw Snort alerts on the command line and then using Snorby to drill down into the packet payload.
Overall, I think Snorby is a useful tool that can speed analysis of Snort alerts, helping analysts make efficient, well-informed decisions. Take it for a test drive and let me know what you think.
John Sawyer is a Senior Security Analyst with InGuardians. The views and opinions expressed in this blog are his own and do not represent the views and opinions of his employer. He can be reached at [email protected]