Рыбная ловля в локальной сети Крис Касперски aka мыщъх Спецвыпуск: Хакер, номер #047, стр. 047-028-5 Некоторые операционные системы самостоятельно обнаруживают факт захвата своего 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 – коммутатор), также называемый интеллектуальным хабом/маршрутизатором, представляет собой разновидность репитера, передающего данные только на порт того узла, которому они адресованы, что предотвращает возможность перехвата трафика (во всяком случае, теоретически). |