Torna agli aggiornamenti
New releaseSep 1, 2026

ja4 v1.0.1

JA4+ è una suite di standard di fingerprinting di rete

Condividi

logo

Fingerprinting di rete JA4+™

JA4+ è una suite di metodi di fingerprinting di rete di FoxIO che è facile da usare e facile da condividere. Questi metodi sono sia leggibili dall'uomo che dalla macchina per facilitare una più efficace caccia alle minacce e analisi. I casi d'uso per queste impronte digitali includono la scansione per attori delle minacce, rilevamento malware, prevenzione del dirottamento di sessione, automazione della conformità, tracciamento della posizione, rilevamento DDoS, raggruppamento di attori delle minacce, rilevamento di reverse shell e molti altri.

Per una spiegazione rapida su JA4+ e da usare come riferimento durante l'analisi vedi:
JA4+ Cheat Sheet

Per dettagli approfonditi, ti preghiamo di leggere i nostri blog su come funziona JA4+, perché funziona, ed 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)
JA4D and JA4D6: DHCP Fingerprinting (JA4D/6)

Se ami JA4+, considera di acquistare una t-shirt o una felpa:
JA4+ Shirts, Hoodies, and Stickers

Sommario

Metodi attuali e dettagli di implementazione

Nome completoNome breveDescrizione
JA4JA4Fingerprinting client TLS
JA4ServerJA4SFingerprinting risposta server TLS / sessione
JA4HTTPJA4HFingerprinting client HTTP
JA4LatencyJA4LMisurazione latenza client-server / distanza luce
JA4LatencyServerJA4LSMisurazione latenza server-client / distanza luce
JA4X509JA4XFingerprinting certificato TLS X509
JA4SSHJA4SSHFingerprinting traffico SSH
JA4TCPJA4TFingerprinting client TCP
JA4TCPServerJA4TSFingerprinting risposta server TCP
JA4TCPScanJA4TScanScanner attivo di fingerprint TCP
JA4DHCPJA4DFingerprinting DHCP
JA4DHCPv6JA4D6Fingerprinting DHCPv6
JA4NTPJA4NFingerprinting NTP
JA4Scan-TLSJA4Scan-TLSScanner attivo di fingerprint server TLS
JA4Scan-QUICJA4Scan-QUICScanner attivo di fingerprint server QUIC

Il nome completo o il nome breve possono essere usati in modo intercambiabile. Ulteriori metodi JA4+ sono in lavorazione...

Per capire come leggere le impronte digitali JA4+, vedi Dettagli tecnici

Implementazioni

Questo repository include JA4+ in

Strumenti che supportano JA4+

Strumento/FornitoreSupporto JA4+
WiresharkJA4+
ZeekJA4+
ArkimeJA4+ (il nostro strumento open source JA4+ consigliato)
SuricataJA4+ (in sviluppo)
GreyNoiseJA4+
HuntJA4+
DriftnetJA4+
GoLang (1)JA4X
GoLang (2)JA4
nzymeJA4+ (in sviluppo)
Netresec's CapLoaderJA4+ (in sviluppo)
Netresec's NetworkMinerJA4+ (in sviluppo)
NGINXJA4+
F5 BIG-IPJA4+
nfdumpJA4+
ntop's ntopngJA4+
ntop's nDPIJA4
Team CymruJA4+
NetQuestJA4+
CensysJA4+
Exploit.org's NetryxJA4 e JA4H
CloudflareJA4
FastlyJA4+ (richiedilo)
MISPJA4+
OCSFJA4+
VercelJA4
SeikaJA4+
VirusTotalJA4
AWS CloudfrontJA4
ELLIOJA4+
WebscoutJA4+
RamaJA4 e JA4H
VectraJA4+
AWS WAFJA4
TacticlyJA4+
Palo Alto NetworksJA4+
ngrokJA4
Vertex SynapseJA4 e JA4S
Google Cloud ArmorJA4
FortinetJA4
AppOmniJA4+
IntelliGenesisJA4+
HAProxyJA4 e JA4H plugin di OXL
SentinelOneJA4
AkamaiJA4
Alibaba CloudJA4
Huawei CloudJA4
Google Cloud LBsJA4
eSentireJA4+
Microsoft Azure Front Door CDNJA4
Synapse di Gen0SecJA4X
ZscalerJA4
ExtraHopJA4+
ValidinJA4+
Auth0JA4
Security OnionJA4+
bunny.netJA4
ENEAJA4+
F5 Distributed Cloud ServicesJA4+

