JA4+ 是一套网络指纹识别标准
JA4+ 是由 FoxIO 开发的一套网络指纹识别方法,易于使用且易于共享。这些方法既适合人类阅读,也适合机器解析,有助于更有效地进行威胁狩猎和分析。这些指纹的用例包括扫描威胁行为者、恶意软件检测、会话劫持防护、合规自动化、位置追踪、DDoS 检测、威胁行为者分组、反向 Shell 检测等。
如需快速了解 JA4+ 并在分析时作为参考,请参阅:
JA4+ 速查表
如需深入了解,请阅读我们关于 JA4+ 工作原理、为何有效以及可检测/预防哪些内容的博客文章:
JA4+ 网络指纹识别 (JA4/S/H/L/X/SSH)
JA4T:TCP 指纹识别 (JA4T/TS/TScan)
使用 JA4T 调查 Surfshark 和 NordVPN (JA4T)
JA4D 和 JA4D6:DHCP 指纹识别 (JA4D/6)
如果您喜欢 JA4+,可以考虑购买一件 T 恤或连帽衫:
JA4+ T 恤、连帽衫和贴纸
| 全名 | 简称 | 描述 |
|---|---|---|
| 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 | JA4TScan | 主动 TCP 指纹扫描器 |
| JA4DHCP | JA4D | DHCP 指纹识别 |
| JA4DHCPv6 | JA4D6 | DHCPv6 指纹识别 |
| JA4NTP | JA4N | NTP 指纹识别 |
| JA4Scan-TLS | JA4Scan-TLS | 主动 TLS 服务器指纹扫描器 |
| JA4Scan-QUIC | JA4Scan-QUIC | 主动 QUIC 服务器指纹扫描器 |
全名和简称可以互换使用。更多 JA4+ 方法正在开发中……
要了解如何解读 JA4+ 指纹,请参阅 技术细节
本仓库包含以下语言的 JA4+ 实现
| 工具/厂商 | JA4+ 支持 |
|---|---|
| Wireshark | JA4+ |
| Zeek | JA4+ |
| Arkime | JA4+(我们推荐的开源 JA4+ 工具) |
| Suricata | JA4+(开发中) |
| GreyNoise | JA4+ |
| Hunt | JA4+ |
| Driftnet | JA4+ |
| GoLang (1) | JA4X |
| GoLang (2) | JA4 |
| nzyme | JA4+(开发中) |
| Netresec 的 CapLoader | JA4+(开发中) |
| Netresec 的 NetworkMiner | JA4+(开发中) |
| NGINX | JA4+ |
| F5 BIG-IP | JA4+ |
| nfdump | JA4+ |
| ntop 的 ntopng | JA4+ |
| ntop 的 nDPI | JA4 |
| Team Cymru | JA4+ |
| NetQuest | JA4+ |
| Censys |
更多支持即将公布……
| 应用 | JA4+ 指纹 |
|---|---|
| Chrome | JA4=t13d1517h2_8daaf6152771_cb7bf5808d99 (TCP) JA4=q13d0312h3_55b375c5d22e_178839b6cec1 (QUIC) |
| 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 |
| 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 |
| Sony 接收器 | JA4D6=solct0010nn_8-1-3-6_24-23 |
更多示例,请参阅 ja4plus-mapping.csv
完整数据库,请访问 ja4db.com
JA4 二进制文件基于该套件的 Rust 实现 构建。为确保完整功能,需要 tshark(4.0.6 或更高版本)。请从 Releases 页面下载最新的 JA4 二进制文件。Rust 实现的发布版本遵循 语义化版本控制,并标记为 vX.Y.Z,与 Wireshark 插件版本不同。
发布资产根据组件和平台命名:
ja4-vX.Y.Z-<架构>-<平台>.tar.gz(例如 ja4-v0.18.5-x86_64-unknown-linux-musl.tar.gz)ja4-python-vX.Y.Z.tar.gz(包含完整的 python/ 目录)ja4.so.linux、ja4.so.macos、ja4.dll(附加到名为 wireshark-vX.Y.Z 的发布中)请根据您的系统和组件选择相应的文件。
使用您的包管理器进行安装(包名 tshark 或 wireshark-cli 取决于发行版)。例如,在 Ubuntu 上:```sh
sudo apt install tshark
#### macOS
1. [下载](https://www.wireshark.org/download.html)并安装 Wireshark(包含 `tshark`)。
2. 将 `tshark` 添加到你的 `PATH` 中: ```sh
sudo ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark
tshark.exe)。tshark.exe(通常位于 C:\Program Files\Wireshark\tshark.exe)。tshark.exe 的文件夹添加到系统 PATH 中:
一旦 tshark 和 JA4+ 二进制文件可用,请使用以下命令运行 JA4+:
如需了解运行 JA4+ 及其高级配置的更多详情,请参阅 Rust 实现 README,其中提供了有关其功能、使用场景和自定义选项的信息。
官方 JA4+ 指纹、相关应用及推荐检测逻辑数据库位于:ja4db.com
该数据库正处于非常活跃的开发阶段。预计未来几个月内,指纹组合和数据的数量将呈数量级增长。
另提供一份示例 ja4plus-mapping.csv 供快速参考。
JA4+ 使用 GitHub Actions 来自动化其 Rust、Python、Wireshark 和 Zeek 组件的发布。发布通过向仓库推送带有特定前缀的标签来触发,但 Zeek 除外,它使用纯语义化版本(semver)标签。发布资产命名如下:
ja4-vX.Y.Z-<architecture>-<platform>.tar.gzja4-python-vX.Y.Z.tar.gzja4.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 上创建发布。
确保你的更改已合并到 main 分支。
为你想要发布的组件创建并推送标签:
rust-v0.18.5、python-v0.1.0、wireshark-v0.1.1)。v1.2.3)。示例: ```sh git tag v1.2.3 git push origin v1.2.3
(适用于 Zeek)
或者,对于 Rust: ```sh 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+ 指纹,请参阅 [技术细节](https://github.com/foxio-llc/ja4/blob/main/technical_details/README.md)。
## 许可
*JA4: TLS 客户端指纹识别* 是 [开源、BSD 3-Clause](https://github.com/foxio-llc/ja4/blob/main/LICENSE-JA4) 许可,与 JA3 相同。FoxIO 没有专利申请,也不计划为 JA4 TLS 客户端指纹识别申请专利覆盖。这使得任何目前使用 JA3 的公司或工具都能立即升级到 JA4,无需延迟。
**JA4S、JA4L、JA4LS、JA4L-Delta、JA4H、JA4X、JA4SSH、JA4T、JA4TS、JA4TScan、JA4D、JA4D6、JA4Scan-TLS、JA4Scan-QUIC、JA4N 以及所有未来的新增项(统称为 JA4+)** 均处于专利申请中,并根据 [FoxIO 许可证 1.1](https://github.com/foxio-llc/ja4/blob/main/LICENSE) 授权。该许可证对大多数使用场景是宽松的,包括学术和内部业务用途,但不允许商业化。例如,如果一家公司希望内部使用 JA4+ 来帮助保护自身公司安全,这是允许的。例如,如果一家供应商希望将 JA4+ 指纹识别作为其产品的一部分出售,则需要向我们申请 OEM 许可证。
JA4+ 是 FoxIO 的商标
JA4+ 可以并且正在被集成到开源工具中,详情请参阅 [许可证常见问题](https://github.com/foxio-llc/ja4/blob/main/License%20FAQ.md)。
这种许可方式使我们能够以开放且立即可用的方式向世界提供 JA4+,同时也为我们提供了一种资助持续支持、新方法研究以及 JA4+ 数据库开发的方式。我们希望每个人都能利用 JA4+,并乐于与供应商和开源项目合作,共同实现这一目标。
## 问答
问:为什么要对密码套件进行排序?顺序不重要吗?
答:顺序确实重要,但在我们的研究中发现,应用程序和库选择独特密码套件列表的情况多于选择独特顺序的情况。这还降低了“密码套件截短”的有效性,这是一种通过随机化密码套件顺序来防止 JA3 检测的策略。
问:为什么要对扩展进行排序?
答:2023 年初,Google [更新了 Chromium](https://chromestatus.com/feature/5124606246518784) 浏览器,使其扩展顺序随机化。与密码套件截短类似,这是一种防止 JA3 检测并“使 TLS 生态系统对变化更具鲁棒性”的策略。Google 担心服务器实现者会假设 Chrome 指纹永远不会改变,并围绕它构建逻辑,这会导致 Google 更新 Chrome 时出现问题。
所以我想明确一点:JA4 指纹会随着应用程序 TLS 库的更新而变化,大约每年一次。在应用程序会更新的环境中,不要假设指纹会保持不变。无论如何,对扩展进行排序可以绕过这个问题,而添加签名算法则保持了唯一性。
问:TLS 1.3 不是让 TLS 客户端指纹识别更难了吗?
答:不,它让指纹识别更容易了!自 TLS 1.3 以来,客户端拥有更大范围的扩展,尽管 TLS 1.3 只支持少数密码套件,但浏览器和应用程序仍然支持更多。
## JA4+ 的创建者
[John Althouse](https://www.linkedin.com/in/johnalthouse/),并获得了以下人员的反馈:
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
以及来自 GreyNoise、Hunt、Google、ExtraHop、F5、Driftnet 等公司的工程师。
有关许可和问题,请联系 John Althouse:[email protected]。
<sub>JA4 和 JA4+ 是 FoxIO, Inc. 的商标。
版权所有 (c) 2026, FoxIO</sup>
| JA4+ |
| Exploit.org 的 Netryx | JA4 和 JA4H |
| Cloudflare | JA4 |
| Fastly | JA4+(需申请) |
| MISP | JA4+ |
| OCSF | JA4+ |
| Vercel | JA4 |
| Seika | JA4+ |
| VirusTotal | JA4 |
| AWS Cloudfront | JA4 |
| ELLIO | JA4+ |
| Webscout | JA4+ |
| Rama | JA4 和 JA4H |
| Vectra | JA4+ |
| AWS WAF | JA4 |
| Tacticly | JA4+ |
| Palo Alto Networks | JA4+ |
| ngrok | JA4 |
| Vertex Synapse | JA4 和 JA4S |
| Google Cloud Armor | JA4 |
| Fortinet | JA4 |
| AppOmni | JA4+ |
| IntelliGenesis | JA4+ |
| HAProxy | JA4 和 JA4H 插件,由 OXL 开发 |
| SentinelOne | JA4 |
| Akamai | JA4 |
| 阿里云 | JA4 |
| 华为云 | JA4 |
| Google Cloud LBs | JA4 |
| eSentire | JA4+ |
| Microsoft Azure Front Door CDN | JA4 |
| Synapse,由 Gen0Sec 开发 | JA4X |
| Zscaler | JA4 |
| ExtraHop | JA4+ |
| Validin | JA4+ |
| Auth0 | JA4 |
| Security Onion | JA4+ |
| bunny.net | JA4 |
| ENEA | JA4+ |
| F5 Distributed Cloud Services | JA4+ |