]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
8 years agolua: add SCFlowId for getting the flow id 2718/head
Victor Julien [Fri, 19 May 2017 18:40:05 +0000 (20:40 +0200)] 
lua: add SCFlowId for getting the flow id

8 years agobug 2113: fix live modes 2716/head
Victor Julien [Tue, 16 May 2017 17:00:32 +0000 (19:00 +0200)] 
bug 2113: fix live modes

8 years agodns: fix log filtering
Jason Ish [Tue, 9 May 2017 23:40:56 +0000 (17:40 -0600)] 
dns: fix log filtering

Previously only a subset of the records could be selected
in custom. Now allow any to be selected.

8 years agostream: single GAP check
Victor Julien [Mon, 8 May 2017 17:46:33 +0000 (19:46 +0200)] 
stream: single GAP check

Move all GAP checks into CheckGap. Remove seg_list based check.
Also remove seg_list == NULL check to make sure the Gap check is
done on an empty list as well.

Improve next_seq < last_ack check, but add data beyond gap check.

8 years agodoc: fix doc links for http keywords 2715/head
Victor Julien [Wed, 10 May 2017 08:24:57 +0000 (10:24 +0200)] 
doc: fix doc links for http keywords

8 years agodoc: flowints formatting cleanup
Victor Julien [Wed, 10 May 2017 07:55:46 +0000 (09:55 +0200)] 
doc: flowints formatting cleanup

8 years agodoc: move parts out of snort difference doc
Victor Julien [Wed, 10 May 2017 07:04:17 +0000 (09:04 +0200)] 
doc: move parts out of snort difference doc

Move generic keyword descriptions to the keyword documentation.

8 years agodoc: removing (replaced) snort-compatibility.rst
David Wharton [Fri, 3 Mar 2017 20:51:54 +0000 (15:51 -0500)] 
doc: removing (replaced) snort-compatibility.rst

snort-compatibility.rst replaced by differences-from-snort.rst

8 years agodoc: replacing snort-compatibility link
David Wharton [Fri, 3 Mar 2017 20:49:27 +0000 (15:49 -0500)] 
doc: replacing snort-compatibility link

The snort-compatibility.rst document is being replaced by
differences-from-snort.rst. This commit updates the link.

8 years agodoc: overhaul of the snort-compatibility document
David Wharton [Fri, 3 Mar 2017 20:43:01 +0000 (15:43 -0500)] 
doc: overhaul of the snort-compatibility document

This is intended to replace the existing 'snort-compatibility.rst'
document.
Based on "The Suricata Rule Writing Guide for The Snort Expert"
2016 SuriCon talk.

8 years agobug 2113: unix-socket start up race 2714/head
Victor Julien [Tue, 16 May 2017 07:39:02 +0000 (09:39 +0200)] 
bug 2113: unix-socket start up race

8 years agoapp-layer: optimize many-tx case 2712/head
Victor Julien [Fri, 12 May 2017 23:10:20 +0000 (01:10 +0200)] 
app-layer: optimize many-tx case

8 years agooutput: tx logging optimizations
Victor Julien [Sat, 11 Feb 2017 20:43:30 +0000 (21:43 +0100)] 
output: tx logging optimizations

8 years agotests: update tests for app-layer changes
Victor Julien [Sat, 11 Feb 2017 18:08:58 +0000 (19:08 +0100)] 
tests: update tests for app-layer changes

8 years agoapp-layer API optimizations and cleanups
Victor Julien [Sat, 11 Feb 2017 12:02:53 +0000 (13:02 +0100)] 
app-layer API optimizations and cleanups

8 years agofile: fix pruning for parallel files
Victor Julien [Sun, 14 May 2017 08:00:35 +0000 (10:00 +0200)] 
file: fix pruning for parallel files

Allow pruning of random files, not just list head.

8 years agofile: fix storing parallel files
Victor Julien [Fri, 12 May 2017 11:00:27 +0000 (13:00 +0200)] 
file: fix storing parallel files

