ВВЕДЕНИЕ В СЕТИ

Проблемы безопасности в локальных сетях Ethernet

Алексей Савельев

Более века назад английский физик Джеймс Максвелл открыл волновую природу электромагнитного излучения. Поначалу ученым казалось, что необходимым условием распространения электромагнитных волн было существование некоего "светоносного эфира" (luminiferous ether), окружающего нас. Лишь эксперимент Майкельсона-Морли, проведенный в 1887 г., развеял это заблуждение и доказал возможность распространения волн и в вакууме.

Вряд ли кто-нибудь вспомнил бы о "светоносном эфире" в наше время, если бы не компания Xerox, не побоявшаяся окрестить разработанную ею технологию локальных компьютерных сетей в честь ошибки прошлого - Ethernet.

Сегодня технология Ethernet и принятый на ее основе стандарт IEEE 802.3 - стали самым популярным решением для организации локальных вычислительных сетей. Сети Ethernet завоевали популярность благодаря большой пропускной способности, простоте наладки и невысокой стоимости сетевого оборудования. Участки сетей, на которых скорости Ethernet в 10 Мбит/с недостаточно, несложно увеличить до 100 Мбит/c (Fast Ethernet) или даже 1 Гбит/с (Gigabit Ethernet).

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

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

Локальное широковещание

В отличие от каналов "точка-точка", характерных для распределенных глобальных сетей, локальные сети обычно характеризуются широковещательной средой. Другими словами, в локальных сетях компьютеры часто совместно используют один и тот же кабель. В итоге передаваемую информацию может считывать не только получатель сообщения, но и все остальные компьютеры, подключенные к этому же сегменту сети. Нечто похожее наблюдается и в спутниковых сетях, когда получателями сигнала, транслируемого со спутника, могут быть сразу несколько удаленных друг от друга станций. Но если в случае спутниковых сетей широковещание - это то, ради чего сети и создаются (вспомним, например, телевизионное широковещание), то в случае компьютерных сетей широковещательная рассылка информации мера вынужденная и полезная только любителям покопаться в чужих секретах. Рассмотрим подробнее механизм широковещательной передачи информации в сетях Ethernet

Алгоритмы множественного доступа

Итак, основная проблема, свойственная локальным сетям, - как заставить множество компьютеров "ужиться" на одном проводе.

Когда одновременно говорят сразу несколько людей, разобрать что-либо очень трудно. Если начнут "говорить" одновременно несколько компьютеров, выделить из общего цифрового гвалта полезную информацию будет просто невозможно. Компьютер, в отличие от людей, не может поднять руку и попросить тишины. Для решения данной проблемы требуются более сложные действия.

Один из первых алгоритмов совместного доступа к каналу, получивший название ALOHA, был разработан Норманом Абрамсоном (Norman Abramson) в 70-х гг. Принцип работы ALOHA прост и демократичен - любая станция может передавать информацию тогда, когда ей только захочется. О возникновении конфликта с другим передатчиком станция может узнать, прослушивая собственный сигнал на предмет его искажения. Если искажение произошло и информация была потеряна, станция ждет некоторый произвольный промежуток времени и повторяет передачу.

Данный алгоритм (а вернее, его немного модифицированный вариант - Slotted ALOHA) используется сегодня в спутниковых сетях. Эффективность ALOHA не очень высока - более половины (точнее, (1-1/e)*100 %) полосы пропускания канала теряется впустую, что является следствием "эгоизма" передающих станций, не "прислушивающихся" к сигналам соседей.

В локальных сетях, в отличие от спутниковых, каждая станция перед началом передачи может легко определить, свободен канал или занят, "прослушав" несущую сигнала. К этому классу алгоритмов относится и алгоритм CSMA/CD сетей Ethernet.

В соответствии с алгоритмом CSMA/CD, компьютер, желающий передать по общему каналу данные, должен удостовериться, что канал свободен. После этого может передаваться сообщение, которое и "услышат" все соседи. Начав передачу, станция продолжает "прослушивать" несущую, определяя, не произошло ли искажений сигнала или коллизий (collision) с другими станциями. (Что вполне вероятно, т. к. несколько станций могут, например, начать передачу одновременно). При определении коллизии станция тут же прерывает передачу и "замолкает" на произвольный интервал времени, чтобы повторить передачу позднее.

Если станция ничего не передает сама, она тем не менее продолжает "слушать" сообщения, переданные по сети остальными ПК. Увидев в переданном кадре данных свой адрес, станция копирует его в собственную память и отправляет для обработки протоколам более высокого уровня.

