Основы сниффинга. Режим promiscuous, хабы и свитчи

Если Вы знакомы с принципами работы сетевых анализаторов (снифферов) и знаете, какие условия должны быть выполнены для успешной эксплуатации подобных программ, можете не читать эту главу.

Помимо того что вы можете использовать LanDetective Internet Monitor для анализа собственного трафика, т.е. трафика компьютера, на котором запущена программа, все же более интересна возможность мониторинга сетевого трафика других компьютеров.
В то время как анализ собственного трафика задача простая, для перехвата трафика других компьютеров зачастую требуется приложить некоторые усилия, потому что по умолчанию чужой трафик Вам не доступен.
И так, для того чтобы получить возможность мониторинга трафика других компьютеров сети, необходимо решить каким образом будет обеспечиваться доступность (видимость) сетевого трафика.
Далее будет рассмотрено несколько возможных вариантов решения данной проблемы.
Заметим, что пригодность того или иного варианта напрямую зависит от конфигурации (топологии) Вашей сети и от используемого сетевого оборудования.

Мониторинг трафика в режиме Promiscuous.

Как было сказано выше, по умолчанию, сетевой трафик других компьютеров Вам не доступен. Дело в том, что сетевые пакеты всегда кому-то адресованы и если Вы не являетесь адресатом, то Ваш сетевой адаптер должен игнорировать такие пакеты. Однако практически с самого начала существования сети Ethernet, большинство сетевых адаптеров способны принимать пакеты, даже если они адресованы не им. Достигается это путём включения специального режима работы сетевого адаптера – promiscuous. В этом режиме сетевой адаптер без разбору принимает все пакеты в пределах видимости. Если Ваша локальная сеть построена на концентраторах (или хабах) достаточно переключить адаптер в режим promiscuous, чтобы получить доступ ко всему трафику в локальной сети. Ведь концентратор это примитивное устройство. Принимая пакет с одного порта, концентратор ретранслирует его на все остальные свои порты. Таким образом, достаточно подключиться к любому порту концентратора, чтобы иметь возможность видеть весь проходящий через него трафик.

Мониторинг трафика в коммутируемых сетях.

На сегодняшний день большинство локальных сетей строится на коммутаторах (или свитчах). В отличие от концентратора (хаба) коммутатор (свитч), принимая пакет с одного порта, ретранслирует его не на все другие порты, а лишь на тот, к которому подключен компьютер адресат. Коммутатор содержит в памяти таблицу, в которой указано соответствие MAC адресов и портов. Получая пакет, коммутатор сверяет MAC адрес получателя со своей таблицей и выбирает нужный порт. Из-за этой особенности коммутаторов, даже в режиме promiscuous Ваш адаптер будет иметь возможность принимать лишь те пакеты, которые адресованы Вам, потому что коммутатор физически препятствует попаданию чужих пакетов в Ваш сегмент сети.
Стоит заметить, что коммутаторы были придуманы совсем не для того чтобы ограничить возможность мониторинга трафика, а для уменьшения нагрузки на сеть и увеличения её пропускной способности. Наоборот, уже давно выпускаются управляемые (Managed) коммутаторы, которые среди прочего имеют специальную функцию, облегчающую работу системам анализа и учёта трафика. Благодаря этой возможности коммутатор может быть настроен таким образом, что все проходящие через него пакеты будут дублироваться на определённый порт. У разных производителей эта функция может называться по-разному: зеркалирование портов (Port Mirroring), Switched Port Analyzer (SPAN), Roving Analysis Port (RAP). Если Вы являетесь счастливым обладателем управляемого коммутатора, обратитесь к документации на Ваше устройство, чтобы узнать поддерживается ли такая функция и как её активировать. После активации данной функции, для мониторинга трафика достаточно подключиться к заданному порту коммутатора и переключить сетевой адаптер в режим promiscuous.
Несмотря на достоинства управляемых коммутаторов, сегодня все ещё очень широко распространены обычные (неуправляемые) коммутаторы.
Чтобы получить доступ к трафику в сети, построенной на неуправляемых коммутаторах, есть 2 пути:
1) Подключить управляемый коммутатор или хаб в сегмент сети, через который проходит интересующий Вас трафик (например, перед маршрутизатором, через который осуществляется выход в Интернет).
2) Воспользоваться программным методом мониторинга трафика в коммутируемых сетях, основанным на недостатках протокола ARP. Подробнее об этом методе читайте дальше.

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

Как было сказано выше, коммутатор (свитч), являясь точкой соединения сетевых устройств, ретранслирует пакеты только в те порты, к которым подключены получатели этих пакетов. Управляемые коммутаторы можно настроить так, что пакеты будут дублироваться на определённый порт. Но как быть, если в сети используются неуправляемые (обычные) коммутаторы или изменение конфигурации коммутатора невозможно? Далее будет кратко описана технология, применение которой в некоторых случаях может решить эту проблему.

