]> git.ipfire.org Git - thirdparty/suricata.git/log
thirdparty/suricata.git
8 years agodoc: initial app-layer keywords 2360/head
Victor Julien [Fri, 14 Oct 2016 15:28:34 +0000 (17:28 +0200)] 
doc: initial app-layer keywords

Document app-layer-protocol and make a start with app-layer-event.

8 years agodetect-app-layer-protocol: improve rule validation
Victor Julien [Fri, 14 Oct 2016 08:23:44 +0000 (10:23 +0200)] 
detect-app-layer-protocol: improve rule validation

Also add tests for PD-only conditions

8 years agodetect-app-layer-protocol: implement prefilter
Victor Julien [Fri, 14 Oct 2016 08:11:56 +0000 (10:11 +0200)] 
detect-app-layer-protocol: implement prefilter

Introduce 'Protocol detection'-only rules. These rules will only be
fully evaluated when the protocol detection completed. To allow
mixing of the app-layer-protocol keyword with other types of matches
the keyword can also inspect the flow's app-protos per packet.

Implement prefilter for the 'PD-only' rules.

8 years agodetect-app-layer-protocol: convert to pkt match
Victor Julien [Thu, 13 Oct 2016 21:33:06 +0000 (23:33 +0200)] 
detect-app-layer-protocol: convert to pkt match

8 years agoeve: print app_proto_ts/app_proto_tc
Victor Julien [Sat, 8 Oct 2016 21:08:04 +0000 (23:08 +0200)] 
eve: print app_proto_ts/app_proto_tc

8 years agologging: return string for ALPROTO_FAILED
Victor Julien [Sat, 8 Oct 2016 21:07:32 +0000 (23:07 +0200)] 
logging: return string for ALPROTO_FAILED

8 years agoapp-layer counters: count failed protocol detect
Victor Julien [Sat, 8 Oct 2016 20:54:19 +0000 (22:54 +0200)] 
app-layer counters: count failed protocol detect

8 years agoproto-detect: clean up UDP handling
Victor Julien [Mon, 10 Oct 2016 10:06:48 +0000 (12:06 +0200)] 
proto-detect: clean up UDP handling

Set FAILED instead of using a flow flag. Flag packets in both
sides when detection is done. Detection is only done in one
direction.

8 years agoproto detect: improve error case handling
Victor Julien [Sun, 9 Oct 2016 21:49:09 +0000 (23:49 +0200)] 
proto detect: improve error case handling

Improve flags logic, update tests.

8 years agodetect-app-layer-protocol: improve error handling
Victor Julien [Sun, 9 Oct 2016 09:23:49 +0000 (11:23 +0200)] 
detect-app-layer-protocol: improve error handling

Redo tests.

8 years agoproto-detect: update mismatch handling
Victor Julien [Sat, 8 Oct 2016 16:00:37 +0000 (18:00 +0200)] 
proto-detect: update mismatch handling

Improve protocol mismatch handling. Preserve both protos. Use otherdir
if already sent to parser, use toclient otherwise.

8 years agoapp-layer-protocol: improve detection
Victor Julien [Sat, 8 Oct 2016 17:31:38 +0000 (19:31 +0200)] 
app-layer-protocol: improve detection

Add negated matches to match list instead of amatch.

Allow matching on 'failed'.

Introduce per packet flags for proto detection. Flags are used to
only inspect once per direction. Flag packet on PD-failure too.

8 years agoproto detect: remove flow data tracking
Victor Julien [Sat, 8 Oct 2016 10:02:25 +0000 (12:02 +0200)] 
proto detect: remove flow data tracking

The Flow::data_al_so_far was used for tracking data already
parsed when protocol for the current direction wasn't known yet. As
this behaviour has changed the tracking can be removed.

8 years agoproto detect: update behavior on partial detection
Victor Julien [Sat, 8 Oct 2016 09:47:35 +0000 (11:47 +0200)] 
proto detect: update behavior on partial detection

When the current direction doesn't get a protocol detection, but the
opposing direction did, previously we would send the current data to
the parser. Then when we'd be invoked again (until the protocol
detection finally failed) we'd get the same data + the new data. To
make sure we'd not send the same data to the parser again, the flow
kept track of how much was already sent to the app-layer using
data_al_so_far.

