Top 3 Reasons You Should Try Suricata:
1. Highly Scalable
Suricata is multi threaded. This means you can run one instance and it will balance the load of processing across every processor on a sensor Suricata is configured to use. This allows commodity hardware to achieve 10 gigabit speeds on real life traffic without sacrificing ruleset coverage.
2. Protocol Identification
The most common protocols are automatically recognized by Suricata as the stream starts, thus allowing rule writers to write a rule to the protocol, not to the port expected. This makes Suricata a Malware Command and Control Channel hunter like no other. Off port HTTP CnC channels, which normally slide right by most IDS systems, are child’s play for Suricata! Furthermore, thanks to dedicated keywords you can match on protocol fields which range from http URI to a SSL certificate identifier.
3. File Identification, MD5 Checksums, and File Extraction
Suricata can identify thousands of file types while crossing your network! Not only can you identify it, but should you decide you want to look at it further you can tag it for extraction and the file will be written to disk with a meta data file describing the capture situation and flow. The file’s MD5 checksum is calculated on the fly, so if you have a list of md5 hashes you want to keep in your network, or want to keep out, Suricata can find it.
3.1 -- 2016-06-20 Bug #1589: Cannot run nfq in workers mode Bug #1804: yaml: legacy detect-engine parsing custom values broken 3.1RC1 -- 2016-06-07 Feature #681: Implement TPACKET_V3 support in AF_PACKET Feature #1134: tls: server name rule keyword Feature #1343: OOBE -1- increasing the default stream.memcap and stream.reassembly.memcap values Feature #1344: OOBE -2- decreasing the default flow-timeouts (at least for TCP) Feature #1563: dns: log sshfp records Feature #1760: Unit tests: Don't register return value, use 1 for success, 0 for failure. Feature #1761: Unit tests: Provide macros for clean test failures. Feature #1762: default to AF_PACKET for -i if available Feature #1785: hyperscan spm integration Feature #1789: hyperscan mpm: enable by default Feature #1797: netmap: implement 'threads: auto' Feature #1798: netmap: warn about NIC offloading on FreeBSD Feature #1800: update bundled libhtp to 0.5.20 Feature #1801: reduce info level verbosity Feature #1802: yaml: improve default layout Feature #1803: reimplement rule grouping Bug #1078: 'Not" operator (!) in Variable causes extremely slow loading of Suricata Bug #1202: detect-engine profile medium consumes more memory than detect-engine profile high Bug #1289: MPM b2gm matcher has questionable code Bug #1487: Configuration parser depends on key ordering Bug #1524: Potential Thread Name issues due to RHEL7 Interface Naming Contentions Bug #1584: Rule keywords conflict will cause Suricata restart itself in loop Bug #1606: [ERRCODE: SC_ERR_SYSCALL(50)] - Failure when trying to get MTU via ioctl: 6 Bug #1665: Default maximum packet size is insufficient when VLAN tags are present (and not stripped) Bug #1714: Kernel panic on application exit with netmap Suricata 3.0 stable Bug #1746: deadlock with autofp and --disable-detection Bug #1764: app-layer-modbus: AddressSanitizer error (segmentation fault) Bug #1768: packet processing threads doubled Bug #1771: tls store memory leak Bug #1773: smtp: not all attachments inspected in all cases Bug #1786: spm crash on rule reload Bug #1792: dns-json-log produces no output Bug #1795: Remove unused CPU affinity settings from suricata.yaml Optimization #563: pmq optimization -- remove patter_id_array Optimization #1037: Optimize TCP Option storage Optimization #1418: lockless flow handling during capture (autofp) Optimization #1784: reduce storage size of IPv4 options and IPv6 ext hdrs