When looping available files 'flags' misuse would lead to all files
being closed after the first close.

This patch separates per file and per call flags.

8 years agofile: update loops to account for parallel files 2705/head
Victor Julien [Mon, 6 Feb 2017 08:46:08 +0000 (09:46 +0100)] 
file: update loops to account for parallel files

8 years agofile: introduce per file 'track id'
Victor Julien [Mon, 6 Feb 2017 08:41:17 +0000 (09:41 +0100)] 
file: introduce per file 'track id'

Some protocols transfer multiple files in parallel. To support this add
a 'track id' to the API. This track id is set by the protocol parser. It
will use this id to indicate what file in the FileContainer it wants to
act on.

8 years agofile-store: small cleanup
Victor Julien [Sun, 5 Feb 2017 21:57:00 +0000 (22:57 +0100)] 
file-store: small cleanup

8 years agofile: clarify file store id name
Victor Julien [Sun, 5 Feb 2017 21:01:59 +0000 (22:01 +0100)] 
file: clarify file store id name

8 years agoflow: counters for total number of flows 2698/head
Victor Julien [Fri, 5 May 2017 13:24:45 +0000 (15:24 +0200)] 
flow: counters for total number of flows

flow.tcp
flow.udp
flow.icmpv4
flow.icmpv6

8 years agodnp3: in template, include files own headers
Jason Ish [Wed, 3 May 2017 14:55:38 +0000 (08:55 -0600)] 
dnp3: in template, include files own headers

To deal with -Wmissing-prototypes as added in
ab1200fbd7fd4d3e0fe097fab3b3bcfefaba7e2e

Note: Change was already applied to source files, this just
updates the generation.

8 years agopfring: compiler warning fixes 2697/head
Victor Julien [Mon, 8 May 2017 12:47:58 +0000 (14:47 +0200)] 
pfring: compiler warning fixes

8 years agolua: extend SCFlowAppLayerProto
Victor Julien [Fri, 5 May 2017 09:22:44 +0000 (11:22 +0200)] 
lua: extend SCFlowAppLayerProto

Change SCFlowAppLayerProto to return 5 values:
<alproto> <alproto_ts> <alproto_tc> <alproto_orig> <alproto_expect>:

alproto: detected protocol
alproto_ts: detected protocol in toserver direction
alproto_tc: detected protocol in toclient direction
alproto_orig: pre-change/upgrade protocol
alproto_expected: expected protocol in change/upgrade

Orig and expect are used when changing and upgrading protocols. In a
SMTP STARTTLS case, orig would normally be set to "smtp" and expect
to "tls".

8 years agoeve.flow: log original and expected app_protocols
Victor Julien [Fri, 5 May 2017 08:54:06 +0000 (10:54 +0200)] 
eve.flow: log original and expected app_protocols

Log protocols if they are available.

8 years agonfq: don't try to verdict detect/log flush pkts
Victor Julien [Mon, 8 May 2017 11:26:13 +0000 (13:26 +0200)] 
nfq: don't try to verdict detect/log flush pkts

8 years agoconnect/starttls: handle detection corner cases
Victor Julien [Fri, 17 Feb 2017 10:44:27 +0000 (11:44 +0100)] 
connect/starttls: handle detection corner cases

When switching protocol from http to tls the following corner case
was observed:

 pkt 6, TC "200 connection established"
 pkt 7, TS acks pkt 6 + adds "client hello"
 pkt 8 TC, acks pkt 7
 pkt 8 is where normally the detect on the 200 connection established
       would run however before detection runs the app-layer is called
       and it resets the state

So the issue is missed detection on the last data in the original
protocol before the switch.

Another case was:

TS ->    STARTTLS
TC ->    Ack "STARTTLS data"
         220
TS ->    Ack "220 data"
         Client Hello

