
JA4+ es un conjunto de estándares de huellas digitales de red
JA4+ es un conjunto de métodos de huellas digitales de red creado por FoxIO que son fáciles de usar y de compartir. Estos métodos son legibles tanto para humanos como para máquinas, facilitando una caza de amenazas y un análisis más efectivos. Los casos de uso para estas huellas digitales incluyen la detección de actores maliciosos, detección de malware, prevención de secuestro de sesiones, automatización de cumplimiento, rastreo de ubicación, detección de DDoS, agrupación de actores maliciosos, detección de shells inversas y muchos más.
Para una explicación rápida sobre JA4+ y usarlo como referencia durante el análisis, ver:
JA4+ Cheat Sheet
Para detalles profundos, lea nuestros blogs sobre cómo funciona JA4+, por qué funciona y ejemplos de lo que se puede detectar/prevenir con él:
JA4+ Network Fingerprinting (JA4/S/H/L/X/SSH)
JA4T: TCP Fingerprinting (JA4T/TS/TScan)
Investigating Surfshark and NordVPN with JA4T (JA4T)
Si te encanta JA4+, considera comprar una camiseta o sudadera:
JA4+ Shirts, Hoodies, and Stickers
El nombre completo o el nombre corto se pueden usar indistintamente. Se están desarrollando más métodos JA4+...
Para entender cómo leer las huellas JA4+, consulte Detalles técnicos
Este repositorio incluye JA4+ en
con más por anunciar...
Para más ejemplos, consulte ja4plus-mapping.csv
Para una base de datos completa, consulte ja4db.com
Los binarios de JA4 se construyen a partir de la implementación en Rust del conjunto. Para asegurar la funcionalidad completa, se requiere tshark (versión 4.0.6 o posterior). Descargue los últimos binarios de JA4 desde la página de Lanzamientos. Las versiones de lanzamiento para la implementación en Rust siguen Versionado Semántico y se marcan como vX.Y.Z, a diferencia de los lanzamientos de plugins de Wireshark.
Los assets de lanzamiento se nombran según el componente y la plataforma:
ja4-vX.Y.Z-<arquitectura>-<plataforma>.tar.gz (ej., ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz)ja4-python-vX.Y.Z.tar.gz (contiene el directorio completo python/)ja4.so.linux, ja4.so.macos, ja4.dll (adjuntos a un lanzamiento nombrado como wireshark-vX.Y.Z)Elija el archivo apropiado para su sistema y componente.
Instálelo usando su gestor de paquetes (el nombre del paquete tshark o wireshark-cli depende de la distribución). Por ejemplo, en Ubuntu:
sudo apt install tshark
tshark).tshark a su PATH:
sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark
tshark.exe).tshark.exe (generalmente en C:\Program Files\Wireshark\tshark.exe).tshark.exe a su PATH del sistema:
Una vez que tshark y los binarios de JA4+ estén disponibles, ejecute JA4+ usando el siguiente comando:
./ja4 [opciones] [pcap]
ja4 [opciones] [pcap]
Para más detalles sobre la ejecución de JA4+ y sus configuraciones avanzadas, consulte el README de la implementación en Rust, que proporciona información sobre sus características, escenarios de uso y opciones de personalización.
La base de datos oficial de JA4+ de huellas digitales, aplicaciones asociadas y lógica de detección recomendada está aquí: ja4db.com
Esta base de datos está en desarrollo muy activo. Espere órdenes de magnitud más combinaciones de huellas y datos en los próximos meses.
También está disponible un ja4plus-mapping.csv de muestra para referencia rápida.
JA4+ utiliza GitHub Actions para automatizar los lanzamientos de sus componentes Rust, Python, Wireshark y Zeek. Los lanzamientos se crean enviando una etiqueta con un prefijo específico al repositorio, excepto para Zeek, que usa una etiqueta de versión semántica pura (semver). Los assets de lanzamiento se nombran de la siguiente manera:
ja4-vX.Y.Z-<arquitectura>-<plataforma>.tar.gzja4-python-vX.Y.Z.tar.gzja4.so.linux, ja4.so.macos, ja4.dll (en un lanzamiento nombrado como wireshark-vX.Y.Z)Los siguientes flujos de trabajo están disponibles:
Lanzamiento de Rust:
Envíe una etiqueta que comience con rust-, p. ej., rust-v0.18.5, para activar un lanzamiento de los binarios de Rust. El flujo de trabajo construirá y subirá los assets de lanzamiento automáticamente.
Lanzamiento de Python:
Envíe una etiqueta que comience con python-, p. ej., python-v0.1.0, para activar un lanzamiento de la implementación de Python. El flujo de trabajo creará un tarball del directorio python/ y lo publicará como un asset de lanzamiento.
Lanzamiento del plugin de Wireshark:
Envíe una etiqueta que comience con wireshark-, p. ej., wireshark-v0.1.1, para activar un lanzamiento de los binarios del plugin de Wireshark para todas las plataformas compatibles.
Lanzamiento de Zeek:
Envíe una etiqueta que sea una versión semántica pura (p. ej., v1.2.3), sin prefijo, para activar un lanzamiento de Zeek. Esto creará automáticamente un lanzamiento en packages.zeek.org.
Asegúrese de que sus cambios estén fusionados en la rama main.
Cree y envíe una etiqueta para el componente que desea lanzar:
rust-v0.18.5, python-v0.1.0, wireshark-v0.1.1).v1.2.3).Ejemplo:
git tag v1.2.3
git push origin v1.2.3
(Para Zeek)
O, para Rust:
git tag rust-v0.18.5
git push origin rust-v0.18.5
El flujo de trabajo de GitHub Actions correspondiente se ejecutará y publicará los assets de lanzamiento automáticamente. Para Zeek, el lanzamiento aparecerá en packages.zeek.org.
JA4+ es un conjunto de huellas digitales de red simples pero potentes para múltiples protocolos, que son legibles tanto para humanos como para máquinas, facilitando una mejora en la caza de amenazas y el análisis de seguridad. Si no está familiarizado con las huellas digitales de red, le recomiendo leer mis blogs publicando JA3 aquí, JARM aquí y este excelente blog de Fastly sobre el Estado de las huellas digitales TLS que describe la historia de los mencionados junto con sus problemas. JA4+ proporciona soporte dedicado, manteniendo los métodos actualizados a medida que la industria cambia.
Todas las huellas JA4+ tienen un formato a_b_c, delimitando las diferentes secciones que componen la huella. Esto permite la caza y detección utilizando solo ab o ac o solo c. Si alguien quisiera hacer análisis solo de las cookies entrantes en su aplicación, miraría solo JA4H_c. Este nuevo formato que preserva la localidad facilita un análisis más profundo y rico mientras se mantiene simple, fácil de usar y permite la extensibilidad.
Por ejemplo, GreyNoise es un oyente de Internet que identifica escáneres de Internet y está implementando JA4+ en su producto. Tienen un actor que escanea Internet con un único cifrado TLS que cambia constantemente. Esto genera una cantidad masiva de huellas JA3 completamente diferentes, pero con JA4, solo cambia la parte b de la huella JA4, las partes a y c permanecen iguales. Como tal, GreyNoise puede rastrear al actor mirando la huella JA4_ac (uniendo a+c, omitiendo b).
Para una lista de métodos JA4+ y sus descripciones, consulte Métodos actuales y detalles de implementación.
Para entender cómo leer las huellas JA4+, consulte Detalles técnicos.
JA4: Huella digital de cliente TLS es código abierto, BSD 3-Clause, igual que JA3. FoxIO no tiene reclamaciones de patentes y no planea buscar cobertura de patentes para JA4 TLS Client Fingerprinting. Esto permite que cualquier empresa o herramienta que actualmente use JA3 pueda actualizar inmediatamente a JA4 sin demora.
JA4S, JA4L, JA4LS, JA4H, JA4X, JA4SSH, JA4T, JA4TS, JA4TScan y todas las adiciones futuras (denominadas colectivamente JA4+) están licenciadas bajo la Licencia FoxIO 1.1. Esta licencia es permisiva para la mayoría de los casos de uso, incluyendo fines académicos y comerciales internos, pero no es permisiva para la monetización. Si, por ejemplo, una empresa quisiera usar JA4+ internamente para ayudar a asegurar su propia empresa, eso está permitido. Si, por ejemplo, un vendedor quisiera vender la huella digital JA4+ como parte de su oferta de productos, necesitaría solicitar una licencia OEM de nosotros.
Todos los métodos JA4+ son patent pending.
JA4+ es una marca comercial de FoxIO
JA4+ puede ser y se está implementando en herramientas de código abierto, consulte las Preguntas frecuentes sobre la licencia para más detalles.
Esta licencia nos permite proporcionar JA4+ al mundo de una manera abierta e inmediatamente utilizable, pero también nos proporciona una forma de financiar el soporte continuo, la investigación de nuevos métodos y el desarrollo de la Base de Datos JA4+. Queremos que todos tengan la capacidad de utilizar JA4+ y estamos felices de trabajar con vendedores y proyectos de código abierto para ayudar a que eso suceda.
P: ¿Por qué ordenan los cifrados? ¿Acaso el orden no importa?
R: Sí importa, pero en nuestra investigación hemos encontrado que las aplicaciones y bibliotecas eligen una lista de cifrados única más que un orden único. Esto también reduce la efectividad de la "reducción de cifrados", una táctica de aleatorizar el orden de los cifrados para prevenir la detección de JA3.
P: ¿Por qué ordenan las extensiones?
R: A principios de 2023, Google actualizó los navegadores Chromium para aleatorizar el orden de sus extensiones. Al igual que la reducción de cifrados, esta era una táctica para prevenir la detección de JA3 y "hacer que el ecosistema TLS sea más robusto a los cambios". Google temía que los implementadores de servidores asumieran que la huella digital de Chrome nunca cambiaría y terminaran construyendo lógica en torno a ella, lo que causaría problemas cada vez que Google actualizara Chrome.
Así que quiero dejar esto claro: las huellas JA4 cambiarán a medida que se actualicen las bibliotecas TLS de las aplicaciones, aproximadamente una vez al año. No asuma que las huellas permanecerán constantes en un entorno donde las aplicaciones se actualizan. En cualquier caso, ordenar las extensiones evita esto y agregar Algoritmos de Firma preserva la unicidad.
P: ¿Acaso TLS 1.3 no dificulta la obtención de huellas digitales de clientes TLS?
R: No, ¡lo facilita! Desde TLS 1.3, los clientes han tenido un conjunto mucho más grande de extensiones y aunque TLS 1.3 solo soporta unos pocos cifrados, los navegadores y aplicaciones aún soportan muchos más.
John Althouse, con comentarios de:
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
Y de ingenieros que trabajan en GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet y otros.
Contacte con John Althouse en [email protected] para licencias y preguntas.
JA4 y JA4+ son marcas comerciales de FoxIO, Inc.
Copyright (c) 2025, FoxIO
| Nombre completo | Nombre corto | Descripción |
|---|
| JA4 | JA4 | Huella digital de cliente TLS |
| JA4Server | JA4S | Huella digital de respuesta/sesión de servidor TLS |
| JA4HTTP | JA4H | Huella digital de cliente HTTP |
| JA4Latency | JA4L | Medición de latencia de cliente a servidor / Distancia lumínica |
| JA4LatencyServer | JA4LS | Medición de latencia de servidor a cliente / Distancia lumínica |
| JA4X509 | JA4X | Huella digital de certificado TLS X509 |
| JA4SSH | JA4SSH | Huella digital de tráfico SSH |
| JA4TCP | JA4T | Huella digital de cliente TCP |
| JA4TCPServer | JA4TS | Huella digital de respuesta de servidor TCP |
| JA4TCPScan | JA4TScan | Escáner activo de huellas digitales TCP |
| JA4DHCP | JA4D | Huella digital DHCP |
| JA4DHCPv6 | JA4D6 | Huella digital DHCPv6 |
| Herramienta/Vendedor | Soporte JA4+ |
|---|
| Wireshark | JA4+ |
| Zeek | JA4+ |
| Arkime | JA4+ |
| Suricata | JA4+ (en desarrollo) |
| GreyNoise | JA4+ |
| Hunt | JA4+ |
| Driftnet | JA4+ |
| GoLang | JA4X |
| nzyme | JA4+ (en desarrollo) |
| Netresec's CapLoader | JA4+ (en desarrollo) |
| Netresec's NetworkMiner | JA4+ (en desarrollo) |
| 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 y JA4H |
| Cloudflare | JA4 |
| Fastly | JA4+ (solicítelo) |
| MISP | JA4+ |
| OCSF | JA4+ |
| Vercel | JA4 |
| Seika | JA4+ |
| VirusTotal | JA4 |
| AWS Cloudfront | JA4 |
| ELLIO | JA4+ |
| Webscout | JA4+ |
| Rama | JA4 y JA4H |
| Vectra | JA4+ |
| AWS WAF | JA4 |
| Tacticly | JA4+ |
| Palo Alto Networks | JA4+ |
| ngrok | JA4 |
| Vertex Synapse | JA4 y JA4S |
| Google Cloud Armor | JA4 |
| Fortinet | JA4 |
| AppOmni | JA4+ |
| IntelliGenesis | JA4+ |
| HAProxy | JA4 y JA4H plugins de OXL |
| SentinelOne | JA4 |
| Akamai | JA4 |
| Alibaba Cloud | JA4 |
| Huawei Cloud | JA4 |
| Google Cloud LBs | JA4 |
| eSentire | JA4+ |
| Microsoft Azure Front Door CDN | JA4 |
| Synapse de Gen0Sec | JA4X |
| Zscaler | JA4 |
| ExtraHop | JA4+ |
| Validin | JA4+ |
| Auth0 | JA4 |
| Security Onion | JA4+ |
| Aplicación | Huellas JA4+ |
|---|
| Chrome | JA4=t13d1516h2_8daaf6152771_02713d6af862 (TCP) JA4=q13d0312h3_55b375c5d22e_06cda9e17597 (QUIC) JA4=t13d1517h2_8daaf6152771_b0da82dd1658 (clave precompartida) JA4=t13d1517h2_8daaf6152771_b1ff8ab2d16f (sin clave) |
| 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 (cliente) 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 |
| Impresora 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 |
| Receptor Sony | JA4D6=solct0010nn_8-1-3-6_24-23 |