con altri in arrivo...

Esempi

ApplicazioneImpronte digitali JA4+
ChromeJA4=t13d1517h2_8daaf6152771_cb7bf5808d99 (TCP)
JA4=q13d0312h3_55b375c5d22e_178839b6cec1 (QUIC)
Dropper malware IcedIDJA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982
Malware IcedIDJA4=t13d201100_2b729b4bf6f3_9e7b989ebec8
JA4S=t120300_c030_5e2616a54c73
Malware SliverJA4=t13d190900_9dc949149365_97f8aa674fd9
JA4S=t130200_1301_a56c5b993250
JA4X=000000000000_4f24da86fad6_bf0f0589fc03
JA4X=000000000000_7c32fa18c13e_bf0f0589fc03
Cobalt StrikeJA4H=ge11cn060000_4e59edc1297a_4da5efaf0cbd
JA4X=2166164053c1_2166164053c1_30d204a01551
SoftEther VPNJA4=t13d880900_fcb5b95cb75a_b0d3b4ac2a14 (client)
JA4S=t130200_1302_a56c5b993250
JA4X=d55f458d5a6c_d55f458d5a6c_0fc8c171b6ae
QakbotJA4X=2bab15409345_af684594efb4_000000000000
PikabotJA4X=1a59268f55e5_1a59268f55e5_795797892f9c
DarkgateJA4H=po10nn060000_cdb958d032b0
LummaC2JA4H=po11nn050000_d253db9d024b
EvilginxJA4=t13d191000_9dc949149365_e7c285222651
Reverse SSH ShellJA4SSH=c76s76_c71s59_c0s70
Windows 11JA4T=64240_2-1-3-1-1-4_1460_8
Stampante EpsonJA4TScan=28960_2-4-8-1-3_1460_3_1-4-8-16
Windows 11JA4D=disco0000in_61-12-60-55_1-3-6-15-31-33-43-44-46-47-119-121-249-252
Ricevitore SonyJA4D6=solct0010nn_8-1-3-6_24-23

Per più esempi, vedi ja4plus-mapping.csv
Per un database completo, vedi ja4db.com

Plugin

Wireshark
Zeek
Arkime

Binari

I binari JA4 sono compilati 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 del plugin Wireshark.

Asset di rilascio

