@ -149,7 +149,7 @@ Splitting configuration in multiple files
-----------------------------------------
-----------------------------------------
Some users might have a need or a wish to split their suricata.yaml
Some users might have a need or a wish to split their suricata.yaml
file in to seperate files, this is available vis the 'include' and
file in to separate files, this is available vis the 'include' and
'!include' keyword. The first example is of taking the contents of the
'!include' keyword. The first example is of taking the contents of the
outputs section and storing them in outputs.yaml
outputs section and storing them in outputs.yaml
@ -316,7 +316,7 @@ This output supports IPv6 and IPv4 events.
# By default unified2 log files have the file creation time (in
# By default unified2 log files have the file creation time (in
# unix epoch format) appended to the filename. Set this to yes to
# unix epoch format) appended to the filename. Set this to yes to
# disable this behaviour.
# disable this behavior.
#nostamp: no
#nostamp: no
# Sensor ID field of unified2 alerts.
# Sensor ID field of unified2 alerts.
@ -393,7 +393,7 @@ server, ttl, resource record data. This logging can also be performed
through the use of the :ref:`Eve-log capability <eve-json-format>` which
through the use of the :ref:`Eve-log capability <eve-json-format>` which
offers easier parsing.
offers easier parsing.
Example of the apperance of a DNS log of a query with a preceding reply:
Example of the appearance of a DNS log of a query with a preceding reply:
::
::
@ -633,7 +633,7 @@ Detection engine
Inspection configuration
Inspection configuration
~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~
The detection-engine builds internal groups of signatures. Suricata loads signatures, with which the network traffic will be compared. The fact is, that many rules certainly will not be necessary. (For instance: if there appears a packet with the UDP-protocol, all signatures for the TCP-protocol won't be needed.) For that reason, all signatures will be divided in groups. However, a distribution containing many groups will make use of a lot of memory. Not every type of signature gets its own group. There is a possibility that different signatures with several properties in common, will be placed together in a group. The quantity of groups will determine the balance between memory and performance. A small amount of groups will lower the performance yet uses little memory. The opposite counts for a higher amount of groups. The engine allows you to manage the balance between memory and performance. To manage this, (by determining the amount of groups) there are several general options:high for good performance and more use of memory, low for low performance and little use of memory. The option medium is the balance between performance and memory usage. This is the default setting.The option custom is for advanced users. This option has values which can be managed by the user.
The detection-engine builds internal groups of signatures. Suricata loads signatures, with which the network traffic will be compared. The fact is, that many rules certainly will not be necessary. (For instance: if there appears a packet with the UDP-protocol, all signatures for the TCP-protocol won't be needed.) For that reason, all signatures will be divided in groups. However, a distribution containing many groups will make use of a lot of memory. Not every type of signature gets its own group. There is a possibility that different signatures with several properties in common, will be placed together in a group. The quantity of groups will determine the balance between memory and performance. A small amount of groups will lower the performance yet uses little memory. The opposite counts for a higher amount of groups. The engine allows you to manage the balance between memory and performance. To manage this, (by determining the amount of groups) there are several general options:high for good performance and more use of memory, low for low performance and little use of memory. The option medium is the balance between performance and memory usage. This is the default setting.The option custom is for advanced users. This option has values which can be managed by the user.
::
::
@ -749,7 +749,7 @@ These are the proceedings:
1)A packet comes in.
1)A packet comes in.
2)The packed will be analysed by the Multi-pattern-matcher in search
2)The packed will be analyzed by the Multi-pattern-matcher in search
of patterns that match.
of patterns that match.
3)All patterns that match, will be further processed by Suricata (signatures).
3)All patterns that match, will be further processed by Suricata (signatures).
@ -997,7 +997,7 @@ Flow Settings
Within Suricata, Flows are very important. They play a big part in the
Within Suricata, Flows are very important. They play a big part in the
way Suricata organizes data internally. A flow is a bit similar to a
way Suricata organizes data internally. A flow is a bit similar to a
connection, except a flow is more general.All packets having the same
connection, except a flow is more general.All packets having the same
In addition to these fields, if the extended logging is enabled in the suricata.yaml file the following fields are (can) also included:
In addition to these fields, if the extended logging is enabled in the suricata.yaml file the following fields are (can) also included:
* "length": The content size of the HTTP body
* "length": The content size of the HTTP body
* "status": HTTP statuscode
* "status": HTTP statuscode
* "protocol": Protocol / Version of HTTP (ex: HTTP/1.1)
* "protocol": Protocol / Version of HTTP (ex: HTTP/1.1)
* "http_method": The HTTP method (ex: GET, POST, HEAD)
* "http_method": The HTTP method (ex: GET, POST, HEAD)
* "http_refer": The referer for this action
* "http_refer": The referer for this action
In addition to the extended logging fields one can also choose to enable/add from 50 additional custom logging HTTP fields enabled in the suricata.yaml file. The additional fields can be enabled as following:
In addition to the extended logging fields one can also choose to enable/add from more than 50 additional custom logging HTTP fields enabled in the suricata.yaml file. The additional fields can be enabled as following:
::
::
@ -474,7 +474,7 @@ SMB Fields
* "filename" (string): filename for CREATE and other commands.
* "filename" (string): filename for CREATE and other commands.
* "disposition" (string): requested disposition. E.g. FILE_OPEN, FILE_CREATE and FILE_OVERWRITE. See https://msdn.microsoft.com/en-us/library/ee442175.aspx#Appendix_A_Target_119
* "disposition" (string): requested disposition. E.g. FILE_OPEN, FILE_CREATE and FILE_OVERWRITE. See https://msdn.microsoft.com/en-us/library/ee442175.aspx#Appendix_A_Target_119
* "access" (string): indication of how the file was opened. "normal" or "delete on close" (field is subject to change)
* "access" (string): indication of how the file was opened. "normal" or "delete on close" (field is subject to change)
* "created", "accessed", "modified", "changed" (interger): timestamps in seconds since unix epoch
* "created", "accessed", "modified", "changed" (integer): timestamps in seconds since unix epoch
* "size" (integer): size of the requested file
* "size" (integer): size of the requested file
* "fuid" (string): SMB2+ file GUID. SMB1 FID as hex.
* "fuid" (string): SMB2+ file GUID. SMB1 FID as hex.
* **syslog-ng** - logs system messages but also suports TCP, TLS, and other enhanced enterprise features
* **syslog-ng** - logs system messages but also supports TCP, TLS, and other enhanced enterprise features
* **rsyslogd** - logs system messages but also support TCP, TLS, multi-threading, and other enhanced features
* **rsyslogd** - logs system messages but also support TCP, TLS, multi-threading, and other enhanced features
* **klogd** - logs kernel messages
* **klogd** - logs kernel messages
* **sysklogd** - basically a bundle of syslogd and klogd
* **sysklogd** - basically a bundle of syslogd and klogd
@ -46,7 +46,7 @@ Locate those files and look at them to give you clues as to what syslog daemon y
Example
Example
-------
-------
Here is an example where the Suricata sensor is sending syslog messages in rsyslogd format but the SIEM is expecting and parsing them in a sysklogd format. In the syslog configuration file (ususally in /etc with a filename like rsyslog.conf or syslog.conf), first add the template:
Here is an example where the Suricata sensor is sending syslog messages in rsyslogd format but the SIEM is expecting and parsing them in a sysklogd format. In the syslog configuration file (usually in /etc with a filename like rsyslog.conf or syslog.conf), first add the template:
modbus: access write coils # Write access to Coils table
modbus: access write coils # Write access to Coils table
modbus: access read discretes, address <100 # Read access at address smaller than 100 of Discretes Input table
modbus: access read discretes, address <100 # Read access at address smaller than 100 of Discretes Input table
modbus: access write holding, address 500, value >200 # Write value greather than 200 at address 500 of Holding Registers table
modbus: access write holding, address 500, value >200 # Write value greater than 200 at address 500 of Holding Registers table
With the setting **unit**, you can match on:
With the setting **unit**, you can match on:
@ -108,7 +108,7 @@ Examples::
modbus: unit 10, access read # Unit identifier 10 and Read access
modbus: unit 10, access read # Unit identifier 10 and Read access
modbus: unit 10, access write coils # Unit identifier 10 and Write access to Coils table
modbus: unit 10, access write coils # Unit identifier 10 and Write access to Coils table
modbus: unit >10, access read discretes, address <100 # Greater than unit identifier 10 and Read access at address smaller than 100 of Discretes Input table
modbus: unit >10, access read discretes, address <100 # Greater than unit identifier 10 and Read access at address smaller than 100 of Discretes Input table
modbus: unit 10<>20, access write holding, address 500, value >200 # Greater than unit identifier 10 and smaller than unit identifier 20 and Write value greather than 200 at address 500 of Holding Registers table
modbus: unit 10<>20, access write holding, address 500, value >200 # Greater than unit identifier 10 and smaller than unit identifier 20 and Write value greater than 200 at address 500 of Holding Registers table