Dans cet article, nous voulons parler de la technologie d'empreintes digitales TLS, pour laquelle il n'y a pas assez de matériaux dans le segment russophone. Essayons de le réparer. L'article traduit partiellement les matériaux thématiques des auteurs des méthodes décrites ( ici et ici ), et contient également une description de la mise en œuvre pratique d'Acribia.
Nous n'entrerons pas en profondeur dans les détails du fonctionnement de SSL / TLS (ci-après dénommé TLS), mais nous expliquerons brièvement les détails.
L'utilisation de TLS est une bénédiction en soi, car elle crypte les données. Mais d'un autre côté, les créateurs de logiciels malveillants l'utilisent pour se cacher dans le trafic crypté (cet article va juste biaiser dans cette direction) et rendre difficile leur détection et leur neutralisation.
Pour lancer une session TLS, le client envoie un "paquet" bonjour au serveur après une négociation TCP à trois voies. Ce « package » et la manière dont il est créé dépendent des packages et des méthodes de chiffrement utilisés pour créer l'application cliente. Si le serveur accepte la connexion TLS, il répondra avec un paquet Hello, poursuivant ainsi la négociation de chiffrement.
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;
, .