Otisk JA3

Z Wikipedie, otevřené encyklopedie

Takzvaný JA3 je kryptografickým otiskem vytvořeným Johnem Althousem, Jeffem Atkinsonem a Joshem Atkinsem. Proto nese označení JA3. Jedná se o otisk (anglicky fingerprint) založený na detekci atributů šifrovaného spojení. Lze jej vypočítat jak pro klienta, tak i pro server, a do výpočtu se zahrnuje verze protokolu (např. TLSv1.2), podpora šifrovacích algoritmů, rozšíření potokolu, informace o eliptických křivkách[1].

Otisku se používá především pro detekci známého chování pro oblast počítačové bezpečnosti, především detekci známého malware jako je např. Emotet malware, či Trickbot malware.

Jelikož malware často komunikuje zašifrovanou formou, je možné provést otisk pro klientskou i serverovou část. Pro serverovou část se používá tzv. JA3S, kde písmeno "S" značí, že se jedná o otisk serveru.

Atributy a reprezentace[2][editovat | editovat zdroj]

Pro výpočet samotného otisku se uvažuje následujících atributů šifrovaného spojení v přesně daném pořadí:

  • verze protokolu TLS
  • podpora šifer
  • podpora rozšíření protokolu
  • podporované typy eliptických křivek
  • formáty bodů eliptických křivek

Pomocí překladu jednotlivých atributů do jejich číselné reprezentace můžeme získat hodnotu například následující hodnotu:

771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53-10,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-21,29-23-24,0

Jelikož je tento řetězec příliš dlouhý pro ověřování inteligentními IDS systémy, používá se tzv. MD5 hashe ze získané hodnoty, což nám v tomto případě dá:

66918128f1b9b03303d77c6f2eefd128

Jedná se o mnohem kratší řetězec usnadňující detekci. Jako funkce pro výpočet hashe se používá funkce MD5.

Atributy a reprezentace pro JA3S[editovat | editovat zdroj]

Pro výpočet serverového otisku se používá podobného principu, ovšem s tím rozdílem, že se uvažuje pouze následujících atributů spojení, které posílá server samotný:

  • verze protokolu TLS
  • podpora šifer
  • podpora rozšíření protokolu

Stejně jako v případě JA3 provedeme překlad atributů do jejich číselné reprezentace, čímž získáme například:

769,47,65281-0-11-35-5-16

Z této hodnoty vygenerujeme MD5 hash, a vznikne nám hodnota:

836ce314215654b5b1f85f97c73e506f

Výhodou využití MD5 hashe je to, že nám vždy zajistí stejnou délku, a ted nezáleží na tom, kolik šifer server podporuje, protože ačkoliv máme libovolně dlouhý vstupní řetězec, je jeho MD5 hash ve své hexadecimální reprezentaci vždy dlouhý právě 32 znaků.

Příklady[3][editovat | editovat zdroj]

Běžný TOR klient:

JA3 = e7d705a3286e19ea42f587b344ee6865 (TOR klient)

JA3S = a95ca7eab4d47d051a5cd4fb7b6005dc (odpověď TOR serveru)

Trickbot malware:

JA3 = 6734f37431670b3ab4292b8f60f29984 (Trickbot malware)

JA3S = 623de93db17d313345d7ea481e7443cf (odpověď od řídícího serveru malware Trickbot)

Emotet malware:

JA3 = 4d7a28d6f2263ed61de88ca66eb011e3 (Emotet malware)

JA3S = 80b3a14bccc8598a1f3bbe83e71f735f (odpověď od řídícího serveru malware Emotet)

Implementace[editovat | editovat zdroj]

Samotný princip otisků JA3 a JA3S byl implementován jako otevřený software se zdrojovými kódy dostupnými na serveru GitHub a je dostupný zde:

Ověřování[editovat | editovat zdroj]

K ověřování jednotlivých JA3 hashů je možné využít webovou stránku ja3er.com:

Reference[editovat | editovat zdroj]

  1. ALTHOUSE, John. TLS Fingerprinting with JA3 and JA3S. Medium [online]. 2019-01-15 [cit. 2021-04-19]. Dostupné online. (anglicky) 
  2. MORRISON, Jeff. Inspecting encrypted traffic with JA3 and JA3S fingerprinting. Plixer [online]. 2020-11-20 [cit. 2021-04-19]. Dostupné online. (anglicky) 
  3. Automatically resolving unknown TLS Fingerprints [Trisul Network Analytics Developer Zone ]. www.trisul.org [online]. [cit. 2021-04-19]. Dostupné online.