This patch changes the behaviour. Instead of sending the data for
the current direction right away, we only do this when protocol
detection is complete. This way we won't have to track anything.

8 years agoproto detect: TCP cleanup
Victor Julien [Sat, 8 Oct 2016 08:22:35 +0000 (10:22 +0200)] 
proto detect: TCP cleanup

Split function into multiple smaller ones.

8 years agoapp-layer: clean up counters registration
Victor Julien [Mon, 10 Oct 2016 09:18:06 +0000 (11:18 +0200)] 
app-layer: clean up counters registration

8 years agodoc: app-layer tls including no-reassemble 2353/head
Victor Julien [Wed, 12 Oct 2016 10:30:19 +0000 (12:30 +0200)] 
doc: app-layer tls including no-reassemble

8 years agotls: change 'no-reassemble' option to default off
Victor Julien [Wed, 12 Oct 2016 09:21:28 +0000 (11:21 +0200)] 
tls: change 'no-reassemble' option to default off

This option was broken so there should be no visible change to
actual deployments.

8 years agoprelude: add IPv6 support
Thomas Andrejak [Mon, 16 May 2016 10:56:50 +0000 (12:56 +0200)] 
prelude: add IPv6 support

8 years agoprelude: add missing TCP header to additional data
Thomas Andrejak [Mon, 16 May 2016 10:56:12 +0000 (12:56 +0200)] 
prelude: add missing TCP header to additional data

8 years agoprelude: update URL
Thomas ANDREJAK [Thu, 7 Apr 2016 20:54:56 +0000 (22:54 +0200)] 
prelude: update URL

8 years agoprelude: coding style, it's better to use macro
Thomas Andrejak [Mon, 16 May 2016 10:55:32 +0000 (12:55 +0200)] 
prelude: coding style, it's better to use macro

8 years agoprelude: Add other actions than just ACTION_DROP when packet drop
Thomas Andrejak [Mon, 16 May 2016 10:36:29 +0000 (12:36 +0200)] 
prelude: Add other actions than just ACTION_DROP when packet drop

8 years agoprelude: Add log when failed to create assessment or impact object
Thomas Andrejak [Mon, 16 May 2016 10:35:17 +0000 (12:35 +0200)] 
prelude: Add log when failed to create assessment or impact object

8 years agoAdd macro for TCP and UDP header access
Thomas Andrejak [Mon, 16 May 2016 10:37:38 +0000 (12:37 +0200)] 
Add macro for TCP and UDP header access

8 years agoapp-layer-tls: stop detection if no reassembly
Eric Leblond [Fri, 7 Oct 2016 07:51:22 +0000 (16:51 +0900)] 
app-layer-tls: stop detection if no reassembly

It no-reassembly is asked in TLS conf then we can stop inspection
after handshake and cause bypass to be triggered on the flow.

8 years agostream-tcp: bypass encrypted when both side ready
Eric Leblond [Thu, 6 Oct 2016 05:10:13 +0000 (14:10 +0900)] 
stream-tcp: bypass encrypted when both side ready

Suricata should not completely bypass a flow before both end of it
have reached the stream depth or have reached a certain state.
Justification is that suricata need the ACK to treat the other side
so we can't really decide to cut only one side.

8 years agodoc: add SCPacketTimestamp Lua function
Nicolas Thill [Tue, 11 Oct 2016 15:16:33 +0000 (17:16 +0200)] 
doc: add SCPacketTimestamp Lua function

Signed-off-by: Nicolas Thill <ntl@p1sec.com>
8 years agolua: add an SCPacketTimestamp function
Nicolas Thill [Fri, 5 Feb 2016 10:40:08 +0000 (11:40 +0100)] 
lua: add an SCPacketTimestamp function

The SCPacketTimestamp function returns packet timestamps as 2 real
numbers (seconds & microseconds).

Example:

  local sec, usec = SCPacketTimestamp()

Signed-off-by: Nicolas Thill <ntl@p1sec.com>
8 years agofile: register filedata loggers before file
Victor Julien [Fri, 7 Oct 2016 17:02:32 +0000 (19:02 +0200)] 
file: register filedata loggers before file

This fixes the issue that 'stored' remained false even if the file
was stored.

Reported-by: Chris Wakelin
8 years agodoc: small eve update: add dns
Victor Julien [Fri, 7 Oct 2016 15:45:12 +0000 (17:45 +0200)] 
doc: small eve update: add dns

