Методика определения пакетных снифферов

Во многих Интернет-программах для идентификации пользователя выступает его имя, а для аутентификации – пароль.

Часто эти данные передаются в открытом виде или используются слабые алгоритмы аутентификации, которые основываются на неустойчивых алгоритмах шифрования. Одним из способов несанкционированного получения данной информации является анализ сетевого трафика или перехват, который производится с помощью специальной программы-анализатора пакетов (сниффера). Она перехватывает все пакеты, которые передаются в сегменте сети, и выделяет из них идентификатор пользователя и его пароль [1].

Сложность обнаружения снифферов обусловлена тем, что данная атака по характеру действия на распределённую вычислительную систему относится к пассивному типу, то есть ничего не отсылает и не вносит изменения в хранимую информацию. Соответственно, обнаружить местонахождение сниффера можно только по признаку, что сетевая карта на данном компьютере переведена в режим прослушивания или так называемый безупорядоченный режим (promiscuous mode). По умолчанию сетевые адаптеры отсеивают пакеты с неподходящим MAC-адресом, но поддерживают данный режим (согласно спецификации РС99). А программа-сниффер перехватывает все передаваемые по сети пакеты независимо от того, совпадает заголовок пакета с MAC-адресом машины, на которой запущен сниффер, или нет [2].
Для перевода сетевого адаптера в режим прослушивания необходим специальный драйвер. Чаще всего используются следующие [3]:

драйвер от Microsoft – находится в Driver Development Kit (DDK); большинство снифферов операционной системы (ОС) Windows используют именно его;
WinPCap – специализированный драйвер, написанный в Политехническом институте Турину; используется, например, такими программами как: Cain, EtherSnoop, NMAP;

LIBNET – драйвер, портованый с *nix; обычно используется такими же портоваными программами.

Так как каждый такой драйвер определённой ОС имеет свои особенности работы в безупорядоченном режиме, следовательно, необходимым становится выбор наиболее подходящего и эффективного метода обнаружения сниффера.

Для обнаружения сниффера имеют место следующие методы [4].

Метод ICMP. Простейший из методов, в котором используется icmp-запрос (так называемый пинг). При отправке таких запросов первым делом производится сверка MAC-адресов в заголовке пакета. Если он совпадает с адресом компьютера-получателя, тогда пакет будет получен из сети и обработан. При этом на подозрительный компьютер (его IP адрес нам известен) отправляется пакет с неправильным MAC, но содержащий внутри вполне корректный IP-пакет. Компьютер, работающий в обычном режиме, на icmp-запрос с такими параметрами отвечать не будет. Компьютер с запущенным сниффером перехватит этот пакет, обработает его (благодаря корректному ядру) и мы получим icmp-ответ. Это будет главным свидетельством наличия перехватывающей программы на данном компьютере.

Метод ARP. При отправке ARP-запроса с широковещательным адресом (FF-FF-FF-FF-FF-FF) ответ будет получен от всех компьютеров в локальной сети. Если сетевая карта находится в прослушивающем режиме, то будет производиться проверка только первого октета MAC-адреса. В том случае, если он будет равен FF, пакет уже считается широковещательным. То есть необходимо отправить пакет с MAC-адресом FF-00-00-00-00-00, содержащий внутри корректный icmp-пакет (IP-адрес совпадает с адресом получателя). Обычный компьютер проигнорирует подобный пакет, а компьютер с запущенным сниффером перехватит и обработает его.

Получение ответа будет свидетельствовать о наличии promiscuous mode.

Метод DNS. Современные снифферы обычно совершают обратные запросы на получение DNS по IP-адресу. В этом заключается обычный интерес, какой же ресурс скрывается за данным IP-адресом, так как IP-адреса безлики, а DNS могут хотя бы приблизительно сообщить о том, чем же является данный компьютер, сервером или простой рабочей станцией. В этом случае выполняется операция резолва IP адреса – определение доменного имени по этому адресу.

Метод заключается в том, что в сеть выбрасывается пакет с заранее несуществующим IP-адресом. Компьютер с включенным сниффером перехватывает пакет и отправляет Resolve DNS запрос с данным IP-адресом. На сервере устанавливается специальный детектор, работающий на принципе аудита событий. Он позволит отследить все резолв-запросы, в том числе и запрос на данный несуществующий IP-адрес. Компьютер, с которого был послан запрос и будет компьютером с запущенным прослушивателем.
Особенностью данного метода является тот факт, что обычные хакерские подслушивающие программы резолвят IP-адреса как только они появляются, в то время как коммерческие снифферы откладывают это действие на период просмотра раскодированного протокола, что и надо учитывать при установке детектора.

