Открыть сервис

Wireshark

Wireshark — это программа-анализатор трафика (сниффер) для компьютерных сетей, функциональность которой заключается в захвате (перехвате) сетевых пакетов и их последующем детальном анализе в графическом или консольном интерфейсе. Wireshark относится к классу программного обеспечения для мониторинга и диагностики сетей, позволяя просматривать содержимое пакетов на различных уровнях модели OSI — от канального до прикладного. Проект распространяется под лицензией GNU General Public License (GPL) версии 2, что делает его свободным и открытым программным обеспечением.

История

Разработка Wireshark началась в 1998 году под названием Ethereal. Автором проекта является Джеральд Комбс (Gerald Combs), который на тот момент работал в компании Network Integration Services и нуждался в инструменте для анализа сетевого трафика. Первая версия была выпущена в середине 1998 года. В 2006 году, из-за смены места работы Комбса и связанных с этим проблем с правами на торговую марку, проект был переименован в Wireshark. С этого момента разработка продолжилась под новым именем, а кодовая база Ethereal была заморожена.

С момента переименования Wireshark стал основным активно развиваемым анализатором трафика в сообществе открытого ПО. Проект поддерживается группой разработчиков-добровольцев и компанией Wireshark Foundation. Регулярно выходят новые версии, в которых добавляется поддержка новых протоколов, улучшается производительность и исправляются ошибки безопасности. На 2025 год Wireshark поддерживает разбор более 3000 различных сетевых протоколов.

Принцип работы

Wireshark работает в пассивном режиме, то есть не отправляет данные в сеть, а только прослушивает (перехватывает) трафик, проходящий через сетевой интерфейс компьютера. Для этого программа использует библиотеку libpcap (в Unix-подобных системах) или Npcap/WinPcap (в Windows). Эти библиотеки предоставляют низкоуровневый доступ к сетевому адаптеру, позволяя перехватывать все проходящие через него кадры (фреймы), а не только те, что адресованы данному узлу.

Для захвата трафика в сетях с коммутацией (Ethernet) Wireshark может быть использован совместно с настройками порта зеркалирования (SPAN) на коммутаторе, либо в среде с концентратором (хабом), где трафик широковещательно рассылается всем портам. В беспроводных сетях для захвата требуется перевод сетевого адаптера в режим монитора (monitor mode).

После захвата программа декодирует каждый пакет в соответствии со стеком протоколов. Пользователь видит иерархическое представление пакета: заголовки канального уровня (Ethernet), сетевого (IP), транспортного (TCP/UDP) и прикладного (HTTP, DNS, FTP и т.д.). Содержимое каждого поля протокола отображается в удобочитаемом виде.

Основные возможности

Захват трафика

Wireshark позволяет захватывать трафик в реальном времени с одного или нескольких сетевых интерфейсов. Пользователь может настроить фильтр захвата (capture filter) — выражение на языке BPF (Berkeley Packet Filter), которое определяет, какие пакеты будут сохранены (например, только трафик от конкретного IP-адреса или только TCP-пакеты на порт 80). Это позволяет снизить объём собираемых данных и избежать перегрузки системы.

Фильтрация отображения

После захвата или загрузки файла с трафиком пользователь может применять фильтры отображения (display filters) — мощный и гибкий язык запросов, позволяющий отобрать пакеты по любым полям протоколов. Например, ip.src == 192.168.1.1 and tcp.port == 443 покажет все HTTPS-пакеты от указанного источника. Фильтры отображения не удаляют данные из файла, а лишь скрывают неподходящие пакеты.

Декодирование протоколов

Wireshark содержит встроенные декодеры (диссекторы) для огромного числа протоколов. Программа автоматически определяет протокол прикладного уровня по номеру порта (например, TCP/80 — HTTP) или по сигнатуре в данных. Поддерживаются как стандартные протоколы (IP, TCP, UDP, ICMP, HTTP, DNS, DHCP, ARP, FTP, SMTP, TLS/SSL), так и специфические промышленные, телекоммуникационные и проприетарные протоколы.

Статистика и анализ

