
JA4+は、ネットワークフィンガープリンティング標準のスイートです
JA4+は、FoxIOによるネットワークフィンガープリンティング手法のスイートであり、使いやすく共有しやすいものです。これらの手法は人間にも機械にも読みやすい形式で、より効果的な脅威ハンティングと分析を促進します。これらのフィンガープリントのユースケースには、脅威アクターのスキャン、マルウェア検出、セッションハイジャック防止、コンプライアンス自動化、位置情報追跡、DDoS検出、脅威アクターのグループ化、リバースシェル検出など、多数あります。
JA4+の簡単な説明と分析時のリファレンスとして、以下を参照してください:
JA4+ チートシート
詳細については、JA4+の仕組み、なぜ機能するのか、およびそれで検出/防止できることの例についてのブログをお読みください:
JA4+ ネットワークフィンガープリンティング (JA4/S/H/L/X/SSH)
JA4T: TCPフィンガープリンティング (JA4T/TS/TScan)
SurfsharkとNordVPNをJA4Tで調査 (JA4T)
JA4+が気に入ったら、Tシャツやパーカーを手に入れることを検討してください:
JA4+ シャツ、パーカー、ステッカー
フルネームとショートネームはどちらでも使用できます。追加のJA4+手法も準備中です...
JA4+フィンガープリントの読み方については、技術詳細をご覧ください。
このリポジトリには、次の言語/環境でのJA4+が含まれています:
さらに近日発表予定...
その他の例については、ja4plus-mapping.csvをご覧ください
完全なデータベースについては、ja4db.comをご覧ください
JA4バイナリは、スイートのRust実装からビルドされています。全機能を利用するには、tshark(バージョン4.0.6以降)が必要です。リリースページから最新のJA4バイナリをダウンロードしてください。Rust実装のリリースバージョンはセマンティックバージョニングに従い、vX.Y.Zとしてマークされます(Wiresharkプラグインのリリースとは異なります)。
リリースアセットは、コンポーネントとプラットフォームに応じて命名されます:
ja4-vX.Y.Z-<architecture>-<platform>.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の場合:
sudo apt install tshark
tsharkを含む)。tsharkをPATHに追加します:
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 [オプション] [pcap]
ja4 [オプション] [pcap]
JA4+の実行と高度な設定の詳細については、Rust実装のREADMEを参照してください。機能、使用シナリオ、カスタマイズオプションに関する情報が提供されています。
公式のJA4+フィンガープリント、関連するアプリケーション、推奨される検出ロジックのデータベースはこちら: ja4db.com
このデータベースは非常に活発に開発中です。今後数ヶ月で、桁違いに多くのフィンガープリントの組み合わせとデータが追加される予定です。
サンプルのja4plus-mapping.csvもクイックリファレンスとして利用できます。
JA4+はGitHub Actionsを使用して、Rust、Python、Wireshark、Zeekの各コンポーネントのリリースを自動化しています。リリースは、特定のプレフィックスを持つタグをリポジトリにプッシュすることで作成されます(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/ディレクトリのtarballを作成し、リリースアセットとして公開します。
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)。例:
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
対応するGitHub Actionsワークフローが実行され、リリースアセットが自動的に公開されます。Zeekの場合、リリースはpackages.zeek.orgに表示されます。
JA4+は、複数のプロトコルに対応したシンプルかつ強力なネットワークフィンガープリントのセットで、人間にも機械にも読みやすく、脅威ハンティングとセキュリティ分析の向上を促進します。ネットワークフィンガープリンティングに馴染みがない方は、JA3を公開した私のブログ(こちら)、JARMのブログ(こちら)、およびFastlyによるTLSフィンガープリンティングの現状に関する優れたブログ(上記の歴史と問題点を概説)を読むことをお勧めします。JA4+は専用のサポートを提供し、業界の変化に合わせて手法を最新の状態に保ちます。
すべてのJA4+フィンガープリントはa_b_c形式を持ち、フィンガープリントを構成する異なるセクションを区切ります。これにより、abのみ、acのみ、cのみを使用したハンティングと検出が可能になります。アプリに流入するクッキーだけを分析したい場合は、JA4H_cのみを見ることになります。この新しい局所性を保持する形式は、シンプルさと使いやすさを維持しながら、より深く豊かな分析を促進し、拡張性を可能にします。
例えば、GreyNoiseはインターネットスキャナを識別するインターネットリスナーであり、JA4+を製品に実装しています。彼らは、常に変化する単一のTLS暗号スイートでインターネットをスキャンするアクターを抱えています。これにより、まったく異なるJA3フィンガープリントが大量に生成されますが、JA4では、JA4フィンガープリントのb部分のみが変化し、aとcの部分は同じままです。そのため、GreyNoiseはJA4_acフィンガープリント(a+cを結合し、bを削除)を調べることでアクターを追跡できます。
JA4+メソッドとその説明の一覧については、現在の手法と実装の詳細を参照してください。
JA4+フィンガープリントの読み方については、技術詳細をご覧ください。
JA4: TLSクライアントフィンガープリンティングは、JA3と同様にオープンソース、BSD 3-Clauseです。FoxIOは特許請求を行っておらず、JA4 TLSクライアントフィンガープリンティングに関して特許の取得を計画していません。これにより、現在JA3を利用している企業やツールは、遅滞なくJA4にアップグレードできます。
JA4S、JA4L、JA4LS、JA4H、JA4X、JA4SSH、JA4T、JA4TS、JA4TScanおよび将来のすべての追加機能(総称してJA4+と呼びます) は、FoxIO License 1.1の下でライセンスされています。このライセンスは、学術目的や内部業務目的を含むほとんどのユースケースで許容されますが、収益化には許容されません。例えば、企業が自社のセキュリティ強化のためにJA4+を内部で使用することは許可されます。例えば、ベンダーが自社の製品提供の一部としてJA4+フィンガープリンティングを販売したい場合、当社からOEMライセンスをリクエストする必要があります。
すべてのJA4+メソッドは特許出願中です。
JA4+はFoxIOの商標です。
JA4+はオープンソースツールに実装可能であり、実際に実装されています。詳細についてはライセンスFAQをご覧ください。
このライセンスにより、JA4+をオープンかつ即座に利用可能な形で世界に提供できると同時に、継続的なサポート、新しいメソッドの研究、JA4+データベースの開発のための資金調達手段も確保できます。私たちは、誰もがJA4+を活用できるようにしたいと考えており、ベンダーやオープンソースプロジェクトと協力してそれを実現できることを喜んでいます。
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がサポートする暗号スイートは少数ですが、ブラウザやアプリケーションは依然としてさらに多くの暗号スイートをサポートしています。
以下の方々からのフィードバック:
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にご連絡ください。
JA4およびJA4+はFoxIO, Inc.の商標です。
Copyright (c) 2025, FoxIO
| フルネーム | ショートネーム | 説明 |
|---|
| 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フィンガープリンティング |
| ツール/ベンダー | JA4+サポート |
|---|
| Wireshark | JA4+ |
| Zeek | JA4+ |
| Arkime | JA4+ |
| Suricata | JA4+ (開発中) |
| GreyNoise | JA4+ |
| Hunt | JA4+ |
| Driftnet | JA4+ |
| GoLang | JA4X |
| 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+ |
| アプリケーション | 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シェル | 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 |