In IDS mode, this made a rule that wanted to look at content:"STARTTLS"
in combination with the protocol SMTP 'alert smtp ... content:"STARTTLS";'
impossible. By the time the content would match, the protocol was already
switched.

This patch fixes this case by creating a 'Detect/Log Flush' packet in
both directions. This will force final inspection and logging of the
pre-upgrade protocol (SMTP in this example) before doing the final
switch.

8 years agoapp-layer: protocol change API
Victor Julien [Fri, 17 Feb 2017 10:41:02 +0000 (11:41 +0100)] 
app-layer: protocol change API

Add API calls to upgrade to TLS or to request a protocol change
without a specific protocol expectation.

If the HTTP CONNECT session includes a port on the url, use that to
look up the probing parser during protocol detection. Solves a
missed detection of a SSLv2 session that upgrades to TLSv1. SSLv2
relies on the probing parser which is limited to certain ports.

In case of STARTTLS in SMTP and FTP, the port is hardcoded to 443.

A new event APPLAYER_UNEXPECTED_PROTOCOL is set if there was a
mismatch.

8 years agoapp-layer: add decoder event for missing TLS after STARTTLS
Mats Klepsland [Wed, 15 Feb 2017 06:06:15 +0000 (07:06 +0100)] 
app-layer: add decoder event for missing TLS after STARTTLS

8 years agoapp-layer-ftp: add STARTTLS support
Mats Klepsland [Wed, 1 Feb 2017 11:56:39 +0000 (12:56 +0100)] 
app-layer-ftp: add STARTTLS support

8 years agoapp-layer-ftp: detect FTP alproto when using AUTH TLS
Mats Klepsland [Wed, 1 Feb 2017 09:24:52 +0000 (10:24 +0100)] 
app-layer-ftp: detect FTP alproto when using AUTH TLS

Try to detect FTP using the patterns '220 (' and 'FEAT', since 'USER '
and 'PASS ' are not sent in cleartext when using AUTH TLS.

8 years agooutput-json-tls: log 'from_proto' field
Mats Klepsland [Tue, 31 Jan 2017 14:02:21 +0000 (15:02 +0100)] 
output-json-tls: log 'from_proto' field

Log the original application level protocol when protocol have been
changed because of STARTTLS, HTTP CONNECT or similar.

8 years agoapp-layer-smtp: add STARTTLS support
Mats Klepsland [Tue, 31 Jan 2017 13:58:20 +0000 (14:58 +0100)] 
app-layer-smtp: add STARTTLS support

8 years agoapp-layer-htp: add HTTP CONNECT support
Mats Klepsland [Tue, 31 Jan 2017 13:45:25 +0000 (14:45 +0100)] 
app-layer-htp: add HTTP CONNECT support

8 years agoproto-detect: add debug output
Victor Julien [Fri, 17 Feb 2017 10:43:02 +0000 (11:43 +0100)] 
proto-detect: add debug output

8 years agoapp-layer: support changing flow alproto
Mats Klepsland [Tue, 31 Jan 2017 13:34:30 +0000 (14:34 +0100)] 
app-layer: support changing flow alproto

Support changing the application level protocol for a flow. This is
needed by STARTTLS and HTTP CONNECT to switch from the original
alproto to tls.

This commit allows a flag to be set 'FLOW_CHANGE_PROTO', which
triggers a new protocol detection on the next packet for a flow.

8 years agomagic: fix compile warnings
Victor Julien [Sat, 6 May 2017 08:49:43 +0000 (10:49 +0200)] 
magic: fix compile warnings

8 years agonfq: remove obsolete and broken netfilterforwin support 2687/head
Victor Julien [Tue, 2 May 2017 15:28:15 +0000 (17:28 +0200)] 
nfq: remove obsolete and broken netfilterforwin support

8 years agoisdataat: add test for leading space
Victor Julien [Tue, 2 May 2017 15:22:24 +0000 (17:22 +0200)] 
isdataat: add test for leading space

