Кстати, если маршрутизатор не успевает маршрутизировать поступающие пакеты, он автоматически переключается в широковещательный режим, становясь обычным хабом. Загрузив маршрутизатор работой по самые помидоры (или дождавшись пиковой загрузки сети), атакующий может преспокойно снифать трафик и в пассивном режиме.
Обнаружение активного перехвата
Активная природа ARP-атаки демаскирует злоумышленника, и сетевые анализаторы типа arpwatch легко обнаруживают перехват. Они смотрят все пролетающие по сети пакеты (то есть работают как снифер), вытаскивают ARP-ответы и складывают их в базу данных, запоминая, какому MAC-адресу принадлежит какой IP-адрес. При обнаружении несоответствия администратору отправляется e-mail, к моменту получения которого нарушитель обычно успевает скрыться со всем награбленным трафиком. К тому, же в сетях с DHCP (сервером динамической раздачи IP-адресов) arpwatch выдает большое количество ложных срабатываний, так как одному и тому же MAC-адресу назначаются различные IP-адреса.
Некоторые операционные системы самостоятельно обнаруживают факт захвата своего IP-адреса посторонним узлом, но только в том случае, если злоумышленник использовал широковещательную рассылку (очень зря). К тому же, по малопонятным для меня мотивам ОС не отправляет ARP-ответ, отбирая похищенный IP-адрес назад, а просто отделывается многоэтажным предупреждением, смысл которого до рядового пользователя все равно не дойдет.
Статическая ARP-таблица, формируемая вручную, в этом плане выглядит намного более привлекательной, правда, даже после перехода на нее многие операционные системы продолжают принимать подложные ARP-ответы, безропотно отдавая себя в лапы злоумышленника, и убедить их не делать этого очень трудно, особенно если ты не гуру.
Клонирование карты
Физический адрес сетевой карты обычно жестко прошит в ПЗУ, и по стандарту никакой MAC не может использоваться дважды. Тем не менее, всякое ПЗУ можно перепрограммировать (особенно, если это перепрограммируемое ПЗУ типа EEPROM, каким на новых картах оно обычно и бывает). Также некоторые карты позволяют изменять свой MAC вполне легальными средствами (например, все той же многострадальной ifconfig). Наконец, заголовок Ethernet-пакета формируется программными, а не аппаратными средствами, поэтому нечестный драйвер может запросто прописать чужой MAC!
Клонирование MAC-адреса позволяет перехватывать трафик даже без присвоения чужого IP и без перевода карты в неразборчивый режим.
Обнаружения клонирования и противостояние ему
Факт клонирования (которым, кстати, любят баловаться пользователи популярных ныне домашних сетей) легко обнаружить с помощью протокола RARP (Reverse ARP), позволяющего определить, какой IP-адрес соответствует данному MAC. Каждому MAC должен соответствовать только один IP-адрес, в противном случае здесь что-то не так. Естественно, если атакующий не только клонирует MAC, но и захватит IP, этот прием не сработает.
Качественные маршрутизаторы позволяют байндить (от англ. bind – связывание) порты, закрепляя за каждым «проводом» строго определенный MAC, обессмысливая тем самым его клонирование.
Заключение
Разработка собственного снифера – это хороший способ поупражняться в программировании, покопаться в недрах операционной системы и изучить большое количество сетевых протоколов. Короче говоря, совместить приятное с полезным. Можно, конечно, использовать и готовые утилиты, но это все равно, что стрелять в кабана, привязанного к дереву – ни азарта, ни удовлетворения.
Хабы и ухабы
Хабом (от англ. hub – ступица колеса), или концентратором, называют многопортовый репитер (повторитель). Получив данные на один из портов, репитер немедленно перенаправляет их на остальные порты. В коаксиальных сетях репитер не является обязательным компонентом, и при подключении методом общей шины можно обойтись без него.
В сетях на витой паре и коаксиальных сетях, построенных по топологии «звезда», репитер присутствует изначально.
Свитч (от англ. switch – коммутатор), также называемый интеллектуальным хабом/маршрутизатором, представляет собой разновидность репитера, передающего данные только на порт того узла, которому они адресованы, что предотвращает возможность перехвата трафика (во всяком случае, теоретически).
Перехват трафика на Dial-Up
Для перехвата трафика на модемном подключении через обычную или электронную АТС (то есть не через кабельный модем) необходимо перепрограммировать маршрутизатор, находящийся у провайдера, что непросто сделать, однако у большинства провайдеров он так криво настроен, что посторонний трафик сыплется сам – только успевай принимать. В основном он состоит из обрывков бессвязного мусора, но порой в нем встречается кое-что интересное (например, пароли на почтовые ящики).
Читать дальше