Как видно, и алгоритм передачи (CSMA/CD), и алгоритм приема информации требуют от каждого компьютера непрерывного "прослушивания" абсолютно всего сетевого трафика. Известные алгоритмы множественного доступа, при которых станции отключались бы от сети в момент передачи "чужой" информации, так и остались реализованными лишь на бумаге по причине своей чрезмерной сложности и неэффективности.

Беспорядочный режим

Итак, сетевой адаптер каждого компьютера "слышит" все, о чем говорят его соседи по сегменту сети, но обрабатывает только кадры, содержащие в поле "адрес назначения" собственный адрес компьютера (точнее, MAC-адрес его сетевого адаптера). Однако все современные сетевые адаптеры Ethernet поддерживают особый режим работы, так называемый "беспорядочный режим" (promiscuous mode), при котором адаптер копирует в память все проходящие мимо кадры данных. (Или почти все: при скорости передачи 10 Мб/c быстродействия ПК может и не хватить). Специальное программное обеспечение - анализаторы протоколов, переводящие сетевой адаптер в "беспорядочный режим" и собирающие весь трафик для последующего анализа, - широко используется сетевыми администраторами для контроля за работой сети и определения ее наиболее загруженных участков. К сожалению, то же самое может сделать и любой охотник за чужими секретами, использовав анализатор для перехвата, например, почтовых паролей или паролей, передаваемых администраторами по протоколу telnet.

Анализаторы протоколов

Большая часть компьютеров, установленных в современных локальных сетях, работает с ОС Windows 95/98 или Windows NT Workstation, поэтому при рассмотрении существующих анализаторов протоколов сосредоточимся именно на программах, предназначенных для работы в среде Windows. На серверах Internet выложено множество подобных продуктов, отличающихся лишь набором доступных функций. Как правило, современные анализаторы включают в себя широкий набор функций для декодирования известных протоколов: от NetBIOS до TCP/IP и SNA (поэтому такие программы можно использовать и для изучения работы протоколов), а также средства для набора статистики по передаваемой в сети информации и анализа ее защищенности. Поиск по запросу "protocol analyzer" на сервере http://www.softseek.com/ дал ссылки сразу на несколько программ: EtherPick, Sniffer Pro 98 LAN, ANASIL, Lan Explorer, NetXRay и др.

Одними из лучших в своем классе являются две последние программы: Lan Explorer фирмы Intellimax и NetXRay фирмы Network General Corporation. NetXRay (в переводе с английского - "сетевой рентген") обладает более полным набором функций, позволяющих быстро сделать "снимок" "внутренностей" локальной сети, выяснить, какие станции создают самую большую нагрузку, составить соответствующие отчеты и построить диаграммы (рис. 1). К сожалению, бесплатная версия программы, доступная через Internet, ограничивает максимальный объем перехваченного трафика.


Рис. 1. Посылка по сети самостоятельно сделанного пакета с помощью Lan Explorer

Полностью функциональная оценочная 30-дневная версия Lan Explorer успешно продолжает работать и по истечении указанного срока.

Установка анализатора

Как уже было сказано, необходимым условием сбора сетевого трафика является перевод сетевого адаптера в "беспорядочный режим". Сделать это в среде Windows может только низкоуровневый компонент ПО, способный напрямую "общаться с железом". Ядром всех существующих программных анализаторов для Windows является драйвер сетевого адаптера, совместимый со спецификацией NDIS (спецификация Microsoft для сетевых компонентов). Таким образом, для работы любого анализатора необходимо присутствие драйвера VXD (Windows 95/98), SYS (Windows NT) или WDM (новый единый стандарт, поддерживаемый в Windows 98 и NT). Windows NT после инсталляции программы потребует зарегистрировать драйвер в системе, без чего работу с анализатором начать нельзя.

Первые выводы о возможностях потенциальных злоумышленников можно сделать уже сейчас. При работе с Windows NT требуется зарегистрировать системный сервис NT - драйвер SYS. Для обычного пользователя сетевого компьютера Windows NT Workstaion такая возможность легко может быть запрещена администратором сети. Однако очень часто администраторы предпочитают не связываться с NT и устанавливают на компьютерах "простенькую" Windows 95/98, главным достоинством которой является, как известно, дружественность по отношению к пользователю. А если пользователь вдруг решит встать на скользкий путь хакерства, Windows 95/98 и здесь придет на помощь - никакой регистрации VXD-драйвера не требуется, он загрузится автоматически при запуске программы.

