-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rust: implement JA4 fingerprints for TLS and QUIC
Ticket: #6379
- Loading branch information
Showing
33 changed files
with
1,241 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
JA4 Keywords | ||
============ | ||
|
||
Suricata comes with a JA4 integration (https://github.com/FoxIO-LLC/ja4). JA4, | ||
as part of the larger JA4+ suite of fingerprints, is used to fingerprint TLS | ||
clients. | ||
|
||
We might in the future consider adding raw and original order strings (JA4_r, | ||
JA4_o, JA4_ro) as non-hashed versions. | ||
|
||
JA4 support must be enabled in the Suricata config file (set | ||
``app-layer.protocols.tls.ja4-fingerprints`` to ``yes``). If it is not | ||
explicitly disabled (``no``) , it will enabled if a loaded rule requires it. | ||
It also needs to be enabled at compile time (``--enable-ja4``). | ||
|
||
ja4.hash | ||
-------- | ||
|
||
Match on JA4 hash (e.g. ``q13d0310h3_55b375c5d22e_cd85d2d88918``). | ||
|
||
Example:: | ||
|
||
alert quic any any -> any any (msg:"match JA4 hash"; \ | ||
ja4.hash; content:"q13d0310h3_55b375c5d22e_cd85d2d88918"; \ | ||
sid:100001;) | ||
|
||
``ja4.hash`` is a 'sticky buffer'. | ||
|
||
``ja4.hash`` can be used as ``fast_pattern``. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.