Wireshark

Wireshark — свободный пакетный анализатор с открытым исходным кодом. Используется для поиска и устранения сетевых проблем, анализа сетевого трафика, разработки программного обеспечения и коммуникационных протоколов, а также в образовательных целях. Проект, изначально стартовавший под названием Ethereal, был переименован в Wireshark в мае 2006 года из-за проблем с торговой маркой[6].

Wireshark является кроссплатформенным программным обеспечением. В современных версиях для графического интерфейса используется тулкит Qt, а для захвата пакетов применяется pcap. Программа работает в Linux, macOS, BSD, Solaris и других Unix-подобных операционных системах, а также в Microsoft Windows. Также существует терминальная версия под названием TShark, использующая командную строку. Wireshark и сопутствующие инструменты, такие как TShark, распространяются на условиях GNU General Public License как бесплатное программное обеспечение.

Общие сведения
Wireshark
Тип Пакетный анализатор
Автор Gerald Combs[1]
Разработчик Команда разработчиков Wireshark
Написана на C, C++
Интерфейс Qt[4]
Операционные системы GNU/Linux[5], BSD[d][5], Microsoft Windows[5] и macOS[5]
Первый выпуск 1998
Аппаратная платформа Кроссплатформенная
Последняя версия 4.4.3[2] (8 января 2025)
Репозиторий gitlab.com/wireshark/wir…
Лицензия GNU GPLv2[3]
Сайт wireshark.org

Возможности

Wireshark во многом похож на tcpdump, однако предоставляет графический стартовый экран и дополнительные встроенные средства сортировки и фильтрации. Пользователь может переводить сетевые интерфейсы в режим промискуитета (если поддерживается адаптером), что позволяет видеть весь трафик, проходящий через интерфейс, включая трафик, адресованный другим MAC-адресам. Однако, на коммутируемых сетях не весь трафик обязательно попадает на данный порт, поэтому для захвата всего трафика сети промискуитетный режим недостаточен; в таких случаях используются зеркалирование портов (port mirroring) или другие специальные средства. Простые пассивные подключения достаточно устойчивы к попыткам вмешательства.

В GNU/Linux, BSD и macOS (при использовании libpcap версии 1.0.0 или выше) Wireshark начиная с версии 1.4 может переводить беспроводные сетевые интерфейсы также в monitor mode. Если удалённая машина осуществляет захват пакетов и пересылает их, используя протокол TZSP или формат OmniPeek, Wireshark способен анализировать эти удалённые пакеты.

История

В конце 1990-х выпускник отделения компьютерных наук Университета Миссури в Канзас-Сити Джеральд Комбс работал в небольшом интернет-провайдере. Коммерческие анализаторы сетевых протоколов тогда стоили около 1500 долларов и не поддерживали основные платформы компании (Solaris и Linux), поэтому Комбс начал разработку Ethereal и выпустил первую версию в 1998 году[7]. Торговая марка Ethereal принадлежала компании Network Integration Services.

В мае 2006 года Комбс принял предложение о работе в компании CACE Technologies. Поскольку ему принадлежали авторские права на большую часть исходного кода Ethereal (остальная часть распространялась под GPL), он мог использовать содержимое Subversion-репозитория Ethereal для нового проекта, однако не обладал правами на торговую марку, поэтому проект был переименован в Wireshark[8]. В 2010 году компания Riverbed Technology приобрела CACE Technologies[9] и стала основным спонсором Wireshark. Разработка Ethereal была прекращена, и его прежний консультант по безопасности рекомендовал пользователям переходить на Wireshark[10].

Wireshark удостаивался множества отраслевых наград, в том числе от таких изданий, как eWeek[11], InfoWorld[12][13][14][15][16], а также PC Magazine[17]. По результатам опросов портала Insecure.Org Wireshark нередко становился лидером среди анализаторов трафика[18], а в августе 2010 года проект был признан «Проектом месяца SourceForge»[19].

Джеральд Комбс продолжает поддерживать общий код программы и выпускать новые версии. На официальном сайте Wireshark указано, что к проекту внесли вклад более 600 авторов.

Технические особенности

undefined

Wireshark — программа для перехвата и анализа сетевого трафика, «понимающая» структуру различных сетевых протоколов (инкапсуляция). Она может разбирать и отображать поля захваченных данных в соответствии с их назначением, определяется стандартами соответствующих сетевых протоколов. Для захвата пакетов применяется pcap, что ограничивает поддерживаемые типы сетей только теми, которые поддерживаются pcap.

  • Захват данных может осуществляться как с текущего сетевого соединения, так и из файла с предварительно сохранёнными пакетами.
  • В реальном времени поддерживаются такие типы сетей, как Ethernet, IEEE 802.11, PPP и Loopback, и др.
  • Просмотр трафика возможен через графический интерфейс или утилиту командной строки TShark.
  • С помощью программы возможно как редактирование захваченных файлов, так и преобразование файлов через отдельную команду editcap.
  • Отображаемые данные можно отфильтровывать с помощью дисплейных фильтров.
  • Для поддержки новых протоколов могут разрабатываться плагины[20].
  • Возможен анализ VoIP-звонков; в случае поддержки кодека можно даже прослушать медиапоток.
  • Поддерживается захват сырых USB-трафика.
  • Фильтрация беспроводных соединений возможна при прохождении их через наблюдаемый Ethernet.
  • Можно детально настраивать фильтрацию выводимых данных, применять таймеры и различные фильтры.

Основной формат файлов захвата Wireshark — формат libpcap, используемый также в tcpdump и ряде других приложений (CA NetMaster, и др.). Поддерживается чтение дампов от snoop, Network General Sniffer, Microsoft Network Monitor и ряда других анализаторов.

Безопасность

Захват необработанного (сырого) сетевого трафика требует повышенных привилегий на многих платформах. Ранее Ethereal/Wireshark и tethereal/TShark зачастую запускались с правами администратора. Так как в процессе захвата вызываются многочисленные анализаторы протоколов, каждая ошибка в dissector’е могла представлять угрозу безопасности — это приводило к уязвимостям, иногда позволяющим выполнение произвольного кода. Из-за большого количества прошлых уязвимостей и сомнений разработчиков в безопасности OpenBSD удалил Ethereal из дерева портов до выхода OpenBSD 3.6[21].

Повышенные права требуются не для всех действий. Например, можно захватывать пакеты в файл с помощью dumpcap (входит в поставку Wireshark) с правами администратора, а затем анализировать их уже под обычной учётной записью. Для почти реального времени анализ можно производить над растущим файлом, объединяя захваченные трассы через mergecap в разные форматы[22]. В беспроводных сетях для захвата IEEE 802.11-трафика и последующего анализа в Wireshark можно использовать такие инструменты, как Aircrack.

Начиная с версии 0.99.7 Wireshark и TShark выполняют захват трафика через dumpcap. На платформах, где для этого требуются особые привилегии, их имеет только процесс dumpcap; ни Wireshark, ни TShark не требуют работы с повышенными правами.

Цветовое кодирование

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

Симуляция захвата пакетов

Wireshark возможно использовать и для анализа выводов наиболее известных сетевых симуляторов, таких как ns, OPNET Modeler и NetSim.

Примечания

Литература

Ссылки