18. Protocols

18.1. App-Layer

18.1.1. HTTP

The HTTP protocol parser handles HTTP 0.9, 1.0 and 1.1 support.

18.1.1.1. Rule Keywords

HTTP rule keywords are documented in the rule guide HTTP Keywords.

In addition to these specific keywords, file transactions can be inspected with the File Keywords.

18.1.1.2. Transactions

Transactions in the HTTP implementation are bidirectional. A request and its response together form the transaction.

18.1.2. 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.

18.1.2.1. Rule Keywords

HTTP rule keywords apply to HTTP/2 as well and are documented in the rule guide HTTP Keywords. HTTP/2 specific rule keywords are documented in the rule guide HTTP2 Keywords.

In addition to these specific keywords, file transactions can be inspected with the File Keywords.

18.1.3. TLS

TLS support includes SSLv2 and SSLv3.

18.1.3.1. Rule Keywords

TLS rule keywords are documented in the rule guide SSL/TLS Keywords.

In addition to these specific keywords, the traffic can be inspected with the JA3/JA4 Keywords.

18.1.3.2. 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.

18.1.4. DNS

18.1.4.1. Rule Keywords

DNS rule keywords are documented in the rule guide DNS Keywords.

18.1.4.2. Transactions

Transactions in the DNS implementation are unidirectional. A DNS request will form a transaction, and a response will form its own transaction.

18.1.5. SMB

SMB is a complex protocol with many dialects and capabilities. The parser supports SMBv1, SMBv2 and SMBv3.

18.1.5.1. Rule Keywords

SMB rule keywords are documented in the rule guide SMB Keywords.

In addition to these specific keywords, file transactions can be inspected with the File Keywords.

DCERPC over SMB traffic can be inspected using DCERPC Keywords.

18.1.5.2. 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

18.2. Further Reading

Description of transactional rules Transactional rules.

More implementation details can be found in the App-Layer developer guide section.