From: Eric Leblond Date: Wed, 27 Jan 2021 10:38:34 +0000 (+0100) Subject: eve: only output ja3 and ja3s if present X-Git-Tag: suricata-7.0.0-beta1~1819 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=730438943856e957032a38c11ca762bef73da1ef;p=thirdparty%2Fsuricata.git eve: only output ja3 and ja3s if present This will prevent JSON entries like the following that occur with the dedault configuration (ja3 deactivated and extended tls ouput activated): "tls": { "subject": "C=GB, ST=London, L=London, O=Global Security, OU=IT Department, CN=example.com", "issuerdn": "C=GB, ST=London, L=London, O=Global Security, OU=IT Department, CN=example.com", "serial": "00:9C:FC:DA:1D:A4:70:87:5D", "fingerprint": "b8:18:2d:cb:c9:f8:1a:66:75:13:18:31:24:e0:92:35:42:ab:96:89", "version": "TLSv1", "notbefore": "2020-05-03T11:07:28", "notafter": "2021-05-03T11:07:28", "ja3": {}, "ja3s": {} } --- diff --git a/src/output-json-tls.c b/src/output-json-tls.c index 3bf30a8058..412c18e0ff 100644 --- a/src/output-json-tls.c +++ b/src/output-json-tls.c @@ -215,12 +215,16 @@ static void JsonTlsLogJa3String(JsonBuilder *js, SSLState *ssl_state) static void JsonTlsLogJa3(JsonBuilder *js, SSLState *ssl_state) { - jb_open_object(js, "ja3"); + if ((ssl_state->client_connp.ja3_hash != NULL) || + ((ssl_state->client_connp.ja3_str != NULL) && + ssl_state->client_connp.ja3_str->data != NULL)) { + jb_open_object(js, "ja3"); - JsonTlsLogJa3Hash(js, ssl_state); - JsonTlsLogJa3String(js, ssl_state); + JsonTlsLogJa3Hash(js, ssl_state); + JsonTlsLogJa3String(js, ssl_state); - jb_close(js); + jb_close(js); + } } static void JsonTlsLogJa3SHash(JsonBuilder *js, SSLState *ssl_state) @@ -242,12 +246,16 @@ static void JsonTlsLogJa3SString(JsonBuilder *js, SSLState *ssl_state) static void JsonTlsLogJa3S(JsonBuilder *js, SSLState *ssl_state) { - jb_open_object(js, "ja3s"); + if ((ssl_state->server_connp.ja3_hash != NULL) || + ((ssl_state->server_connp.ja3_str != NULL) && + ssl_state->server_connp.ja3_str->data != NULL)) { + jb_open_object(js, "ja3s"); - JsonTlsLogJa3SHash(js, ssl_state); - JsonTlsLogJa3SString(js, ssl_state); + JsonTlsLogJa3SHash(js, ssl_state); + JsonTlsLogJa3SString(js, ssl_state); - jb_close(js); + jb_close(js); + } } static void JsonTlsLogCertificate(JsonBuilder *js, SSLState *ssl_state)