8 years agonflog: compiler warning fix
Victor Julien [Tue, 2 May 2017 12:48:21 +0000 (14:48 +0200)] 
nflog: compiler warning fix

8 years agocompiler: more strict compiler warnings 2684/head
Victor Julien [Tue, 2 May 2017 07:11:16 +0000 (09:11 +0200)] 
compiler: more strict compiler warnings

Set flags by default:

    -Wmissing-prototypes
    -Wmissing-declarations
    -Wstrict-prototypes
    -Wwrite-strings
    -Wcast-align
    -Wbad-function-cast
    -Wformat-security
    -Wno-format-nonliteral
    -Wmissing-format-attribute
    -funsigned-char

Fix minor compiler warnings for these new flags on gcc and clang.

8 years agodetect-parse: improve common parser 2683/head
Victor Julien [Mon, 1 May 2017 18:34:07 +0000 (20:34 +0200)] 
detect-parse: improve common parser

In preparation of turning input to keyword parsers to const add
options to the common rule parser to enforce and strip double
quotes and parse negation support.

At registration, the keyword can register 3 extra flags:

    SIGMATCH_QUOTES_MANDATORY: value to keyword must be quoted

    SIGMATCH_QUOTES_OPTIONAL: value to keyword may be quoted

    SIGMATCH_HANDLE_NEGATION: leading ! is parsed

In all cases leading spaces are removed. If the 'quote' flags are
set, the quotes are removed from the input as well.

8 years agodetect: enforce isdataat:!1,relative earlier 2681/head
Victor Julien [Mon, 6 Mar 2017 15:41:05 +0000 (16:41 +0100)] 
detect: enforce isdataat:!1,relative earlier

The expression 'isdataat:!1,relative' is used to make sure a match
is at the end of a buffer quite often. This patch optimizes this case
for 'content' followed by the expression. It enforces it by setting
and 'ends with' flag on the content and then taking that flag into
account while doing the pattern match.

8 years agodetect: more content inspection tests
Victor Julien [Mon, 6 Mar 2017 10:17:12 +0000 (11:17 +0100)] 
detect: more content inspection tests

8 years agodetect: don't rescan when just distance is used
Victor Julien [Sat, 4 Mar 2017 12:40:39 +0000 (13:40 +0100)] 
detect: don't rescan when just distance is used

Content inspection optimization: when just distance is used without
within we don't need to search recursively.

E.g. content:"a"; content:"b"; distance:1; will scan the buffer for
'a' and when it finds 'a' it will scan the remainder for 'b'. Until
now, the failure to find 'b' would lead to looking for the next 'a'
and then for 'b' after that. However, we already inspected the
entire buffer for 'b', so we know this will fail.

8 years agodetect: content-inspection tests
Victor Julien [Sat, 4 Mar 2017 09:15:39 +0000 (10:15 +0100)] 
detect: content-inspection tests

Add tests for the content inspection engine that count the number
of steps it takes to eval a rule.

8 years agodetect: avoid needless recursive scanning
Victor Julien [Fri, 3 Mar 2017 14:38:43 +0000 (15:38 +0100)] 
detect: avoid needless recursive scanning

Don't recursively inspect a detect list if the recursion
doesn't increase chance of success.

8 years agodetect: use BIT_U32 macro for content flags
Victor Julien [Sat, 4 Mar 2017 12:05:37 +0000 (13:05 +0100)] 
detect: use BIT_U32 macro for content flags

8 years agodebug: suppress notice message 2679/head
Victor Julien [Mon, 1 May 2017 08:38:22 +0000 (10:38 +0200)] 
debug: suppress notice message

8 years agocleanup: remove unused ringbuffer code
Victor Julien [Fri, 28 Apr 2017 07:23:09 +0000 (09:23 +0200)] 
cleanup: remove unused ringbuffer code

