]>
git.ipfire.org Git - thirdparty/suricata.git/log
Victor Julien [Tue, 20 Mar 2018 14:49:00 +0000 (15:49 +0100)]
der: don't overwrite errcode
If the code has already been set it is more detailed than the more
generic 'invalid object'.
Jason Ish [Wed, 31 Jan 2018 21:42:42 +0000 (15:42 -0600)]
suricata-update: bundle suricata update
Add autoconf/automake support for installing suricata-update
if found in the top level suricata-update.
Mats Klepsland [Tue, 21 Feb 2017 11:06:17 +0000 (12:06 +0100)]
conf: user-configurable umask setting
Make umask user-configurable by setting 'umask' in suricata.yaml.
Pierre Chifflier [Thu, 1 Mar 2018 17:58:41 +0000 (18:58 +0100)]
DER parser: ensure errcode is set for every return path
Pierre Chifflier [Thu, 15 Feb 2018 14:00:35 +0000 (15:00 +0100)]
DER parser: fix undefined behaviors and add missing length tests
Fix several undefined behaviors, caused by possible use or read of
uninitialized memory.
Antti Tönkyrä [Mon, 19 Mar 2018 10:18:56 +0000 (12:18 +0200)]
stream-tcp: add counters for midstream pickups
If midstream pickups are enabled this will help in discovering how
many midstream pickups are being done by Suricata.
Mats Klepsland [Thu, 28 Dec 2017 21:45:50 +0000 (22:45 +0100)]
doc: add JA3 fields to the TLS logger documentation
Mats Klepsland [Thu, 28 Dec 2017 21:40:27 +0000 (22:40 +0100)]
eve: add JA3 fields to TLS JSON logger
Add JA3 object to TLS JSON logger (extended log).
Mats Klepsland [Thu, 28 Dec 2017 20:51:44 +0000 (21:51 +0100)]
doc: add documentation for Ja3GetString Lua function
Mats Klepsland [Thu, 28 Dec 2017 20:45:08 +0000 (21:45 +0100)]
lua: add Ja3GetString function
Add Ja3GetString() to return the content of the JA3 string buffer from the
TLS session.
Example:
function init (args)
local needs = {}
needs["protocol"] = "tls"
return needs
end
function setup (args)
filename = SCLogPath() .. "/ja3_string.log"
file = assert(io.open(filename, "a"))
end
function log (args)
ja3_string = Ja3GetString()
if ja3_string == nil then
return
end
file:write(ja3_string .. "\n")
file:flush()
end
function deinit (args)
file:close()
end
Mats Klepsland [Thu, 28 Dec 2017 20:21:16 +0000 (21:21 +0100)]
doc: add documentation for Ja3GetHash Lua function
Mats Klepsland [Thu, 28 Dec 2017 20:06:28 +0000 (21:06 +0100)]
lua: add Ja3GetHash function
Add Ja3GetHash() to return the content of the JA3 hash buffer from the
TLS session.
Example:
function init (args)
local needs = {}
needs["protocol"] = "tls"
return needs
end
function setup (args)
filename = SCLogPath() .. "/ja3_hash.log"
file = assert(io.open(filename, "a"))
end
function log (args)
ja3_hash = Ja3GetHash()
if ja3_hash == nil then
return
end
file:write(ja3_hash .. "\n")
file:flush()
end
function deinit (args)
file:close()
end
In the (useless) example above, each JA3 hash is logged to a log file.
Mats Klepsland [Sun, 10 Dec 2017 15:47:07 +0000 (16:47 +0100)]
doc: add documentation for ja3_string keyword
Mats Klepsland [Sun, 10 Dec 2017 15:05:37 +0000 (16:05 +0100)]
detect: add (mpm) keyword ja3_string
Match on JA3 string using ja3_string keyword, e.g:
alert tls any any -> any any (msg:"JA3 string test";
ja3_string; content:"65-68-69-102"; sid:1;)
Mats Klepsland [Sun, 10 Dec 2017 15:40:58 +0000 (16:40 +0100)]
doc: add documentation for ja3_hash keyword
Mats Klepsland [Thu, 7 Dec 2017 08:30:03 +0000 (09:30 +0100)]
detect: add (mpm) keyword ja3_hash
Match on JA3 hash using ja3_hash keyword, e.g:
alert tls any any -> any any (msg:"JA3 hash test";
ja3_hash;
content:"
e7eca2baf4458d095b7f45da28c16c34 ";
sid:1;)
Mats Klepsland [Tue, 26 Dec 2017 12:33:05 +0000 (13:33 +0100)]
util-ja3: add function to check if JA3 is disabled
Mats Klepsland [Thu, 30 Nov 2017 10:04:03 +0000 (11:04 +0100)]
app-layer-ssl: generate JA3 fingerprints
Decode additional fields from the client hello packet and generate
JA3 fingerprints.
Mats Klepsland [Mon, 27 Nov 2017 11:23:57 +0000 (12:23 +0100)]
app-layer-ssl: split function into multiple smaller functions
Split 'TLSDecodeHandshakeHello' into smaller functions to make
it easier to read the code when the function grows in size.
Victor Julien [Fri, 16 Mar 2018 13:42:58 +0000 (14:42 +0100)]
smb: suppress notice messages
Pierre Chifflier [Fri, 16 Mar 2018 06:50:12 +0000 (07:50 +0100)]
SMB: simplify code
Pierre Chifflier [Thu, 15 Mar 2018 07:16:24 +0000 (08:16 +0100)]
SMB: use String::from_utf8_lossy in logging functions
Pierre Chifflier [Thu, 15 Mar 2018 07:24:10 +0000 (08:24 +0100)]
SMB: use kerberos-parser to extract Real and PrincipalName
Victor Julien [Thu, 15 Mar 2018 15:50:38 +0000 (16:50 +0100)]
smb1: extract rename info from TRANS2
Exclude TRANS2 from generic TX lookup bypass.
Victor Julien [Thu, 15 Mar 2018 13:17:19 +0000 (14:17 +0100)]
smb1: add parsing for RENAME command
Victor Julien [Thu, 15 Mar 2018 10:11:07 +0000 (11:11 +0100)]
smb2: log renames
Victor Julien [Thu, 15 Mar 2018 06:37:56 +0000 (07:37 +0100)]
smb: if filename is missing, use '<unknown>'
Victor Julien [Wed, 14 Mar 2018 15:58:45 +0000 (16:58 +0100)]
rust/dns: default to eve log version 2 for rust
Jason Ish [Fri, 2 Feb 2018 18:46:13 +0000 (12:46 -0600)]
eve/dns/v2: support eve/dns v2 in rust
Jason Ish [Fri, 2 Feb 2018 18:45:35 +0000 (12:45 -0600)]
rust/json: expose more of jansson to rust
Jason Ish [Fri, 2 Feb 2018 17:45:20 +0000 (11:45 -0600)]
eve/dns-v2: only log responses for enabled types
This changes the logic a bit for v2, checking the rrtype of the
query to see if the response should be logged.
Jason Ish [Fri, 2 Feb 2018 17:08:00 +0000 (11:08 -0600)]
eve/dns-v2: log authorities as a list
Log the authorities just like the answers, as a list under
the authorities key.
Giuseppe Longo [Wed, 20 Dec 2017 10:27:48 +0000 (11:27 +0100)]
doc: introduce dns compact logging
Giuseppe Longo [Mon, 7 Aug 2017 08:31:16 +0000 (10:31 +0200)]
output-json-alert: add dns info
This changes LogQuery and LogAnswer functions
returning a json object instead of writing it in a log file.
In this way it's possible to reuse them to add dns info
into an alert.
The following is an alert record with dns:
{
"timestamp": "2017-07-31T15:01:17.885281+0200",
"event_type": "alert",
"src_ip": "8.8.8.8",
...
"dns": {
"query": [
{
"type": "query",
"id": 25394,
"rrname": "notifications.google.com",
"rrtype": "A",
"tx_id": 0
}
],
"answer": {
"type": "answer",
"id": 25394,
"rcode": "NOERROR",
"answers": [
{
"rrname": "notifications.google.com",
"rrtype": "CNAME",
"ttl": 3599,
"rdata": "plus.l.google.com"
},
{
"rrname": "plus.l.google.com",
"rrtype": "A",
"ttl": 299,
"rdata": "216.58.205.174"
}
]
}
}
}
Giuseppe Longo [Thu, 10 Aug 2017 12:21:56 +0000 (14:21 +0200)]
output-json-dns: add json logging functions
This adds some public functions needed to add
dns information when an alert is logged.
Giuseppe Longo [Wed, 2 Aug 2017 13:55:01 +0000 (15:55 +0200)]
output-json-dns: add new output formats for v2
This adds two new output formats that permits to reduce
the number of line logged for a dns answer because
actually an event is logged for each answer.
With this patch, only an event that contains all the answers
is logged.
The formats are named 'detailed' and 'grouped'.
The first format provides a list of answers with
the following fields:
- rrname
- rrdata
- ttl
- rdata
The second format provides a list of record data grouped
by their type.
The output below is an example of the formats:
{
"timestamp": "2017-11-29T10:27:18.148282+0100",
"flow_id":
268864910185905 ,
"in_iface": "wlp2s0",
"event_type": "dns",
"src_ip": "192.168.1.254",
"src_port": 53,
"dest_ip": "192.168.1.176",
"dest_port": 52609,
"proto": "UDP",
"dns": {
"type": "answer",
"id": 3654,
"rcode": "NOERROR",
"answers": [
{
"rrname": "wordpress.org",
"rrtype": "A",
"ttl": 544,
"rdata": "66.155.40.249"
},
{
"rrname": "wordpress.org",
"rrtype": "A",
"ttl": 544,
"rdata": "66.155.40.250"
}
],
"grouped": {
"A": [
"66.155.40.249",
"66.155.40.250"
]
}
}
}
Giuseppe Longo [Tue, 28 Nov 2017 08:51:48 +0000 (09:51 +0100)]
output-json-dns: add new configuration
This patch adds a new configuration for dns,
introducing a "version" that permits to switch
between the new and old format to provide
backward compatibility.
The new configuration is made up of these new fields:
- version
- requests (query)
- response (answer)
- types (custom)
David DIALLO [Wed, 21 Feb 2018 23:29:33 +0000 (00:29 +0100)]
modbus: Support Unit Identifier
When destination IP address does not suffice to uniquely identify
the Modbus/TCP device.
Some Modbus/TCP devices act as gateways to other Modbus/TCP devices
that are behind this gateways.
Victor Julien [Wed, 14 Mar 2018 20:59:51 +0000 (21:59 +0100)]
smb: share can't be <share_root>
Victor Julien [Wed, 14 Mar 2018 12:47:07 +0000 (13:47 +0100)]
smb1: add OPEN_ANDX command name for logging
Victor Julien [Wed, 14 Mar 2018 12:16:38 +0000 (13:16 +0100)]
smb2: don't log/track each READ/WRITE/etc
Victor Julien [Wed, 14 Mar 2018 09:26:40 +0000 (10:26 +0100)]
smb: log file FID/GUID as fuid
Victor Julien [Wed, 14 Mar 2018 08:05:12 +0000 (09:05 +0100)]
smb: add smb records to fileinfo
Victor Julien [Tue, 13 Mar 2018 16:34:00 +0000 (17:34 +0100)]
smb1: improve non nt-status handling
Support SRV error, with a couple of codes.
Rename statux field to status_code.
Victor Julien [Tue, 13 Mar 2018 15:36:45 +0000 (16:36 +0100)]
smb1: ignore tree_id in session setup
Victor Julien [Tue, 13 Mar 2018 12:44:35 +0000 (13:44 +0100)]
smb: improve nbss/smb record detection
Victor Julien [Tue, 13 Mar 2018 12:36:19 +0000 (13:36 +0100)]
rust/smb: implement minimal record parsing in probing
Victor Julien [Tue, 13 Mar 2018 12:24:45 +0000 (13:24 +0100)]
rust/smb: improve protocol detection
Register both pattern based detection and probing parsers.
Victor Julien [Tue, 13 Mar 2018 12:10:42 +0000 (13:10 +0100)]
smb: add smb to default eve-log config
Victor Julien [Tue, 13 Mar 2018 07:05:03 +0000 (08:05 +0100)]
smb2: break out ioctl handling
Victor Julien [Mon, 12 Mar 2018 20:05:07 +0000 (21:05 +0100)]
smb2: parse async records
Victor Julien [Mon, 12 Mar 2018 20:04:54 +0000 (21:04 +0100)]
smb2: add ioctl transactions to log the funcs
Victor Julien [Mon, 12 Mar 2018 17:09:12 +0000 (18:09 +0100)]
smb2: map ioctl funcs to names
List is based on Wireshark's list.
Victor Julien [Mon, 12 Mar 2018 13:32:08 +0000 (14:32 +0100)]
smb: use formal MS names for disposition
Victor Julien [Mon, 12 Mar 2018 13:31:49 +0000 (14:31 +0100)]
smb: disable debug output
Victor Julien [Mon, 12 Mar 2018 08:56:12 +0000 (09:56 +0100)]
smb1: extract server guid from negotiate
Victor Julien [Mon, 12 Mar 2018 08:32:17 +0000 (09:32 +0100)]
smb2: log client and server guid from negotiate
Victor Julien [Mon, 12 Mar 2018 07:28:21 +0000 (08:28 +0100)]
smb2: log share type
Victor Julien [Mon, 12 Mar 2018 06:57:06 +0000 (07:57 +0100)]
smb: log create empty filename as '<share_root>' like Bro does
Victor Julien [Mon, 12 Mar 2018 06:56:29 +0000 (07:56 +0100)]
smb1: log create 'service' fields
Victor Julien [Sat, 10 Mar 2018 11:52:56 +0000 (12:52 +0100)]
smb1: use generic string parsing for trans
Victor Julien [Sat, 10 Mar 2018 10:18:48 +0000 (11:18 +0100)]
smb1: generic smb string parse func
Victor Julien [Sat, 10 Mar 2018 10:10:25 +0000 (11:10 +0100)]
smb1: more exact tree connect record parsing
Victor Julien [Sat, 10 Mar 2018 08:57:44 +0000 (09:57 +0100)]
smb: move common parsing funcs into own file
Victor Julien [Sat, 10 Mar 2018 08:42:55 +0000 (09:42 +0100)]
smb: make string parsing functions public
Victor Julien [Fri, 9 Mar 2018 16:09:23 +0000 (17:09 +0100)]
smb1: set event on empty/malformed dialect
Victor Julien [Fri, 9 Mar 2018 15:05:17 +0000 (16:05 +0100)]
smb: rename file to filename in output
Victor Julien [Fri, 9 Mar 2018 15:04:22 +0000 (16:04 +0100)]
smb1: parse and log timestamps in CREATE
Victor Julien [Fri, 9 Mar 2018 09:27:13 +0000 (10:27 +0100)]
smb2: parse and log timestamps in CREATE
Victor Julien [Wed, 7 Mar 2018 17:23:17 +0000 (18:23 +0100)]
smb1: disable 'generic tx's for common commands
Don't create a generic TX for each READ, WRITE, TRANS, TRANS2,
except if they cause events to trigger.
Victor Julien [Wed, 7 Mar 2018 14:29:49 +0000 (15:29 +0100)]
smb: generic event per trans/read/write for tx events
Victor Julien [Wed, 7 Mar 2018 10:32:04 +0000 (11:32 +0100)]
smb: fix event handling when no tx is available
Victor Julien [Tue, 6 Mar 2018 09:13:40 +0000 (10:13 +0100)]
smb: small cleanups, fixes and optimizations
Victor Julien [Fri, 2 Mar 2018 16:19:18 +0000 (17:19 +0100)]
smb: update to der-parser 0.5.1
Victor Julien [Thu, 1 Mar 2018 11:47:49 +0000 (12:47 +0100)]
smb: remove unused dialects from state
Victor Julien [Thu, 1 Mar 2018 11:39:15 +0000 (12:39 +0100)]
smb1: minor debug improvment
Victor Julien [Thu, 1 Mar 2018 11:38:53 +0000 (12:38 +0100)]
smb: redo gap catch up handling
Victor Julien [Thu, 1 Mar 2018 09:55:21 +0000 (10:55 +0100)]
smb1: parser cleanups
Victor Julien [Thu, 1 Mar 2018 09:37:06 +0000 (10:37 +0100)]
smb: cleaner server component parsing
Victor Julien [Thu, 1 Mar 2018 09:31:07 +0000 (10:31 +0100)]
smb2: improve write error handling
Victor Julien [Thu, 1 Mar 2018 09:30:02 +0000 (10:30 +0100)]
smb3: parse transform records
Victor Julien [Thu, 1 Mar 2018 07:50:36 +0000 (08:50 +0100)]
smb2: add missing commands and improve ioctl err handling
Victor Julien [Thu, 1 Mar 2018 07:50:04 +0000 (08:50 +0100)]
smb1: improve error handling
Victor Julien [Wed, 28 Feb 2018 20:19:20 +0000 (21:19 +0100)]
smb: add status
Victor Julien [Wed, 28 Feb 2018 17:38:33 +0000 (18:38 +0100)]
smb1: implement WRITE_AND_CLOSE
Victor Julien [Wed, 28 Feb 2018 16:56:01 +0000 (17:56 +0100)]
smb1: locking andx may have no response
Victor Julien [Wed, 28 Feb 2018 16:25:08 +0000 (17:25 +0100)]
smb/nbss: work around bad traffic
Victor Julien [Tue, 27 Feb 2018 17:12:07 +0000 (18:12 +0100)]
smb: session setup improvements
Improve ntlmssp version extraction and logging, make its data structures
optional. Extract native os/lm from smb1 ssn setup.
Move session setup handling into their own files.
Only log auth data for the session setup tx.
Victor Julien [Mon, 26 Feb 2018 12:39:42 +0000 (13:39 +0100)]
rust/smb: initial support
Implement SMB app-layer parser for SMB1/2/3. Features:
- file extraction
- eve logging
- existing dce keyword support
- smb_share/smb_named_pipe keyword support (stickybuffers)
- auth meta data extraction (ntlmssp, kerberos5)
Victor Julien [Mon, 19 Feb 2018 16:30:36 +0000 (17:30 +0100)]
eve: log pcap filename
Victor Julien [Thu, 8 Mar 2018 07:35:16 +0000 (08:35 +0100)]
detect: fix tx iterator logic in detect
The 'tx_id' variable was used to be passed into the IterFunc as a
minumum tx to return. The IterFunc could then return either the tx
for that id, or a later one if that turned out to be the first available
tx.
The tx_id however, was still used for some things as if it was the
current tx id. Most importantly for setting the tx id for alert
ammending. So this could lead to alerts with missing or wrong
applayer records.
Victor Julien [Thu, 8 Mar 2018 07:48:39 +0000 (08:48 +0100)]
mingw: fix compile error
Richard Sailer [Thu, 22 Feb 2018 00:53:16 +0000 (01:53 +0100)]
output/lua: better lua output setup error handling
If suricata was started with --init-errors-fatal and an error occured
during setup of lua output (like if lua scripts configured in the conf file
don't exist or are not readable) suricata continued, which did not reflect
"init errors fatal" very well.
This fix makes the suricata initialization abort and send an error message
in such cases.
For details see:
https://redmine.openinfosecfoundation.org/issues/1503
Richard Sailer [Thu, 22 Feb 2018 00:27:59 +0000 (01:27 +0100)]
output/lua: remove unnecessary detect.h include
output-lua.c contained an include of detect.h.
Since we don't (and shouldn't) call any functions from detect.c in output-lua.c
and such coupling is generally unwanted this patch removes that include.
Pierre Chifflier [Tue, 6 Mar 2018 20:33:33 +0000 (21:33 +0100)]
Rust: add 'debug' feature
The 'debug' feature is enabled if suricata was configured with the
--enabled-debug' flag.
If enabled, the SCLogDebug format and calls the logging function as
usual. Otherwise, this macro is a no-op (similarly to the C code).
Victor Julien [Mon, 5 Mar 2018 17:37:17 +0000 (18:37 +0100)]
profiling: suppress debug statements
Thomas Andrejak [Thu, 8 Jun 2017 12:56:26 +0000 (14:56 +0200)]
prelude: add protocol information through JSON
Daniel Humphries [Mon, 4 Dec 2017 19:53:27 +0000 (19:53 +0000)]
unified2: fix xff extra-data output (Bug #2305)
In extra-data mode, suricata does not output xff data without
undocumented conditions (including enabling packet output). This
behaviour has been fixed to remove the hidden requirements. Fix
included removing previous xff data output implementation and adding a
new function for outputting xff that is called after outputting each
event.
IPv6 XFF entries were also being recorded incorrectly as if they were
IPv4 and this has been fixed.
Pascal Delalande [Thu, 22 Feb 2018 21:28:56 +0000 (22:28 +0100)]
doc: update eve json output for DNS and HTTP
Victor Julien [Mon, 5 Mar 2018 08:11:30 +0000 (09:11 +0100)]
der/afl: free data during fuzzing