How Does JA4/JA4H Analyze Client Architecture for WAF Detection?

On this page
- π What Are JA4 and JA4H?
- π How JA4 Works (TLS Fingerprinting)
- π§ͺ Example JA4 Fingerprint:
- π How JA4H Works (HTTP Fingerprinting)
- π§ͺ Example JA4H Fingerprint:
- π οΈ Combining JA4 + JA4H: Detecting Client Stack & Architecture
- π Example Scenarios:
- π Security Use Cases for WAF & SOC
- β Threat Hunting
- β SOC Investigation
- β WAF Rules
- βοΈ Tools to Use
- π§© Fingerprint Inference Cheat Sheet
- π Why It Matters
- π Final Thoughts
Client Architecture in JA4/JA4H WAF Detection plays a crucial role in understanding the true nature of the device connecting to your web applications. JA4 and JA4H leverage TLS fingerprinting to map and monitor client characteristics, helping Web Application Firewalls (WAFs) distinguish between legitimate and suspicious traffic. This blog explores how these signatures decode client architecture and help detect malicious activity.
π What Are JA4 and JA4H?
StandardProtocol LayerPurposeJA4TLS (Transport Layer Security)Fingerprint based on TLS ClientHello dataJA4HHTTPFingerprint based on HTTP request metadata
Together, they give a stack-aware view of a client, enabling analysts to spot inconsistencies between expected and actual behavior.
π How JA4 Works (TLS Fingerprinting)
JA4 captures elements of the TLS ClientHello message during a handshake:
- Cipher suite list and order
- TLS extensions
- Elliptic curve preferences
- ALPN (Application-Layer Protocol Negotiation)
- TLS version
π§ͺ Example JA4 Fingerprint:
0a15_E.1F.1D.1A.0.1
This unique code reflects the TLS handshake behavior of the client. By comparing it to known patterns, you can determine:
- Browser (e.g., Chrome, Firefox)
- Operating system (e.g., Linux, Windows)
- TLS library (e.g., OpenSSL, BoringSSL, NSS)
π How JA4H Works (HTTP Fingerprinting)
JA4H evaluates HTTP metadata and structure:
- HTTP method (GET, POST, etc.)
- Protocol version (HTTP/1.1, HTTP/2)
- Header count and order
- Cookie presence
- Hashes of headers
π§ͺ Example JA4H Fingerprint:
0a15_E.1F.1D.1A.0.1
It helps distinguish between:
BehaviorLikely SourceRealistic headers + UABrowser on Windows/macOSMinimal headers, no UAScripted bot or malware clientInconsistent orderingMalformed client or spoofed bot
π οΈ Combining JA4 + JA4H: Detecting Client Stack & Architecture
When combined, JA4 and JA4H offer deep insights into:
- Client architecture (x86_64 vs ARM)
- TLS/HTTP stack (Python bot, browser, curl, malware)
- Headless tools (Selenium, Puppeteer)
- Obfuscation or spoofing attempts
π Example Scenarios:
TLS FingerprintHTTP FingerprintWhat It SuggestsChrome TLSCurl HTTPMismatched stack β likely spoofed trafficLegacy TLSAndroid UAMobile malware or outdated appBoringSSLReal HTTP headersReal Chrome browser on desktopOpenSSLNo cookiesCLI tools, curl bots, malware
π Security Use Cases for WAF & SOC
β Threat Hunting
- Detect imposter clients (wrong UA but different JA4/JA4H)
- Spot mass botnets with repeated JA4 patterns
β SOC Investigation
- Correlate logs using
$ja4and$ja4hin SIEM systems
- Identify suspicious JA4H patterns (e.g., short header lists)
β WAF Rules
- Block clients with obsolete JA4 (e.g., TLS 1.0 fingerprints)
- Monitor new JA4s that donβt match known clients
βοΈ Tools to Use
- JA4-NGINX Module: Injects JA4/JA4H into logs
- Suricata JA4 Rules (in progress): For inline detection
- Wireshark & Zeek: Can extract TLS fingerprint traits
- Threat Intelligence Feeds: Map known malware JA4s
π§© Fingerprint Inference Cheat Sheet
Signature TraitYou Can Infer...JA4 cipher preferenceTLS library, browser familyJA4 extension orderOS quirks or outdated clientJA4H header countHuman vs botCookie headers in JA4HLegitimate browser or appALPN + curvesHTTP2 support, TLS client capability
π Why It Matters
- Traditional user-agent headers are easy to spoof.
- IPs change, VPNs rotate β but JA4+JA4H is hard to fake.
- This fingerprinting is lightweight but highly effective for SOCs, WAFs, and DFIR teams.
π Final Thoughts
Fingerprinting using JA4 and JA4H is a powerful weapon in the hands of defenders. It gives us visibility into the real client stack, enabling smarter, faster, and deeper detection.
As client stacks evolve, defenders must evolve too β and fingerprinting is how we stay ahead of the threats.