]>
git.ipfire.org Git - thirdparty/suricata.git/log
Victor Julien [Sat, 14 Mar 2020 12:38:05 +0000 (13:38 +0100)]
app-layer: extend AppLayerResult to add convenience
Victor Julien [Fri, 13 Mar 2020 19:01:21 +0000 (20:01 +0100)]
rust: merge parser.rs into applayer.rs
Both were serving the same purpose.
Victor Julien [Fri, 13 Mar 2020 13:43:00 +0000 (14:43 +0100)]
app-layer: document return macros
Victor Julien [Fri, 13 Mar 2020 11:56:18 +0000 (12:56 +0100)]
nfs: switch to new 'incomplete' logic
Remove buffering code in favor of using incomplete API.
Victor Julien [Fri, 13 Mar 2020 10:03:19 +0000 (11:03 +0100)]
nfs: switch to AppLayerResult
Victor Julien [Fri, 13 Mar 2020 09:13:56 +0000 (10:13 +0100)]
smb: update return type of GAP handling
Victor Julien [Mon, 9 Mar 2020 18:33:38 +0000 (19:33 +0100)]
smb: convert to return AppLayerResult
Support returning 'incomplete' and remove the buffering
code from the parser.
Victor Julien [Thu, 12 Mar 2020 15:35:56 +0000 (16:35 +0100)]
app-layer: add 'incomplete' return logic
Allow app-layer parsers to indicate how much data they need
before being called again.
Victor Julien [Sun, 8 Mar 2020 21:17:58 +0000 (22:17 +0100)]
app-layer: update API to return more details
Add AppLayerResult struct as the Parser return type in
preparation of allowing returning 'Incomplete(size)' similar
to what nom in Rust allows.
Victor Julien [Fri, 6 Mar 2020 21:03:20 +0000 (22:03 +0100)]
app-layer: change return codes
This patch simplifies the return codes app-layer parsers use,
in preparation of a patch set for overhauling the return type.
Introduce two macros:
APP_LAYER_OK (value 0)
APP_LAYER_ERROR (value -1)
Update all parsers to use this.
Victor Julien [Tue, 10 Mar 2020 20:14:39 +0000 (21:14 +0100)]
app-layer: minor optimization
Victor Julien [Thu, 12 Mar 2020 18:52:58 +0000 (19:52 +0100)]
stream: fix function style
Victor Julien [Sun, 8 Mar 2020 07:29:44 +0000 (08:29 +0100)]
ftp: minor code cleanups
Victor Julien [Tue, 17 Mar 2020 20:11:27 +0000 (21:11 +0100)]
nfs: code cleanups
Use 'if let' to replace simple 'match' statements.
Use explicit returns to easy code review.
Victor Julien [Tue, 17 Mar 2020 19:44:33 +0000 (20:44 +0100)]
smb: fix rustc 1.42 warnings
Jeff Lucovsky [Tue, 3 Mar 2020 14:48:46 +0000 (09:48 -0500)]
config: General typo and grammar cleanup
Jeff Lucovsky [Tue, 3 Mar 2020 14:48:27 +0000 (09:48 -0500)]
docs/napatech: Correct typo
Philippe Antoine [Fri, 22 Nov 2019 14:20:45 +0000 (15:20 +0100)]
python: style for prscript
Remove unnecessary pass
Remove unused variable
Philippe Antoine [Fri, 22 Nov 2019 14:20:11 +0000 (15:20 +0100)]
python: style for suricatasc.py
Remove unnecessary return
Better comparison with None
Philippe Antoine [Fri, 22 Nov 2019 14:19:09 +0000 (15:19 +0100)]
python: remove unused imports
Stephen Donnelly [Thu, 5 Mar 2020 21:49:17 +0000 (10:49 +1300)]
dag: Skip over ERF_TYPE_META records
Suricata generates an error on unrecognised ERF types.
Suricata should ignore ERF 'Provenance' records with ERF_TYPE_META.
Jason Ish [Fri, 21 Feb 2020 22:29:58 +0000 (16:29 -0600)]
suricata.yaml/dns: removed unused settings
Remove DNS settings global-memcap, state-memcap and request-flood.
These have never been used in the Rust implementation of the DNS
decoder.
Jason Ish [Tue, 25 Feb 2020 16:41:26 +0000 (10:41 -0600)]
detect/parse: allow for OK signature parsing errors
The idea of an OK signature parsing error is an error that is
allowed to occur, but still lets test mode pass, unlike
silent errors which will still fail testing.
This is introduced to allow for app-layer event keywords to be
removed, but not have old rules fail out on this case. For example
the Rust DNS parser removes from DNS app-layer events that are
not used anymore.
To signal that an error is OK, -3 is returned. This also implies
silent.
Jason Ish [Fri, 21 Feb 2020 21:49:36 +0000 (15:49 -0600)]
detect/parse: softer error on unknown app-layer event
On an unknown app-layer event, return -3 for "silent OK fail". A
warning will still be emitted, but its not considered a rule parse
error. This is to handle app-layer events being removed in a more
graceful manner for the user.
This allows -T to pass with an old app-layer events rule file
that may used removed app-layer event keywords.
Jason Ish [Mon, 13 Jan 2020 18:31:14 +0000 (12:31 -0600)]
dhcp: remove C app-layer-dhcp wrapper
This just wrapped the Rust function to register the parse,
so instead just call the Rust function directly to remove
the C wrapper, and the 2 C files.
Jason Ish [Wed, 29 Jan 2020 22:34:00 +0000 (16:34 -0600)]
dns: register parsers from Rust
And port the C DNS tests to Rust.
Jason Ish [Tue, 14 Jan 2020 00:35:57 +0000 (18:35 -0600)]
dns: remove C wrapper functions to Rust
Remove registration of C wrapper functions and register
the Rust functions directly for UDP.
Jason Ish [Thu, 9 Jan 2020 22:21:54 +0000 (16:21 -0600)]
dns: cleanup: move event callbacks into Rust
Remove app-layer-dns-common.c as its no longer needed.
Jason Ish [Thu, 9 Jan 2020 18:10:32 +0000 (12:10 -0600)]
dns: cleanup: remove unused events
Removed events that are no longer used since the Rust
implementation of DNS:
- UnsolicitedResponse
- StateMemCapReached
- Flooded
Jason Ish [Thu, 9 Jan 2020 17:47:16 +0000 (11:47 -0600)]
dns: cleanup: remove C DNS type definitions (dead code)
Jason Ish [Thu, 9 Jan 2020 17:43:41 +0000 (11:43 -0600)]
dns: cleanup: move DnsGetRcode (Lua) to rust
Move the implementation of Lua DnsGetRcode to Rust.
Jason Ish [Thu, 9 Jan 2020 16:46:04 +0000 (10:46 -0600)]
dns: cleanup: remove unused function DNSCreateTypeString
Shivani Bhardwaj [Sat, 7 Mar 2020 08:23:36 +0000 (13:53 +0530)]
doc: Fix typo Generate -> Generator
Shivani Bhardwaj [Tue, 3 Mar 2020 06:10:08 +0000 (11:40 +0530)]
doc: Add chassis for dev docs
Closes redmine ticket 3344.
Philippe Antoine [Fri, 6 Mar 2020 09:45:23 +0000 (10:45 +0100)]
kerberos: fix against packet split in record size
Victor Julien [Sun, 8 Mar 2020 16:11:36 +0000 (17:11 +0100)]
krb5/tcp: remove notice logging on failed records
Philippe Antoine [Fri, 28 Feb 2020 11:03:16 +0000 (12:03 +0100)]
detect: adds icmpv6.hdr keyword
Philippe Antoine [Fri, 28 Feb 2020 11:04:00 +0000 (12:04 +0100)]
detect: fix typo for ipv6.hdr description
Philippe Antoine [Wed, 4 Mar 2020 15:43:51 +0000 (16:43 +0100)]
detect: use SC macros for IPV6 header
Philippe Antoine [Fri, 28 Feb 2020 12:37:20 +0000 (13:37 +0100)]
doc: add missing documentation for ipv6.hdr keyword
Philippe Antoine [Fri, 28 Feb 2020 13:18:32 +0000 (14:18 +0100)]
doc: fix typo in ByteExtractUint32 description
Jeff Lucovsky [Wed, 4 Mar 2020 14:37:04 +0000 (09:37 -0500)]
detect/threshold: Correct typos
Jeff Lucovsky [Wed, 4 Mar 2020 14:35:54 +0000 (09:35 -0500)]
detect/threshold: Don't allow duplicates
This commit detects duplicate threshold rule options. When duplicates
are found in a rule, an error message is displayed and the rule is
rejected.
Victor Julien [Thu, 5 Mar 2020 10:12:01 +0000 (11:12 +0100)]
pcap/file: minor code cleanups
Victor Julien [Thu, 5 Mar 2020 10:05:12 +0000 (11:05 +0100)]
threads/time: minor code cleanup
Sascha Steinbiss [Mon, 17 Feb 2020 16:29:59 +0000 (17:29 +0100)]
sip: address trailing space parsing
Jeff Lucovsky [Fri, 14 Feb 2020 13:38:53 +0000 (08:38 -0500)]
mime: Test cases for filename length limit
Jeff Lucovsky [Wed, 5 Feb 2020 14:21:05 +0000 (09:21 -0500)]
smtp/mime: Fix typos
Jeff Lucovsky [Wed, 5 Feb 2020 14:20:29 +0000 (09:20 -0500)]
smtp/mime: Set event when name exceeds limit
Jeff Lucovsky [Tue, 4 Feb 2020 15:13:49 +0000 (10:13 -0500)]
smtp/mime: Restrict file name lengths
This commit places restrictions on the length of the file name specified
in attachments (`name=` or `filename=`) to `NAME_MAX`. Names exceeding
these limits will be truncated and processing will continue with the
truncated name.
Victor Julien [Fri, 28 Feb 2020 12:17:03 +0000 (13:17 +0100)]
pcap/file: improve time handling
This patch addresses two problems.
First, various parts of the engine, but most notably the flow manager (FM),
use a minimum of the time notion of the packet threads. This did not
however, take into account the scenario where one or more of these
threads would be inactive for prolonged times. This could lead to the
time used by the FM could get stale.
This is addressed by keeping track of the last time the per thread packet
timestamp was updated, and only considering it for the 'minimum' when it
is reasonably current.
Second, there was a minor race condition at start up, where the FM would
already inspect the hash table(s) while the packet threads weren't active
yet. Since FM gets the time from the packet threads, it would use a bogus
time of 0.
This is addressed by adding a wait loop to the start of the FM that waits
for 'time' to get ready.
Victor Julien [Fri, 28 Feb 2020 12:06:09 +0000 (13:06 +0100)]
threads/time: rename ts to pktts to make purpose clear
Victor Julien [Thu, 27 Feb 2020 16:20:18 +0000 (17:20 +0100)]
pcap/file: fix race during pcap processing start
A race condition during the start of pcap file processing could cause
missed alerts and logged events. This race happens between the packet
threads and the flow manager. It was observed on slower hardware, but in
theory could happen on any machine. It required the 'autofp' runmode.
In commit
6f560144c1b9 ("time: improve offline time handling") the logic
was added to make the flow manager use a minimum of all the packet threads
perception of time.
The race condition was that the flow manager may become active _before_
all of the packet threads have started processing packets and thus setting
their timestamp. The threads that had not yet initialized their timestamp
would not be considered when calculating the minimum.
As a result of this, older packets timestamps would not yet be registered.
This would give the Flow Manager a timestamp too far in the future. While
the FM was running, the packet processing would start and a flow would
be created. This flow would then immediately be considered 'timed out' by
the FM, due to the timestamp too far in the future.
In the observed case, the thread processing packet 1 from the pcap had not
yet started processing while other threads had already started. The FM was
also already active. Due to the timestamps in the pcap this meant that the
time the FM used was about 500 seconds in the future compared to packet 1.
This patch fixes the issue by initializing all of the threads timestamps
with the timestamp value of the first packet. This way the minimum will
always consider this timestamp.
Victor Julien [Thu, 27 Feb 2020 19:27:20 +0000 (20:27 +0100)]
time: remove unused time structure
Victor Julien [Thu, 27 Feb 2020 19:20:33 +0000 (20:20 +0100)]
time: minor code cleanup
Victor Julien [Fri, 28 Feb 2020 09:22:23 +0000 (10:22 +0100)]
time: fix function name typo
Victor Julien [Fri, 28 Feb 2020 09:38:22 +0000 (10:38 +0100)]
pcap/file: fix function ptr naming
Victor Julien [Mon, 2 Mar 2020 16:18:50 +0000 (17:18 +0100)]
rust: bump minimum supported version to 1.34.2
Victor Julien [Fri, 7 Feb 2020 10:33:30 +0000 (11:33 +0100)]
rust/nfs: minor code cleanups
Victor Julien [Thu, 6 Feb 2020 10:43:17 +0000 (10:43 +0000)]
rust/rpc: add partial data tests
Pierre Chifflier [Thu, 6 Feb 2020 20:45:39 +0000 (21:45 +0100)]
rust: use the streaming version of combinators to fix incomplete reads
Pierre Chifflier [Mon, 4 Nov 2019 09:27:08 +0000 (10:27 +0100)]
rust/rdp: use the streaming version of combinators to fix incomplete reads
Pierre Chifflier [Mon, 4 Nov 2019 09:22:45 +0000 (10:22 +0100)]
rust/rdp: fix regression introduced during nom 5 upgrade
Pierre Chifflier [Thu, 31 Oct 2019 14:33:57 +0000 (15:33 +0100)]
rust: Add types annotation when required
Unfortunately, the transition to nom 5 (and functions instead of macros)
has side-effects, one of them being requiring lots of types annotations
when using a parsing, for ex in a match instruction.
Pierre Chifflier [Thu, 31 Oct 2019 09:49:20 +0000 (10:49 +0100)]
rust/ftp: upgrade to nom 5
CompleteByteSlice type has been removed, and replaced by combinators
under the nom::character::complete namespace.
Pierre Chifflier [Thu, 31 Oct 2019 08:25:58 +0000 (09:25 +0100)]
rust/rdp: add custom error handling
Pierre Chifflier [Thu, 31 Oct 2019 07:21:12 +0000 (08:21 +0100)]
rust/smb: add custom error handling
Pierre Chifflier [Wed, 30 Oct 2019 16:17:52 +0000 (17:17 +0100)]
rust: add SecBlobError custom error type for the Kerberos parser
Pierre Chifflier [Wed, 30 Oct 2019 16:17:32 +0000 (17:17 +0100)]
rust: add take_until_and_consume replacement function
Pierre Chifflier [Wed, 30 Oct 2019 12:22:22 +0000 (13:22 +0100)]
rust/dns: remove unneeded calls to closure!
Pierre Chifflier [Wed, 30 Oct 2019 12:14:07 +0000 (13:14 +0100)]
rust: upgrade all parsers to nom 5
Jason Ish [Mon, 24 Feb 2020 16:49:41 +0000 (10:49 -0600)]
log-pcap: fix log message: unified2 -> pcap
Likely a result of copy and pasted code.
Jason Ish [Fri, 8 Nov 2019 22:22:24 +0000 (16:22 -0600)]
unified2: not supported message if configured
Jason Ish [Wed, 6 Nov 2019 02:26:53 +0000 (20:26 -0600)]
unified2: remove deprecated output unified2
Ticket 2385:
https://redmine.openinfosecfoundation.org/issues/2385
Jason Ish [Wed, 6 Nov 2019 02:26:42 +0000 (20:26 -0600)]
wirefuzz: removed unified2 file removal
Jason Ish [Wed, 6 Nov 2019 02:26:27 +0000 (20:26 -0600)]
doc: removed unified2 output
Jeff Lucovsky [Wed, 19 Feb 2020 14:16:36 +0000 (09:16 -0500)]
pcre: Sticky buffer check
This commit adds logic checking if the sticky buffer in effect provides
the required content.
If the sticky buffer doesn't, the rule will not load and a diagnostic
message with follow-on steps is displayed.
Jeff Lucovsky [Wed, 19 Feb 2020 14:15:40 +0000 (09:15 -0500)]
general: Wordsmith "no rules loaded" message
William Stearns [Fri, 21 Feb 2020 16:44:08 +0000 (11:44 -0500)]
rules: fix files.rules typo
Sascha Steinbiss [Thu, 20 Feb 2020 09:47:32 +0000 (10:47 +0100)]
snmp-version: make comment more clear
Sascha Steinbiss [Thu, 20 Feb 2020 09:46:55 +0000 (10:46 +0100)]
snmp: do not set SIGMATCH_NOOPT
Jeff Lucovsky [Sat, 22 Feb 2020 18:24:45 +0000 (13:24 -0500)]
spelling: Fix spelling error
Jeff Lucovsky [Sat, 22 Feb 2020 18:24:13 +0000 (13:24 -0500)]
detect/ssl_state: Fix memory leaks from pcre_get_substring
This commit replaces usages of pcre_get_substring with
pcre_copy_substring to avoid leaking memory on error conditions.
Jeff Lucovsky [Sat, 22 Feb 2020 18:23:04 +0000 (13:23 -0500)]
detect/flowvar: Fix memory leaks from pcre_get_substring
This commit replaces usages of pcre_get_substring with
pcre_copy_substring to avoid leaking memory on error conditions.
Jeff Lucovsky [Sat, 22 Feb 2020 18:21:36 +0000 (13:21 -0500)]
detect/filestore: Fix memory leaks from pcre_get_substring
This commit replaces usages of pcre_get_substring with
pcre_copy_substring to avoid leaking memory on error conditions.
Jeff Lucovsky [Sat, 22 Feb 2020 18:19:28 +0000 (13:19 -0500)]
doc: Correct RST quote usage
Corrects misplaced backticks preventing proper formatting of `mpm-algo`
section.
Jeff Lucovsky [Sat, 22 Feb 2020 18:25:02 +0000 (13:25 -0500)]
util-error: define SC_ERR_PCRE_COPY_SUBSTRING
Jeff Lucovsky [Tue, 29 Oct 2019 10:24:53 +0000 (11:24 +0100)]
general: Convert _Bool to bool
This commit addresses task 3167 and changes usages of '_Bool` to `bool`.
The latter is included from `suricata-common.h`
Jeff Lucovsky [Sat, 21 Dec 2019 16:22:34 +0000 (11:22 -0500)]
doc/userguide: Update for dump-features
Jeff Lucovsky [Sat, 21 Dec 2019 16:16:31 +0000 (11:16 -0500)]
detect/feature: Support --dump-features
Jeff Lucovsky [Sat, 21 Dec 2019 16:15:42 +0000 (11:15 -0500)]
detect: update version comment
Jeff Lucovsky [Sat, 21 Dec 2019 16:12:30 +0000 (11:12 -0500)]
detect: Fix typos/spelling errors.
Jeff Lucovsky [Fri, 20 Dec 2019 00:51:59 +0000 (19:51 -0500)]
main: feature init and release
Jeff Lucovsky [Fri, 20 Dec 2019 00:51:08 +0000 (19:51 -0500)]
output/filestore: announce provided features
Jeff Lucovsky [Fri, 20 Dec 2019 00:50:30 +0000 (19:50 -0500)]
detect/filestore: Warn if req'd feature missing
Jeff Lucovsky [Fri, 20 Dec 2019 00:49:21 +0000 (19:49 -0500)]
detect/analysis: Warn if required feature missing
Jeff Lucovsky [Fri, 20 Dec 2019 00:48:25 +0000 (19:48 -0500)]
feature: feature tracking services
Philippe Antoine [Fri, 6 Dec 2019 07:58:56 +0000 (08:58 +0100)]
perf: optimizes alert fast log
In the case when we have multiple alerts for one packet
We suppose this happens more often than having decoder_event != 0
Phil Young [Mon, 6 Jan 2020 18:43:32 +0000 (13:43 -0500)]
napatech: add hardware based bypass support
Napatech hardware bypass support enables Suricata to utilize
capabilities of Napatech SmartNICs to selectively bypass flow-based
traffic.
Phil Young [Mon, 6 Jan 2020 18:42:05 +0000 (13:42 -0500)]
napatech: documentation hardware based bypass support
Napatech hardware bypass support enables Suricata to utilize
capabilities of Napatech SmartNICs to selectively bypass flow-based
traffic.