Neste artigo, queremos falar sobre a tecnologia de impressão digital TLS, sobre a qual não há materiais suficientes no segmento de língua russa. Vamos tentar consertar. O artigo traduz parcialmente os materiais temáticos dos autores dos métodos descritos ( aqui e aqui ), e também contém uma descrição da implementação prática do Acribia.
Não entraremos em detalhes sobre como funciona o SSL / TLS (doravante denominado TLS), mas explicaremos resumidamente os detalhes.
Usar o TLS é uma bênção por si só, pois criptografa os dados. Mas, por outro lado, os criadores de malware o usam para se esconder no tráfego criptografado (este artigo irá apenas inclinar nessa direção) e dificultar sua detecção e neutralização.
Para iniciar uma sessão TLS, o cliente envia um "pacote" de saudação ao servidor após um handshake TCP de três vias. Este "pacote" e como ele é criado dependem dos pacotes e métodos de criptografia usados para criar o aplicativo cliente. Se o servidor aceitar a conexão TLS, ele responderá com um pacote hello, continuando assim a negociação de criptografia.
TLS , .
TLS fingerprinting, . .
TLS fingerprinting
, . « » . :
TLS;
TLS;
;
;
.
, ( ):
;
;
.
(, ).
:
— TLS-. , .
TLS . , , , , , - .
, .
TLS Fingerprinting – . , . / , , .
, Exchange , OWA, Python .
: TLS Fingerprinting TLS- TLS-. , PCAP .
, :
JA3 JA3S;
TLS – JARM.
JA3 JA3S
JA3 : TLS, , TLS, . , «,» «-» .
:
TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats
:
771,49196-49162-49195-52393-49161-49200-49172-49199-52392-49171-159-57-56-107-158-52394-51-50-103-22-19-157-53-61-156-47-60-10,0-23-65281-10-11-13-28,29-23-24-25,0
ClientHello TLS, :
769,4–5–10–9–100–98–3–6–19–18–99,,,
MD5. JA3:
c8446f59cca2149cb5f56ced4b448c8d
JA3S – . JA3S : TLS, TLS. , , «,» «-» .
, :
TLSVersion,Cipher,Extensions
:
769,47,65281–0–11–35–5–16
Server Hello TLS, .
:
769,47,
MD5 32- .
JA3S:
4835b19f14997673071435cb321f5445
JA3 JA3S – TLS. JA3 , TLS, JA3S . .
JARM.
JARM
JARM , 10 TLS . TLS JARM. JARM , TLS . JARM , 62- .
JARM :
, TLS;
, , , Google, Yandex Apple;
;
.
30 TLS, 10 . «000» , . 32 SHA256 , , x509. JARM, 30 , 32 , , , , , .
, (IOC) (IOA). / .. - , TI IP, , .. « ». , , .
- JARM IOC . , JARM, JARM , IP . , .
JARM , , , , . JARM .
, . JARM Palo Alto Networks API JARM.
Palo Alto ., , , Zeek ( Bro) – open-source , .
Zeek TLS, .. . , , TLS, , .
Zeek TLS JA3\JA3S.
Zeek, , SIEM ( SIEM, Zeek’ ). , SIEM . Zeek , .
JARM , Palo Alto, . github , , . JARM.
JA3\JA3S. , , Emotet TrickBot:
JA3 = 4d7a28d6f2263ed61de88ca66eb011e3 (Emotet) JA3S = 80b3a14bccc8598a1f3bbe83e71f735f (C2 Server Response) JA3 = 6734f37431670b3ab4292b8f60f29984 (Trickbot) JA3S = 623de93db17d313345d7ea481e7443cf(C2 Server Response)
JA3, .
, , , , - – . , , .
JA3 .
, , . , , , . – .
JA3\JA3S .
.
C&C JARM.
TLS-, , JARM ( , SOAR), , C&C , , .
JA3 , .
Windows JA3 , Linux (Android/IOS), . ( / NAT). , , IT.
JA3 , .
Firefox Chrome ( NAT ). , , Fingerprint. .
JA3 , .
, C/C++. , Python Golang. , requests ( python) http ( Golang), . , , . , «» , , . JA3 , .
: JARM ( JA3S ) C&C , .
, JARM , .
, TLS Fingerprinting, , , TLS 1.3.
TLS 1.3 , — SNI (Server Name Indication). HTTPS HOST, IP HTTPS-. , fingerprint, , . , , SNI.
TLS 1.3 – Encrypted SNI (ESNI), , .
ESNI , . ESNI , , TLS fingerprinting , .
:
, SOC-;
, Threat Intelligence @AAMinin;
, .