
ja4 v1.0.1
JA4+は、ネットワークフィンガープリンティング標準のスイートです
JA4+™ ネットワークフィンガープリンティング
JA4+は、FoxIOによるネットワークフィンガープリンティング手法のスイートであり、使いやすく共有しやすいことを特徴としています。これらの手法は人間と機械の両方が読み取れる形式で設計されており、より効果的な脅威ハンティングと分析を可能にします。これらのフィンガープリントのユースケースには、脅威アクターのスキャン、マルウェア検出、セッションハイジャック防止、コンプライアンス自動化、位置情報追跡、DDoS検出、脅威アクターのグループ化、リバースシェル検出などが含まれます。
JA4+の簡単な説明と分析時の参照用として、以下をご覧ください:
JA4+ チートシート
詳細については、JA4+の仕組み、なぜ機能するのか、そしてそれを使って何を検出・防止できるかの例を説明したブログをご覧ください:
JA4+ ネットワークフィンガープリンティング (JA4/S/H/L/X/SSH)
JA4T: TCPフィンガープリンティング (JA4T/TS/TScan)
SurfsharkとNordVPNのJA4Tによる調査 (JA4T)
JA4DとJA4D6: DHCPフィンガープリンティング (JA4D/6)
JA4+が気に入ったら、Tシャツやパーカーを購入することを検討してみてください:
JA4+ シャツ、パーカー、ステッカー
目次
現在の手法と実装の詳細
| 正式名称 | 短縮名 | 説明 |
|---|---|---|
| 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+をサポートするツール
| ツール/ベンダー | 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+ |
| 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 |
| Alibaba Cloud | JA4 |
| Huawei Cloud | 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+ |
さらに多くのツールが今後発表される予定です...
例
| アプリケーション | 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シェル | 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以降)が必要です。最新のJA4バイナリはリリースページからダウンロードしてください。Rust実装のリリースバージョンはセマンティックバージョニングに従い、Wiresharkプラグインのリリースとは異なりvX.Y.Zとしてマークされます。
リリースアセット
リリースアセットは、コンポーネントとプラットフォームに応じて名前が付けられています:
- Rust:
ja4-vX.Y.Z-<architecture>-<platform>.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の場合:```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
Windows
- ダウンロードしてWiresharkをインストールします(
tshark.exeを含む)。 tshark.exeの場所を確認します(通常はC:\Program Files\Wireshark\tshark.exe)。tshark.exeを含むフォルダをシステムのPATHに追加します:- システムのプロパティ > 環境変数 > Pathの編集を開きます。
JA4+の実行
tsharkとJA4+バイナリが利用可能になったら、以下のコマンドでJA4+を実行します:
- LinuxおよびmacOSの場合: ```sh
./ja4 [options] [pcap]
- Windows では、コマンドプロンプトを開いて、次のコマンドを実行します: ```cmd
ja4 [options] [pcap]
JA4+ およびその高度な設定の実行に関する詳細は、Rust 実装 README を参照してください。そこには、その機能、使用シナリオ、カスタマイズオプションに関する情報が記載されています。
データベース
公式の JA4+ フィンガープリント、関連アプリケーション、推奨検出ロジックのデータベースは、こちらにあります: ja4db.com
このデータベースは非常に活発に開発が進められています。今後数か月間で、桁違いに多くのフィンガープリントの組み合わせとデータが追加される見込みです。
サンプルの ja4plus-mapping.csv もクイックリファレンス用に利用可能です。
リリースプロセス
JA4+ は GitHub Actions を使用して、Rust、Python、Wireshark、Zeek コンポーネントのリリースを自動化しています。リリースは、特定のプレフィックスを持つタグをリポジトリにプッシュすることで作成されます。ただし、Zeek は純粋なセマンティックバージョン(semver)タグを使用します。リリースアセットは次のように命名されます:
- Rust:
ja4-vX.Y.Z-<architecture>-<platform>.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/ディレクトリの tarball を作成し、リリースアセットとして公開します。 -
Wireshark プラグインリリース:
wireshark-で始まるタグ(例:wireshark-v0.1.1)をプッシュすると、サポートされているすべてのプラットフォーム向けの Wireshark プラグインバイナリのリリースがトリガーされます。 -
Zeek リリース:
プレフィックスなしの純粋なセマンティックバージョンのタグ(例:v1.2.3)をプッシュすると、Zeek リリースがトリガーされます。これにより、packages.zeek.org にリリースが自動的に作成されます。
リリースの作成方法
-
変更が
mainブランチにマージされていることを確認します。 -
リリースするコンポーネントのタグを作成してプッシュします:
- Rust、Python、Wireshark の場合は、適切なプレフィックスを使用します(例:
rust-v0.18.5、python-v0.1.0、wireshark-v0.1.1)。 - Zeek の場合は、純粋な semver タグを使用します(例:
v1.2.3)。
例: ```sh git tag v1.2.3 git push origin v1.2.3
- Rust、Python、Wireshark の場合は、適切なプレフィックスを使用します(例:
(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 クライアントフィンガープリンティング* は、JA3 と同様に [オープンソース、BSD 3-Clause](https://github.com/foxio-llc/ja4/blob/main/LICENSE-JA4) です。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 License 1.1](https://github.com/foxio-llc/ja4/blob/main/LICENSE) の下でライセンスされています。このライセンスは、学術目的や社内業務目的を含むほとんどのユースケースで寛容ですが、収益化には寛容ではありません。たとえば、企業が自社のセキュリティ強化のために JA4+ を社内で使用したい場合は、それが許可されます。たとえば、ベンダーが自社の製品提供の一部として JA4+ フィンガープリンティングを販売したい場合は、当社に OEM ライセンスをリクエストする必要があります。
JA4+ は FoxIO の商標です。
JA4+ はオープンソースツールに実装されており、実装されつつあります。詳細については、[ライセンス FAQ](https://github.com/foxio-llc/ja4/blob/main/License%20FAQ.md) を参照してください。
このライセンスにより、JA4+ をオープンですぐに使用できる形で世界に提供できると同時に、継続的なサポート、新しいメソッドの研究、JA4+ データベースの開発に資金を提供する方法も得られます。私たちは、すべての人が JA4+ を利用できるようにしたいと考えており、ベンダーやオープンソースプロジェクトと協力してそれを実現できることを嬉しく思います。
## Q&A
Q: なぜ暗号をソートしているのですか?順序は重要ではないのですか?
A: 重要ですが、私たちの調査では、アプリケーションやライブラリは、一意の順序よりも一意の暗号リストを選択することが多いことがわかりました。これにより、JA3 検出を防ぐための戦術である「暗号スタンティング」(暗号の順序をランダム化する手法)の効果も低下します。
Q: なぜ拡張機能をソートしているのですか?
A: 2023 年の初めに、Google は Chromium ブラウザを更新し、拡張機能の順序をランダム化しました。暗号スタンティングと同様に、これは JA3 検出を防ぎ、「TLS エコシステムを変更に対してより堅牢にする」ための戦術でした。Google は、サーバー実装者が Chrome のフィンガープリントが決して変わらないと想定し、その周りにロジックを構築してしまうことを懸念していました。これにより、Google が Chrome を更新するたびに問題が発生する可能性がありました。
明確にしておきたいのは、JA4 フィンガープリントは、アプリケーションの TLS ライブラリが更新されるにつれて、約年に 1 回変化するということです。アプリケーションが更新される環境では、フィンガープリントが一定であると想定しないでください。いずれにせよ、拡張機能をソートすることでこれを回避し、署名アルゴリズムを追加することで一意性を維持できます。
Q: TLS 1.3 によって TLS クライアントのフィンガープリンティングは難しくなりませんか?
A: いいえ、むしろ簡単になります!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 などのエンジニアたち。
ライセンスや質問については、[email protected] まで John Althouse にお問い合わせください。
<sub>JA4 および JA4+ は FoxIO, Inc. の商標です。
Copyright (c) 2026, FoxIO</sup>