Анализаторы сетевых пакетов
Принципы работы пакетных снифферов
Ограничения использования снифферов
Обзор программных пакетных снифферов
Iris Network Traffic Analyzer4.07
Анализаторы сетевых пакетов, или снифферы, первоначально были разработаны как средство решения сетевых проблем. Они умеют перехватывать, интерпретировать и сохранять для последующего анализа пакеты, передаваемые по сети. С одной стороны, это позволяет системным администраторам и инженерам службы технической поддержки наблюдать за тем, как данные передаются по сети, диагностировать и устранять возникающие проблемы. В этом смысле пакетные снифферы представляют собой мощный инструмент диагностики сетевых проблем. С другой стороны, подобно многим другим мощным средствам, изначально предназначавшимся для администрирования, с течением времени снифферы стали применяться абсолютно для других целей. Действительно, сниффер в руках злоумышленника представляет собой довольно опасное средство и может использоваться для завладения паролями и другой конфиденциальной информацией. Однако не стоит думать, что снифферы это некий магический инструмент, посредством которого любой хакер сможет легко просматривать конфиденциальную информацию, передаваемую по сети. И прежде чем доказать, что опасность, исходящая от снифферов, не столь велика, как нередко преподносят, рассмотрим более детально принципы их функционирования.
Принципы работы пакетных снифферов
дальнейшем в рамках данной статьи мы будем рассматривать только программные снифферы, предназначенные для сетей Ethernet. Сниффер это программа, которая работает на уровне сетевого адаптера NIC (Network Interface Card) (канальный уровень) и скрытым образом перехватывает весь трафик. Поскольку снифферы работают на канальном уровне модели OSI, они не должны играть по правилам протоколов более высокого уровня. Снифферы обходят механизмы фильтрации (адреса, порты и т.д.), которые драйверы Ethernet и стек TCP/IP используют для интерпретации данных. Пакетные снифферы захватывают из провода все, что по нему приходит. Снифферы могут сохранять кадры в двоичном формате и позже расшифровывать их, чтобы раскрыть информацию более высокого уровня, спрятанную внутри (рис. 1).
Рис. 1. Схема работы сниффера
Для того чтобы сниффер мог перехватывать все пакеты, проходящие через сетевой адаптер, драйвер сетевого адаптера должен поддерживать режим функционирования promiscuous mode (беспорядочный режим). Именно в этом режиме работы сетевого адаптера сниффер способен перехватывать все пакеты. Данный режим работы сетевого адаптера автоматически активизируется при запуске сниффера или устанавливается вручную соответствующими настройками сниффера.
Весь перехваченный трафик передается декодеру пакетов, который идентифицирует и расщепляет пакеты по соответствующим уровням иерархии. В зависимости от возможностей конкретного сниффера представленная информация о пакетах может впоследствии дополнительно анализироваться и отфильтровываться.
Ограничения использования снифферов
аибольшую опасность снифферы представляли в те времена, когда информация передавалась по сети в открытом виде (без шифрования), а локальные сети строились на основе концентраторов (хабов). Однако эти времена безвозвратно ушли, и в настоящее время использование снифферов для получения доступа к конфиденциальной информации задача отнюдь не из простых.
Дело в том, что при построении локальных сетей на основе концентраторов существует некая общая среда передачи данных (сетевой кабель) и все узлы сети обмениваются пакетами, конкурируя за доступ к этой среде (рис. 2), причем пакет, посылаемый одним узлом сети, передается на все порты концентратора и этот пакет прослушивают все остальные узлы сети, но принимает его только тот узел, которому он адресован. При этом если на одном из узлов сети установлен пакетный сниффер, то он может перехватывать все сетевые пакеты, относящиеся к данному сегменту сети (сети, образованной концентратором).
Рис. 2. При использовании концентраторов сниффер способен перехватывать все пакеты сетевого сегмента
Коммутаторы являются более интеллектуальными устройствами, чем широковещательные концентраторы, и изолируют сетевой трафик. Коммутатор знает адреса устройств, подключенных к каждому порту, и передает пакеты только между нужными портами. Это позволяет разгрузить другие порты, не передавая на них каждый пакет, как это делает концентратор. Таким образом, посланный неким узлом сети пакет передается только на тот порт коммутатора, к которому подключен получатель пакета, а все остальные узлы сети не имеют возможности обнаружить данный пакет (рис. 3).
Рис. 3. При использовании коммутаторов сниффер способен перехватывать только входящие и исходящие пакеты одного узла сети
Поэтому если сеть построена на основе коммутатора, то сниффер, установленный на одном из компьютеров сети, способен перехватывать только те пакеты, которыми обменивается данный компьютер с другими узлами сети. В результате, чтобы иметь возможность перехватывать пакеты, которыми интересующий злоумышленника компьютер или сервер обменивается с остальными узлами сети, необходимо установить сниффер именно на этом компьютере (сервере), что на самом деле не так-то просто. Правда, следует иметь в виду, что некоторые пакетные снифферы запускаются из командной строки и могут не иметь графического интерфейса. Такие снифферы, в принципе, можно устанавливать и запускать удаленно и незаметно для пользователя.
Кроме того, необходимо также иметь в виду, что, хотя коммутаторы изолируют сетевой трафик, все управляемые коммутаторы имеют функцию перенаправления или зеркалирования портов. То есть порт коммутатора можно настроить таким образом, чтобы на него дублировались все пакеты, приходящие на другие порты коммутатора. Если в этом случае к такому порту подключен компьютер с пакетным сниффером, то он может перехватывать все пакеты, которыми обмениваются компьютеры в данном сетевом сегменте. Однако, как правило, возможность конфигурирования коммутатора доступна только сетевому администратору. Это, конечно, не означает, что он не может быть злоумышленником, но у сетевого администратора существует множество других способов контролировать всех пользователей локальной сети, и вряд ли он будет следить за вами столь изощренным способом.
Другая причина, по которой снифферы перестали быть настолько опасными, как раньше, заключается в том, что в настоящее время наиболее важные данные передаются в зашифрованном виде. Открытые, незашифрованные службы быстро исчезают из Интернета. К примеру, при посещении web-сайтов все чаще используется протокол SSL (Secure Sockets Layer); вместо открытого FTP используется SFTP (Secure FTP), а для других служб, которые не применяют шифрование по умолчанию, все чаще используются виртуальные частные сети (VPN).
Итак, те, кто беспокоится о возможности злонамеренного применения пакетных снифферов, должны иметь в виду следующее. Во-первых, чтобы представлять серьезную угрозу для вашей сети, снифферы должны находиться внутри самой сети. Во-вторых, сегодняшние стандарты шифрования чрезвычайно затрудняют процесс перехвата конфиденциальной информации. Поэтому в настоящее время пакетные снифферы постепенно утрачивают свою актуальность в качестве инструментов хакеров, но в то же время остаются действенным и мощным средством для диагностирования сетей. Более того, снифферы могут с успехом использоваться не только для диагностики и локализации сетевых проблем, но и для аудита сетевой безопасности. В частности, применение пакетных анализаторов позволяет обнаружить несанкционированный трафик, обнаружить и идентифицировать несанкционированное программное обеспечение, идентифицировать неиспользуемые протоколы для удаления их из сети, осуществлять генерацию трафика для испытания на вторжение (penetration test) с целью проверки системы защиты, работать с системами обнаружения вторжений (Intrusion Detection System, IDS).
Обзор программных пакетных снифферов
се программные снифферы можно условно разделить на две категории: снифферы, поддерживающие запуск из командной строки, и снифферы, имеющие графический интерфейс. При этом отметим, что существуют снифферы, которые объединяют в себе обе эти возможности. Кроме того, снифферы отличаются друг от друга протоколами, которые они поддерживают, глубиной анализа перехваченных пакетов, возможностями по настройке фильтров, а также возможностью совместимости с другими программами.
Обычно окно любого сниффера с графическим интерфейсом состоит их трех областей. В первой из них отображаются итоговые данные перехваченных пакетов. Обычно в этой области отображается минимум полей, а именно: время перехвата пакета; IP-адреса отправителя и получателя пакета; MAC-адреса отправителя и получателя пакета, исходные и целевые адреса портов; тип протокола (сетевой, транспортный или прикладного уровня); некоторая суммарная информация о перехваченных данных. Во второй области выводится статистическая информация об отдельном выбранном пакете, и, наконец, в третьей области пакет представлен в шестнадцатеричном виде или в символьной форме ASCII.
Практически все пакетные снифферы позволяют производить анализ декодированных пакетов (именно поэтому пакетные снифферы также называют пакетными анализаторами, или протокольными анализаторами). Сниффер распределяет перехваченные пакеты по уровням и протоколам. Некоторые анализаторы пакетов способны распознавать протокол и отображать перехваченную информацию. Этот тип информации обычно отображается во второй области окна сниффера. К примеру, любой сниффер способен распознавать протокол TCP, а продвинутые снифферы умеют определять, каким приложением порожден данный трафик. Большинство анализаторов протоколов распознают свыше 500 различных протоколов и умеют описывать и декодировать их по именам. Чем больше информации в состоянии декодировать и представить на экране сниффер, тем меньше придется декодировать вручную.
Одна из проблем, с которой могут сталкиваться анализаторы пакетов, невозможность корректной идентификации протокола, использующего порт, отличный от порта по умолчанию. К примеру, с целью повышения безопасности некоторые известные приложения могут настраиваться на применение портов, отличных от портов по умолчанию. Так, вместо традиционного порта 80, зарезервированного для web-сервера, данный сервер можно принудительно перенастроить на порт 8088 или на любой другой. Некоторые анализаторы пакетов в подобной ситуации не способны корректно определить протокол и отображают лишь информацию о протоколе нижнего уровня (TCP или UDP).
Существуют программные снифферы, к которым в качестве плагинов или встроенных модулей прилагаются программные аналитические модули, позволяющие создавать отчеты с полезной аналитической информацией о перехваченном трафике.
Другая характерная черта большинства программных анализаторов пакетов возможность настройки фильтров до и после захвата трафика. Фильтры выделяют из общего трафика определенные пакеты по заданному критерию, что позволяет при анализе трафика избавиться от лишней информации.
Далее мы рассмотрим возможности нескольких доступных для скачивания снифферов, которые ориентированы на использование с платформами Windows.
Ethereal 0.10.14
Пакетный сниффер Ethereal 0.10.14 (www.ethereal.com) является, пожалуй, одним из лучших и поистине легендарных некоммерческих (а значит, бесплатных) пакетных анализаторов. Этот сниффер изначально был создан под Linux-платформы и основывался на базе утилиты Libpcap. Впоследствии появилась Windows-версия сниффера Ethereal, которая основывалась на базе утилиты WinPcap (Windows-версия Libpcap).
Утилита WinPcap (www.winpcap.org) представляет собой стандартный инструмент, посредством которого Windows-приложения могут непосредственно получать доступ к сетевому адаптеру (NIC-уровню) и перехватывать сетевые пакеты. Кроме того, драйвер WinPcap имеет дополнительные функциональные возможности, заключающиеся в фильтрации пакетов, сборе сетевой статистики и поддержке возможности удаленного перехвата пакетов.
В состав утилиты WinPcap входит драйвер, обеспечивающий взаимодействие с NIC-уровнем, и библиотека, отвечающая за взаимодействие с интерфейсом API.
Сниффер Ethereal 0.10.14 поставляется в комплекте с утилитой WinPcap 3.1, однако с сайта www.winpcap.org можно скачать версию WinPcap 3.2 alpha 1.
Несмотря на то что графический интерфейс утилиты Ethereal 0.10.14 достаточно понятен, к программе прилагается очень подробный учебник (более 200 страниц).
Ethereal 0.10.14 один из немногих снифферов, который поддерживает как графический интерфейс, так и запуск из командной строки, что удобно при составлении сценариев или активизации функций перехвата пакетов в случае возникновения в сети определенных событий.
Функциональные возможности пакета Ethereal 0.10.14 очень обширны и выходят далеко за рамки обычных возможностей других пакетных снифферов.
В пакете Ethereal 0.10.14 встречаются практически все функции, которые только могут быть у анализатора пакетов. Программа может декодировать 752 протокола и поддерживает работу в Wi-Fi-сетях.
Графический интерфейс пакета Ethereal 0.10.14 вполне традиционен и содержит три области: отображения перехваченных пакетов, отображения статистической информации о конкретном выбранном пакете, содержимого конкретного пакета (рис. 4).
Рис. 4. Главное окно программы Ethereal 0.10.14
Графический интерфейс программы Ethereal облегчает создание пакетных фильтров как для файлов перехваченных пакетов (фильтры отображения), так и для «живого» перехвата (фильтры перехвата). После изучения синтаксиса фильтров программы Ethereal можно создавать фильтры самостоятельно, присваивать им имена и сохранять их для последующего использования (рис. 5). Программа Ethereal обладает довольно удобным интерфейсом для создания фильтров. Достаточно нажать на кнопку Add Expression, чтобы создать фильтры в диалоговом окне Filter Expression.
Рис. 5. Создание фильтра в программе Ethereal 0.10.14
Стоит отметить, что программа Ethereal обладает очень гибкими возможностями по созданию фильтров. Программа способна осуществлять фильтрацию практически по любой характеристике пакета и по любому значению этой характеристики. Кроме того, фильтры можно комбинировать друг с другом с использованием булевых операторов AND и OR.
Применение фильтров в анализаторе Ethereal позволяет легко выделить из общего потока перехваченной информации именно те или даже тот единственный кадр, который требуется. Рассмотрим, к примеру, как найти при помощи фильтра пакет с паролем при подключении пользователя к Интернету через dial-up-соединение.
Прежде всего запускаем сниффер (это можно сделать и из командной строки, причем удаленно и незаметно для пользователя) и накапливаем информацию до тех пор, пока пользователь не установит соединение с Интернетом.
Далее необходимо настроить фильтр, позволяющий найти нужный пакет. Поскольку процесс аутентификации пользователя проходит по протоколу PPP PAP, необходимо создать фильтр на выделение этого протокола. Для этого в строке выражения достаточно указать «pap» и присвоить имя новому фильтру (например, DialUp_Password) (рис. 6).
Рис. 6. Настройка фильтра для получения пакета с паролем
После применения фильтра из всей совокупности пакетов останутся только два: пакет-запрос на аутентификацию (Authenticate-Request) и пакет подтверждения аутентификации (Authenticate-ACK). Понятно, что пароль (как правило, он передается провайдеру в незашифрованном виде) содержится в первом пакете, в чем несложно убедиться, просмотрев содержимое самого пакета (рис. 7).
Рис. 7. Содержимое пакета
Еще один пример эффективного использования программы Ethereal 0.10.14 в мирных целях это точная настройка размера TCP-окна. Чтобы оптимальным образом настроить размер TCP-окна, необходимо запустить сниффер в процессе скачивания файла по сети и затем, настроив соответствующим образом фильтр, просмотреть количество запросов на повторную передачу пакетов, количество пакетов-подтверждений и ошибочных пакетов. Манипулируя с размером TCP-окна, можно добиться максимально возможной скорости передачи, снизив количество подтверждений при хорошем качестве связи или уменьшив число запросов на повторную передачу, при не очень хорошем качестве связи.
Помимо прекрасных возможностей по созданию разного рода фильтров, программа Ethereal позволяет выполнять всесторонний анализ трафика, представляя его в графической форме или в форме статистического отчета. К примеру, можно выполнить анализ TCP-трафика по пропускной способности, по времени передачи туда и обратно и по номерам пакетов. Результаты анализа представляются в виде графиков. Так, анализ, использующий порядковые номера пакетов и время, позволяет получить представление о том, какой объем данных был послан в различные моменты времени, поскольку порядковые номера пакетов увеличиваются на размер пакета данных.
В целом можно сказать, что пакетный анализатор Ethereal 0.10.14 является очень мощным инструментальным средством диагностики сетей. Конечно, для детального освоения пакета потребуется немало времени. Однако если все-таки удастся преодолеть этот барьер и освоить пакет Ethereal, то необходимость освоения других аналогичных продуктов попросту отпадет.
Analyzer v.2.2
Утилита Analyzer v.2.2 компании NetGroup еще один небольшой по объему пакетный анализатор, распространяемый на бесплатной основе. К достоинствам данной утилиты можно отнести то, что она не требует инсталляции на компьютер. Единственное, что необходимо, наличие установленной утилиты WinPcap, которая используется сниффером Analyzer v.2.2. Кроме того, пакетный анализатор Analyzer v.2.2. очень прост в обращении и может быть рекомендован для начинающих пользователей. Недостатки этого анализатора вытекают из его достоинств простота в обращении не позволяет производить глубокий анализ пакетов и создавать фильтры по любой характеристике пакета.
Утилита Analyzer v.2.2 поддерживает выбор интерфейса: сетевой адаптер или аналоговый модем. Работа в беспроводных сетях не предусмотрена.
Графический интерфейс пакетного анализатора Analyzer v.2.2 содержит три традиционных окна (рис. 8). В первом окне отображаются перехваченные пакеты с информацией о времени получения пакета, MAC-адресах отправителя и получателя, IP-адресах отправителя и получателя, протоколе передачи, портах источника и получателя пакетов, размер TCP-окна, номер последовательности пакета и номер подтверждения этого пакета. Во втором окне выводится декодированная информация об отдельных полях пакета, а третье окно отображает содержимое самого пакета.
Рис. 8. Главное окно пакетного анализатора Analyzer v.2.2
Из недостатков данного пакета можно отметить невозможность использования фильтров после сбора информации. Единственное, что можно сделать в данном случае, это выделить по заданному фильтру пакеты. Сами фильтры, как мы уже отмечали, не предоставляют гибкого механизма (в сравнении с пакетом Ethereal) сбора требуемой информации.
Для сравнения возможностей пакетов Analyzer v.2.2 и Ethereal 0.10.14 мы провели захват одного и того же трафика и проанализировали его сначала с помощью программы Ethereal 0.10.14, а затем Analyzer v.2.2. Как и ожидалось, информация, выдаваемая об отдельном пакете анализатором Ethereal 0.10.14, более подробная, чем та, что выдает анализатор Analyzer v.2.2.
Поэтому еще раз подчеркнем, что программа Analyzer v.2.2 представляет интерес только для начинающих пользователей и в качестве средства ознакомления с принципами функционирования сетей и структурами пакетов различных протоколов.
CommView 5.0
В отличие от всех рассмотренных выше анализаторов, программа CommView 5.0 (www.tamos.com) распространяется на коммерческой основе и для свободного скачивания доступна лишь ее демонстрационная версия с урезанной функциональностью.
Данный пакетный анализатор предназначен для мониторинга локальной сети и соединения с Интернетом. Он способен захватывать пакеты, проходящие через сетевой адаптер или модем, декодировать их и представлять достаточно подробную информацию в удобном для восприятия виде. В отличие от большинства снифферов, программа CommView 5.0 не требует предварительной установки на ПК WinPcap.
Сниффер CommView 5.0 поддерживает операционные системы Windows 98/Me/NT/2000/XP/2003 и Windows XP 64-bit Edition. Перечень поддерживаемых протоколов довольно обширен, и в этом плане можно рассчитывать на предоставление достаточно подробной информации о перехваченных пакетах.
Пакетный анализатор CommView 5.0 поддерживает возможность создания гибко настраиваемых фильтров (правил), однако недостатком здесь является то, что эти фильтры нельзя применить к уже имеющимся собранным пакетам (создаваемые правила распространяются только на захват пакетов).
Графический интерфейс программы CommView 5.0 традиционен три окна, в первом из которых отображаются захваченные пакеты, во втором декодированная информация об отдельном пакете, а в третьем содержимое самого пакета (рис. 9).
Рис. 9. Главное окно пакетного анализатора CommView 5.0
Информация в окне с захваченными пакетами довольно скудная. Отображаются лишь тип протокола, IP- и MAC-адреса источника и получателя пакета, время и порт назначения и отправления.
Окно с декодированной информацией об отдельном пакете значительно более информативно и по детализации предоставляемой информации не уступает анализатору Ethereal (во всяком случае это касается протокола TCP).
К достоинствам анализатора CommView 5.0 можно отнести возможность просмотра подробной статистической информации о сеансе перехвата, которая представляется в отдельном окне в удобном графическом виде (рис. 10), а также составление отчета в отдельном файле.
Еще одним отличием анализатора CommView 5.0 является возможность настройки сигнала тревоги по предопределенным событиям. В частности, можно задать правила, при выполнении которых будет послано оповещение по электронной почте.
Рис. 10. Статистическая информация о сеансе перехвата в программе CommView 5.0
Кроме того, сниффер CommView 5.0 позволяет заменять IP- и MAC-адреса сетевого адаптера на имена пользователей, что упрощает мониторинг сети. С целью диагностики сети данный сниффер имеет встроенный генератор трафика с возможностью настройки размера передаваемого пакета и скорости генерации пакетов.
И наконец, последняя особенность сниффера CommView 5.0 возможность создания удаленного агента, что позволяет производить удаленный мониторинг сети. Для реализации данной функции на удаленном ПК необходимо инсталлировать программу Remote Agent, а используя консоль CommView 5.0, можно устанавливать соединение с компьютером, на котором инсталлирована утилита Remote Agent.
Iris Network Traffic Analyzer4.07
Пакетный анализатор Iris 4.07 (www.eeye.com) от компании eEye digital Security представляет собой мощное инструментальное средство для диагностики локальных сетей и каналов связи с Интернетом. Программа Iris 4.07 распространяется на коммерческой основе, однако на сайте производителя доступна ее ознакомительная версия.
Несмотря на заявленную в документации поддержку только операционных систем Windows 95/98/NT/2000, реально этот список можно расширить, и, скорее всего, данная программа способна работать с любой операционной системой семейства Windows.
Графический интерфейс программы (рис. 11) интуитивно понятен, прост и традиционен для пакетных снифферов. Имеется три окна, в первом из которых отображаются перехваченные пакеты с достаточно подробной информацией о каждом пакете, включающей MAC- и IP-адреса источника и отправителя пакетов, тип пакета, протокол, порт отправления и назначения, размер пакета, а также порядковые номера SEQ и ACK. Подробная декодированная информация о каждом отдельном пакете доступна во втором окне, а содержимое каждого пакета в третьем окне. Нужно отметить, что по степени детализации предоставляемой информации данный пакет не уступает анализатору Ethereal.
Рис. 11. Главное окно пакетного анализатора Iris 4.07
Пожалуй, единственный недостаток данного анализатора заключается в том, что отображаемые в первом окне пакеты не маркируются цветом (как это делается в других анализаторах), что создает определенное неудобство при визуальном восприятии информации.
Пакетный анализатор Iris 4.07 позволяет очень гибко и в то же время просто настраивать фильтры для захвата пакетов. Так, используя диалоговое окно (рис. 12) Edit filter settings, можно создавать фильтры по MAC-адресам источника и получателя, по IP-адресам источника и получателя, по портам, протоколам, а также по вхождению в содержимое пакета определенного слова. Кроме того, можно настраивать фильтры на размер пакета и на фрагмент пакета в HEX-формате.
Рис. 12. Настройка пакетного фильтра в анализаторе Iris 4.07
Отметим, что недостатком программы Iris 4.07 является то, что фильтры можно создавать только для вновь принимаемых пакетов, а реализовать фильтрацию уже перехваченных пакетов не представляется возможным. Вместо этого в программе предусмотрен поиск нужных пакетов по фильтру.
Другим отличием программы Iris 4.07 является возможность отображения в графической форме статистической информации во время запуска режима захвата пакетов. Так, имеется возможность отображать график скорости передачи пакетов (рис. 13), диаграмму распределения размеров пакетов (рис. 14) и многое другое.
Рис. 13. График скорости передачи пакетов
в анализаторе Iris 4.07
Рис. 14. Диаграмма распределения размеров пакетов в анализаторе Iris 4.07
Помимо перечисленных возможностей анализатор пакетов Iris 4.07 позволяет создавать HTML-отчеты о сеансе связи, куда включается наиболее важная информация, в том числе статистика о посещении сайтов, объеме переданного и принятого трафика и многое другое. Также программа Iris 4.07 имеет встроенный генератор трафика, что удобно для диагностики узких мест в сети.
Еще одной особенностью программы Iris 4.07 является наличие встроенного модуля, позволяющего фиксировать все попытки соединения с компьютером, что обеспечивает отслеживание попыток несанкционированного проникновения в сеть.