Обнаружение секретов и ПДн
Поиск секретов по префиксам и энтропии, обнаружение ПДн и карт с проверкой Луна.
Traffic Jam пассивно сканирует каждый импортированный захват на наличие утечек учётных данных и персональных данных, а также отдельно маскирует эти же данные в представлениях анализа и экспортах. Всё обнаружение выполняется локально в браузере над разобранными сессиями; ничего не отправляется на сервер, и из представления обнаружения не исходят никакие активные зонды. Откройте вкладку API lab → Security, чтобы увидеть результаты.
Панель индикаторов безопасности
Вкладка Security открывается панелью индикаторов с пятью счётчиками, вычисляемыми по активным захватам: находки High severity, Exposed secrets, PII signals, Risky cookies и TLS issues. Кнопки JSON IOCs и CSV в заголовке панели скачивают наборы индикаторов (см. Экспорт IOC).
Под панелью доказательства сгруппированы по четырём вкладкам:
| Вкладка | Содержимое |
|---|---|
| HTTP findings | Пассивные находки по заголовкам/куки/CORS/кэшу (см. /docs/ru/security/) |
| Secrets & PII | Списки «Credential material» и «PII exposure» |
| Identity flows | «Cookie posture» и «Credential lifecycles» |
| TLS intelligence | Аудит сертификатов/TLS и кластеры клиентов |
Каждая строка с секретом или ПДн показывает маскированное значение, эндпоинт и расположение (например, request header authorization или response body). Клик по строке открывает исходный запрос в инспекторе. Списки отображают до 250 строк.
Обнаружение секретов по известным префиксам и структуре
Сканер проверяет заголовки запросов и ответов, query-строку URL, путь URL, а также тела запросов/ответов на четыре типа находок:
| Тип | Что обнаруживается |
|---|---|
known-token | Форматы ключей провайдеров с фиксированными префиксами (ниже) |
jwt | Компактные JWS-токены (eyJ…eyJ…) |
private-key | PEM-блоки -----BEGIN … PRIVATE KEY----- |
high-entropy | Длинные строки с высокой энтропией (ниже) |
Распознаваемые форматы с известными префиксами: идентификаторы ключей доступа AWS (AKIA/ASIA/ABIA/ACCA + 16), токены GitHub (gh[pousr]_) и fine-grained PAT (github_pat_), GitLab PAT (glpat-), секретные/ограниченные ключи Stripe (sk_/rk_ с live/test), токены Slack (xox[baprs]-), ключи Google API (AIza…) и OAuth-токены (ya29.), токены Square (sq0atp-/sq0csp-), ключи Twilio (SK + 32 hex), токены npm (npm_ + 36), токены Shopify (shpat_), ключи SendGrid (SG.…) и ключи OpenAI (sk-).
Находки дедуплицируются по метке, маскированному значению, расположению и эндпоинту; повторные срабатывания увеличивают счётчик вхождений и сохраняют до пяти идентификаторов запросов-примеров. Результаты сортируются по серьёзности (private-key > known-token > jwt > high-entropy), затем по числу вхождений.
Обнаружение по энтропии
Строки длиной 20–512 символов из набора [A-Za-z0-9_\-+/=.] оцениваются по энтропии Шеннона. Кандидат сообщается как токен с высокой энтропией только если он:
- не является UUID, датой, semver, MIME-типом или схемой URL (частые ложные срабатывания);
- не является строкой из повторяющихся символов или повторяющихся групп;
- содержит хотя бы одну букву и хотя бы два класса символов (строчные, прописные, цифры);
- достигает порога энтропии 4.2 бит/символ (или 3.3 для чисто hex-строк длиной от 32 символов).
[!NOTE] Обнаружение по энтропии эвристично и настроено так, чтобы подавлять шум естественного языка и идентификаторов. Рассматривайте строки
high-entropyкак кандидатов на разбор, а не как подтверждённые секреты.
Обнаружение ПДн и платёжных карт
Сканер ПДн читает только тела запросов и ответов (не заголовки) и сообщает о пяти типах:
| Тип | Обнаружение | Маскированная форма |
|---|---|---|
credit-card | Последовательности из 13–19 цифр, проходящие контрольную сумму Луна | •••• 1234 (последние 4) |
ssn | \d{3}-\d{2}-\d{4} | •••-••-1234 |
email | Стандартный паттерн адреса | j…@e…com |
phone | Последовательности из 7–15 цифр, похожие на телефон | •••12 (последние 2) |
ip-address | IPv4-адреса, подлежащие отчёту | 10.20.×.× |
Кандидаты в карты сообщаются только при прохождении проверки Луна. Отчёт по IPv4 пропускает 0.x, loopback (127.x), multicast/broadcast (≥224, 255.255.255.255) и диапазоны документации RFC 5737 (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24). Число находок ограничено 500 на тип, сохраняется до пяти идентификаторов запросов-примеров.
Энтропия куки и сигналы фиксации сессии
Список Identity flows → Cookie posture профилирует каждое имя куки для каждого хоста на протяжении таймлайна захвата: количество установок/отправок, число уникальных значений, среднюю энтропию Шеннона (бит/символ), максимальную длину значения и согласованность Secure/HttpOnly/SameSite (always/sometimes/never). Профайлер выдаёт заметки, когда:
- флаг
SecureилиHttpOnlyнепоследователен между ответамиSet-Cookie; SameSiteразличается между ответами;- появляется более 8 уникальных значений (похоже на токен на каждый запрос, а не на стабильный идентификатор сессии);
- средняя энтропия значения установленной куки ниже 2.5 («идентификаторы сессии могут быть предсказуемы»);
- значение было отправлено клиентом до того, как какой-либо
Set-Cookieего определил — помечается как риск фиксации сессии (бейджfixation risk).
Экспорт IOC
Кнопки панели JSON IOCs и CSV собирают индикаторы из всех загруженных сессий в набор из domains, ips, ja3, ja4, certSha256 и urls (URL ограничены 2000). Источники включают authority запросов, IP клиентов/серверов, JA3/JA4-отпечатки TLS ClientHello и SNI, а также SAN и SHA-256-отпечатки сертификатов.
- JSON (
traffic-jam-iocs.json): метка времениgeneratedAt, объектcountsи шесть отсортированных массивов. - CSV (
traffic-jam-iocs.csv): заголовокtype,valueсо строками типовdomain,ip,ja3,ja4,cert-sha256,url; значения, содержащие запятые или кавычки, берутся в кавычки.
Как маскируются конфиденциальные значения
Независимо от обнаружения, представления анализа и сгенерированные экспорты по умолчанию скрывают учётные данные:
- Заголовки.
authorization,proxy-authorization,cookie,set-cookie,x-api-key,x-auth-token,x-access-token,x-session-token,x-csrf-token,x-xsrf-token, а также любой заголовок, имя которого содержит чувствительный токен (например,token,secret,signature,password).Authorizationпревращается вBearer <redacted>; куки превращаются в парыname=<redacted>; остальные становятся<redacted>. Заголовки корреляции/трассировки (traceparent,x-request-id,x-device-id, …) никогда не маскируются. - URL. Учётные данные в user-info, сегменты пути с учётными данными (сегменты после контекстных слов вроде
token,oauth,resetили совпадающие с известными форматами ключей/JWT), чувствительные имена query (token,api_key, а такжеcode,key,sig) и значения фрагмента заменяются на<redacted>. Заголовки с полным URL (location,referer, …) скрываются на месте. - Тела. JSON-поля с чувствительными именами становятся
"<redacted>"(ключи, содержащие паттерны учётных данных, становятся"<redacted-key>"); значения form-urlencoded, multipart (по имени части) и разметки HTML/XML скрываются; в свободном тексте выполняется замена по паттернамBearer/JWT/известных ключей. Непрозрачные тела, которые нельзя безопасно проинспектировать, заменяются на<redacted: opaque body>в экспортах, предназначенных для передачи.
Сгенерированные примеры curl, Python, Postman и OpenAPI применяют то же скрытие; см. /docs/ru/analysis/exports/ и /docs/ru/api-re/catalog/ о манифесте безопасности экспорта, который подсчитывает скрытия и пропущенные непрозрачные тела.
Раскрытие захваченных значений
Маскирование действует на уровне отображения и снимается только явным включением опции. Откройте Settings → Security и включите Reveal sensitive values in the UI. Переключатель по умолчанию выключен, автоматически отключается через 15 минут и влияет только на отображение — для replay и экспорта требуется собственное отдельное включение, прежде чем будут использованы захваченные учётные данные. При включённом раскрытии инспектор запросов копирует полный URL запроса вместо скрытого (см. /docs/ru/analysis/inspector/).
[!WARNING] Раскрытые значения появляются на экране и в буфере обмена. Включайте раскрытие только на доверенной рабочей станции при просмотре захватов, которые вам разрешено обрабатывать.