Первый захват

Импортируйте захват, откройте сессию и разберитесь в рабочей среде.

Это руководство проведёт вас от файла захвата на диске до детально изученного запроса: импорт, парсинг, поиск сессии в рабочей среде и открытие запроса в инспекторе. Предполагается, что Traffic Jam уже запущен — инструкции по установке см. в /docs/ru/getting-started/installation/.

Импорт захвата

Откройте вкладку Captures (боковая панель → группа Capture, либо нажмите ⌘/Ctrl+1, либо g, затем c). Панель импорта принимает три вида входных данных:

  • Import files — выберите один или несколько файлов захвата и keylog.
  • Import folder — выберите каталог; файлы захвата и keylog внутри будут сопоставлены автоматически (сначала по точному совпадению базового имени, затем — единственный keylog в том же каталоге).
  • Перетащите файлы в любое место окна — тип файлов определяется по расширению.
ТипРаспознаваемые расширения
Захваты трафика.pcap, .pcapng, .cap, .pcap.gz, .pcapng.gz
TLS keylog (формат NSS).sslkeylog, .keylog, .keys, .log, .txt
Экспорт из браузера.har

Эквиваленты на клавиатуре: u — выбор файлов, Shift+u — выбор каталога, n — ручное сопоставление (назначить keylog захвату вручную), i — импорт сопоставленных пар, Shift+d — очистка всех захватов. Всплывающее уведомление подводит итог (N captures imported, N HAR imported) и сообщает об ошибках по каждому файлу.

Что происходит при импорте

Бэкенд парсит захваты внутри процесса с помощью gopacket — байты захвата и ключевой материал никогда не передаются дочернему процессу, а TShark для импорта не требуется. Для каждого захвата он:

  1. Восстанавливает TCP-потоки и реконструирует обмены запрос/ответ HTTP/1 и HTTP/2, сохраняя порядок заголовков, предпросмотр тел (декодируются content-encoding gzip, deflate, brotli и zstd) и тайминги по каждому обмену.
  2. Расшифровывает поддерживаемые сессии TLS 1.2/1.3, используя ключевой материал из приложенного NSS keylog-файла или из блока Decryption Secrets Block (DSB) в формате pcapng, встроенного в сам захват; оба источника объединяются.
  3. Извлекает отпечатки TLS ClientHello (JA3/JA3-full, JA4/JA4r, SNI, ALPN, наборы шифров, расширения) и сертификаты сервера.
  4. Сохраняет распарсенную сессию в SQLite (по умолчанию .traffic-jam/traffic-jam-v2.sqlite3, переопределяется через TRAFFIC_JAM_DB_PATH), чтобы импортированные сессии переживали перезапуски API.

HAR-файлы соответствуют схеме HAR 1.2 и импортируются как сессии тем же способом, за исключением TLS-данных на уровне пакетов.

[!NOTE] Часть трафика невозможно восстановить из захвата пакетов. Если парсер обнаруживает потоки QUIC/HTTP3, он предупреждает, что QUIC не расшифровывается с помощью TLS keylog — отключите QUIC/HTTP3 в клиенте и повторите захват. Рукопожатия обновления WebSocket обнаруживаются и помечаются, но кадры сообщений WebSocket пока не декодируются.

Устройство рабочей среды

Окно представляет собой фиксированную оболочку с левой боковой панелью и областью содержимого:

  • Боковая панель — вкладки сгруппированы в Capture (Captures, Browser capture, Android), Analysis (API lab, Timeline, Compare, TLS) и Tools (Workbench). У каждой вкладки есть акселератор ⌘/Ctrl+N и последовательность с g (например, g l для Timeline). В нижней части боковой панели находятся Bookmarks, Shortcuts, Settings и переключатель темы; панель сворачивается в полоску иконок.
  • Баннер состояния бэкенда — появляется вверху только при сбое проверки доступности API («Backend unavailable») с кнопкой Retry.
  • Контекстная панель — показывает название активной вкладки и её назначение.
  • Строка состояния — внизу окна; показывает прогресс загрузки по каждой сессии, пока загружаются детали захвата, с элементами управления для отмены, повтора и исключения.

Вкладка Timeline (⌘/Ctrl+5) — это место, где вы читаете сессию: список запросов, упорядоченный по времени, с полем поиска («Search host, path, headers…»), фильтрами по методу/статусу/протоколу/хосту/потоку, а также режимом одиночного захвата или сравнения бок о бок с выбором захватов Baseline и Candidate. Управление живым захватом (которое требует mitmdump, tshark, Chrome и интерфейс захвата) описано в /docs/ru/capture/; вкладки анализа, построенные поверх импортированных сессий, описаны в /docs/ru/analysis/.

Открытие запроса

В Timeline перемещайте выделение клавишами j/k (или стрелками) и нажмите Enter, чтобы открыть диалог инспектора запросов. Он показывает полный обмен: стартовую строку, упорядоченные заголовки запроса и ответа, декодированные тела запроса/ответа, трассировку пакетов и приложенный TLS-отпечаток. Из диалога можно:

  • переключать разделы деталей клавишами 18;
  • перемещаться по отфильтрованному списку стрелками «назад/вперёд»;
  • добавить запрос в закладки (закладки собираются в панели Bookmarks на боковой панели, g k);
  • назначить запрос как Baseline или Candidate для Compare либо открыть его сопоставленную пару во вкладке Compare;
  • перейти к просмотру TLS-отпечатка для данного обмена.

Нажмите Esc, чтобы закрыть. Заголовки с учётными данными и конфиденциальные значения по умолчанию маскируются; при их отображении появляется баннер «Captured secrets are visible», а доступ к отображению истекает через 15 минут. Replay и экспорт всегда требуют отдельного явного включения.

[!TIP] Нажмите кнопку Shortcuts на боковой панели (или откройте диалог сочетаний клавиш), чтобы получить полный список с поиском — он включает клавиши Timeline: / (фокус на поиск), r (сброс фильтров), f (дополнительные фильтры), v (режим одиночного просмотра/сравнения), s (поменять местами baseline и compare), a/m (назначить baseline/candidate из выделения) и p (открыть сопоставленную пару в Compare).

[!WARNING] Traffic Jam предназначен для авторизованного тестирования систем, которые вам разрешено тестировать. Захваты могут содержать действующие учётные данные и сессионные токены; храните файлы захватов и базу данных SQLite на машинах, которые вы контролируете.

Документация Traffic Jam. Собрано с помощью Hugo.