🥷 QA VS ТРАФИК: КАК АНАЛИЗИРОВАТЬ СЕТЕВЫЕ ПАКЕТЫ
🥷 QA VS ТРАФИК: КАК АНАЛИЗИРОВАТЬ СЕТЕВЫЕ ПАКЕТЫ ПРИ ТЕСТИРОВАНИИ ИБ-ПРОДУКТОВ
Умение читать сырой трафик превращает вас из «кликера» в того самого инженера, который находит обходы защиты. 👇
📌 Когда анализатор трафика — ваш главный инструмент? Вы обязаны лезть в пакеты, если: — Проверяете, что TLS-туннель поднят и шифрование соответствует ГОСТ/ГОСТ TLS, а не TLS 1.0. — Ищете утечку чувствительных данных (токены, пароли) в теле HTTP-запроса или DNS-туннелях. — Тестируете, «режет» ли IPS вредоносный payload в пакете, но пропускает ли легитимный (false positive/negative). — Отлаживаете сложный кастомный протокол (например, ГОСТ Р МЭК 60870-5-104 в АСУ ТП), который не умеют парсить автосканеры.
🛠 Стек для QA Держите на рабочем столе эту тройку:
1. Wireshark — классика для глубокого ручного анализа и фильтрации (ip.src == X && tcp.port == Y). 2. tcpdump — незаменим на удаленных сенсорах без GUI. Логируем в pcap, уносим к себе. 3. Scapy (Python) — для крафта «битых» и аномальных пакетов. Готовых фаззеров под ваш протокол часто нет, поэтому Scapy — наше всё.
📋 Чек-лист: на что смотрим в первую очередь?
1️⃣ Установление соединения (Handshake) — TCP: Правильная последовательность флагов (SYN -> SYN-ACK -> ACK). Если наш МЭ режет ACK от клиента, сессия не встанет. — TLS: Смотрим Client/Server Hello. Какие версии протоколов и cipher suites предлагаются? Не «свалился» ли сертификат в RSA-2048, когда политика требует ГОСТ Р 34.10-2012?
2️⃣ Инкапсуляция и маршрутизация — Проверяем, не появились ли лишние заголовки (например, VPN-клиент обернул GRE, а IPS это не нравится). — Анализируем TTL. Если пакет прошел через шлюз с подменой адреса (NAT), исходный TTL должен уменьшиться. Неизменный TTL — повод копать глубже.
3️⃣ Фрагментация и аномалии — Обход IDS через фрагментацию IP (fragmentation overlapping). Отправляем большой пакет, разбитый на части. Собирает ли сенсор его корректно перед проверкой? Часто в этом месте прячут сигнатуры атак.
4️⃣ Payload (тело пакета) — Ищем сигнатуры в сыром виде. Включаем Follow TCP/UDP Stream. — Проверяем, маскируется ли трафик. Например, exfiltration данных через TXT-записи DNS или ICMP-туннели. Если размер ICMP-пакета внезапно стал 1500 байт (вместо 32/64) — что-то нечисто.
5️⃣ Реакция среды — RST-пакеты: Кто рвет сессию? Клиент, сервер или сетевое устройство (МЭ/IPS)? Смотрим source IP и TTL RST-пакета. Если TTL отличается от «родного» сервера — сессию принудительно разорвал шлюз безопасности, значит, правило отработало (или ошиблось).
💡 Лайфхак от QA Не доверяйте автотестам, когда речь идет о «поведении» сети. Напишите мини-скрипт на Python (Scapy), который стучится запрещенным пакетом на целевой хост, и параллельно запустите tcpdump. Факт отсутствия ответа (DROP) так же важен, как и факт получения RST (REJECT). Wireshark тут не покажет ничего, а вы по логам поймете: пакет просто ушел в черную дыру — правило DROP работает.
🎯 Итог Анализ пакетов в ИБ — не про поиск ошибок в коде бэкенда, а охота на артефакты. Ваша задача не просто найти баг, предоставить разработчику улики: «Смотри, в 14:52:03 пришло три SYN, ACK не ушел обратно, вот дамп, вот скрин TTL=63».