mirror of https://github.com/OISF/suricata
doc/userguide: add initial protocols overview
Explain per protocol mechanics for rule matching.pull/13894/head
parent
7034a17d1d
commit
a1c4167d94
@ -0,0 +1,106 @@
|
|||||||
|
.. _Protocols:
|
||||||
|
|
||||||
|
Protocols
|
||||||
|
=========
|
||||||
|
|
||||||
|
App-Layer
|
||||||
|
~~~~~~~~~
|
||||||
|
|
||||||
|
HTTP
|
||||||
|
----
|
||||||
|
|
||||||
|
The HTTP protocol parser handles HTTP 0.9, 1.0 and 1.1 support.
|
||||||
|
|
||||||
|
Rule Keywords
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
HTTP rule keywords are documented in the rule guide :ref:`HTTP Rule Keywords`.
|
||||||
|
|
||||||
|
In addition to these specific keywords, file transactions can be inspected with the :ref:`File Rule Keywords`.
|
||||||
|
|
||||||
|
Transactions
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Transactions in the HTTP implementation are `bidirectional`. A request and its response together
|
||||||
|
form the transaction.
|
||||||
|
|
||||||
|
|
||||||
|
HTTP/2
|
||||||
|
------
|
||||||
|
|
||||||
|
HTTP/2 is generally encrypted on the wire, although it *can* be unencrypted. But it's most likely
|
||||||
|
this traffic will only be seen after some form of TLS decryption.
|
||||||
|
|
||||||
|
Rule Keywords
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
HTTP rule keywords apply to HTTP/2 as well and are documented in the rule guide :ref:`HTTP Rule Keywords`.
|
||||||
|
HTTP/2 specific rule keywords are documented in the rule guide :ref:`HTTP2 Rule Keywords`.
|
||||||
|
|
||||||
|
In addition to these specific keywords, file transactions can be inspected with the :ref:`File Rule Keywords`.
|
||||||
|
|
||||||
|
TLS
|
||||||
|
---
|
||||||
|
|
||||||
|
TLS support includes SSLv2 and SSLv3.
|
||||||
|
|
||||||
|
Rule Keywords
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
TLS rule keywords are documented in the rule guide :ref:`TLS Rule Keywords`.
|
||||||
|
|
||||||
|
In addition to these specific keywords, the traffic can be inspected with the :ref:`JA Rule Keywords`.
|
||||||
|
|
||||||
|
Transactions
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
The TLS implementation uses a single `bidirectional` transaction for the entire TLS flow. It includes
|
||||||
|
the TLS handshake and the handling of the encrypted portion the traffic.
|
||||||
|
|
||||||
|
DNS
|
||||||
|
---
|
||||||
|
|
||||||
|
Rule Keywords
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
DNS rule keywords are documented in the rule guide :ref:`DNS Rule Keywords`.
|
||||||
|
|
||||||
|
Transactions
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Transactions in the DNS implementation are `unidirectional`. A DNS request will form a transaction,
|
||||||
|
and a response will form its own transaction.
|
||||||
|
|
||||||
|
SMB
|
||||||
|
---
|
||||||
|
|
||||||
|
SMB is a complex protocol with many dialects and capabilities. The parser supports SMBv1, SMBv2 and SMBv3.
|
||||||
|
|
||||||
|
Rule Keywords
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
SMB rule keywords are documented in the rule guide :ref:`SMB Rule Keywords`.
|
||||||
|
|
||||||
|
In addition to these specific keywords, file transactions can be inspected with the :ref:`File Rule Keywords`.
|
||||||
|
|
||||||
|
DCERPC over SMB traffic can be inspected using :ref:`DCERPC Rule Keywords`.
|
||||||
|
|
||||||
|
Transactions
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Transactions in the SMB implementation are `bidirectional`. There are different types:
|
||||||
|
|
||||||
|
- generic request/response pairs
|
||||||
|
- file transfer, this may include many write/read commands and their responses, including
|
||||||
|
close commands
|
||||||
|
- session setup, including several related commands and their responses
|
||||||
|
- DCERPC over SMB, this may include several read/write commands to create a DCERPC transaction
|
||||||
|
that has a single DCEPRC request and its matching response
|
||||||
|
|
||||||
|
|
||||||
|
Further Reading
|
||||||
|
~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Description of transactional rules :ref:`Transactional Rules`.
|
||||||
|
|
||||||
|
More implementation details can be found in the :ref:`Devguide App-Layer` developer guide section.
|
||||||
Loading…
Reference in New Issue