Gli asset di rilascio sono denominati in base al componente e alla piattaforma:

  • Rust:
    • ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gz (es., ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz)
  • Python:
    • ja4-python-vX.Y.Z.tar.gz (contiene l'intera directory python/)
  • Wireshark:
    • ja4.so.linux, ja4.so.macos, ja4.dll (allegati a un rilascio denominato come wireshark-vX.Y.Z)

Scegli il file appropriato per il tuo sistema e componente.

Installazione di tshark

Linux

Installalo usando il tuo gestore di pacchetti (il nome del pacchetto tshark o wireshark-cli dipende dalla distribuzione). Ad esempio, su Ubuntu:```sh sudo apt install tshark

#### macOS

1. [Scarica](https://www.wireshark.org/download.html) e installa Wireshark (include `tshark`).
2. Aggiungi `tshark` al tuo `PATH`:   ```sh
   sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark

Windows

  1. Scarica e installa Wireshark (include tshark.exe).
  2. Individua tshark.exe (di solito in C:\Program Files\Wireshark\tshark.exe).
  3. Aggiungi la cartella che contiene tshark.exe al PATH di sistema:
    • Apri Proprietà del sistema > Variabili d'ambiente > Modifica Path.

Esecuzione di JA4+

Una volta disponibili tshark e i binari JA4+, esegui JA4+ usando il seguente comando:

  • Su Linux e macOS: ```sh ./ja4 [options] [pcap]
  • Su Windows, apri il Prompt dei comandi ed esegui: ```cmd ja4 [options] [pcap]

Per maggiori dettagli sull'esecuzione di JA4+ e sulle sue configurazioni avanzate, fare riferimento al README dell'implementazione Rust, che fornisce informazioni sulle sue funzionalità, scenari d'uso e opzioni di personalizzazione.

Database

Il database ufficiale JA4+ delle impronte digitali, delle applicazioni associate e della logica di rilevamento consigliata è disponibile qui: ja4db.com
Questo database è in fase di sviluppo molto attivo. Nei prossimi mesi ci si aspettano ordini di grandezza in più di combinazioni di impronte digitali e dati.

È disponibile anche un esempio di ja4plus-mapping.csv per una rapida consultazione.

Processo di rilascio

JA4+ utilizza GitHub Actions per automatizzare i rilasci dei suoi componenti Rust, Python, Wireshark e Zeek. I rilasci vengono creati inviando un tag con un prefisso specifico al repository, ad eccezione di Zeek, che utilizza un tag di versione semantica (semver) pura. Gli asset di rilascio sono denominati come segue:

  • Rust: ja4-vX.Y.Z-<architettura>-<piattaforma>.tar.gz
  • Python: ja4-python-vX.Y.Z.tar.gz
  • Wireshark: ja4.so.linux, ja4.so.macos, ja4.dll (in un rilascio denominato come wireshark-vX.Y.Z)

Sono disponibili i seguenti workflow:

  • Rilascio Rust:
    Inviare 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.

  • Rilascio Python:
    Inviare un tag che inizia con python-, ad es., python-v0.1.0, per attivare un rilascio dell'implementazione Python. Il workflow creerà un archivio della directory python/ e lo pubblicherà come asset di rilascio.

  • Rilascio Plugin Wireshark:
    Inviare 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.

  • Rilascio Zeek:
    Inviare un tag che sia 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.

Come creare un rilascio

  1. Assicurarsi che le modifiche siano state unite nel ramo main.

  2. Creare e inviare un tag per il componente che si desidera rilasciare:

    • Per Rust, Python o Wireshark, utilizzare il prefisso appropriato (ad es., rust-v0.18.5, python-v0.1.0, wireshark-v0.1.1).
    • Per Zeek, utilizzare un tag semver puro (ad es., v1.2.3).

    Esempio: ```sh git tag v1.2.3 git push origin v1.2.3

(Per Zeek)

Oppure, per Rust: ```sh git tag rust-v0.18.5 git push origin rust-v0.18.5

3. Il workflow GitHub Actions corrispondente verrà eseguito e pubblicherà automaticamente gli asset della release. Per Zeek, la release apparirà su [packages.zeek.org](https://packages.zeek.org/).

## Dettagli su JA4+

JA4+ è un insieme di fingerprint di rete semplici ma potenti per più protocolli, sia leggibili dall'uomo che dalla macchina, che facilita un miglior threat-hunting e un'analisi di sicurezza più efficace. Se non hai familiarità con il fingerprinting di rete, ti incoraggio a leggere i miei blog sulla pubblicazione di JA3 [qui](https://medium.com/salesforce-engineering/tls-fingerprinting-with-ja3-and-ja3s-247362855967), JARM [qui](https://medium.com/salesforce-engineering/easily-identify-malicious-servers-on-the-internet-with-jarm-e095edac525a), e questo eccellente blog di Fastly sullo [Stato del Fingerprinting TLS](https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next) che delinea la storia dei suddetti insieme ai loro problemi. JA4+ offre un supporto dedicato, mantenendo i metodi aggiornati man mano che il settore evolve.

Tutti i fingerprint JA4+ hanno un formato a_b_c, che delimita le diverse sezioni che compongono il fingerprint. Ciò consente di effettuare ricerche e rilevamenti utilizzando solo ab o ac o solo c. Se si volesse fare un'analisi solo sui cookie in ingresso nella propria applicazione, si guarderebbe solo a JA4H_c. Questo nuovo formato che preserva la località facilita un'analisi più profonda e ricca, rimanendo al contempo semplice, facile da usare e consentendo l'estensibilità.

Ad esempio, GreyNoise è un ascoltatore internet che identifica gli scanner internet e sta implementando JA4+ nel proprio prodotto. Hanno un attore che scansiona internet con un singolo cipher TLS in continua evoluzione. Questo genera una quantità enorme di fingerprint JA3 completamente diversi, ma con JA4, solo la parte b del fingerprint JA4 cambia, mentre le parti a e c rimangono le stesse. Pertanto, GreyNoise può tracciare l'attore guardando il fingerprint JA4_ac (unendo a+c, eliminando b).

Per un elenco dei metodi JA4+ e delle loro descrizioni, vedi [Metodi attuali e dettagli di implementazione](#current-methods-and-implementation-details).

Per capire come leggere i fingerprint JA4+, vedi [Dettagli tecnici](https://github.com/foxio-llc/ja4/blob/main/technical_details/README.md).

## Licenza

*JA4: TLS Client Fingerprinting* è [open-source, BSD 3-Clause](https://github.com/foxio-llc/ja4/blob/main/LICENSE-JA4), come JA3. FoxIO non ha rivendicazioni di brevetto e non prevede di perseguire una copertura brevettuale per JA4 TLS Client Fingerprinting. Ciò consente a qualsiasi azienda o strumento che attualmente utilizza JA3 di passare immediatamente a JA4 senza ritardi.

**JA4S, JA4L, JA4LS, JA4L-Delta, JA4H, JA4X, JA4SSH, JA4T, JA4TS, JA4TScan, JA4D, JA4D6, JA4Scan-TLS, JA4Scan-QUIC, JA4N e tutte le future aggiunte (collettivamente denominate JA4+)** sono in attesa di brevetto e concessi in licenza sotto la [FoxIO License 1.1](https://github.com/foxio-llc/ja4/blob/main/LICENSE). 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 volesse utilizzare JA4+ internamente per contribuire a proteggere la propria azienda, ciò è consentito. Se, ad esempio, un fornitore volesse vendere il fingerprinting JA4+ come parte della propria offerta di prodotti, dovrebbe richiederci una licenza OEM.

JA4+ è un marchio di FoxIO

JA4+ può essere ed è implementato in strumenti open source, vedi le [FAQ sulla licenza](https://github.com/foxio-llc/ja4/blob/main/License%20FAQ.md) per i dettagli.

Questa licenza ci consente di fornire JA4+ al mondo in modo aperto e immediatamente utilizzabile, ma ci fornisce anche un modo per finanziare il supporto continuo, la ricerca su 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 contribuire a realizzare questo obiettivo.

## Domande e risposte

D: Perché ordinate i cipher? L'ordine non ha importanza?  
R: Sì, ma nella nostra ricerca abbiamo scoperto che le applicazioni e le librerie scelgono un elenco di cipher unico più che un ordinamento unico. Questo riduce anche l'efficacia del "cipher stunting", una tattica di randomizzazione dell'ordine dei cipher per prevenire il rilevamento JA3.

D: Perché ordinate le estensioni?  
R: All'inizio del 2023, Google ha [aggiornato i browser Chromium](https://chromestatus.com/feature/5124606246518784) 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 il fingerprint di Chrome non sarebbe mai cambiato e finissero per costruire logica attorno ad esso, il che avrebbe causato problemi ogni volta che Google avesse aggiornato Chrome.

Quindi voglio essere chiaro: i fingerprint JA4 cambieranno man mano che le librerie TLS delle applicazioni vengono aggiornate, circa una volta all'anno. Non dare per scontato che i fingerprint rimangano costanti in un ambiente in cui le applicazioni vengono aggiornate. In ogni caso, l'ordinamento delle estensioni aggira questo problema e l'aggiunta degli Algorithmi di Firma preserva l'unicità.

D: TLS 1.3 non rende più difficile il fingerprinting dei client TLS?  
R: No, lo rende più facile! Dal TLS 1.3, i client hanno un insieme molto più ampio di estensioni e anche se TLS 1.3 supporta solo pochi cipher, i browser e le applicazioni ne supportano ancora molti di più.

## JA4+ è stato creato da

[John Althouse](https://www.linkedin.com/in/johnalthouse/), con feedback di:

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 ingegneri che lavorano presso GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet e altri.

Contatta John Althouse all'indirizzo [email protected] per licenze e domande.

<sub>JA4 e JA4+ sono marchi di FoxIO, Inc.  
Copyright (c) 2026, FoxIO</sup>

Categorie