Перехват почтовых паролей

Каждый анализатор предоставляет возможность гибкой настройки фильтров (рис. 2) для перехвата и декодирования определенных протоколов, что позволяет быстро отфильтровать не представляющие интереса кадры данных. Что же может увидеть в сети злоумышленник? Первое, что бросается в глаза, - обилие почтовых паролей, протокола POP (Post Office Protocol), которые, как правило, посылаются почтовыми клиентами пользователей раз в несколько минут при проверке почтовых ящиков. Протокол POP не поддерживает никаких средств шифроания, поэтому настройка фильтров на перехват POP-трафика тут же позволяет собрать необходимые комбинации login/password для доступа к почтовому серверу. На рис. 3 показан перехваченный POP-пароль - 06Ilya.


Рис. 2. Настройка фильтра для перехвата пакетов

Для чтения чужой почты остается только соответствующим образом настроить Outlook Express, что по силам любому школьнику, или обратиться по telnet на POP-порт почтового сервера (110) и считать почтовые сообщения вручную. Если при работе с Lan Explorer и NetXRay поиск паролей в потоке кадров может занять пару минут, то программа Packet Boy известной фирмы NDG Software максимально упрощает жизнь ленивым хакерам - информация о паролях автоматически "выуживается" и выдается на экран.


Рис.3. Правильно составленный из букв и цифр пароль - 06Ilya
тем не менее не гарантирует неприкосновенности почтового ящика

Анализаторы протоколов воспринимают наличие в сети открытых POP-паролей как явную дыру в защите: Lan Explorer даже выдаст соответствующее предупреждение. Возможность шифрования почтовых паролей предоставляется специальной программной "надстройкой" над POP - протоколом APOP (Authentication POP). При работе APOP по сети каждый раз передается новая закодированная комбинация, поэтому злоумышленник, перехвативший диалог аутентификации на почтовом сервере, не сможет извлечь никакой практической пользы из полученной информации. Вся проблема в том, что сегодня протокол APOP поддерживают далеко не все почтовые серверы и клиенты. (Одной из первых возможность использования APOP включила в свою программу Eudora фирма Qualcomm). Подавляющее большинство сетей для доступа к почтовым сообщениям использует именно незащищенный POP. Таким образом, необходимо помнить, что почтовый пароль, передаваемый по сети, может стать "достоянием гласности" в любую минуту.

Перехват писем

Допустим, организация, напуганная небывалой активностью компьютерных хулиганов, перешла на использование защищенного протокола APOP. Значит ли это, что злобные хакеры, в одночасье лишившиеся возможности получать чужие пароли, будут кусать локти и плакать от бессилья? К сожалению, не все так просто. Посмотрим, как с помощью того же NetXRay можно получить доступ к чужой корреспонденции даже без пароля. Программа позволяет настраивать фильтры перехвата трафика не только на конкретные протоколы, но и на пары "отправитель-получатель" (рис. 4).


Рис. 4. Настройка фильтров перехвата в программе NetXRay

Задав в качестве отправителя адрес почтового сервера, а в качестве получателя IP компьютера своей жертвы (программа услужливо предложит выбрать подходящий адрес из списка), хакер может перехватить всю информацию, скачиваемую с почтового сервера, то есть непосредственно сами сообщения (рис. 5).


Рис.5. Перехваченное почтовое сообщение

Единственная проблема - полученная информация сильно фрагментирована и представлена в виде небольших кадров (максимальный размер кадра в сети Ethernet - 1500 байт). Однако, сохранив перехваченный "дамп" сетевого трафика в виде одного текстового файла, можно получить вполне читаемую копию почтовых сообщений с сервера, лишь слегка испорченную "закорючками" служебной информации. То же самое можно сделать и с сообщениями, отправляемыми пользователями на почтовый сервер, только в этом случае речь идет о перехвате не POP, а SMTP-трафика.

Итак, любое почтовое сообщение можно перехватить, даже не зная пароля. Вывод напрашивается сам собой - особо важные конфиденциальные сообщения необходимо шифровать. Сегодня все почтовые программы дают такую возможность. Шифрование трафика - мера не лишняя еще и потому, что чтением чужих сообщений иногда занимаются и чересчур любопытные администраторы почтовых серверов, а в последнее время, в рамках "комплекса мер" СОРМ-2, и сотрудники ФСБ.