8 years agodoc: add recent tls keywords
Victor Julien [Fri, 7 Oct 2016 15:36:01 +0000 (17:36 +0200)] 
doc: add recent tls keywords

8 years agodoc: clean up fast_pattern
Victor Julien [Fri, 7 Oct 2016 15:15:32 +0000 (17:15 +0200)] 
doc: clean up fast_pattern

8 years agodoc: fix header keywords layout
Victor Julien [Fri, 7 Oct 2016 15:09:43 +0000 (17:09 +0200)] 
doc: fix header keywords layout

8 years agodetect: during detection sgh is read only so turn into const 2343/head
Victor Julien [Wed, 5 Oct 2016 08:19:01 +0000 (10:19 +0200)] 
detect: during detection sgh is read only so turn into const

8 years agodetect: add util func for post-inspect tasks on first sgh
Victor Julien [Wed, 5 Oct 2016 08:12:27 +0000 (10:12 +0200)] 
detect: add util func for post-inspect tasks on first sgh

8 years agodetect: move file flags update into it's own function
Victor Julien [Wed, 5 Oct 2016 07:44:41 +0000 (09:44 +0200)] 
detect: move file flags update into it's own function

8 years agoflow: use BIT_U32 for flags
Victor Julien [Wed, 5 Oct 2016 07:25:19 +0000 (09:25 +0200)] 
flow: use BIT_U32 for flags

8 years agoflow: move file flags into their own variable
Victor Julien [Wed, 5 Oct 2016 07:16:25 +0000 (09:16 +0200)] 
flow: move file flags into their own variable

Move FLOW_FILE_* flags into Flow::file_flags. Rename them to
FLOWFILE_* so non updated code will break.

8 years agologging: don't log that json is disabled in each logger
Jason Ish [Thu, 6 Oct 2016 15:59:13 +0000 (09:59 -0600)] 
logging: don't log that json is disabled in each logger

A warning log is already emitted if eve-log is enabled in the
configuration but json support is not built so the logger
registration functions can be silent.

8 years agomacOS: thread return value affects newer macOS as well
Jason Ish [Thu, 6 Oct 2016 17:08:40 +0000 (11:08 -0600)] 
macOS: thread return value affects newer macOS as well

ALl OS X/macOS versions since 10.10 return EDEADLK here instead
of EBUSY. Assume they will moving forward as well.

8 years agodoc: move rule reload and adding rules into rule-management
Victor Julien [Fri, 7 Oct 2016 08:10:30 +0000 (10:10 +0200)] 
doc: move rule reload and adding rules into rule-management

8 years agodoc: add rule-management chapter
Victor Julien [Fri, 7 Oct 2016 08:06:05 +0000 (10:06 +0200)] 
doc: add rule-management chapter

8 years agodoc: improve install doc, configure
Victor Julien [Fri, 7 Oct 2016 07:58:10 +0000 (09:58 +0200)] 
doc: improve install doc, configure

8 years agodoc: multi-tenancy is not work in progress
Victor Julien [Fri, 7 Oct 2016 07:57:44 +0000 (09:57 +0200)] 
doc: multi-tenancy is not work in progress

8 years agodoc: clean up log rotation
Victor Julien [Fri, 7 Oct 2016 07:57:02 +0000 (09:57 +0200)] 
doc: clean up log rotation

8 years agodoc: update libcap-ng doc
Victor Julien [Fri, 7 Oct 2016 07:56:22 +0000 (09:56 +0200)] 
doc: update libcap-ng doc

8 years agodoc: rewrite rule reload doc
Victor Julien [Fri, 7 Oct 2016 07:55:50 +0000 (09:55 +0200)] 
doc: rewrite rule reload doc

8 years agohttp: fix memory leak in error path
Victor Julien [Thu, 6 Oct 2016 17:23:32 +0000 (19:23 +0200)] 
http: fix memory leak in error path

8 years agostreaming: improve error handling
Victor Julien [Thu, 6 Oct 2016 15:49:21 +0000 (17:49 +0200)] 
streaming: improve error handling

When memory allocations happened in HTTP body and general file
tracking, malloc/realloc errors (most likely in the form of memcap
reached conditions) could lead to an endless loop in the buffer
grow logic.

