Пример проведения типовой удаленной атаки в IP-сетях
Здесь приводится типовая удаленная атака, направленная на подмену одной из сторон TCP-соединения. Для начала рассмотрим схему установления ТСР-соедииения . В ходе установления соединения в TCP-пакете для его идентификации используются два 32-разрядных поля, выполняющие функции счетчиков пакетов: Sequence Number (SN) и Acknowledgement Number (AN), а также 6-битное поле Control Bits, содержащее управляющие флаги.
Последовательность действий для установления TCP-соединения такова:
1. Участник А посылает участнику В сообщение с установленным управляющим битом SYN, содержащее в поле SN некоторое начальное значение (ISSA).
2. Участник В отвечает сообщением с установленными контрольными битами SYN и АСК, содержащим в поле SN свое начальное значение (ISSB), а в поле AN - ISSA+ l.
3. Участник А, получая сообщение 2, проверяет значение поля AN и в случае успешной проверки отправляет участнику В сообщение с установленным управляющем битом АСК, содержащее в поле SN значение ISSA + 1, а в поле AN - ISSB + 1.
4. Теперь участники А и В могут обмениваться TCP-сообщениями, содержащими полноценные данные, и при этом в подобных сообщениях установлен управляющий бит АСК, а в полях SN и AN должны быть значения ISSA+ 1 и ISSB+ 1 соответственно.
Атакующему для проведения атаки на конкретное TCP-соединение необходимо только получить текущие начальные значения ISSA и ISSB. Если нарушитель имеет возможность анализировать трафик, очевидно, что задача получения начальных значений представляется предельно простой -они берутся из перехваченных сообщений. В случае, если атакующий находится в другом сегменте и не имеет возможности анализировать трафик атакуемой стороны, задача подмены сводится к угадыванию начальных значений. Решение этой задачи облегчается тем, что разработчики сетевых компонентов ОС почему-то отказались от использования принципа случайности данных значений. Более того, даже в рекомендациях RFC 793 предложено получать начальные значения по счетчику, который должен увеличиваться каждые 4 мкс на 1 (единицу). В большинстве ОС закон генерации начальных значений зависит от системного времени, поэтому угадать начальные значения очень легко.
Теперь рассмотрим пример удаленной атаки подобного типа. Пусть сервер А находится в доверительных отношениях с хостом В. Целью злоумышленника в данном случае может служить установление ТСР-соеди-нения с сервером А от имени хоста В. Нарушитель, прежде чем провести атаку на сервер А, должен установить с ним легальное соединение с целью узнать закон генерации начальных значений. При проведении атак происходит следующая последовательность действий:
1. Хост нарушителя отправляет запрос на сервер А для установления ТСР-соединения от имени хоста В. Запрос имеет следующий вид: SYN, ISSX.
2. Получая данный запрос, сервер А анализирует IP-адрес отправителя (нарушитель вставляет IP-адрес хоста В) и, полагая, что запрос пришел от хоста В, отправляет ему следующий ответ: SYN, ACK, ISSB, ISSX+ 1. Данное сообщение никогда не дойдет до нарушителя, поскольку оно будет направлено на IP-адрес хоста В, но для того, чтобы хост В, получив ответ на запрос, которого он не посылал, не направил серверу А сообщение о закрытии соединения (с установленным битом RTS), нарушитель должен заблокировать на время работу хоста В (проведя атаку типа «отказ в обслуживании»).
3. Нарушитель, имея представление о законе формирования начальных значений, может произвести угадывание ISNB. Затем он отправляет серверу А следующее сообщение: ACK, ISSX+ 1, ISSB+ l.
После чего сервер А решает, что он установил соединение с хостом В, но сообщения от сервера А не дойдут до нарушителя, поскольку направляются на IP-адрес хоста В, однако нарушитель сможет выполнять на сервере А удаленные команды.
Возможности проведения перечисленных выше удаленных атак в распределенных системах базируются на:
• использовании общедоступных каналов передачи данных. Например, большинство локальных сетей в Internet имеют топологию с общей шиной, что облегчает задачу по перехвату передаваемых сообщений. Следует отметить, что топология построения локальной сети типа «звезда» устойчива к некоторым удаленным атакам, например к внедрению ложного ARP-сервера;
• уязвимости в процедурах идентификации, реализованных в стеке протоколов TCP/IP. Идентифицирующая информация на уровне IP передается в открытом виде, что приводит к неконтролируемому ее искажению. Дальнейшая идентификация хостов в сети Internet возложена на транспортный уровень, однако протокол UDP не содержит дополнительных средств идентификации, и как следствие - протоколы более высокого уровня, применяющие UDP, потенциально подвержены удаленным атакам, использующим уязвимости в идентификации. Единственным протоколом, предназначенным для решения подобных задач, является TCP (о недостатках процедуры идентификации в протоколе TCP сказано в примере удаленной атаки в Internet);
• отсутствии возможности контроля за маршрутом прохождения сообщений в сети Internet. Это приводит к следующему: истинный IP-адрес отправителя нельзя определить, что делает удаленные атаки практически иенаказываемыми, поскольку проследить маршрут передачи IP-пакета является в существующей версии протокола IPv4 серьезной проблемой;
• необходимости использования механизмов удаленного поиска в сети Internet;
• отсутствии в базовой версии стека протоколов TCP/IP механизмов, обеспечивающих конфиденциальность и целостность передаваемых сообщений. На сегодняшний день инструментарий, обеспечивающий шифрование и подписание передаваемых сообщений или всего трафика, является всего лишь дополнением к существующим технологиям обеспечения электронной связи, но их применение требут введения некоторых ограничений на работу пользователей или на работу информационной системы, куда встраиваются данные механизмы.
Атаки подобного рода, очевидно, возможны только на сетевом и транспортном уровнях Internet, но, как уже упоминалось, каждый вышележащий протокол будет наращивать потенциал нарушителя для проведения виртуальных нападений.
Реализация средств, обеспечивающих информационную безопасность, должна обязательно учитывать тот факт, что информационно-вычислительные системы, построенные с использованием TCP/IP, изначально уязвимы для удаленных атак. Например, Internet Information Server (фирмы Microsoft) использует для разграничения доступа идентификацию пользователей на основе IP-адреса, но в силу того, что IP-адрес может быть изменен, этот тип разграничения доступа к информационным ресурсам обладает уязвимостью, выражающейся в возможности несанкционированного получения сведений из базы данных.
Поэтому защита основной версии стека протоколов TCP/IP является важнейшей задачей при реализации защиты межсетевого взаимодействия, причем реализация защиты протоколов верхних уровней должна учитывать уязвимость базовой модели.
С учетом недостатков в безопасности IPv4, а также необходимости модификации базовой версии IP-протокола в рамках обеспечения транспортной компоненты информационных систем подготовлена новая версия IP-протокола - IPv6.