TLS FingerprintСтатистика неумолима показывает, что все больше и больше трафика в Интернете распространяется в шифрованном виде. И, казалось бы, все должны радоваться, ведь все безопасно.
Но свой трафик шифруют и злоумышленники. Этот факт значительно усложняет возможность выявления угроз. Классические метода теряют свою эффективность.
Есть несколько подходов к анализу шифрованного трафика:
- ML
- проверка IoC
- расшифровака трафика активной MITM атакой и проверка расшифрованной копии трафика
Еще одним подходом является TLS fingerprinting.
Этот подход основан на создании слепков TLS соединения и идентификация нелегитимных на основе имеющейся базы данных. Fingerprint соединения создается на основе параметров Hello пакета, отправляемого при установлении соединения.
Существует 2 семейства отпечатков:
-
JA3 -
JA4В недавнем прошлом Google
"сломал" JA3, рандомизировав положение параметров, указываемых в отпечатке. Об этом интересно рассказно
здесь.
В итоге на практике сейчас целесообразно использовать отпечатки JA4.
Существует несколько видов отпечатков, формируемых на основе разных параметров:
Full Name | Description
JA4 -> TLS Client Fingerprinting
JA4S -> TLS Server Response / Session Fingerprinting
JA4H -> HTTP Client Fingerprinting
JA4L -> Client to Server Latency Measurment / Light Distance
JA4LS -> Server to Client Latency Measurement / Light Distance
JA4X -> X509 TLS Certificate Fingerprinting
JA4SSH -> SSH Traffic Fingerprinting
JA4T -> TCP Client Fingerprinting
JA4TS -> TCP Server Response Fingerprinting
JA4TScan -> Active TCP Fingerprint Scanner
В итоге алгоритм поиска злоумышленника выглядит так:
- для каждой формируется fingerprint;
- каждый fingerprint сравнивается с базой имеющихся отпчатков угроз;
- в случае совпадения отпечатка сессии и отпечатка из базы формируется алерт.
Остается самая малость - поиск БД фингерпринтов угроз. В открытом виде есть вот эта
база . В которой не так много отпечатков угроз, но, например, в ней есть fingerprint для Sliver Agent
{
"application": "Sliver Agent",
"library": null,
"device": null,
"os": null,
"user_agent_string": null,
"certificate_authority": null,
"verified": true,
"notes": "",
"ja4_fingerprint": "t13d190900_9dc949149365_97f8aa674fd9",
"ja4_fingerprint_string": null,
"ja4s_fingerprint": "t130200_1301_a56c5b993250",
"ja4h_fingerprint": null,
"ja4x_fingerprint": null,
"ja4t_fingerprint": null,
"ja4ts_fingerprint": null,
"ja4tscan_fingerprint": null
}
#ja3 #ja4 #sliver #fingerprint