Rambler's Top100

Черный ход в NetWare

Уделяя основное внимание защите информации в сети Internet, мы забываем, что подавляющее большинство сетей в России базируется на Novell NetWare.

Евгений Ильченко
 
ПОДДЕЛКА АДРЕСОВ
ГОЛЛАНДСКАЯ АТАКА
АТАКА ПО-РУССКИ
ПОДПИСЬ ПАКЕТОВ
ДРУГИЕ АСПЕКТЫ БЕЗОПАСНОСТИ
 

В предыдущих номерах LAN уже печатались материалы, посвященные системе безопасности сети Novell NetWare. В данной статье хотелось бы рассказать о некоторых аспектах ее защиты на сетевом уровне, об ее достоинствах и недостатках.

Как правило, сеть NetWare базируется на протоколе IPX (в принципе использование IP возможно, но нами этот вариант рассматриваться не будет).

Протокол IPX был разработан фирмой Xerox, а затем доработан компанией Novell. IPX предназначен для применения в локальных сетях. Предполагается, что вся сеть разделена на логические сегменты, и все они получают уникальный номер. Адрес (идентификатор) рабочей станции в IPX-пакете совпадает с уникальным для каждой сетевой платы номером (MAC-адресом). Структура заголовка IPX-пакета изображена на Рисунке 1.

Picture_1

Рисунок 1.
Структура заголовка пакета IPX.

ПОДДЕЛКА АДРЕСОВ

В локальных сетях типа Ethernet пакеты IPX обычно передаются с использованием кадров Ethernet_802.2 или Ethernet_802.3, в заголовках которых основной информацией являются MAC-адреса станций получателя и отправителя. Адрес отправителя после посылки никем не проверяется, так как это непростая задача. Даже в том случае, если адрес отправителя кем-либо анализируется (например, коммутатором), подставить чужой MAC-адрес не составит труда. Почти все сетевые платы позволяют сделать это как с помощью программных средств Novell (в net.cfg), так и на низком уровне. А ODI-драйвер ODIPKT позволяет самостоятельно сформировать весь пакет и послать его как есть.

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

К примеру, если был послан пакет с полем получателя FF,FF,FF,FF,FF,FF (всем станциям в текущем сегменте сети) в кадре Ethernet, то независимо от адреса отправителя его обязательно получит адресат, который указывается в поле "Адрес станции назначения" заголовка IPX-пакета. Более того, если некто (злоумышленник) самостоятельно заполнит IPX-пакет, то он может указать чужой адрес отправителя (администратора сети); такой пакет обязательно дойдет до адресата (сервера) и будет им обработан тем же образом, что и все остальные пакеты администратора. Такой процесс называется по-английски spoofing, а по-русски "подделка адресов".

На уровень выше IPX находится протокол NCP (NetWare Core Protocol), он использует IPX в качестве транспортного протокола, но предусматривает, в отличие от IPX, некоторую степень защиты. NCP используется практически при всех сетевых операциях в сети NetWare; с его помощью передаются файлы и реплики между серверами, осуществляется администрирование системы и т. д. На Рисунке 2 изображена структура заголовка пакета NCP.

Picture_2

Рисунок 2.
Структура заголовка пакета запроса NCP.

Пакеты на уровне NCP неосведомленному человеку подделать несколько сложнее, поскольку необходимо знать номер соединения администратора с сервером. Однако проблема эта вполне решаема благодаря таким программам, как userlist (в NetWare 3.x) и nlist (в NetWare 4.x) или системным функциям оболочки рабочей станции. Остальная информация может быть получена из других источников, к примеру из программы LANalyzer for Windows (фирмы Novell), которая позволяет перехватывать все проходящие мимо рабочей станции пакеты и затем расшифровывает каждое их поле (см. Рисунок 3). Так же можно использовать программу NetXRay (компании Cinco Networks), но, поскольку она написана не Novell, полной гарантии расшифровки пакетов нет. Правда, для использования этих двух программ необходимо иметь сетевую плату, поддерживающую режим приема всех пакетов (promiscuous mode). Большинство новых сетевых плат могут работать в этом режиме, например все сетевые платы компании 3Com.

Picture_3

Рисунок 3.
Novell LANalyzer for Windows.

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

ГОЛЛАНДСКАЯ АТАКА

На принципе подстановки пакетов была основана так называемая голландская атака, придуманная группой голландских студентов. Существует несколько версий реализации подстановки пакетов. Наиболее известная в России программа написана на ассемблере русским программистом, вместе с ней распространяется файл, содержащий описание ее работы. Эту программу автор статьи довольно часто встречал в сети своего университета, особенно у студентов первого и второго курсов. Теоретически у того, кто ее запустит, должны появиться все права на сервер - эквивалент SUPERVISOR (программа писалась для NetWare 3.x). Но у нее существует несколько недостатков.