Today we released Suricata 1.3.2. Not a big update, but there are some important fixes in the stream engine, fast_pattern:chop handling, HTTP multipart parsing and the flow keyword with “nostream”.
As the diff stat output shows, it’s a rather light maintenance update over 1.3.1:
ChangeLog | 12 ++
libhtp/configure.ac | 2 +-
libhtp/htp.pc.in | 2 +-
libhtp/htp/htp.h | 2 +-
src/app-layer-htp-file.c | 145 ++++++++++++++++++++++++
src/app-layer-htp.c | 192 ++++++++++++++++++++++++++------
src/decode.c | 3 +
src/decode.h | 1 +
src/defrag.c | 4 +-
src/detect-engine-content-inspection.c | 9 --
src/detect-flow.c | 68 ++++++++++-
src/source-af-packet.c | 9 ++
src/source-ipfw.c | 13 ++-
src/source-pfring.c | 28 ++---
src/stream-tcp-reassemble.c | 1 +
src/util-cpu.c | 10 +-
16 files changed, 435 insertions(+), 66 deletions(-)
Only the HTTP changes look big, but that is due to adding some unittests. Same for flow keyword.
Because of the fixes updating is still highly recommended. Most fixes improve detection accuracy.
Full notes at our new website: http://suricata-ids.org/2012/10/03/suricata-1-3-2-available/
Another quick update on the development of the OISF engine. Overall development is going great. Basics like signature keywords, stream reassembly, ip defragmentation are nearing completion. Unified1 + barnyard was already working for quite some time, but now we also have unified2 compatible output. I’ve tested this to work with barnyard2 and Sguil which works nicely.
We have the first versions of our new YAML based configuration format checked in, a brand new logging API, midstream pickup support in our Stream engine, native PFRING support and many other additions.
Next up in development is IP reputation support in the engine, support for advanced vars and more L7 modules.
The IP reputation is one of the things we have high expectation about. In working group discussions we defined 16 categories for which to keep reputation, for example: spammer, cnc, p2p, etc. We’re currently designing the datatypes for holding as much of this info in memory as possible.
The advanced vars is the idea of applying ModSecurity’s var collections to our engine. They will be like Snort’s flowbits, but then more advanced. At least 2 more types will be supported: integers and raw buffers. Integers should enable signatures to modify counters, but also compare various counters with each other.
In the L7 modules development we’re putting a big focus on HTTP (more on that later). We’re also currently working on a DCE/RPC decoder. For this work we hired Kirby Kuehl from Breaking Point. The L7 framework I’m still working on should make development of modules for new protocols fairly straightforward.
We expect to announce the name and mascot of our engine soon. Also our bylaws should also finally been done almost now, just as the consortium license. Once thats all into place, we expect to open up our code to the public quite soon. Exciting times!