This patch implements proper error handling for all Append/Insert
functions for the streaming API, and it explicitly enables compiler
warnings if the results are ignored.

8 years agodoc: add simple install guide 2337/head
Victor Julien [Thu, 6 Oct 2016 11:16:53 +0000 (13:16 +0200)] 
doc: add simple install guide

8 years agodoc: remove userguide.pdf on clean instead of suricata.pdf 2336/head
Jason Ish [Wed, 5 Oct 2016 18:06:19 +0000 (12:06 -0600)] 
doc: remove userguide.pdf on clean instead of suricata.pdf

As the pdf is a built artifact, it needs to be removed to
satisfy distcheck.

8 years agodoc: add missing docs to EXTRA_DIST
Jason Ish [Wed, 5 Oct 2016 18:02:59 +0000 (12:02 -0600)] 
doc: add missing docs to EXTRA_DIST

8 years agodoc: exclude docs in partials/ from reference errors 2330/head
Jason Ish [Tue, 4 Oct 2016 14:56:16 +0000 (08:56 -0600)] 
doc: exclude docs in partials/ from reference errors

These docs are already included with the include statement,
but older versions of Sphinx still complain that they
are not in a table of contents.

8 years agodoc: eve update
Victor Julien [Tue, 4 Oct 2016 10:51:53 +0000 (12:51 +0200)] 
doc: eve update

8 years agodoc: rules-meta typo
Victor Julien [Tue, 4 Oct 2016 10:51:39 +0000 (12:51 +0200)] 
doc: rules-meta typo

8 years agodetect: fix scan-build 0-size alloc warnings
Victor Julien [Tue, 4 Oct 2016 07:16:24 +0000 (09:16 +0200)] 
detect: fix scan-build 0-size alloc warnings

8 years agodoc: rules-meta small cleanup 2329/head
Victor Julien [Mon, 3 Oct 2016 16:44:53 +0000 (18:44 +0200)] 
doc: rules-meta small cleanup

8 years agodoc: http sticky vs modifier
Victor Julien [Mon, 3 Oct 2016 16:18:02 +0000 (18:18 +0200)] 
doc: http sticky vs modifier

8 years agodoc: move urilen to other uri keywords
Victor Julien [Mon, 3 Oct 2016 16:02:07 +0000 (18:02 +0200)] 
doc: move urilen to other uri keywords

8 years agodoc: add minimal http request/response line sections
Victor Julien [Mon, 3 Oct 2016 15:58:20 +0000 (17:58 +0200)] 
doc: add minimal http request/response line sections

8 years agodoc: only make sphinx warnings fatal on html/pdf
Victor Julien [Tue, 4 Oct 2016 05:19:23 +0000 (07:19 +0200)] 
doc: only make sphinx warnings fatal on html/pdf

8 years agodoc: manpage: add bugs and notes section 2328/head
Jason Ish [Mon, 3 Oct 2016 20:22:07 +0000 (14:22 -0600)] 
doc: manpage: add bugs and notes section

8 years agodoc: manpage: add signals section
Jason Ish [Mon, 3 Oct 2016 20:13:16 +0000 (14:13 -0600)] 
doc: manpage: add signals section

8 years agodoc: break out command line options into a common doc
Jason Ish [Mon, 3 Oct 2016 18:05:32 +0000 (12:05 -0600)] 
doc: break out command line options into a common doc

The command line options can now be consumed by the man page
and the user guide.

Some attempt was made to order the options from common/basic
progressing to advanced with some notion of options
grouped together.

8 years agodoc: fix sphinx warnings
Jason Ish [Mon, 3 Oct 2016 17:16:13 +0000 (11:16 -0600)] 
doc: fix sphinx warnings

This involved removing documents that were intentionally
not referenced as they are not good candidates for the
user guide.

8 years agodoc: fail on sphinx warnings
Jason Ish [Mon, 3 Oct 2016 17:15:50 +0000 (11:15 -0600)] 
doc: fail on sphinx warnings

8 years agodocs: include userguide.pdf in dist
Jason Ish [Mon, 3 Oct 2016 16:21:39 +0000 (10:21 -0600)] 
docs: include userguide.pdf in dist