8 years agocleanup: remove libpcap < 1 support
Victor Julien [Fri, 28 Apr 2017 07:44:37 +0000 (09:44 +0200)] 
cleanup: remove libpcap < 1 support

8 years agoconfigure: remove CentOS5 pkg-config fix
Victor Julien [Fri, 28 Apr 2017 07:50:59 +0000 (09:50 +0200)] 
configure: remove CentOS5 pkg-config fix

8 years agocleanup: from AS_VERSION_COMPARE CentOS5 workaround
Victor Julien [Fri, 28 Apr 2017 07:48:09 +0000 (09:48 +0200)] 
cleanup: from AS_VERSION_COMPARE CentOS5 workaround

8 years agodetect: update tests that mix state/stream inspect 2673/head
Victor Julien [Wed, 19 Apr 2017 13:57:31 +0000 (15:57 +0200)] 
detect: update tests that mix state/stream inspect

8 years agounittests: add/improve helpers for stream/flow
Victor Julien [Wed, 19 Apr 2017 13:57:08 +0000 (15:57 +0200)] 
unittests: add/improve helpers for stream/flow

8 years agohttp_header: enable trailer prefilter engines
Victor Julien [Thu, 20 Apr 2017 09:48:06 +0000 (11:48 +0200)] 
http_header: enable trailer prefilter engines

Now that the mpm engines run only for the proper 'progress'
value, the trailing headers need their own engine registration.

8 years agostate: check progress before calling engine
Victor Julien [Tue, 18 Apr 2017 07:38:22 +0000 (09:38 +0200)] 
state: check progress before calling engine

Make sure progress of an inspect engine is available.

8 years agodetect: improve stateful detection
Victor Julien [Tue, 11 Apr 2017 13:24:49 +0000 (15:24 +0200)] 
detect: improve stateful detection

Now that MPM runs when the TX progress is right, stateful detection
operates differently.

Changes:

1. raw stream inspection is now also an inspect engine

   Since this engine doesn't take the transactions into account, it
   could potentially run multiple times on the same data. To avoid
   this, basic result caching is in place.

2. the engines are sorted by progress, but the 'MPM' engine is first
   even if the progress is higher

   If MPM flags a rule to be inspected, the inspect engine for that
   buffer runs first. If this step fails, the rule is no longer
   evaluated. No state is stored.

8 years agodetect: change mask logic
Victor Julien [Tue, 11 Apr 2017 16:15:16 +0000 (18:15 +0200)] 
detect: change mask logic

Previously the MPM/Prefilter engines would suggest the same rule
candidates multiple times.

For example, while processing the request body, the http headers
would be inspected by MPM multiple times.

The mask check was one way to quickly decide which rules could be
skipped.

Now that the MPM engines normally return a rule just once, this
mask check no longer makes sense. If the rule meets the ip/port/
direction based conditions, it needs to be evaluated if the MPM
said so. Even if not all conditions are yet true.

WIP disable mask as it no longer makes sense

WIP redo mask match

8 years agompm: run engines as few times as possible
Victor Julien [Mon, 10 Apr 2017 18:42:25 +0000 (20:42 +0200)] 
mpm: run engines as few times as possible

In various scenarios buffers would be checked my MPM more than
once. This was because the buffers would be inspected for a
certain progress value or higher.

For example, for each packet in a file upload, the engine would
not just rerun the 'http client body' MPM on the new data, it
would also rerun the method, uri, headers, cookie, etc MPMs.

This was obviously inefficent, so this patch changes the logic.

The patch only runs the MPM engines when the progress is exactly
the intended progress. If the progress is beyond the desired
value, it is run once. A tracker is added to the app layer API,
where the completed MPMs are tracked.

Implemented for HTTP, TLS and SSH.

8 years agodetect: register progress in inspect engines
Victor Julien [Mon, 17 Apr 2017 08:59:32 +0000 (10:59 +0200)] 
detect: register progress in inspect engines

Register required progress so we can stop inspecting as soon
as the progress isn't far enough yet.

