Необходимость применения сигнатуры (подписи) NCP-пакетов связана со скандалом, разыгравшимся в 1992 году. Тогда голландский студент предложил простой способ "взламывания" файлового сервера NetWare. Этот способ основывается на параллельной работе хаккера и пользователя, имеющего требуемые права (рисунок 2.55).
Рис. 2.55. Организация несанкционированного доступа к файловому серверу
На рабочей станции хаккера (hacker) функционирует программа, которая перехватывает пакеты, передаваемые по шине сети. При формировании пакета программа хаккера выполняет следующие действия:
- переписывает в заголовок формируемого IPX-пакета заголовок перехваченного пакета,
- записывает в поле данных требуемую команду.
Далее пакет посылается на файловый сервер. Файловый сервер пересылает адрес станции hacker в поле ImmAddress блока ECB и использует данные заголовка пакета IPX, чтобы определить номер соединения и возможность выполнения команды. Но в заголовке пакета хаккера записан адрес пользователя (адрес Admin), который имеет требуемые права. Поэтому команда хаккера выполняется.
При формировании сетевым адаптером заголовка ответного кадра адрес станции, куда непосредственно передаётся кадр, выбирается из поля ImmAddress блока ECB. Т. е. станция hacker воспринимается файловым сервером как маршрутизатор или мост. Напомним, что адрес конечной станции-получателя хранится в заголовке пакета IPX (в данном случае это адрес Admin, хотя для хаккера это не имеет значения). Таким образом, ответ посылается на станцию hacker, где и обрабатывается.
Подпись NCP-пакета (специальное поле в этом пакете) делает невозможным параллельную работу хаккера и пользователя. Подпись (сигнатура) пакета - это шифр, для формирования которого используется контрольная сумма содержимого пакета и случайное число Nonce. Шифр создаётся с помощью открытого ключа. Важно отметить, что сигнатура изменяется в каждом пакете. Спрогнозировать последовательность подписей практически невозможно.
NCP-пакеты могут подписываться и рабочими станциями, и файловым сервером. Для инициирования включения подписи в NCP-пакеты администратор должен выполнить следующие действия (для NetWare 3.12 и 4.х):
1. С консоли файлового сервера необходимо ввести SET-команду
SET NCP Packet Signature Option = уровень (по умолчанию 1)
Можно задать один из следующих уровней:
- 0 - сервер не подписывает пакет,
- 1 - сервер подписывает пакет, если этого требует клиент (уровень на станции больше или равен 2),
- 2 - сервер подписывает пакет, если клиент также способен это сделать (уровень на станции больше или равен 1),
- 3 - сервер подписывает пакет и требует этого от всех клиентов (иначе подключение к сети невозможно).
2. На рабочей станции в раздел Netware DOS Requester файла net.cfg необходимо включить строку:
Signature Level = уровень (по умолчанию 1)
Можно задать один из следующих уровней:
- 0 - клиент не подписывает пакет,
- 1 - клиент подписывает пакет, если этого требует сервер (уровень на сервере больше или равен 2),
- 2 - клиент подписывает пакет, если сервер также способен это сделать (уровень на сервере больше или равен 1),
- 3 - клиент подписывает пакет и требует этого от всех серверов (иначе подключение к сети невозможно).
В таблице 2.15 перечислены различные сочетания уровней на сервере и рабочей станции, а также варианты подписи пакета.
Таблица 2.15. Варианты подписи пакета
Если | уровень на сервере = 0 | = 1 | = 2 | = 3
|
уровень на станции = 0 | - | - | - | N
|
= 1 | - | - | + | +
|
= 2 | - | + | + | +
|
= 3 | N | + | + | +
|
Здесь приняты следующие обозначения :
- + - пакеты подписываются,
- - - пакеты не подписываются,
- N - рабочая станция не подключается к сети.
Предыдущая глава || Оглавление || Следующая глава