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 авторов.
Технические особенности
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.
Примечания
Литература
- Orebaugh, Angela. Wireshark & Ethereal Network Protocol Analyzer Toolkit : [англ.] / Angela Orebaugh, Gilbert Ramirez, Jay Beale. — Syngress, 2007-02-14. — P. 448. — ISBN 1-59749-073-3.
- Sanders, Chris. Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems : [англ.]. — No Starch Press, 2007-05-23. — P. 192. — ISBN 1-59327-149-2.
- Chappell, Laura. Wireshark Network Analysis: The Official Wireshark Certified Network Analyst Study Guide : [англ.]. — Protocol Analysis Institute, dba "Chappell University", 2010-03-31. — P. 800. — ISBN 1-893939-99-5.
- Cheok, Roy Wireshark: A Guide to Color My Packets (англ.). SANS Institute (1 июля 2014). Дата обращения: 30 марта 2019. Архивировано 30 марта 2019 года.