Usando impressão digital TLS para identificar ameaças

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,451091009836191899,,,
      
      



MD5. JA3:





c8446f59cca2149cb5f56ced4b448c8d
      
      



JA3S – . JA3S : TLS, TLS. , , «,» «-» .





, :





TLSVersion,Cipher,Extensions
      
      



:





769,47,6528101135516
      
      



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 , .





JA3 – . , API JA3 – .





JA3S, , . , , , , .





JARM , Palo Alto, . github , , . JARM.





, . Splunk JA3/JA3S. . SIEM.





  • 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;





, .








All Articles