Как поймать подозрительный процесс в Wireshark: практический гайд

Представьте ситуацию: вы — системный администратор или специалист по безопасности, и у вас есть подозрение, что на одном из компьютеров в сети что-то происходит не так. Процессор греется без нагрузки, антивирус молчит, но трафик скачет. Или, наоборот, вы просто хотите понять, куда именно стучится ваша программа, которую вы скачали с сомнительного сайта. Теория тут не поможет. Нужно видеть то, что происходит «под капотом».

Wireshark — это, пожалуй, самый мощный инструмент для такой задачи, но многие боятся его открывать из-за обилия кнопок и непонятных цветов. На самом деле, чтобы решить конкретную задачу поиска подозрительного процесса, вам не нужно знать все функции протоколов. Вам нужен четкий алгоритм: найти процесс, узнать его адрес, отфильтровать шум и посмотреть, что он делает. В этой статье я разложу этот процесс по полочкам, как если бы мы разбирали это за чашкой кофе в офисе.

С чего начать: связываем программы и сеть

Самая частая ошибка новичков — сразу запускать Wireshark и ждать, что он покажет имена процессов (exe-файлы). Wireshark работает на уровне сетевых пакетов. Он видит IP-адреса, порты, протоколы, но он не знает, что пакет с IP-адреса 192.168.1.55 отправил именно «malware.exe», а не «chrome.exe». Оба процесса могут использовать один и тот же сетевой стек.

Поэтому первый и самый важный шаг — не Wireshark, а операционная система. Нам нужно понять: «Кто этот хулиган и какой у него IP?».

Если у вас Windows, самый быстрый способ — командная строка. Не бойтесь, это не сложнее, чем поиск в браузере. Запустите CMD от имени администратора и введите команду:

netstat -ano | findstr "ESTABLISHED"

Что мы здесь сделали? Мы попросили систему показать только те соединения, которые сейчас активны (состояние ESTABLISHED). Ключевое слово в конце строки — pid (Process ID). Это уникальный номер процесса. Запомните его или скопируйте в буфер обмена.

Теперь, зная PID, можно открыть Диспетчер задач (Task Manager), перейти во вкладку «Подробности» и отсортировать список по столбцу «ИД процесса». Найдите цифру, которую вы получили. Перед вами имя файла, который сейчас работает с сетью. Если это svchost.exe, chrome.exe или explorer.exe — это нормально. Если это random_name_123.exe — у нас есть подозреваемый.

Важный нюанс: Если вы не знаете, какой процесс подозрительный, и хотите мониторить всё сразу, пропустите этот шаг, но приготовьтесь к тому, что в Wireshark придется искать вручную, используя фильтры.

Настройка захвата: ловим именно то, что нужно

Запустите Wireshark. Вы увидите список сетевых интерфейсов. Не спешите нажимать «Start» на всех подряд. Если у вас есть ноутбук с Wi-Fi и проводом, а вы работаете через кабель, захватывайте только Ethernet. Если ловите беспроводной трафик, убедитесь, что интерфейс поддерживает мониторинг (в Windows это часто бывает сложно из-за драйверов, проще подключиться кабелем).

Сразу же, как только вы нажали синюю плавную кнопку «Start», на экране начнут бежать разноцветные строки. Серые — ARP, синие — TCP, зеленые — HTTP (если они не зашифрованы), желтые — DNS. Глаза разбегаются. Чтобы не утонуть в этом потоке, нам нужно применить фильтр.

Здесь вступает в игру наш PID или IP-адрес. Если мы знаем IP подозреваемого процесса, в строку фильтров (над списком пакетов) пишем:

ip.addr == 192.168.1.55

Замените адрес на свой. Теперь Wireshark покажет только пакеты, которые прошли через этот адрес или были отправлены им. Если вы не знаете IP, но знаете имя процесса, можно использовать фильтр порта, если процесс использует специфический порт, но это менее надежно. Лучше сначала найти IP через netstat.