8 years agochangelog: update for 3.2beta1 suricata-3.2beta1
Victor Julien [Mon, 3 Oct 2016 12:56:41 +0000 (14:56 +0200)] 
changelog: update for 3.2beta1

8 years agocygwin: leave magic-file commented out in yaml 2324/head
Victor Julien [Mon, 3 Oct 2016 07:53:13 +0000 (09:53 +0200)] 
cygwin: leave magic-file commented out in yaml

8 years agopcap-log: cleanup allocations at exit
Jason Ish [Sat, 24 Sep 2016 14:01:02 +0000 (08:01 -0600)] 
pcap-log: cleanup allocations at exit

Particularly in multi-mode, allocations made for each thread were
not being cleaned.

ASAN reports no leaks now on exit.

8 years agopcap-log config: sguil-base-dir -> dir and update comment
Jason Ish [Mon, 26 Sep 2016 01:28:23 +0000 (19:28 -0600)] 
pcap-log config: sguil-base-dir -> dir and update comment

The code already looks for "dir" first instead of
"squil-base-dir", and already respects this configuration
parameter in other modes than the "sguil" mode.

Coda will still access "sguil-base-dir".

8 years agodoc: bring in unix socket interaction from wiki
Jason Ish [Thu, 29 Sep 2016 20:25:43 +0000 (14:25 -0600)] 
doc: bring in unix socket interaction from wiki

8 years agodoc: attempt to parse version if not in environment
Jason Ish [Wed, 28 Sep 2016 21:25:48 +0000 (15:25 -0600)] 
doc: attempt to parse version if not in environment

Should fix the version displayed on readthedocs.

8 years agounix-socket: don't try to change permissions on BSD
Victor Julien [Mon, 3 Oct 2016 06:33:11 +0000 (08:33 +0200)] 
unix-socket: don't try to change permissions on BSD

On BSD using fchmod on a socket is not supported and will result
in EINVAL.

8 years agobug 1353: don't cut off last char of unix path
Victor Julien [Sun, 2 Oct 2016 21:29:38 +0000 (23:29 +0200)] 
bug 1353: don't cut off last char of unix path

8 years agopcre: disable JIT if RWX pages not supported
Victor Julien [Sun, 2 Oct 2016 20:49:32 +0000 (22:49 +0200)] 
pcre: disable JIT if RWX pages not supported

8 years agoutil: add facility to check for RWX page support
Victor Julien [Sun, 2 Oct 2016 20:39:29 +0000 (22:39 +0200)] 
util: add facility to check for RWX page support

Some code won't work well when the OS doesn't allow RWX pages. This
page introduces a check for runtime evaluation of the OS' policy on
this.

Thanks to Shawn Webb from HardenedBSD for suggesting this solution.

8 years agoflow-mgr: fix bypass counter registration 2319/head
Victor Julien [Fri, 30 Sep 2016 14:26:40 +0000 (16:26 +0200)] 
flow-mgr: fix bypass counter registration

8 years agoder: fix asan/valgrind errors in time parsing
Victor Julien [Fri, 30 Sep 2016 12:06:32 +0000 (14:06 +0200)] 
der: fix asan/valgrind errors in time parsing

8 years agotls-validity: fix memory handling
Victor Julien [Fri, 30 Sep 2016 10:33:49 +0000 (12:33 +0200)] 
tls-validity: fix memory handling

8 years agodetect-tls-cert-validity: clean up unit tests
Mats Klepsland [Tue, 27 Sep 2016 15:56:22 +0000 (17:56 +0200)] 
detect-tls-cert-validity: clean up unit tests

Remove locks, unnecessary function calls and conditional statements.

8 years agodetect: add keyword tls_cert_valid
Mats Klepsland [Tue, 27 Sep 2016 12:19:03 +0000 (14:19 +0200)] 
detect: add keyword tls_cert_valid

Add keyword to check if TLS certificate is valid.

8 years agodetect-cert-validity: fix typos
Mats Klepsland [Tue, 27 Sep 2016 11:41:38 +0000 (13:41 +0200)] 
detect-cert-validity: fix typos

8 years agodetect: add keyword tls_cert_expired
Mats Klepsland [Tue, 27 Sep 2016 11:39:43 +0000 (13:39 +0200)] 
detect: add keyword tls_cert_expired

Add keyword to check if TLS certificate is expired.