Метод ловушки. Основан на человеческом факторе. За каждым подслушивающим устройством, будь то программа или аппаратный жучок, всегда стоит человек. И на человеческом любопытстве легко сыграть. При этом в сеть запускается пакет с именем пользователя (юзернеймом, логином) и паролем для подключения к серверу аутентификации. Данные передаются в незашифрованном виде. Обычно на какой-либо машине в сети настраивается сервис, и в сеть передаются данные о каком-либо вымышленном пользователе, не имеющем действительных привилегий. Сниффер перехватывает пакет и сохраняет данные. Человек, обнаруживший столь интересную информацию, наверняка попробует подключиться к серверу аутентификации. На сервере устанавливается специальный детектор, который регистрирует, что кто-то пытался получить доступ к серверу, используя уже известные нам логин и пароль. По IP адресу легко определяется машина, с которой это пытались сделать. Соответственно, мы вычисляем сниффер и того, кто за этим стоит.

Метод исходящего маршрута. Создается пакет для пингования, но при этом в его заголовке указывается отдельный маршрут. Таким образом, пакет будет передаваться компьютеру А через компьютер Б. В компьютере Б отключается маршрутизация, то есть он не сможет перенаправлять данный пакет. Тогда при получении ответа можно сделать вывод о том, что пакет был перехвачен непосредственно из сети и обработан. Можно не отключать маршрутизацию на выбранном компьютере, а пронаблюдать факт перехвата пакета с помощью данных в поле TTL. Поле TTL показывает через сколько маршрутизаторов прошел пакет, и было создано специально для того, чтобы не нашедший своего адресата пакет был удален.

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

Метод хоста. Это метод для определения сниффера на данном локальном компьютере. Проверка осуществляется следующим образом. Вводится в командной строке: # if config –a. Если в результате будет получена строчка, содержащая флаг PROMISC, то соответственно сетевая карта на данном локальном компьютере переведена в безупорядоченный режим, что свидетельствует о наличии подслушивающего устройства.

Метод сетевой латентности. Заключается в том, что компьютер с запущенным сниффером затрачивает какое-то время на обработку каждого пакета, передаваемого по сети, независимо от того, кому этот пакет предназначен. Соответственно, воспользовавшись этим, можно высчитать время отклика для каждого компьютера. Этот метод довольно громоздкий, но демонстрирует наглядные результаты. Суть в том, что в сеть запускается шторм пакетов, не принадлежащих ни одному компьютеру, с несуществующим MAC-адресом. Все машины в сети будут игнорировать их и время отклика будет таким же, как при отправке единичного пакета. Компьютер с включенным сниффером примет все пакеты и будет их обрабатывать. Время отклика существенно увеличится. Простое пингование всех машин в сети позволит нам обнаружить компьютер с запущенным сниффером.

Таким образом, проведя анализ всех вышеперечисленных методов, можно установить наиболее подходящий по временным затратам и работоспособности. К сожалению, невозможно получить полной гарантии, что сниффер будет обнаружен в ста случаях из ста. Необходимо учитывать локальные особенности построения сети и организации рабочей зоны пользователей. Сейчас доступно большое число программ, позволяющих обнаружить сниффер в сети. Они могут работать как под Windows, так и под Linux на основе методов ICMP, ARP, DNS, сетевой латентности. Но наиболее эффективным обнаружение подслушивающего режима будет в том случае, если в качестве ОС будет установлен Linux.

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

Лучший способ противодействия снифферам – это предотвратить какую-либо возможность для хакеров или просто любопытных устанавливать подобные программы и перехватывать информацию, передаваемую по сети в открытом незашифрованном виде. Соответственно, в ход идут организационные и криптографические методы. Дешифровка данных занимает определенный объем времени, и при стойком алгоритме кодирования нет возможности даже отсортировать пакеты, что делает работу сниффера практически бесполезной. Один из самых надежных, но недешевых способов – пользоваться в сети активными интеллектуальными хабами.

Литература:
1. Медведовский И. Д. Атака на Internet / И. Д. Медведовский, П. В. Семьянов, Д. Г. Леонов. – 3-е изд. – М.: ДМК, 2000. – 336 с.
2. Мак-Клар С. Секреты хакеров. Безопасность сетей – готовые решения / С. Мак-Клар, Д. Скембрей, Д. Курц – 4-е изд. — М.: Вильямс, 2004. – 656 с.
3. Галицкий А. В. Защита информации в сети – анализ технологий и синтез решений / А. В. Галицкий, С. Д. Рябко, В. Ф. Шаньгин – М.: ДМК Пресс, 2004. – 616 с.
4. http://void. ru/content/1131

Опубликовать в twitter.com

Обсуждения закрыты для данной страницы