Сетевая форензика: анализ 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) часто раскрывают аномалию; всегда учитывают точку и полноту захвата и правовую рамку.
Проверьте себя
1. Что такое beaconing в контексте сетевой форензики?
AРезервное копирование
BРегулярные «маячковые» обращения к внешнему адресу через равные интервалы (признак C2)
CШифрование трафика
DУскорение сети
2. Что можно извлечь из зашифрованного TLS-трафика?
AПолное содержимое сообщений
BМетаданные: адреса, объёмы, время, SNI и сопутствующий DNS
CПароли в открытом виде
DНичего полезного
3. Почему сетевую форензику невозможно провести без захвата трафика?
AWireshark платный
BПрошлый трафик не сохраняется, если его не записывали
CPcap нельзя открыть
DСеть всегда шифрована