Есть еще один вариант, если вы хотите отловить процесс, который только запускается. Запустите захват, подождите пару секунд, запустите подозрительный процесс и остановите захват. Это позволит увидеть момент инициализации соединения, что часто дает больше информации, чем уже установленная сессия.

Анализ: что именно делает процесс?

Теперь у вас на экране список пакетов подозрительного процесса. Как понять, опасно это или нет? Смотрим не на само содержимое пакетов (оно часто зашифровано), а на метаданные: куда идет трафик и как часто.

1. DNS-запросы: куда он стучится?

Первое, на что нужно обратить внимание — это DNS. Это адреса, которые процесс пытается перевести в IP. Если вы нашли в списке много строк с зеленым цветом (тип DNS), кликните по одной из них, а внизу в окне деталей пакета найдите строку Name или Queries.

Что вы увидите? Доменные имена. Очень часто вредоносное ПО использует странные домены, например, update-system-service.ru или набор случайных символов xk7d9f2.malware.com. Если процесс — это браузер, он может спрашивать миллион разных адресов. Если это системная утилита, запросов должно быть немного. Если вы видите что-то вроде botnet-control.xyz — это 100% красный флаг.

Для быстрого анализа всех DNS-запросов введите в фильтре:

dns and ip.addr == <ваш_ip>

Это покажет только доменные имена, к которым обращался процесс. Прочитайте их. Если они выглядят подозрительно, сразу ищите информацию о них в Google.

2. TCP и UDP порты: на что он смотрит?

Допустим, процесс использует зашифрованное соединение. Вы не видите содержимое, но видите, куда он идет. Посмотрите на столбец Info или Destination.

  • Порты 80 и 443 — это стандартный веб-трафик. Почти все программы их используют.
  • Порт 22, 23, 3389 — это удаленное управление (SSH, Telnet, RDP). Если какой-то процесс идет на эти порты и не является системой или админ-утилитой — это плохой знак.
  • Порты с высокими номерами (например, 49152 и выше) часто используются для передачи данных. Если процесс отправляет большие объемы данных на эти порты на незнакомый внешний IP, это может быть утечка данных или майнинг.
  • Порт 53 — это DNS. Если процесс постоянно стучится на порт 53 (UDP) и не является браузером или системой, он может проверять доступность командного сервера.

Особое внимание уделите объемам трафика. В Wireshark можно включить счетчики статистики. Нажмите Statistics -> Conversations. Там будет список всех пар IP-адресов и объем переданных данных. Если какой-то процесс отправил 500 МБ данных за 5 минут в незнакомую страну — это повод для паники.

3. Экстренная остановка: Follow TCP Stream

Если вы хотите увидеть содержимое обмена (например, логин-пароль, который процесс отправляет, или текст сообщения), и оно не зашифровано (HTTP, Telnet, FTP), сделайте следующее:

  1. Найдите любой пакет, связанный с подозрительным соединением.
  2. Нажмите на него правой кнопкой мыши.
  3. Выберите Follow -> TCP Stream.

Откроется новое окно с текстом. Красный цвет — то, что отправил клиент (ваш компьютер), синий — то, что пришло от сервера. Вы увидите чистый текст запросов. Если там видно более-менее читаемые строки с кодами доступа или данными — это подтверждение активности. Если там только бинарные данные (мусор) — соединение зашифровано (TLS/SSL), и Wireshark без ключей расшифровки не поможет.

Сравнительный анализ: как отличить легитимность

Чтобы не гадать на кофейной гуще, полезно иметь под рукой сравнение поведения нормальных программ и подозрительных. Ниже приведена таблица, которая поможет вам быстрее сориентироваться.

