Перехват и перенаправление трафика

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

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

Простейший вариант перенаправления трафика в локальной сети может быть осуществлен путем отправки в сеть ложного ARP-omeema. (Оставим в стороне вопрос, насколько часто может возникнуть такая ситуация, когда злоумышленник заинтересован в перехвате трафика собственной локальной сети.) В данном случае схема очевидна: получив широковещательный ARP-запрос относительно некоторого IP-адреса, злоумышленник посылает ложный ARP-ответ, в котором сообщается, что данному IP-адресу соответствует его собственный МАС-адрес.

Для перехвата и перенаправления трафика в локальной сети теоретически может также использоваться протокол ICMP. В соответствии с данным протоколом ICMP-сообщение о перенаправлении маршрута маршрутизатор по умолчанию посылает хосту непосредственно присоединенной локальной сети при отказе этого маршрута или в тех случаях, когда обнаруживает, что для некоторого адреса назначения хост использует нерациональный маршрут. На рис. 1, а применяемый по умолчанию маршрутизатор R1, получив от хоста H1 пакет, адресованный хосту Н2, определяет, что наилучший маршрут к хосту Н2 пролегает через другой маршрутизатор данной локальной сети, а именно через маршрутизатор R2. Маршрутизатор R1 отбрасывает полученный пакет и помещает его заголовок в ЮМР-сообщение о перенаправлении маршрута, которое посылает хосту H1. В сообщении содержится IP-адрес альтернативного маршрутизатора R2, который хост теперь должен использовать, посылая данные хосту Н2. Хост H1 вносит изменения в свою таблицу маршрутизации и с этого момента отправляет пакеты хосту Н2 по новому скорректированному маршруту. Для перехвата трафика, направляемого хостом H1 хосту Н2, злоумышленник должен сформировать и послать хосту HI пакет, маскирующийся под ЮМР-сообщение о перенаправлении маршрута (рис. 1, б). В этом сообщении содержится запрос о корректировке таблицы маршрутизации хоста H1, так чтобы во всех пакетах с адресом IРН2 адресом следующего маршрутизатора стал адрес IPha. являющийся адресом хоста-злоумышленника НА. Для того чтобы хост «поверил» этому сообщению, в поле IP-адреса отправителя должен быть помещен адрес маршрутизатора R1, являющегося маршрутизатором по умолчанию. Когда пакеты, передаваемые введенным в заблуждение хостом, начнут поступать на узел злоумышленника, он может либо захватывать и не передавать эти пакеты дальше, имитируя для поддержания диалога приложение, которому эти пакеты предназначались, либо организовать транзитную передачу данных по указанному адресу назначения IРн2-Читая весь трафик между узлами H1 и Н2, злоумышленник получает все необходимую информацию для несанкционированного доступа к серверу Н2.

Еще одним способом перехвата трафика является использование ложнгях DNS-omeemoe (рис. 2). Задача злоумышленника состоит в получении доступа к корпоративному серверу. Для этого ему нужно завладеть именем и паролем авторизованного пользователя корпоративной сети. Эту информацию он решает получить путем ответвления потока данных, которые корпоративный клиент посылает корпоративному серверу. Злоумышленник знает, что клиент обращается к серверу, указывая его символьное DNS-имя www.example.com. Известно ему также, что перед тем как отослать пакет серверу, программное обеспечение клиентской машины направляет запрос DNS-серверу, чтобы узнать, какой IP-адрес соответствует этому имени.

Цель злоумышленника — опередить ответ DNS-сервера и навязать клиенту свой вариант ответа, в котором вместо IP-адреса корпоративного сервера (в примере 193.25.34.125) злоумышленник указывает IP-адрес атакующего хоста (203.13.1.123). На пути реализации этого плана имеется несколько серьезных препятствий.

Рис. 1. Перенаправление маршрута с помощью протокола ЮМР: а — сообщение о более рациональном маршруте хосту Н2 посылает маршрутизатор Я1, применяемый по умолчанию;
б — сообщение о перенаправлении маршрута на себя направляет атакующий хост НА

Рис. 2. Схема перенаправления трафика путем использования ложных DNS-ответов

Прежде всего необходимо задержать ответ DNS-сервера, для этого сервер, например, может быть подвергнут DoS-атаке. Другая проблема связана с определением номера порта клиента DNS, который необходимо указать в заголовке пакета, чтобы данные дошли до приложения. И если серверная часть DNS имеет постоянно закрепленный за ней так называемый «хорошо известный» номер 53, то клиентская часть протокола DNS получает номер порта динамически при запуске, причем операционная система выбирает его из достаточно широкого диапазона.

Заметим, что протокол DNS может использовать для передачи своих сообщений как протокол UDP, так и протокол TCP, в зависимости от того, как он будет сконфигурирован администратором. Поскольку протокол TCP устанавливает логическое соединение с отслеживанием номеров посланных и принятых байтов, «вклиниться» в диалог клиента и сервера в этом случае гораздо сложнее, чем в случае, когда используется дейтаграммный протокол UDP.

Однако и в последнем случае остается проблема определения номера UDP-порта клиента DNS. Эту задачу злоумышленник решает путем прямого перебора всех возможных номеров. Также путем перебора возможных значений злоумышленник преодолевает проблему определения идентификаторов DNS-сообщений. Эти идентификаторы передаются в DNS-сообщениях и служат для того, чтобы клиент системы DNS мог установить соответствие поступающих ответов посланным запросам. Итак, злоумышленник бомбардирует клиентскую машину ложными DNS-ответами, перебирая все возможные значения идентифицирующих полей так, чтобы клиент, в конце концов, принял один из них за истинный DNS-ответ. Как только это происходит, цель злоумышленника можно считать достигнутой — пакеты от клиента направляются на адрес атакующего хоста, злоумышленник получает в свое распоряжение имя и пароль легального пользователя, а с ними и доступ к корпоративному серверу.