Skip to content

Integrate with TCP data via eBPF #8

Description

@ThatcherT

The nginx module can compute L7 fingerprints (JA4 / JA4H / etc.) in user space, but TCP-layer fingerprints and latency metrics need data nginx can’t access: SYN/SYN-ACK TCP options, observed TTL/Hop Limit, and handshake packet timestamps.

We want to integrate the module with an eBPF collector to capture TCP handshake metadata and expose it to nginx for logging/headers/routing.

Goals

  • Capture via eBPF:

    • client SYN data for JA4T
    • server SYN-ACK data for JA4TS
    • A–F timestamps + TTL/HLIM for JA4L / JA4LS and JA4L-Delta
  • Store per-connection state in an LRU map (5-tuple key + expiration).

  • Ingest eBPF data in the nginx module.

  • Compute and expose JA4T / JA4L fingerprints as nginx variables.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions