
JA4+ — это набор стандартов для сетевой идентификации (фingerprinting).
JA4+ — это набор методов сетевого снятия отпечатков от FoxIO, которые просты в использовании и удобны для обмена. Эти методы читаемы как человеком, так и машиной, что способствует более эффективному поиску угроз и анализу. Сценарии использования этих отпечатков включают поиск злоумышленников, обнаружение вредоносного ПО, предотвращение перехвата сессий, автоматизацию соответствия требованиям, отслеживание местоположения, обнаружение DDoS-атак, группировку злоумышленников, обнаружение обратных оболочек и многое другое.
Для краткого объяснения JA4+ и использования в качестве справочного материала во время анализа см.:
JA4+ Шпаргалка
Подробную информацию о том, как работает JA4+, почему это работает, а также примеры того, что можно обнаружить/предотвратить с его помощью, читайте в наших блогах:
JA4+ Сетевое снятие отпечатков (JA4/S/H/L/X/SSH)
JA4T: Снятие отпечатков TCP (JA4T/TS/TScan)
Исследование Surfshark и NordVPN с помощью JA4T (JA4T)
Если вам нравится JA4+, подумайте о покупке футболки или толстовки:
Футболки, толстовки и наклейки 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-<архитектура>-<платформа>.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+ и его расширенных настройках см. в README Rust-реализации, где представлена информация о её функциях, сценариях использования и вариантах настройки.
Официальная база данных отпечатков JA4+, связанных приложений и рекомендуемой логики обнаружения находится здесь: ja4db.com
Эта база данных находится в очень активной разработке. В ближайшие месяцы ожидайте на порядки больше комбинаций отпечатков и данных.
Образец ja4plus-mapping.csv также доступен для быстрой справки.
JA4+ использует GitHub Actions для автоматизации релизов для своих компонентов Rust, Python, Wireshark и Zeek. Релизы создаются путём отправки тега с определённым префиксом в репозиторий, за исключением Zeek, который использует тег чистого семантического версионирования (semver). Ассеты релиза именуются следующим образом:
ja4-vX.Y.Z-<архитектура>-<платформа>.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-реализации. Рабочий процесс создаст tarball директории 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).Пример:
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. Если кто-то хочет провести анализ только входящих cookie в своё приложение, он будет смотреть только на JA4H_c. Этот новый, сохраняющий локальность формат способствует более глубокому и богатому анализу, оставаясь при этом простым, лёгким в использовании и допускающим расширение.
Например, GreyNoise — это интернет-слушатель, который идентифицирует интернет-сканеры и внедряет JA4+ в свой продукт. У них есть злоумышленник, который сканирует интернет с постоянно изменяющимся одним TLS-шифром. Это генерирует огромное количество совершенно разных отпечатков JA3, но с JA4 меняется только часть b отпечатка JA4, а части a и c остаются теми же. Таким образом, GreyNoise может отслеживать злоумышленника, глядя на отпечаток JA4_ac (объединение a+c, опуская b).
Список методов JA4+ и их описания см. в разделе Текущие методы и детали реализации.
Чтобы понять, как читать отпечатки JA4+, см. Технические детали.
JA4: Снятие отпечатков TLS-клиента является открытым исходным кодом, BSD 3-Clause, так же как JA3. FoxIO не имеет патентных претензий и не планирует подавать заявки на патент для JA4 TLS Client Fingerprinting. Это позволяет любой компании или инструменту, использующему в настоящее время 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+, и мы рады сотрудничать с вендорами и проектами с открытым исходным кодом, чтобы помочь этому случиться.
В: Почему вы сортируете шифры? Разве порядок не имеет значения?
О: Имеет, но в наших исследованиях мы обнаружили, что приложения и библиотеки чаще выбирают уникальный список шифров, чем уникальный порядок. Это также снижает эффективность «сужения шифров» (cipher stunting) — тактики рандомизации порядка шифров для предотвращения обнаружения JA3.
В: Почему вы сортируете расширения?
О: В начале 2023 года Google обновил Chromium, чтобы браузеры рандомизировали порядок расширений. Так же, как и сужение шифров, это была тактика предотвращения обнаружения JA3 и «сделать экосистему TLS более устойчивой к изменениям». Google беспокоился, что разработчики серверов могут предположить, что отпечаток Chrome никогда не изменится, и построить логику вокруг него, что вызовет проблемы при обновлении Chrome.
Поэтому я хочу прояснить: отпечатки JA4 будут меняться по мере обновления библиотек TLS приложений, примерно раз в год. Не предполагайте, что отпечатки останутся постоянными в среде, где приложения обновляются. В любом случае, сортировка расширений обходит это, а добавление алгоритмов подписи сохраняет уникальность.
В: Разве TLS 1.3 не усложняет снятие отпечатков TLS-клиентов?
О: Нет, это упрощает его! Начиная с TLS 1.3, клиенты имеют гораздо больший набор расширений, и хотя TLS 1.3 поддерживает лишь несколько шифров, браузеры и приложения по-прежнему поддерживают гораздо больше.
Джоном Альтхаусом, с обратной связью от:
Джош Аткинс
Джефф Аткинсон
Джошуа Александер
W.
Джо Мартин
Бен Хиггинс
Эндрю Моррис
Крис Уэланд
Бен Скофилд
Маттиас Валлентин
Валерий Воротынцев
Тимоти Ноэль
Гэри Липски
Майкл Барбин
И инженеры, работающие в GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet и других.
Свяжитесь с Джоном Альтхаусом по адресу [email protected] для лицензирования и вопросов.
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+ (в разработке) |
| CapLoader от Netresec | JA4+ (в разработке) |
| NetworkMiner от Netresec | JA4+ (в разработке) |
| NGINX | JA4+ |
| F5 BIG-IP | JA4+ |
| nfdump | JA4+ |
| ntopng от ntop | JA4+ |
| nDPI от ntop | JA4 |
| Team Cymru | JA4+ |
| NetQuest | JA4+ |
| Censys | JA4+ |
| Netryx от Exploit.org | 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 |