8 years agodetect-state: don't use casts to uint
Victor Julien [Tue, 18 Apr 2017 07:38:48 +0000 (09:38 +0200)] 
detect-state: don't use casts to uint

8 years agohttp_uri: unittest cleanup
Victor Julien [Thu, 20 Apr 2017 14:15:51 +0000 (16:15 +0200)] 
http_uri: unittest cleanup

8 years agohttp_header: add another trailer test
Victor Julien [Thu, 20 Apr 2017 11:03:42 +0000 (13:03 +0200)] 
http_header: add another trailer test

8 years agohttp_header (trailer) test cleanup
Victor Julien [Thu, 20 Apr 2017 09:30:01 +0000 (11:30 +0200)] 
http_header (trailer) test cleanup

8 years agossh: fix test
Victor Julien [Thu, 20 Apr 2017 14:07:01 +0000 (16:07 +0200)] 
ssh: fix test

8 years agossh: fix banner state setting
Victor Julien [Thu, 20 Apr 2017 14:04:34 +0000 (16:04 +0200)] 
ssh: fix banner state setting

8 years agodetect: more detailed state profiling
Victor Julien [Mon, 17 Apr 2017 07:53:50 +0000 (09:53 +0200)] 
detect: more detailed state profiling

8 years agoapp-layer: set stream-depth after stream init
Victor Julien [Wed, 12 Apr 2017 12:31:25 +0000 (14:31 +0200)] 
app-layer: set stream-depth after stream init

8 years agodetect: clean up stateful detect
Victor Julien [Tue, 11 Apr 2017 07:58:40 +0000 (09:58 +0200)] 
detect: clean up stateful detect

8 years agostream: reduce scope of new ssn func
Victor Julien [Wed, 19 Apr 2017 13:47:09 +0000 (15:47 +0200)] 
stream: reduce scope of new ssn func

8 years agoautotools: add src/tests to extra dist
Victor Julien [Tue, 4 Apr 2017 14:16:17 +0000 (16:16 +0200)] 
autotools: add src/tests to extra dist

8 years agostream: move inline tests
Victor Julien [Wed, 8 Mar 2017 22:28:51 +0000 (23:28 +0100)] 
stream: move inline tests

8 years agostream: list management cleanups
Victor Julien [Wed, 8 Mar 2017 22:20:44 +0000 (23:20 +0100)] 
stream: list management cleanups

8 years agostream: debug improvements
Victor Julien [Wed, 8 Mar 2017 11:52:56 +0000 (12:52 +0100)] 
stream: debug improvements

8 years agostream inspection: add debug counters
Victor Julien [Wed, 8 Mar 2017 11:52:34 +0000 (12:52 +0100)] 
stream inspection: add debug counters

8 years agostream: pack config struct
Victor Julien [Tue, 7 Mar 2017 21:41:23 +0000 (22:41 +0100)] 
stream: pack config struct

8 years agostream: enforce gap earlier in app reassembly
Victor Julien [Fri, 3 Mar 2017 08:54:56 +0000 (09:54 +0100)] 
stream: enforce gap earlier in app reassembly

8 years agostream: don't call app reassembly if disable flag set
Victor Julien [Fri, 3 Mar 2017 08:54:16 +0000 (09:54 +0100)] 
stream: don't call app reassembly if disable flag set

8 years agostream: app-layer micro optimizations
Victor Julien [Fri, 3 Mar 2017 08:53:54 +0000 (09:53 +0100)] 
stream: app-layer micro optimizations

8 years agostream: raw reassembly explicit disable raw handling
Victor Julien [Thu, 2 Mar 2017 23:12:38 +0000 (00:12 +0100)] 
stream: raw reassembly explicit disable raw handling

8 years agostream: mpm inspect micro optimizations
Victor Julien [Thu, 2 Mar 2017 23:12:12 +0000 (00:12 +0100)] 
stream: mpm inspect micro optimizations

