Skip to content

Instantly share code, notes, and snippets.

@mdfranz
Last active December 4, 2024 12:14
Show Gist options
  • Save mdfranz/f7341e6318172e6af4c695b1e5c635ed to your computer and use it in GitHub Desktop.
Save mdfranz/f7341e6318172e6af4c695b1e5c635ed to your computer and use it in GitHub Desktop.
DuckDB and JA4 Data from Zeek

The Data

Records from https://ja4db.com/

D describe jadb;
┌────────────────────────┬─────────────┬─────────┬─────────┬─────────┬─────────┐
│      column_name       │ column_type │  null   │   key   │ default │  extra  │
│        varchar         │   varchar   │ varchar │ varchar │ varchar │ varchar │
├────────────────────────┼─────────────┼─────────┼─────────┼─────────┼─────────┤
│ application            │ VARCHAR     │ YES     │         │         │         │
│ library                │ VARCHAR     │ YES     │         │         │         │
│ device                 │ VARCHAR     │ YES     │         │         │         │
│ os                     │ VARCHAR     │ YES     │         │         │         │
│ user_agent_string      │ VARCHAR     │ YES     │         │         │         │
│ certificate_authority  │ JSON        │ YES     │         │         │         │
│ verified               │ BOOLEAN     │ YES     │         │         │         │
│ notes                  │ VARCHAR     │ YES     │         │         │         │
│ ja4_fingerprint        │ VARCHAR     │ YES     │         │         │         │
│ ja4_fingerprint_string │ VARCHAR     │ YES     │         │         │         │
│ ja4s_fingerprint       │ VARCHAR     │ YES     │         │         │         │
│ ja4h_fingerprint       │ VARCHAR     │ YES     │         │         │         │
│ ja4x_fingerprint       │ VARCHAR     │ YES     │         │         │         │
│ ja4t_fingerprint       │ VARCHAR     │ YES     │         │         │         │
│ ja4ts_fingerprint      │ JSON        │ YES     │         │         │         │
│ ja4tscan_fingerprint   │ VARCHAR     │ YES     │         │         │         │
├────────────────────────┴─────────────┴─────────┴─────────┴─────────┴─────────┤
│ 16 rows                                                            6 columns │
└──────────────────────────────────────────────────────────────────────────────┘

TLS Logs with JA4+

D DESCRIBE tls;
┌───────────────────────┬─────────────┬─────────┬─────────┬─────────┬─────────┐
│      column_name      │ column_type │  null   │   key   │ default │  extra  │
│        varchar        │   varchar   │ varchar │ varchar │ varchar │ varchar │
├───────────────────────┼─────────────┼─────────┼─────────┼─────────┼─────────┤
│ ts                    │ DOUBLE      │ YES     │         │         │         │
│ uid                   │ VARCHAR     │ YES     │         │         │         │
│ id.orig_h             │ VARCHAR     │ YES     │         │         │         │
│ id.orig_p             │ BIGINT      │ YES     │         │         │         │
│ id.resp_h             │ VARCHAR     │ YES     │         │         │         │
│ id.resp_p             │ BIGINT      │ YES     │         │         │         │
│ version               │ VARCHAR     │ YES     │         │         │         │
│ cipher                │ VARCHAR     │ YES     │         │         │         │
│ curve                 │ VARCHAR     │ YES     │         │         │         │
│ server_name           │ VARCHAR     │ YES     │         │         │         │
│ resumed               │ BOOLEAN     │ YES     │         │         │         │
│ established           │ BOOLEAN     │ YES     │         │         │         │
│ ssl_history           │ VARCHAR     │ YES     │         │         │         │
│ cert_chain_fps        │ VARCHAR[]   │ YES     │         │         │         │
│ client_cert_chain_fps │ JSON[]      │ YES     │         │         │         │
│ sni_matches_cert      │ BOOLEAN     │ YES     │         │         │         │
│ validation_status     │ VARCHAR     │ YES     │         │         │         │
│ ja4                   │ VARCHAR     │ YES     │         │         │         │
│ ja4s                  │ VARCHAR     │ YES     │         │         │         │
│ next_protocol         │ VARCHAR     │ YES     │         │         │         │
│ last_alert            │ VARCHAR     │ YES     │         │         │         │
├───────────────────────┴─────────────┴─────────┴─────────┴─────────┴─────────┤
│ 21 rows                                                           6 columns │
└─────────────────────────────────────────────────────────────────────────────┘

Joining my TLS Logs with JA4DB

D select count(*) as cnt,("id.orig_h") from jadb join tls on jadb.ja4_fingerprint = tls.ja4 group by "id.orig_h" order by cnt;
┌──────────┬───────────────┐
│   cnt    │   id.orig_h   │
│  int64   │    varchar    │
├──────────┼───────────────┤
│        1 │ 192.168.2.167 │
│        4 │ 192.168.2.178 │
│        4 │ 192.168.3.109 │
│        6 │ 192.168.2.229 │
│        6 │ 192.168.2.177 │
│       12 │ 192.168.3.135 │
│      192 │ 192.168.3.100 │
│     8787 │ 192.168.3.228 │
│    26168 │ 192.168.4.50  │
│    26616 │ 192.168.3.175 │
│    73131 │ 192.168.3.215 │
│    76533 │ 192.168.3.168 │
│   204169 │ 192.168.2.214 │
│   730368 │ 192.168.4.101 │
│ 48000452 │ 192.168.3.133 │
├──────────┴───────────────┤
│ 15 rows        2 columns │
└──────────────────────────┘
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment