
JA4+ è una suite di standard di fingerprinting di rete
JA4+ è una suite di metodi di fingerprinting di rete di FoxIO che sono facili da usare e da condividere. Questi metodi sono sia leggibili dall'uomo che dalla macchina per facilitare una caccia alle minacce e un'analisi più efficaci. I casi d'uso di queste impronte digitali includono la scansione di attori malintenzionati, il rilevamento di malware, la prevenzione del dirottamento di sessioni, l'automazione della conformità, il tracciamento della posizione, il rilevamento di DDoS, il raggruppamento di attori malintenzionati, il rilevamento di reverse shell e molti altri.
Per una rapida spiegazione su JA4+ e da usare come riferimento durante l'analisi vedi:
JA4+ Cheat Sheet
Per dettagli approfonditi, leggi i nostri blog su come funziona JA4+, perché funziona e esempi di cosa può essere rilevato/prevenuto con esso:
JA4+ Network Fingerprinting (JA4/S/H/L/X/SSH)
JA4T: TCP Fingerprinting (JA4T/TS/TScan)
Investigating Surfshark and NordVPN with JA4T (JA4T)
Se ami JA4+, considera di acquistare una maglietta o una felpa:
JA4+ Shirts, Hoodies, and Stickers
Il nome completo o il nome breve possono essere usati indifferentemente. Ulteriori metodi JA4+ sono in lavorazione...
Per capire come leggere le impronte digitali JA4+, vedi Dettagli Tecnici
Questo repository include JA4+ in
con altri in arrivo...
Per altri esempi, vedi ja4plus-mapping.csv
Per un database completo, vedi ja4db.com
I binari JA4 sono costruiti dall'implementazione Rust della suite. Per garantire la piena funzionalità, è richiesto tshark (versione 4.0.6 o successiva). Scarica gli ultimi binari JA4 dalla pagina Releases. Le versioni di rilascio per l'implementazione Rust seguono il Versionamento Semantico e sono contrassegnate come vX.Y.Z, a differenza dei rilasci dei plugin di Wireshark.
Gli asset di rilascio sono nominati in base al componente e alla piattaforma:
ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gz (ad es., ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz)ja4-python-vX.Y.Z.tar.gz (contiene l'intera directory python/)ja4.so.linux, ja4.so.macos, ja4.dll (allegati a un rilascio nominato come wireshark-vX.Y.Z)Scegli il file appropriato per il tuo sistema e componente.
Installalo usando il tuo gestore di pacchetti (il nome del pacchetto tshark o wireshark-cli dipende dalla distribuzione). Per esempio, su Ubuntu:
sudo apt install tshark
tshark).tshark al tuo PATH:
sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark
tshark.exe).tshark.exe (di solito in C:\Program Files\Wireshark\tshark.exe).tshark.exe al tuo PATH di sistema:
Una volta che tshark e i binari JA4+ sono disponibili, esegui JA4+ usando il seguente comando:
./ja4 [options] [pcap]
ja4 [options] [pcap]
Per maggiori dettagli sull'esecuzione di JA4+ e le sue configurazioni avanzate, fai riferimento al README dell'implementazione Rust, che fornisce informazioni sulle sue funzionalità, scenari di utilizzo e opzioni di personalizzazione.
Il database ufficiale JA4+ delle impronte digitali, applicazioni associate e logica di rilevamento raccomandata è qui: ja4db.com
Questo database è in fase di sviluppo molto attivo. Aspettati ordini di grandezza in più di combinazioni di impronte e dati nei prossimi mesi.
Un campione ja4plus-mapping.csv è anche disponibile per un riferimento rapido.
JA4+ utilizza GitHub Actions per automatizzare i rilasci per i suoi componenti Rust, Python, Wireshark e Zeek. I rilasci vengono creati spingendo un tag con un prefisso specifico nel repository, tranne per Zeek, che utilizza un tag di versione semantica pura (semver). Gli asset di rilascio sono nominati come segue:
ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gzja4-python-vX.Y.Z.tar.gzja4.so.linux, ja4.so.macos, ja4.dll (in un rilascio nominato come wireshark-vX.Y.Z)I seguenti workflow sono disponibili:
Rust Release:
Spingi un tag che inizia con rust-, ad es., rust-v0.18.5, per attivare un rilascio dei binari Rust. Il workflow compilerà e caricherà automaticamente gli asset di rilascio.
Python Release:
Spingi un tag che inizia con python-, ad es., python-v0.1.0, per attivare un rilascio dell'implementazione Python. Il workflow creerà un tarball della directory python/ e lo pubblicherà come asset di rilascio.
Wireshark Plugin Release:
Spingi un tag che inizia con wireshark-, ad es., wireshark-v0.1.1, per attivare un rilascio dei binari del plugin Wireshark per tutte le piattaforme supportate.
Zeek Release:
Spingi un tag che è una versione semantica pura (ad es., v1.2.3), senza prefisso, per attivare un rilascio Zeek. Questo creerà automaticamente un rilascio su packages.zeek.org.
Assicurati che le tue modifiche siano state unite nel ramo main.
Crea e spingi un tag per il componente che vuoi rilasciare:
rust-v0.18.5, python-v0.1.0, wireshark-v0.1.1).v1.2.3).Esempio:
git tag v1.2.3
git push origin v1.2.3
(Per Zeek)
Oppure, per Rust:
git tag rust-v0.18.5
git push origin rust-v0.18.5
Il corrispondente workflow GitHub Actions verrà eseguito e pubblicherà automaticamente gli asset di rilascio. Per Zeek, il rilascio apparirà su packages.zeek.org.
JA4+ è un insieme di impronte digitali di rete semplici ma potenti per più protocolli, sia leggibili dall'uomo che dalla macchina, facilitando una migliore caccia alle minacce e analisi di sicurezza. Se non hai familiarità con il fingerprinting di rete, ti incoraggio a leggere i miei blog sul rilascio di JA3 qui, JARM qui, e questo eccellente blog di Fastly sullo Stato del Fingerprinting TLS che delinea la storia dei suddetti insieme ai loro problemi. JA4+ offre supporto dedicato, mantenendo i metodi aggiornati man mano che il settore cambia.
Tutte le impronte digitali JA4+ hanno un formato a_b_c, delimitando le diverse sezioni che compongono l'impronta. Ciò consente di cacciare e rilevare utilizzando solo ab o ac o solo c. Se si volesse fare solo un'analisi dei cookie in arrivo nella propria applicazione, si guarderebbe solo JA4H_c. Questo nuovo formato che preserva la località facilita un'analisi più profonda e ricca pur rimanendo semplice, facile da usare e consentendo l'estensibilità.
Ad esempio, GreyNoise è un ascoltatore internet che identifica gli scanner internet e sta implementando JA4+ nel loro prodotto. Hanno un attore che scansiona internet con un singolo cifrario TLS in continua evoluzione. Questo genera una quantità enorme di impronte JA3 completamente diverse ma con JA4, solo la parte b dell'impronta JA4 cambia, le parti a e c rimangono le stesse. Pertanto, GreyNoise può tracciare l'attore guardando l'impronta JA4_ac (unendo a+c, eliminando b).
Per un elenco dei metodi JA4+ e delle loro descrizioni, vedi Metodi attuali e dettagli di implementazione.
Per capire come leggere le impronte digitali JA4+, vedi Dettagli Tecnici.
JA4: TLS Client Fingerprinting è open-source, licenza BSD 3-Clause, come JA3. FoxIO non ha rivendicazioni di brevetto e non intende perseguire la copertura brevettuale per JA4 TLS Client Fingerprinting. Ciò consente a qualsiasi azienda o strumento che attualmente utilizza JA3 di aggiornarsi immediatamente a JA4 senza ritardi.
JA4S, JA4L, JA4LS, JA4H, JA4X, JA4SSH, JA4T, JA4TS, JA4TScan e tutte le future aggiunte, (collettivamente denominate JA4+) sono concessi in licenza secondo la FoxIO License 1.1. Questa licenza è permissiva per la maggior parte dei casi d'uso, inclusi scopi accademici e interni aziendali, ma non è permissiva per la monetizzazione. Se, ad esempio, un'azienda desidera utilizzare JA4+ internamente per aiutare a proteggere la propria azienda, è consentito. Se, ad esempio, un fornitore desidera vendere il fingerprinting JA4+ come parte della propria offerta di prodotti, dovrebbe richiederci una licenza OEM.
Tutti i metodi JA4+ sono in attesa di brevetto.
JA4+ è un marchio registrato di FoxIO
JA4+ può ed è in fase di implementazione in strumenti open source, vedi le FAQ sulla Licenza per i dettagli.
Questa licenza ci permette di fornire JA4+ al mondo in modo aperto e immediatamente utilizzabile, ma ci fornisce anche un modo per finanziare il supporto continuo, la ricerca di nuovi metodi e lo sviluppo del Database JA4+. Vogliamo che tutti abbiano la possibilità di utilizzare JA4+ e siamo felici di collaborare con fornitori e progetti open source per aiutare a realizzarlo.
D: Perché ordinate i cifrari? L'ordine non è importante?
R: Lo è, ma nella nostra ricerca abbiamo scoperto che le applicazioni e le librerie scelgono una lista di cifrari unica più spesso di un ordinamento unico. Ciò riduce anche l'efficacia del "cipher stunting", una tattica di randomizzare l'ordinamento dei cifrari per prevenire il rilevamento JA3.
D: Perché ordinate le estensioni?
R: All'inizio del 2023, Google ha aggiornato i browser Chromium per randomizzare l'ordine delle loro estensioni. Proprio come il cipher stunting, questa era una tattica per prevenire il rilevamento JA3 e "rendere l'ecosistema TLS più robusto ai cambiamenti". Google temeva che gli implementatori di server assumessero che l'impronta di Chrome non sarebbe mai cambiata e finissero per costruire logica attorno ad essa, il che avrebbe causato problemi ogni volta che Google aggiornava Chrome.
Quindi voglio essere chiaro: le impronte JA4 cambieranno man mano che le librerie TLS delle applicazioni vengono aggiornate, circa una volta all'anno. Non presumere che le impronte rimangano costanti in un ambiente in cui le applicazioni vengono aggiornate. In ogni caso, ordinare le estensioni risolve questo problema e l'aggiunta degli Algoritmi di Firma preserva l'unicità.
D: TLS 1.3 non rende più difficile il fingerprinting dei client TLS?
R: No, lo rende più facile! Da TLS 1.3 in poi, i client hanno avuto un insieme molto più ampio di estensioni e, anche se TLS 1.3 supporta solo pochi cifrari, i browser e le applicazioni ne supportano ancora molti di più.
John Althouse, con feedback da:
Josh Atkins
Jeff Atkinson
Joshua Alexander
W.
Joe Martin
Ben Higgins
Andrew Morris
Chris Ueland
Ben Schofield
Matthias Vallentin
Valeriy Vorotyntsev
Timothy Noel
Gary Lipsky
Michael Barbine
E da ingegneri che lavorano presso GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet e altri.
Contatta John Althouse all'indirizzo [email protected] per licenze e domande.
JA4 e JA4+ sono marchi registrati di FoxIO, Inc.
Copyright (c) 2025, FoxIO
| Nome Completo | Nome Breve | Descrizione |
|---|
| JA4 | JA4 | Fingerprinting Client TLS |
| JA4Server | JA4S | Fingerprinting Risposta Server TLS / Sessione |
| JA4HTTP | JA4H | Fingerprinting Client HTTP |
| JA4Latency | JA4L | Misurazione Latenza Client-Server / Distanza Leggera |
| JA4LatencyServer | JA4LS | Misurazione Latenza Server-Client / Distanza Leggera |
| JA4X509 | JA4X | Fingerprinting Certificato TLS X509 |
| JA4SSH | JA4SSH | Fingerprinting Traffico SSH |
| JA4TCP | JA4T | Fingerprinting Client TCP |
| JA4TCPServer | JA4TS | Fingerprinting Risposta Server TCP |
| JA4TCPScan | JA4TScan | Scanner Attivo di Impronte Digitali TCP |
| JA4DHCP | JA4D | Fingerprinting DHCP |
| JA4DHCPv6 | JA4D6 | Fingerprinting DHCPv6 |
| Strumento/Fornitore | Supporto JA4+ |
|---|
| Wireshark | JA4+ |
| Zeek | JA4+ |
| Arkime | JA4+ |
| Suricata | JA4+ (in fase di sviluppo) |
| GreyNoise | JA4+ |
| Hunt | JA4+ |
| Driftnet | JA4+ |
| GoLang | JA4X |
| nzyme | JA4+ (in fase di sviluppo) |
| Netresec's CapLoader | JA4+ (in fase di sviluppo) |
| Netresec's NetworkMiner | JA4+ (in fase di sviluppo) |
| NGINX | JA4+ |
| F5 BIG-IP | JA4+ |
| nfdump | JA4+ |
| ntop's ntopng | JA4+ |
| ntop's nDPI | JA4 |
| Team Cymru | JA4+ |
| NetQuest | JA4+ |
| Censys | JA4+ |
| Exploit.org's Netryx | JA4 e JA4H |
| Cloudflare | JA4 |
| Fastly | JA4+ (richiedilo) |
| MISP | JA4+ |
| OCSF | JA4+ |
| Vercel | JA4 |
| Seika | JA4+ |
| VirusTotal | JA4 |
| AWS Cloudfront | JA4 |
| ELLIO | JA4+ |
| Webscout | JA4+ |
| Rama | JA4 e JA4H |
| Vectra | JA4+ |
| AWS WAF | JA4 |
| Tacticly | JA4+ |
| Palo Alto Networks | JA4+ |
| ngrok | JA4 |
| Vertex Synapse | JA4 e JA4S |
| Google Cloud Armor | JA4 |
| Fortinet | JA4 |
| AppOmni | JA4+ |
| IntelliGenesis | JA4+ |
| HAProxy | Plugin JA4 e JA4H di OXL |
| SentinelOne | JA4 |
| Akamai | JA4 |
| Alibaba Cloud | JA4 |
| Huawei Cloud | JA4 |
| Google Cloud LBs | JA4 |
| eSentire | JA4+ |
| Microsoft Azure Front Door CDN | JA4 |
| Synapse di Gen0Sec | JA4X |
| Zscaler | JA4 |
| ExtraHop | JA4+ |
| Validin | JA4+ |
| Auth0 | JA4 |
| Security Onion | JA4+ |
| Applicazione | Impronte Digitali JA4+ |
|---|
| Chrome | JA4=t13d1516h2_8daaf6152771_02713d6af862 (TCP) JA4=q13d0312h3_55b375c5d22e_06cda9e17597 (QUIC) JA4=t13d1517h2_8daaf6152771_b0da82dd1658 (chiave pre-condivisa) JA4=t13d1517h2_8daaf6152771_b1ff8ab2d16f (nessuna chiave) |
| IcedID Malware Dropper | JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982 |
| IcedID Malware | JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8 JA4S=t120300_c030_5e2616a54c73 |
| Sliver Malware | JA4=t13d190900_9dc949149365_97f8aa674fd9 JA4S=t130200_1301_a56c5b993250 JA4X=000000000000_4f24da86fad6_bf0f0589fc03 JA4X=000000000000_7c32fa18c13e_bf0f0589fc03 |
| Cobalt Strike | JA4H=ge11cn060000_4e59edc1297a_4da5efaf0cbd JA4X=2166164053c1_2166164053c1_30d204a01551 |
| SoftEther VPN | JA4=t13d880900_fcb5b95cb75a_b0d3b4ac2a14 (client) JA4S=t130200_1302_a56c5b993250 JA4X=d55f458d5a6c_d55f458d5a6c_0fc8c171b6ae |
| Qakbot | JA4X=2bab15409345_af684594efb4_000000000000 |
| Pikabot | JA4X=1a59268f55e5_1a59268f55e5_795797892f9c |
| Darkgate | JA4H=po10nn060000_cdb958d032b0 |
| LummaC2 | JA4H=po11nn050000_d253db9d024b |
| Evilginx | JA4=t13d191000_9dc949149365_e7c285222651 |
| Reverse SSH Shell | JA4SSH=c76s76_c71s59_c0s70 |
| Windows 11 | JA4T=64240_2-1-3-1-1-4_1460_8 |
| Stampante Epson | JA4TScan=28960_2-4-8-1-3_1460_3_1-4-8-16 |
| Windows 11 | JA4D=disco0000in_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252 |
| Ricevitore Sony | JA4D6=solct0010nn_8-1-3-6_24-23 |