8 years agodetect-tls-validity: use flags for modes
Mats Klepsland [Tue, 27 Sep 2016 06:56:28 +0000 (08:56 +0200)] 
detect-tls-validity: use flags for modes

Use flags for modes to support using multiple modes at the same time.

8 years agoyaml: improve stream-depth comments
Victor Julien [Fri, 30 Sep 2016 10:04:40 +0000 (12:04 +0200)] 
yaml: improve stream-depth comments

8 years agofile-store: add depth setting
Giuseppe Longo [Tue, 1 Dec 2015 10:21:24 +0000 (11:21 +0100)] 
file-store: add depth setting

When a rules match and fired filestore we may want
to increase the stream reassembly depth for this specific.

This add the 'depth' setting in file-store config,
which permits to specify how much data we want to reassemble
into a stream.

8 years agoapp-layer: use StreamTcpSetReassemblyDepth
Giuseppe Longo [Mon, 29 Aug 2016 09:46:33 +0000 (11:46 +0200)] 
app-layer: use StreamTcpSetReassemblyDepth

This calls StreamTcpSetReassemblyDepth to set the stream depth
specified for the protocol.

8 years agomodbus: set stream depth
Giuseppe Longo [Mon, 1 Aug 2016 14:30:03 +0000 (16:30 +0200)] 
modbus: set stream depth

Some protocol like modbus requires
a infinite stream depth because session
are kept open and we want to analyze everything.

Since we have a stream reassembly depth per stream,
we can also set a stream reassembly depth per proto.

8 years agoapp-layer-parser: add stream depth
Giuseppe Longo [Tue, 1 Dec 2015 14:50:02 +0000 (15:50 +0100)] 
app-layer-parser: add stream depth

This permits to set a stream depth value for each
app-layer.

By default, the stream depth specified for tcp is set,
then it's possible to specify a own value into the app-layer
module with a proper API.

8 years agostream: per TcpStream reassembly depth
Eric Leblond [Tue, 24 Nov 2015 20:52:06 +0000 (21:52 +0100)] 
stream: per TcpStream reassembly depth

8 years agoenip: fix scan-build warnings
Victor Julien [Fri, 30 Sep 2016 08:34:39 +0000 (10:34 +0200)] 
enip: fix scan-build warnings

detect-cipservice.c:161:29: warning: Assigned value is garbage or undefined
    cipserviced->cipservice = input[0];
                            ^ ~~~~~~~~
detect-cipservice.c:162:27: warning: Assigned value is garbage or undefined
    cipserviced->cipclass = input[1];
                          ^ ~~~~~~~~
detect-cipservice.c:163:31: warning: Assigned value is garbage or undefined
    cipserviced->cipattribute = input[2];
                              ^ ~~~~~~~~
3 warnings generated.

8 years agoenip: parsing and tests cleanup
Victor Julien [Fri, 30 Sep 2016 06:54:27 +0000 (08:54 +0200)] 
enip: parsing and tests cleanup

8 years agoenip/cip: improve output & style
Victor Julien [Fri, 30 Sep 2016 06:23:39 +0000 (08:23 +0200)] 
enip/cip: improve output & style

Remove printf, remove \n from SCLogDebug. Add SCLogError for
rule parsing issues.

Fix various style issues

8 years agodoc: include enip page
Victor Julien [Fri, 30 Sep 2016 06:18:22 +0000 (08:18 +0200)] 
doc: include enip page

8 years agodoc: reorder rule docs
Victor Julien [Fri, 30 Sep 2016 06:15:12 +0000 (08:15 +0200)] 
doc: reorder rule docs

8 years agoenip: improve yaml
Victor Julien [Fri, 30 Sep 2016 06:14:00 +0000 (08:14 +0200)] 
enip: improve yaml

8 years agoenip/cip: register inspect engines
Victor Julien [Fri, 30 Sep 2016 06:10:18 +0000 (08:10 +0200)] 
enip/cip: register inspect engines

8 years agoAdding SCADA EtherNet/IP and CIP protocol support
kwong [Thu, 29 Sep 2016 17:15:54 +0000 (13:15 -0400)] 
Adding SCADA EtherNet/IP and CIP protocol support

Add support for the ENIP/CIP Industrial protocol

This is an app layer implementation which uses the "enip" protocol
and "cip_service" and "enip_command" keywords

Implements AFL entry points