From 40de7d93e0c5f2cb6c503879b1a79adbb888c7aa Mon Sep 17 00:00:00 2001
From: Alexandre Dulaunoy
Date: Mon, 9 Nov 2026 17:31:17 +0100
Subject: [PATCH 1/2] new: [tls-session] Add tls-session object template
---
objects/tls-session/definition.json | 88 +++++++++++++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 objects/tls-session/definition.json
diff --git a/objects/tls-session/definition.json b/objects/tls-session/definition.json
new file mode 100644
index 00000000..91e49bac
--- /dev/null
+++ b/objects/tls-session/definition.json
@@ -0,0 +1,88 @@
+{
+ "attributes": {
+ "alert": {
+ "description": "TLS alert code observed by the source.",
+ "disable_correlation": true,
+ "misp-attribute": "integer",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "cipher": {
+ "description": "Negotiated cipher suite.",
+ "disable_correlation": true,
+ "misp-attribute": "text",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "client-cipher": {
+ "description": "One client-advertised cipher suite per attribute.",
+ "disable_correlation": true,
+ "misp-attribute": "text",
+ "multiple": true,
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "handshake-duration-ms": {
+ "description": "Handshake duration in milliseconds after TCP establishment, including source-observed client delays.",
+ "disable_correlation": true,
+ "misp-attribute": "integer",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "ja3": {
+ "description": "Client JA3 MD5 fingerprint; populate only when the source fingerprint algorithm is MD5.",
+ "disable_correlation": false,
+ "misp-attribute": "ja3-fingerprint-md5",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "ja3s": {
+ "description": "Server JA3S MD5 fingerprint; populate only when the source fingerprint algorithm is MD5.",
+ "disable_correlation": false,
+ "misp-attribute": "ja3-fingerprint-md5",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "key-length": {
+ "description": "Negotiated encryption key length in bits.",
+ "disable_correlation": true,
+ "misp-attribute": "integer",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "server-cipher": {
+ "description": "One server-advertised cipher suite per attribute.",
+ "disable_correlation": true,
+ "misp-attribute": "text",
+ "multiple": true,
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "server-name": {
+ "description": "SNI hostname sent by the client; omit this typed field when the source value is not a hostname.",
+ "disable_correlation": false,
+ "misp-attribute": "hostname",
+ "to_ids": false,
+ "ui-priority": 1
+ },
+ "version": {
+ "description": "Negotiated TLS protocol version.",
+ "disable_correlation": true,
+ "misp-attribute": "text",
+ "to_ids": false,
+ "ui-priority": 1
+ }
+ },
+ "description": "Negotiated TLS session properties, including protocol, cipher, server name and handshake observations. Reference certificates and network flows separately. Based on OCSF 1.9.0: https://schema.ocsf.io/1.9.0/objects/tls.",
+ "meta-category": "network",
+ "name": "tls-session",
+ "requiredOneOf": [
+ "version",
+ "cipher",
+ "server-name",
+ "ja3",
+ "ja3s"
+ ],
+ "uuid": "7de2fca6-f67f-44bf-94e9-3b355074f232",
+ "version": 1
+}
\ No newline at end of file
From e286f333456132fdeb3a9fb07c1809f462fe2dec Mon Sep 17 00:00:00 2001
From: Alexandre Dulaunoy
Date: Mon, 9 Nov 2026 17:42:40 +0100
Subject: [PATCH 2/2] fix: [tls-session] Address Codex review feedback
---
objects/tls-session/definition.json | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/objects/tls-session/definition.json b/objects/tls-session/definition.json
index 91e49bac..fe42705e 100644
--- a/objects/tls-session/definition.json
+++ b/objects/tls-session/definition.json
@@ -3,7 +3,7 @@
"alert": {
"description": "TLS alert code observed by the source.",
"disable_correlation": true,
- "misp-attribute": "integer",
+ "misp-attribute": "counter",
"to_ids": false,
"ui-priority": 1
},
@@ -25,7 +25,7 @@
"handshake-duration-ms": {
"description": "Handshake duration in milliseconds after TCP establishment, including source-observed client delays.",
"disable_correlation": true,
- "misp-attribute": "integer",
+ "misp-attribute": "counter",
"to_ids": false,
"ui-priority": 1
},
@@ -46,7 +46,7 @@
"key-length": {
"description": "Negotiated encryption key length in bits.",
"disable_correlation": true,
- "misp-attribute": "integer",
+ "misp-attribute": "counter",
"to_ids": false,
"ui-priority": 1
},
@@ -80,9 +80,14 @@
"version",
"cipher",
"server-name",
+ "key-length",
+ "alert",
+ "handshake-duration-ms",
+ "client-cipher",
+ "server-cipher",
"ja3",
"ja3s"
],
"uuid": "7de2fca6-f67f-44bf-94e9-3b355074f232",
- "version": 1
+ "version": 2
}
\ No newline at end of file