Программа предоставляет набор инструментов для статистического анализа трафика:

  • IO Graph — график интенсивности трафика во времени.
  • Conversationsсписок всех диалогов между узлами с указанием объёма переданных данных.
  • Endpoints — список всех сетевых узлов.
  • Protocol Hierarchyраспределение трафика по протоколам.
  • Flow Graph — временная диаграмма последовательности пакетов в соединении.
  • Expert Info — автоматический анализ аномалий и ошибок в пакетах (например, повторные передачи TCP, потерянные сегменты, подозрительные флаги).

Экспорт данных

Захваченные пакеты могут быть сохранены в файл в формате PCAP или PCAPNG (стандартные форматы для хранения сетевых дампов). Wireshark также позволяет экспортировать отдельные объекты, передаваемые по протоколам прикладного уровня (например, файлы, загруженные по HTTP или SMB).

Интерфейс

Графический интерфейс Wireshark состоит из нескольких основных панелей:

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

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

Применение

Wireshark используется в самых разных областях, связанных с компьютерными сетями:

  • Диагностика сетевых проблем — поиск причин медленной работы сети, потери пакетов, ошибок конфигурации (например, дублирование IP-адресов, неправильные маски подсети).
  • Отладка сетевых приложений — разработчики используют Wireshark для проверки корректности работы клиент-серверных протоколов, анализа форматов передаваемых данных.
  • Анализ безопасности — обнаружение подозрительной активности (сканирование портов, попытки вторжения, передача незашифрованных паролей), анализ вредоносного трафика.
  • Обучение и изучение сетей — Wireshark широко применяется в учебных заведениях для демонстрации работы протоколов TCP/IP на практике.
  • Форензика — анализ сохранённых дампов трафика для расследования инцидентов информационной безопасности.

Ограничения и критика

Несмотря на широкие возможности, Wireshark имеет ряд ограничений:

  • Производительность — при захвате трафика на высокоскоростных каналах (10 Гбит/с и выше) Wireshark может не справляться с обработкой всех пакетов в реальном времени, что приводит к их потере. Для таких задач используются специализированные аппаратные или программные решения (например, tcpdump с последующим анализом).
  • Безопасность — Wireshark не может расшифровать трафик, защищённый современными протоколами шифрования (TLS 1.2/1.3, SSH, IPsec), если у пользователя нет соответствующих ключей. Это ограничивает его применение для анализа содержимого современных защищённых соединений.
  • Права доступа — для захвата трафика в большинстве операционных систем требуются права администратора (root), что может быть неудобно или небезопасно в некоторых средах.
  • Юридические аспекты — перехват трафика в сетях, к которым у пользователя нет явного разрешения, может нарушать законодательство о тайне переписки и компьютерных данных. Использование Wireshark в корпоративных сетях должно быть санкционировано администрацией.

Альтернативы

Существуют другие анализаторы трафика, как свободные, так и коммерческие:

  • tcpdump — консольный анализатор, работающий на базе той же библиотеки libpcap. Часто используется для сбора дампов на серверах без графического интерфейса.
  • TShark — консольная версия Wireshark, предоставляющая те же возможности фильтрации и декодирования.
  • Microsoft Network Monitor (NetMon) — устаревший анализатор от Microsoft, ранее использовавшийся для анализа трафика в Windows.
  • PRTG Network Monitor, SolarWinds NetFlow Traffic Analyzer — коммерческие системы мониторинга, которые могут включать функции анализа пакетов, но обычно ориентированы на агрегированные данные (NetFlow, sFlow).

Интересные факты

  • Изначальное название проекта — Ethereal — было отсылкой к эфирной среде передачи данных.
  • Wireshark поддерживает разбор протоколов, используемых в автомобильных сетях (CAN bus), промышленных сетях (Modbus, Profinet) и даже в авиационных системах.
  • В 2020 году в Wireshark был обнаружен ряд уязвимостей, связанных с обработкой некорректно сформированных пакетов, что привело к выпуску обновлений безопасности.
  • Проект ежегодно проводит конкурс «Wireshark SharkFest» — конференции для пользователей и разработчиков.

Источники

  • Официальная документация Wireshark (Wireshark User’s Guide).
  • Книга «Practical Packet Analysis» by Chris Sanders.
  • Статья «A Brief History of Wireshark» на сайте Wireshark Foundation.
  • Материалы курсов CCNA и CCNP (Cisco Networking Academy) по анализу трафика.
  • Релизные заметки и changelog на официальном сайте проекта.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →