Сетевая форензика: анализ pcap
Этот урок о том, как по захваченному трафику понять, кто с кем общался и не утекали ли данные.
pcap (packet capture) — файл с записью сетевых пакетов; его анализ показывает участников, протоколы и содержимое сетевого взаимодействия.
Если на момент инцидента вёлся захват трафика, сетевая форензика даёт мощные ответы: на какие внешние адреса уходили данные, был ли канал управления (C2), сколько и чего «утекло». Главный инструмент — Wireshark (GUI) и его консольный собрат tshark. Сетевые улики ценны тем, что они объективны и внешни по отношению к скомпрометированному хосту: даже если злоумышленник вычистил логи на машине, его общение с C2-сервером могло остаться в захвате на сетевом периметре.
Анализируют только тот трафик, который имели право записывать: своя или корпоративная сеть с уведомлением сотрудников, либо учебный pcap. Перехват чужой переписки без оснований нарушает тайну связи (ст. 138 УК) и 152-ФЗ. Корпоративный мониторинг возможен, но в рамках политики и закона, а не как скрытая слежка за конкретным человеком.
Что ищут в трафике
- Командные каналы (C2) — регулярные «маячки» (beaconing) на внешний адрес через равные интервалы.
- Exfiltration — крупные исходящие передачи, особенно на незнакомые адреса или по нестандартным портам.
- Подозрительные DNS — обращения к доменам с признаками генерации (DGA), DNS-туннелирование.
- Открытые учётные данные — пароли в незашифрованных протоколах (HTTP, FTP, telnet).
Фильтры и команды
# tshark: топ собеседников (кто с кем)
tshark -r capture.pcap -q -z conv,ip
# Только DNS-запросы
tshark -r capture.pcap -Y "dns.flags.response == 0" -T fields -e dns.qry.name
# HTTP-запросы и их хосты
tshark -r capture.pcap -Y "http.request" -T fields -e http.host -e http.request.uriВ Wireshark те же идеи выражают фильтрами отображения: ip.addr == 185.x.x.x, http.request, dns, tcp.port == 4444. Функция Follow TCP Stream собирает диалог в читаемый вид. Методически удобно идти «сверху вниз»: сначала статистика (Statistics → Conversations, Protocol Hierarchy) даёт общую картину и список собеседников, затем по подозрительной паре адресов углубляются в конкретные потоки. Это спасает от попытки прочитать миллионы пакетов подряд. Полезно различать display-фильтры (применяются к уже открытому файлу и легко меняются) и capture-фильтры (задаются при записи и отсекают пакеты безвозвратно) — при анализе улик почти всегда работают с готовым pcap и display-фильтрами, чтобы случайно не «потерять» нужное.
Признак beaconing
Время Источник -> Назначение Размер 02:10:00 10.0.0.5 -> 185.x.x.x:443 312 B 02:15:00 10.0.0.5 -> 185.x.x.x:443 310 B 02:20:00 10.0.0.5 -> 185.x.x.x:443 314 B -> ровный интервал 5 мин, малый пакет = маяк C2
Помимо beaconing внимание привлекают и другие паттерны. Резкая асимметрия объёмов — много исходящего трафика к одному внешнему адресу — классический признак выгрузки данных. Использование «легальных» портов не по назначению (например, бинарный поток по 443, не похожий на TLS, или огромные TXT-ответы в DNS) указывает на туннелирование. А самозаверённые сертификаты и редкие отпечатки JA3 в TLS-рукопожатии помогают отличить вредоносный клиент от обычного браузера.
Как работает под капотом
pcap хранит пакеты с метками времени и заголовками всех уровней (Ethernet, IP, TCP/UDP, прикладной протокол). Анализатор разбирает (диссектит) эти слои, восстанавливая, кто, кому и что отправлял. Зашифрованный трафик (TLS) скрывает содержимое, но метаданные остаются видимыми: адреса, объёмы, время, имена в TLS SNI и DNS — этого часто достаточно, чтобы выявить аномалию.
Стоит понимать, что захват не всегда содержит «всё». Если снимали на одном узле, видна только проходящая через него часть трафика; коммутируемая сеть без зеркалирования покажет лишь широковещание и собственный трафик хоста. Большие потоки могут быть обрезаны (snaplen) или потеряны при перегрузке. Поэтому аналитик всегда уточняет, где и как сделан захват, прежде чем делать выводы о полноте картины — отсутствие свидетельства не равно свидетельству отсутствия.
Извлечение файлов и логи вместо пакетов
Сетевая форензика — это не только чтение пакетов. Из незашифрованного трафика можно восстановить переданные файлы: Wireshark умеет экспортировать объекты HTTP/SMB, а специализированные инструменты (NetworkMiner, Zeek/Bro, Suricata) автоматически вытаскивают передававшиеся документы, картинки и исполняемые файлы и считают их хеши — а это уже готовые IOC для следующего урока. Восстановленный из трафика вредоносный бинарник связывает сетевую находку с анализом образца: вы видите и факт загрузки, и сам загруженный файл.
Когда полного pcap нет, выручают журналы сетевых устройств: записи NetFlow/IPFIX, логи прокси, DNS-сервера и межсетевого экрана. Они не содержат содержимого, зато надёжно фиксируют метаданные — кто, куда, когда и сколько — за длительный период, тогда как полный захват обычно держат лишь короткое время из-за объёма. На практике расследование часто начинают именно с этих логов: по ним находят подозрительный внешний адрес и интервал, а уже затем, если запись есть, погружаются в соответствующие пакеты. Такой двухуровневый подход (широкие метаданные → точечный pcap) экономит силы и хорошо ложится в общий таймлайн инцидента. И здесь действует та же правовая рамка: анализируют трафик своей или корпоративной сети по праву и с уведомлением, а не ведут скрытую слежку за конкретным человеком (138 УК, 152-ФЗ).
Частые ошибки
- Рассчитывать на трафик, который не захватывали. Нет записи — нет данных.
- Сдаваться на TLS. Содержимое скрыто, но метаданные (адреса, объёмы, SNI/DNS) информативны.
- Смотреть пакеты по одному. Паттерны (интервалы, объёмы) видны на уровне статистики и потоков.
- Игнорировать DNS. Туннелирование и DGA часто заметны именно в DNS.
- Не учитывать точку и полноту захвата. Где сняли pcap — определяет, что в нём вообще может быть.
Итоги
- Сетевая форензика по pcap выявляет C2, exfiltration, подозрительные DNS и открытые учётные данные — и устойчива к чистке логов на хосте.
- Инструменты — Wireshark/tshark; идут сверху вниз: статистика → потоки; ключевые приёмы — фильтры, Conversations, Follow Stream, JA3.
- Даже при TLS метаданные (адреса, объёмы, время, SNI/DNS) часто раскрывают аномалию; всегда учитывают точку и полноту захвата и правовую рамку.