Query Details
// Based on https://github.com/0xAnalyst/DefenderATPQueries/blob/main/C2/MaliciousJA3Fingerprint.kql
let ja3_list = toscalar(
externaldata(Line: string, FirstSeen:datetime)[@"https://sslbl.abuse.ch/blacklist/ja3_fingerprints.csv"] with (format="txt")
| where not(Line startswith "#")
| parse Line with JA3:string "," FirstSeen:datetime "," LastSeen:datetime "," ListingReason:string
| summarize make_list(JA3)
);
DeviceNetworkEvents
| where ActionType == "SslConnectionInspected"
| extend JA3 = tostring(AdditionalFields["ja3"])
| where JA3 in (ja3_list)
// | where not(JA3 has "e62a5f4d538cbf169c2af71bec2399b4" and AdditionalFields has_any("CN=HP", "O=HP", "CN=Canon Imaging Product"))
// | summarize DeviceNames = make_set(DeviceName), RemoteIPs = make_set(RemoteIP), take_any(*) by JA3, ActionType
This query is looking for suspicious SSL connections on devices by comparing the JA3 fingerprint of the connection to a list of known malicious JA3 fingerprints. If a match is found, it will show details about the device and the connection.

Jose Sebastián Canós
Released: June 25, 2024
Tables
Keywords
Operators