FoxIO-LLC/ja4

GitHub: FoxIO-LLC/ja4

JA4+ 是 FoxIO 开发的多协议网络指纹识别标准套件,可对 TLS、HTTP、SSH、TCP、DHCP 等流量进行唯一标识,用于威胁狩猎和恶意软件检测。

Stars: 1848 | Forks: 169

logo

# JA4+™ 网络指纹识别 JA4+ 是 [FoxIO](https://foxio.io/) 开发的一套网络指纹识别方法,易于使用和分享。这些方法同时具备人类可读性和机器可读性,以便更有效地进行威胁狩猎和分析。这些指纹的用例包括扫描威胁参与者、恶意软件检测、会话劫持防护、合规自动化、位置跟踪、DDoS 检测、威胁参与者分组、反向 shell 检测等等。 有关 JA4+ 的快速说明及分析参考,请参阅: [JA4+ 速查表](https://x.com/4A4133/status/1887269972545839559) 如需深入了解,请阅读我们关于 JA4+ 工作原理、为何有效以及可检测/预防内容的博客: [JA4+ 网络指纹识别](https://blog.foxio.io/ja4%2B-network-fingerprinting)(JA4/S/H/L/X/SSH) [JA4T:TCP 指纹识别](https://blog.foxio.io/ja4t-tcp-fingerprinting)(JA4T/TS/TScan) [使用 JA4T 调查 Surfshark 和 NordVPN](https://blog.foxio.io/investigating-surfshark-and-nordvpn-with-ja4t)(JA4T) ## 目录 - [当前方法和实现细节](#current-methods-and-implementation-details) - [实现](#implementations) - [支持 JA4+ 的工具](#tools-that-support-ja4) - [示例](#examples) - [插件](#plugins) - [二进制文件](#binaries) - [发布资源](#release-assets) - [安装 tshark](#installing-tshark) - [Linux](#linux) - [macOS](#macos) - [Windows](#windows) - [运行 JA4+](#running-ja4) - [数据库](#database) - [发布流程](#release-process) - [如何创建发布](#how-to-create-a-release) - [JA4+ 详情](#ja4-details) - [许可](#licensing) - [问答](#qa) - [JA4+ 创建者](#ja4-was-created-by) ## 当前方法和实现细节 | 全称 | 简称 | 描述 | |---|---|---| | JA4 | JA4 | TLS 客户端指纹识别 | | JA4Server | JA4S | TLS 服务器响应/会话指纹识别 | | JA4HTTP | JA4H | HTTP 客户端指纹识别 | | JA4Latency | JA4L | 客户端到服务器延迟测量/光距离 | | JA4LatencyServer | JA4LS | 服务器到客户端延迟测量/光距离 | | JA4X509 | JA4X | X509 TLS 证书指纹识别 | | JA4SSH | JA4SSH | SSH 流量指纹识别 | | JA4TCP | JA4T | TCP 客户端指纹识别 | | JA4TCPServer | JA4TS | TCP 服务器响应指纹识别 | | [JA4TCPScan](https://github.com/FoxIO-LLC/ja4tscan) | [JA4TScan](https://github.com/FoxIO-LLC/ja4tscan) | [主动 TCP 指纹扫描器](https://github.com/FoxIO-LLC/ja4tscan) | | JA4DHCP | JA4D | DHCP 指纹识别 | | JA4DHCPv6 | JA4D6 | DHCPv6 指纹识别 | 全称和简称可以互换使用。更多 JA4+ 方法正在开发中…… 要了解如何读取 JA4+ 指纹,请参阅[技术细节](./technical_details/README.md) ## 实现 此仓库包含以下语言的 JA4+ 实现: - [Python](./python/README.md) - [Rust](./rust/README.md) - [C,作为 Wireshark 插件](./wireshark/README.md) - [Zeek](./zeek/README.md) ## 支持 JA4+ 的工具 | 工具/供应商 | JA4+ 支持 | |-------------|----------| | [Wireshark](https://github.com/FoxIO-LLC/ja4/tree/main/wireshark) | JA4+ | | [Zeek](https://github.com/FoxIO-LLC/ja4/tree/main/zeek) | JA4+ | | [Arkime](https://arkime.com/settings#ja4plus) | JA4+ | | [Suricata](https://docs.suricata.io/en/latest/rules/ja-keywords.html#ja4-hash) | JA4+(正在开发中) | | [GreyNoise](https://www.greynoise.io/) | JA4+ | | [Hunt](https://hunt.io/) | JA4+ | | [Driftnet](https://driftnet.io/) | JA4+ | | [GoLang](https://github.com/driftnet-io/go-ja4x) | JA4X | | [nzyme](https://www.nzyme.org/) | JA4+(正在开发中) | | [Netresec 的 CapLoader](https://www.netresec.com/?page=Blog&month=2023-11&post=CapLoader-1-9-6-Released) | JA4+(正在开发中) | | [Netresec 的 NetworkMiner](https://www.netresec.com/?page=NetworkMiner) | JA4+(正在开发中) | | [NGINX](https://github.com/FoxIO-LLC/ja4-nginx-module) | JA4+ | | [F5 BIG-IP](https://github.com/f5devcentral/f5-ja4) | JA4+ | | [nfdump](https://github.com/phaag/nfdump) | JA4+ | | [ntop 的 ntopng](https://github.com/ntop/ntopng) | JA4+ | | [ntop 的 nDPI](https://github.com/ntop/nDPI) | JA4 | | [Team Cymru](https://www.team-cymru.com/) | JA4+ | | [NetQuest](https://netquestcorp.com/) | JA4+ | | [Censys](https://censys.com/) | JA4+ | | [Exploit.org 的 Netryx](https://github.com/OWASP/www-project-netryx) | JA4 和 JA4H | | [Cloudflare](https://developers.cloudflare.com/bots/concepts/ja3-ja4-fingerprint/) | JA4 | | [Fastly](https://www.fastly.com/documentation/reference/vcl/variables/client-connection/tls-client-ja4/) | JA4+(请咨询) | | [MISP](https://www.misp-project.org/) | JA4+ | | [OCSF](https://schema.ocsf.io/1.3.0-dev/objects/ja4_fingerprint?extensions=) | JA4+ | | [Vercel](https://vercel.com/docs/security/tls-fingerprints) | JA4 | | [Seika](https://seika.io/) | JA4+ | | [VirusTotal](https://www.virustotal.com/) | JA4 | | [AWS Cloudfront](https://aws.amazon.com/about-aws/whats-new/2024/10/amazon-cloudfront-ja4-fingerprinting/) | JA4 | | [ELLIO](https://ellio.tech/) | JA4+ | | [Webscout](https://webscout.io/) | JA4+ | | [Rama](https://github.com/plabayo/rama) | JA4 和 JA4H | | [Vectra](https://www.vectra.ai/) | JA4+ | | [AWS WAF](https://aws.amazon.com/about-aws/whats-new/2025/03/aws-waf-ja4-fingerprinting-aggregation-ja3-ja4-fingerprints-rate-based-rules/) | JA4 | | [Tacticly](https://tactic.ly/) | JA4+ | | [Palo Alto Networks](https://www.paloaltonetworks.com/) | JA4+ | | [ngrok](https://ngrok.com/docs/traffic-policy/variables/connection/#conntlsja4_fingerprint) | JA4 | | [Vertex Synapse](https://vertex.link/) | JA4 和 JA4S | | [Google Cloud Armor](https://cloud.google.com/armor/docs/rules-language-reference#allow_or_deny_traffic_based_on_a_known_ja4_fingerprint) | JA4 | | [Fortinet](https://docs.fortinet.com/document/fortindr-cloud/25.2.c/user-guide/393114/event-fields#SSL) | JA4 | | [AppOmni](https://appomni.com/) | JA4+ | | [IntelliGenesis](https://intelligenesisllc.com/) | JA4+ | | [HAProxy](https://www.haproxy.org/) | 由 [OXL](https://www.o-x-l.com/) 提供的 [JA4](https://github.com/O-X-L/haproxy-ja4-fingerprint) 和 [JA4H](https://github.com/O-X-L/haproxy-ja4h-fingerprint) 插件 | | [SentinelOne](https://www.sentinelone.com/) | JA4 | | [Akamai](https://techdocs.akamai.com/application-security/reference/get-ja4-fingerprint-settings) | JA4 | | [阿里云](https://www.alibabacloud.com/help/en/anti-ddos/anti-ddos-pro-and-premium/user-guide/fields-included-in-full-logs) | JA4 | | [华为云](https://support.huaweicloud.com/intl/en-us/usermanual-waf/waf_01_3157.html) | JA4 | | [Google Cloud 负载均衡器](https://cloud.google.com/release-notes#July_28_2025) | JA4 | | [eSentire](https://www.esentire.com/) | JA4+ | | [Microsoft Azure Front Door CDN](https://learn.microsoft.com/en-us/azure/frontdoor/front-door-http-headers-protocol) | JA4 | | [Gen0Sec](https://gen0sec.com) 的 [Synapse](https://github.com/gen0sec/synapse) | JA4X | | [Zscaler](https://www.zscaler.com/blogs/product-insights/zscaler-endpoint-context-endpoint-cloud-visibility-and-enforcement-secops) | JA4 | | [ExtraHop](https://www.extrahop.com/) | JA4+ | | [Validin](https://www.validin.com/) | JA4+ | | [Auth0](https://auth0.com/changelog#40upcFBPuFxKG7nacgSlQc) | JA4 | | [Security Onion](https://blog.securityonion.net/2026/03/security-onion-300-now-available-with.html) | JA4+ | 更多支持即将公布…… ## 示例 | | JA4+ 指纹 | |----|----------| | Chrome | ```JA4=t13d1516h2_8daaf6152771_02713d6af862``` (TCP)
```JA4=q13d0312h3_55b375c5d22e_06cda9e17597``` (QUIC)
```JA4=t13d1517h2_8daaf6152771_b0da82dd1658``` (预共享密钥)
```JA4=t13d1517h2_8daaf6152771_b1ff8ab2d16f``` (无密钥) | | IcedID 恶意软件加载器 | ```JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982``` | | IcedID 恶意软件 | ```JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8```
```JA4S=t120300_c030_5e2616a54c73``` | | Sliver 恶意软件 | ```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``` (客户端)
```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``` | | 反向 SSH Shell | ```JA4SSH=c76s76_c71s59_c0s70``` | | Windows 11 | ```JA4T=64240_2-1-3-1-1-4_1460_8``` | | 爱普生打印机 | ```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``` | | 索尼接收器 | ```JA4D6=solct0010nn_8-1-3-6_24-23``` | 更多示例,请参阅 [ja4plus-mapping.csv](./ja4plus-mapping.csv) 要获取完整数据库,请参阅 [ja4db.com](https://ja4db.com/) ## 插件 [Wireshark](https://github.com/FoxIO-LLC/ja4/tree/main/wireshark) [Zeek](https://github.com/FoxIO-LLC/ja4/tree/main/zeek) [Arkime](https://arkime.com/settings#ja4plus) ## 二进制文件 JA4 二进制文件从该套件的 [Rust 实现](rust/README.md) 构建。为确保完整功能,需要 `tshark`(4.0.6 或更高版本)。从 [Releases](-<平台>.tar.gz`(例如,`ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz`) - **Python:** - `ja4-python-vX.Y.Z.tar.gz`(包含完整的 `python/` 目录) - **Wireshark:** - `ja4.so.linux`、`ja4.so.macos`、`ja4.dll`(附加在名为 `wireshark-vX.Y.Z` 的发布中) 选择适合您系统和组件的文件。 ### 安装 tshark #### Linux 使用您的软件包管理器安装(软件包名称 `tshark` 或 `wireshark-cli` 取决于发行版)。例如,在 Ubuntu 上: ``` sudo apt install tshark ``` #### macOS 1. [下载](https://www.wireshark.org/download.html)并安装 Wireshark(包含 `tshark`)。 2. 将 `tshark` 添加到您的 `PATH`: sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark #### Windows 1. [下载](https://www.wireshark.org/download.html)并安装 Wireshark(包含 `tshark.exe`)。 2. 找到 `tshark.exe`(通常在 `C:\Program Files\Wireshark\tshark.exe`)。 3. 将包含 `tshark.exe` 的文件夹添加到您的系统 `PATH`: - 打开**系统属性** > **环境变量** > **编辑路径**。 ### 运行 JA4+ 一旦 `tshark` 和 JA4+ 二进制文件可用,使用以下命令运行 JA4+: - 在 Linux 和 macOS 上: ./ja4 [选项] [pcap] - 在 Windows 上,打开**命令提示符**并运行: ja4 [选项] [pcap] 有关运行 JA4+ 及其高级配置的更多详细信息,请参阅 [Rust 实现 README](rust/README.md),其中提供了有关其功能、使用场景和自定义选项的信息。 ## 数据库 官方 JA4+ 指纹、关联应用程序和推荐检测逻辑的数据库位于:[ja4db.com](https://ja4db.com/) 此数据库正在非常积极地开发中。在接下来的几个月中,预计指纹组合和数据量将增加数个数量级。 还提供了一个示例 [ja4plus-mapping.csv](./ja4plus-mapping.csv) 供快速参考。 ## 发布流程 JA4+ 使用 GitHub Actions 为其 Rust、Python、Wireshark 和 Zeek 组件自动化发布。发布是通过将带有特定前缀的标签推送到仓库来创建的,Zeek 除外,它使用纯语义版本(semver)标签。发布资源命名如下: - **Rust:** `ja4-vX.Y.Z-<架构>-<平台>.tar.gz` - **Python:** `ja4-python-vX.Y.Z.tar.gz` - **Wireshark:** `ja4.so.linux`、`ja4.so.macos`、`ja4.dll`(在名为 `wireshark-vX.Y.Z` 的发布中) 提供以下工作流程: - **Rust 发布:** 推送以 `rust-` 开头的标签,例如 `rust-v0.18.5`,以触发 Rust 二进制文件的发布。工作流程将自动构建并上传发布资源。 - **Python 发布:** 推送以 `python-` 开头的标签,例如 `python-v0.1.0`,以触发 Python 实现的发布。工作流程将创建 `python/` 目录的压缩包并将其作为发布资源发布。 - **Wireshark 插件发布:** 推送以 `wireshark-` 开头的标签,例如 `wireshark-v0.1.1`,以触发所有支持平台的 Wireshark 插件二进制文件的发布。 - **Zeek 发布:** 推送纯语义版本标签(例如 `v1.2.3`),不带前缀,以触发 Zeek 发布。这将在 [packages.zeek.org](https://packages.zeek.org/) 上创建发布。 ### 如何创建发布 1. 确保您的更改已合并到 `main` 分支。 2. 为您要发布的组件创建并推送标签: - 对于 Rust、Python 或 Wireshark,使用适当的前缀(例如 `rust-v0.18.5`、`python-v0.1.0`、`wireshark-v0.1.1`)。 - 对于 Zeek,使用纯 semver 标签(例如 `v1.2.3`)。 示例: git tag v1.2.3 git push origin v1.2.3 (对于 Zeek) 或者,对于 Rust: git tag rust-v0.18.5 git push origin rust-v0.18.5 3. 对应的 GitHub Actions 工作流程将运行并自动发布发布资源。对于 Zeek,发布将出现在 [packages.zeek.org](https://packages.zeek.org/) 上。 ## JA4+ 详情 JA4+ 是一套简单但功能强大的多协议网络指纹,同时具备人类可读性和机器可读性,可改善威胁狩猎和安全分析。如果您不熟悉网络指纹识别,我鼓励您阅读我发布 JA3 的博客[这里](https://medium.com/salesforce-engineering/tls-fingerprinting-with-ja3-and-ja3s-247362855967)、JARM [这里](https://medium.com/salesforce-engineering/easily-identify-malicious-servers-on-the-internet-with-jarm-e095edac525a),以及 Fastly 关于 [TLS 指纹识别现状](https://www.fastly.com/blog/the-state-of-tls-fingerprinting-whats-working-what-isnt-and-whats-next) 的优秀博客,其中概述了上述内容及其问题。JA4+ 提供专用支持,随着行业发展保持方法更新。 所有 JA4+ 指纹都具有 a_b_c 格式,分隔构成指纹的不同部分。这允许仅使用 ab 或 ac 或 c 进行狩猎和检测。例如,如果有人只想分析进入其应用程序的 cookie,他们只需查看 JA4H_c。这种新的局部性保留格式促进了更深层次和更丰富的分析,同时保持简单、易于使用,并允许扩展。 例如,GreyNoise 是一个识别互联网扫描器的互联网监听器,他们正在将 JA4+ 实现到他们的产品中。他们有一个威胁参与者使用不断变化的单一 TLS 密码进行互联网扫描。这会产生大量完全不同的 JA3 指纹,但对于 JA4,只有 JA4 指纹的 b 部分会发生变化,a 和 c 部分保持不变。因此,GreyNoise 可以通过查看 JA4_ac 指纹(连接 a+c,删除 b)来跟踪该威胁参与者。 有关 JA4+ 方法及其描述的列表,请参阅[当前方法和实现细节](#current-methods-and-implementation-details)。 要了解如何读取 JA4+ 指纹,请参阅[技术细节](./technical_details/README.md)。 ## 许可 *JA4:TLS 客户端指纹识别*是[开源的,BSD 3-Clause](./LICENSE-JA4),与 JA3 相同。FoxIO 没有专利声明,也不打算为 JA4 TLS 客户端指纹识别寻求专利保护。这允许任何目前使用 JA3 的公司或工具立即升级到 JA4 而无需延迟。 **JA4S、JA4L、JA4LS、JA4H、JA4X、JA4SSH、JA4T、JA4TS、JA4TScan 及所有未来新增内容(统称为 JA4+)**根据 [FoxIO License 1.1](JA4 和 JA4+ 是 FoxIO, Inc. 的商标 版权所有 (c) 2025, FoxIO
标签:DDoS检测, JA4, JA4T, Metaprompt, SSH指纹, SSL/TLS指纹, TCP指纹, 会话劫持防护, 入侵防御系统, 反向shell检测, 可视化界面, 合规自动化, 威胁情报, 威胁猎捕, 安全运营, 开发者工具, 开源安全工具, 扫描框架, 网络安全, 网络指纹识别, 自定义DNS解析器, 逆向工具, 逆向工程平台, 通知系统, 隐私保护