8 years agostream: improve --disable-detection GAP handling
Victor Julien [Wed, 1 Mar 2017 15:51:22 +0000 (16:51 +0100)] 
stream: improve --disable-detection GAP handling

8 years agostream: remove unused StreamTcpGetStreamSize function
Victor Julien [Wed, 1 Mar 2017 14:34:14 +0000 (15:34 +0100)] 
stream: remove unused StreamTcpGetStreamSize function

8 years agostream: optimize session pruning
Victor Julien [Wed, 1 Mar 2017 13:50:20 +0000 (14:50 +0100)] 
stream: optimize session pruning

8 years agodoc: update for stream changes
Victor Julien [Wed, 1 Mar 2017 13:04:29 +0000 (14:04 +0100)] 
doc: update for stream changes

8 years agoyaml: sync with new stream engine
Victor Julien [Wed, 1 Mar 2017 10:24:13 +0000 (11:24 +0100)] 
yaml: sync with new stream engine

8 years agostream: validate code
Victor Julien [Tue, 28 Feb 2017 22:13:00 +0000 (23:13 +0100)] 
stream: validate code

8 years agodetect: only do flow dependent cleanup if a flow is present
Victor Julien [Mon, 27 Feb 2017 22:28:46 +0000 (23:28 +0100)] 
detect: only do flow dependent cleanup if a flow is present

8 years agodetect: make SigMatchSignatures void
Victor Julien [Mon, 27 Feb 2017 22:26:37 +0000 (23:26 +0100)] 
detect: make SigMatchSignatures void

None of the callers cared for it's retval, so get rid of it.

8 years agodetect: turn single detect flag into bool
Victor Julien [Mon, 27 Feb 2017 22:14:39 +0000 (23:14 +0100)] 
detect: turn single detect flag into bool

8 years agodetect: remove unused detect flag
Victor Julien [Mon, 27 Feb 2017 22:12:09 +0000 (23:12 +0100)] 
detect: remove unused detect flag

8 years agostream: improve needs reassembly code
Victor Julien [Tue, 28 Feb 2017 11:44:02 +0000 (12:44 +0100)] 
stream: improve needs reassembly code

8 years agostream: more aggressive StreamReassembleRawHasDataReady
Victor Julien [Tue, 28 Feb 2017 10:23:27 +0000 (11:23 +0100)] 
stream: more aggressive StreamReassembleRawHasDataReady

8 years agoapp-layer: change logic of setting 'no reassembly'
Victor Julien [Sun, 26 Feb 2017 13:19:43 +0000 (14:19 +0100)] 
app-layer: change logic of setting 'no reassembly'

Instead of killing all reassembly instantly do things slightly more
gracefully:
1. disable app-layer reassembly immediately
2. flag raw reassembly not to accept new data

This will allow the current data to be inspected still.

After detect as run the raw reassembly will be fully disabled and
thus all reassembly will be as well.

8 years agostream: new depth / disable raw logic
Victor Julien [Sun, 26 Feb 2017 13:06:05 +0000 (14:06 +0100)] 
stream: new depth / disable raw logic

Depth reach sets NOREASSEMBLY after detect.

No new raw sets NORAW after detect.

8 years agostream: allow raw reassembly catch up
Victor Julien [Sat, 25 Feb 2017 12:33:40 +0000 (13:33 +0100)] 
stream: allow raw reassembly catch up

If raw reassembly falls behind, for example because no raw mpm is
active, then we need to sync up to the app progress if that is
available, or to the generic tcp tracking otherwise.

8 years agostream: detect stream GAP also during reassembly
Victor Julien [Sat, 25 Feb 2017 12:33:15 +0000 (13:33 +0100)] 
stream: detect stream GAP also during reassembly

8 years agodebug-validation: add stream checks
Victor Julien [Fri, 24 Feb 2017 20:05:43 +0000 (21:05 +0100)] 
debug-validation: add stream checks