Протокол ARP используется для того чтобы по известному IP адресу хоста получить соответствующий ему MAC адрес. В ситуации, когда хост в локальной сети обменивается данными с хостом в сети Интернет, локальному хосту нужно знать MAC адрес маршрутизатора, а маршрутизатору – MAC адрес локального хоста. Для получения MAC адреса в сеть посылается широковещательный запрос, в котором указывается IP адрес, для которого требуется найти MAC. Поскольку запрос широковещательный его получают все компьютеры локальной сети. Получив такой запрос, операционная система сравнивает IP адрес в запросе со своим IP адресом и если они совпадают, в ответ отсылается MAC адрес сетевого адаптера. Для того чтобы минимизировать количество ARP запросов, операционная система использует кэш – так называемую ARP таблицу, состоящую из пар IP/MAC. Операционная система делает ARP запрос, только если в таблице отсутствует искомый MAC. Важно отметить, что каждая запись в ARP таблице имеет ограниченное время жизни. Более подробную информацию о протоколе ARP можно найти в Интернет или ознакомившись с RFC 826.

Технология ARP-spoofing опирается на то, что протокол ARP не предусматривает защиты от фальсификации MAC адресов. На широковещательный ARP запрос должен ответить только владелец искомого MAC адреса, но, ни что не мешает любому компьютеру в сети ответить на ARP запрос. Кроме того многие операционные системы нормально воспринимают ответ на ARP запрос, который они не отсылали. Всё это позволяет обмануть почти любой хост в локальной сети, сообщив ему фальшивый MAC адрес. Например, любому хосту в локальной сети можно сообщить фальшивый MAC адрес маршрутизатора, а маршрутизатору можно сообщить фальшивый MAC адрес локального хоста. После этого хост и маршрутизатор, взаимодействуя друг с другом, будут отсылать пакеты по фальшивым MAC адресам. Что это нам даёт? Это позволяет нам сделать очень интересный трюк – мы можем сообщить в качестве фальшивого MAC адреса, наш собственный MAC, после чего коммутатор будет пересылать пакеты от локального хоста и маршрутизатора нам. Но получить пакеты недостаточно. Получая пакты необходимо пересылать их между маршрутизатором и локальным хостом, иначе они не смогут взаимодействовать друг с другом. В этом и состоит суть технологии ARP-spoofing – фальсифицируя MAC адреса, мы внедряемся между компьютерами в локальной сети. В частности, для перехвата Интернет трафика, мы можем внедриться между маршрутизатором и остальными компьютерами.

LanDetective Internet Monitor делает использование ARP-spoofing максимально простым и удобным. Однако, используя эту технологию для мониторинга сетевого трафика, Вы должны знать следующее:

  1. Успех применения ARP-spoofing зависит от программно аппаратной конфигурации Вашей сети. Сеть и компьютеры пользователей могут быть сконфигурированы таким образом, что применение ARP-spoofing будет невозможно.
  2. В зависимости от конфигурации Вашей сети применение ARP-spoofing может вызвать проблемы с подключением к сети Интернет у других пользователей.
  3. Многие брандмауэры воспринимают попытку использования ARP-spoofing как сетевую атаку. И они правы, так как эта технология, по сути, является разновидностью атаки Man-in-the-Middle (MitM).
Мы рекомендуем использовать ARP-spoofing только в крайнем случае и только если Вы полностью осознаёте возможные последствия использования данной технологии.

Мониторинг трафика в беспроводных сетях Wi-Fi (802.11)

В отличие от сетевых адаптеров Ethernet, использование адаптеров Wi-Fi для мониторинга трафика затруднено. Всё упирается в то, как реализована поддержка Wi-Fi в операционной системе Windows. Особенности реализации не позволяют стандартным драйверам Wi-Fi адаптеров функционировать в режиме promiscuous, хотя сами Wi-Fi адаптеры способны принимать любые пакеты (так же как и адаптеры Ethernet). По этой причине, некоторые решения для мониторинга беспроводных сетей базируются на собственных специальных драйверах, которые приходится разрабатывать отдельно для каждого поддерживаемого адаптера Wi-Fi.
LanDetective Internet Monitor не использует специальные драйверы и может работать с Wi-Fi адаптером только в двух режимах:

  1. Мониторинг только своего трафика, т.е. трафика принадлежащего компьютеру на котором запущена программа.
  2. Мониторинг сетевого трафика с использованием технологии ARP-spoofing. Об этой технологии было написано выше.