Перехват паролей почтовых служб Internet

Уязвимыми для хакеров, вооруженных анализаторами протоколов, оказываются и бесплатные почтовые службы вроде Hotmail или Net@ddress. Перехватить пароли и сообщения служб, поддерживающих доступ по протоколам SMTP и POP, (например, Mail.ru) можно точно так же, как это было описано выше. Не намного усложняется задача хакера и при доступе к серверам, поддерживающим только отправку сообщений через Web (например, Hotmail).

Запустив анализатор протоколов, можно убедиться, что практически все бесплатные системы используют один и тот же способ передачи комбинации login и password на сервер - информация передается в HTTP-заголовке в незашифрованном (по умолчанию) виде. (HTTP-заголовок - это текстовая информация, передаваемая серверу вместе с запросом на получение Web-странички). Для примера рассмотрим обращение к почтовому ящику автора - [email protected]. Настроим фильтр перехвата NetXRay на протокол HTTP и зайдем на сервер http://www.netaddress.com/, где указываем login - a.saveljev и пароль - 12345. После этого можно посмотреть, что оказалось пойманным анализатором. В буфере находится множество кадров, посланных при установлении и разрывах TCP-соединений и передаче Web-страничек. Искомый пароль легко обнаружить, сбросив "дамп" трафика на диск в виде текстового файла. Запустив Notepad, задаем ключевое слово для поиска - "a.saveljev". С первой же попытки находится пара переменных userID и passwd HTTP-заголовка, в которых и передается информация (рис. 6).


Рис. 6. Пароль, передаваемый на сервер www.netaddress.com

Как видно, получить доступ к чужой почте совсем не сложно. Автору доводилось наблюдать интересную картину - несколько студентов, заняв компьютер с Windows 95 в локальной сети библиотеки, быстро устанавливают с нескольких дискет анализатор протоколов. После чего следует обращение к ничего не подозревающей жертве, сидящей за соседним компьютером: "Вы знаете, у нас почему-то почта на компьютере не работает, не заглянете в свой почтовый ящик?" Несколько минут спустя вся группа, записав перехваченную информацию, удаляется в соседнюю комнату, чтобы там продолжить свое черное дело. Бедный же пользователь, возможно, больше никогда не сможет "достучаться" до своего ящика.

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

"Зона поражения"

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

Существует два самых популярных способа соединения компьютеров в сеть Ethernet. Первый, любимый разного рода бюджетными организациями, - соединение с помощью коаксиального кабеля. Черная змейка "коаксиалки", укрепленная гвоздиками на стенах, тянется от компьютера к компьютеру, соединяясь с сетевыми платами ПК блестящим T-образным разъемом BNC. Второй способ, более дорогой, но дающий лучшую производительность, - соединение кабелем "витая пара". Кабели, промаркированные буквами "UTP" или "STP", соединяют каждый ПК с центральным коммутирующим устройством: концентратором или коммутатором (устройством более "умным" и дорогим, чем концентратор).

Первый случай - сеть Ethernet 10Base2 - типичный пример трагедии глобальной. Такую топологию еще можно назвать "все слышат всех": любой пользователь, подключенный к общему проводу, способен перехватить данные с другого компьютера.

Второй вариант - сеть Ethernet 10BaseT с концентраторами и коммутаторами - немного ограничивает возможности злоумышленников. Пользователи в таких сетях поделены на так называемые "домены коллизий", определяемые группами портов концентраторов, замкнутыми на общие шины. (Таким образом, "коллизии" алгоритма CSMA/CD "внутри" концентратора происходят не сразу между всеми станциями, а по отдельности между их группами, что повышает производительность). Злоумышленник может перехватывать только данные в своем "домене коллизий". (Правда, при желании, ничто не мешает ему подключиться к другому порту концентратора и перейти в другой "домен").

В последнее время концентраторы в крупных локальных сетях все чаще заменяются более быстрыми коммутаторами. Хорошие коммутаторы могут и не использовать алгоритм CSMA/CD и не замыкать между собой группы портов. Вместо этого все данные буферизуются в памяти и отправляются по мере возможности. В этом случае шансы злоумышленников могут быть сведены к минимуму. Однако подобных сетей пока очень и очень мало - более 90% существующих сетей полностью открыты для хакеров.

Самый же надежный способ проверить, кто из соседей по комнате или зданию может читать ваши письма, самому запустить анализатор и определить свой "домен коллизий".





Содержание