Параметр Легитимный процесс (ОС, Браузер) Подозрительный процесс (Вредонос)
Частота запросов Равномерная, зависит от действий пользователя или периодических обновлений (раз в час/день). Пульсирующая, очень частая (каждые несколько секунд) или, наоборот, редкие «пинги»-проверки на связь.
Целевые порты Стандартные: 80, 443, 53, 123 (NTP). Нестандартные (3333, 4444, 6666) или случайные высокие порты, если это не P2P-клиент.
Имя домена (DNS) Известные бренды, корпоративные домены, стандартные сервисы. Случайный набор букв, домены с расширением .xyz, .top, .ru, недавно созданные (проверьте через Whois).
Объем данных Соответствует функционалу (загрузка страницы, обновление). Непропорционально большой объем исходящего трафика (утечка) или постоянный маленький исходящий трафик (ботнет).
Состояние соединения Устанавливается, используется, закрывается. Часто обрывается и пересоздается (SYN, SYN-ACK, RST) — признак сканирования или нестабильного C&C сервера.

Обратите внимание на последний пункт. Вредоносное ПО часто работает на не стабильных серверах, которые быстро блокируют IP, поэтому соединение постоянно сбрасывается.

Частые ошибки при анализе

Даже опытные специалисты иногда совершают ошибки, которые приводят к ложным выводам. Вот на что стоит обратить внимание, чтобы не накрутить себя зря.

Ошибка 1: Паника из-за системных служб. Вы видите процесс svchost.exe, который идет на странный IP. Вы думаете, что это вирус. Но в Windows системные процессы часто объединяются. svchost.exe может отвечать и за обновления Windows, и за службу времени, и за DNS-клиент. Иногда он обращается к Microsoft, но выглядит это странно. Всегда проверяйте pid через netstat и сверяйте с диспетчером задач. Если это реальный системный процесс — это не вирус, а Windows Update.

Ошибка 2: Игнорирование шифрования. Вы видите, что процесс идет на IP-адрес, который выглядит подозрительно, и пытается расшифровать трафик. Не тратьте время. Если используется TLS 1.2 или 1.3 (почти всегда сейчас), вы увидите только зашифрованные байты. Ваша задача — не расшифровать их, а заблокировать IP на уровне фаервола или проверить IP через сервисы типа VirusTotal.

Ошибка 3: Захват на неправильном интерфейсе. Вы запустили Wireshark на Wi-Fi, а трафик идет через провод. Или наоборот. Вы видите пустой экран и думаете, что трафика нет. Всегда проверяйте счетчик пакетов в реальном времени в правом нижнем углу. Если он не растет — вы не ловите нужный интерфейс.

Ошибка 4: Неверный фильтр. Вы пишете фильтр http, чтобы увидеть бизнес процесса. Но сегодня весь интернет — это HTTPS. Вы увидите ноль пакетов, хотя процесс активно работает. Всегда используйте ip.addr или dns, если не уверены в протоколе.

Сценарии: как действовать в зависимости от ситуации

Не существует универсального решения. В зависимости от ваших целей и ситуации, стратегия будет разной.

Сценарий А: «У меня тормозит компьютер, я думаю, что он майнит».

В этом случае вам не нужно глубоко копаться в содержимом пакетов. Ваша цель — найти «связь с сервером».

  • Запустите Wireshark и отфильтруйте по IP вашего компьютера.
  • Отсортируйте пакеты по объему (колонка Length).
  • Ищите длительные исходящие потоки (long streams) на неизвестные IP. Майнеры часто отправляют хеш-результаты на пул. Если вы видите постоянный поток данных на порт 3333 или 8080 — это, скорее всего, майнер.
  • Действие: Блокируйте IP в фаерволе и удаляйте процесс.

Сценарий Б: «Я скачал программу из интернета, хочу проверить, не крадет ли она пароли».

Здесь нужен более детальный анализ.

  • Запустите программу. В Wireshark сразу применяйте фильтр по её PID.
  • Смотрите DNS-запросы. Если программа — это текстовый редактор, но он стучится на домен, который звучит как «data-exfiltration.com», это повод удалить программу.
  • Если вы видите HTTP (не HTTPS) запросы, используйте Follow TCP Stream. Проверьте, не отправляет ли программа ваши данные (логины, ключи) в открытом виде.
  • Действие: Если нашли подозрительную активность — удаляйте программу немедленно.

