Недостатки идентификации абонентов TCP-соединения

В ОС UNIX существует понятие: доверенный хост. Доверенным по отношению к данному хосту называется сетевой компьютер, доступ на который пользователю с данного хоста возможен без его аутентификации и идентификации с помощью r-службы (r - сокращение от анг. "remote" - удаленный). Обычно в ОС UNIX существует файл rhosts, в котором находится список имен и IP-адресов доверенных хостов. Для получения к ним удаленного доступа пользователю необходимо воспользоваться программами, входящими в r-службу (например, rlogin, rsh и т.д.). В этом случае при использовании
r-программ с доверенного хоста пользователю для получения удаленного доступа не требуется проходить стандартную процедуру идентификации и аутентификации, заключающуюся в проверке его логического имени и пароля. Единственной аутентифицирующей пользователя информацией для r-службы является IP-адрес хоста, с которого пользователь осуществляет удаленный r-доступ . Отметим, что все программы из r-службы реали-зованы на базе протокола TCP. Одной из программ, входящих в r-службу, является rsh, с помощью которой возможно осуществление данной атаки. Программа rsh (remoute shell) позволяет отдавать команды shell удаленному хосту. При этом (что чрезвычайно важно в данном случае!) для того, чтобы отдать команду, достаточно послать запрос, но необязательно получать на него ответ. При атаке на r-службу вся сложность для атакующего заключается в том, что ему необходимо послать пакет от имени доверенного хоста, то есть в качестве адреса отправителя необходимо указать IP-адрес доверенного хоста. Следовательно, ответный пакет будет отправлен именно на доверенный хост, а не на хост атакующего.

Схема удаленной атаки на rsh-сервер была впервые описана небезызвестным Р.Т. Моррисом-старшим в. Она заключается в следующем .

 
X-Hacker посылает на Хост A серию TCP-запросов
на создание соединения, заполняя тем самым очередь запросов,
с целью вывести из строя на некоторое время Хост A.

 
X-Hacker от имени Хоста A посылает запрос
на создание TCP-соединения на Хост B.

 
Хост B отвечает хосту A на предыдущий запрос.
 
Хост X-Hacker никогда не получит значения ISNb'
от хоста B, но, используя математическое предсказание ISN,
посылает на B от имени A пакет с ISNb'. При этом Хост A
не может послать пакет с битом RST.

Рис. 13
. Подмена одного из участников TCP-соединения
при атаке на rsh-сервер.

Пусть хост А доверяет хосту В. Хост X-Hacker - это станция атакующего.

Вначале атакующий X-Hacker открывает настоящее TCP-соединение с хостом В на любой TCP-порт (mail, echo и т.д.). В результате X-Hacker получит текущее значение на данный момент времени ISNb. Далее, X-Hacker от имени А посылает на В TCP-запрос на открытие соединения:

1. X-Hacker ("A" ) - > B: SYN, ISSx.

Получив этот запрос, В анализирует IP-адрес отправителя и решает, что пакет пришел с хоста А. Следовательно, В в ответ посылает на А новое значение ISNb':

2. B - > A: SYN, ACK, ISNb', ACK(ISSx+1).

X-Hacker никогда не получит это сообщение от В, но, используя предыдущее значение ISNb и схему для получения ISNb' при помощи математического предсказания , может послать пакет на В:

3. X-Hacker ("A" ) - > B: ACK, ISSx+1, ACK(ISNb'+1).

Отметим, что для того, чтобы послать этот пакет, вероятно, потребуется перебрать некоторое количество возможных значений ACK(ISSb' + 1), но не потребуется подбор ISSx + 1, так как этот параметр TCP-соединения был послан с хоста X-Hacker на В в первом пакете.

В случае осуществления данной атаки перед атакующим возникает следующая проблема. Так как X-Hacker посылает пакет (1) на В от имени A, то хост B ответит на A пакетом (2). А так как хост A не посылал на хост B никакого пакета с запросом, то A, получив ответ от B, перешлет на B пакет с битом RST - закрыть соединение. Атакующего с хоста X-Hacker это, естественно, не устраивает, поэтому одной из атак, целью которых является нарушение работоспособности системы, X-Hacker должен вывести из строя на некоторое время хост A (п. 4.6).

В итоге rsh-сервер на хосте В считает, что к нему подключился пользователь с доверенного хоста А, а на самом деле это атакующий с хоста X-Hacker. И хотя X-Hacker никогда не сможет получить пакеты с хоста В, но он сможет выполнять на нем команды (r-команды).


Назад
Hosted by uCoz