Сценарий В: «Я администратор, и мне нужно доказать, что процесс легитимен».

Вам нужно собрать отчет.

  • Сделайте снэпшот (File -> Export Packet Dissections -> As Plain Text) для всех пакетов, связанных с процессом.
  • Составьте список всех DNS-запросов и IP-адресов, к которым он обращался.
  • Проверьте эти домены и IP в VirusTotal и Whois. Если все они принадлежат известным вендорам (Microsoft, Google, Adobe) — процесс безопасен.

Практические рекомендации: как сделать анализ быстрее и точнее

Чтобы не тратить часы на ручное копание, используйте несколько профессиональных приемов, которые я применяю в работе.

1. Используйте готовые фильтры. В Wireshark есть множество готовых фильтров. Вместо того чтобы писать сложные выражения вручную, нажмите на кнопку «Фильтры» или используйте поиск. Например, tcp.flags.syn==1 покажет только попытки начать соединение, что полезно для поиска сканеров.

2. Цветовая маркировка. Вы можете настроить цвета для подозрительных IP. Если вы знаете, что IP 1.2.3.4 — это угроза, зайдите в Edit -> Color Rules, создайте правило для ip.addr == 1.2.3.4 и назначьте ему ярко-красный фон. Теперь все пакеты от этого IP будут подсвечены. Это визуально сразу выделит активность.

3. Сохраняйте логи. Не полагайтесь на память. Если вы запустили захват, сохраните файл (.pcapng). В случае инцидента вы сможете вернуться к этому файлу позже, когда появятся новые данные. Файл захвата — это юридическое доказательство того, что происходило в сети.

4. Сравнивайте с эталоном. Если вы не знаете, как ведет себя система, запустите «чистую» машину (или виртуальную машину) и посмотрите, какие пакеты идут в обычном режиме. Сравните этот список с подозрительным. Разница сразу станет очевидной.

5. Используйте GeoIP. Хотя это не всегда точно, знание страны назначения помогает. Если ваш офисный компьютер вдруг начал стучаться на IP, который принадлежит провайдеру в стране, где у вас нет филиалов — это повод проверить. В Wireshark можно настроить отображение стран (через настройки GeoIP), чтобы видеть флаги стран рядом с IP.

Итоги: что делать дальше

Wireshark — это не волшебная палочка, а инструмент с высокой точностью. Он не скажет вам: «Здесь вирус». Он скажет: «Вот этот процесс отправляет 500 мегабайт данных на IP 192.168.1.100 каждые 10 секунд. IP принадлежит неизвестному хостингу в Бразилии». И вам уже решать, что с этим делать.

Ваш алгоритм действий прост:
Найдите процесс через netstat -> Определите его IP -> Запустите Wireshark -> Отфильтруйте по этому IP -> Посмотрите DNS-запросы и объем трафика -> Сравните с поведением легитимных программ.
Если трафик странный, destination-IP подозрительный или домен неясен — блокируйте соединение и удаляйте процесс.

Главное — не паниковать и не пытаться анализировать всё сразу. Фокусируйтесь на одном процессе, на одном IP, на одном порте. Если вы научитесь видеть паттерны, вы сможете находить угрозы быстрее, чем любой автоматический антивирус, который просто проверяет файл по базе подписей. Wireshark позволяет увидеть живую угрозу в реальном времени.

Информация, представленная в статье, носит ознакомительный характер. Анализ сетевого трафика требует технических навыков и понимания сетевых протоколов. Неправильная интерпретация данных может привести к ложным выводам. Для решения сложных задач по кибербезопасности рекомендуется обращаться к профильным специалистам.

Оцените статью
PEFile — Безопасность и технологии простым языком