logo
ИнфСборник по ЗИ и ИБ

2. Ложный arp-сервер в сети Internet.

Как уже неоднократно подчеркивалось, в сети ЭВМ связь между двумя удаленными хостами осуществляется путем передачи по сети данных, заключенных в пакеты обмена. В общем случае передаваемый по сети пакет вне зависимости от используемого протокола и типа сети (например, Token Ring, Ethernet, X. 25и др.) состоит из заголовка пакета и поля данных. В заголовок пакета обычно заключается служебная информация, определяемая используемым протоколом обмена, которая необходима для адресации пакета, его идентификации, преобразования и т.д. В поле данных помещаются либо непосредственно данные, либо другой пакет более высокого уровня OSI.Так, например, пакет транспортного уровня может быть вложен в пакет сетевого уровня, который, в свою очередь, вложен в пакет канального уровня. Спроецировав это утверждение на сетевую ОС, использующую протоколы TCP/IP,можно сказать, что пакет TCP(транспортный уровень) вложен в пакетIP(сетевой уровень), который вложен в пакет Ethernet(канальный уровень). Следующий рисунок наглядно иллюстрирует то, как выглядит TCP-пакет в сети Internet:

Ethernet-заголовок

IP-заголовок

TCP-заголовок

Данные

Далее, рассмотрим схему адресации пакетов в сети Internetи проблемы при этом возникающие. Как известно, базовым сетевым протоколом обмена в сети Internetявляется протокол IP (Internet Protocol).Протокол IP — этомежсетевой протокол, позволяющий передавать IP-пакеты в любую точку глобальной сети. Для адресации на сетевом уровне (IP-уровне) в сети Internetкаждый хост имеет уникальный 32-разрядный IP-адрес. Для передачи IP-пакета на хост необходимо указать в IP-заголовке пакета в полеDestination Address IP-адрес данного хоста. Однако, IP-пакет находится внутри аппаратного пакета (в случае среды передачи Ethernet— Ethernet-пакета). Поэтому, каждый пакет в сетях любого типа и с любыми протоколами обмена в конечном счете адресуется на аппаратный адрес сетевого адаптера, непосредственно осуществляющего прием и передачу пакетов в сеть (в дальнейшем, мы будем рассматривать только Ethernet-сети).

Из всего вышесказанного очевидно, что для адресации IP-пакетов в сети Internetкроме IP-адреса хоста необходим еще либо Ethernet-адрес его сетевого адаптера (в случае адресации внутри одной подсети), либо Ethernet-адрес маршрутизатора (в случае межсетевой адресации). Первоначально хост может не иметь информации о Ethernet-адресах других хостов, находящихся с ним в одной подсети, в том числе и о Ethernet-адресе маршрутизатора. Следовательно, перед хостом встает стандартная проблема, решаемая с помощью алгоритма удаленного поиска. В сетиInternetдля решения этой проблемы используется протоколARP (Address Resolution Protocol).Протокол ARPпозволяет получить взаимно однозначное соответствие IPи Ethernet-адресов для хостов, находящихся внутри одной подсети. Это достигается следующим образом: при первом обращении к сетевым ресурсам хост отправляет широковещательныйARP-запрос на Ethernet-адрес FFFFFFFFFFFFh,в котором указывает IP-адрес маршрутизатора и просит сообщить его Ethernet-адрес (IP-адрес маршрутизатора- обязательный параметр, который всегда устанавливается вручную при настройке любой сетевой ОС в сети Internet). Этот широковещательный запрос получат все станции в данном сегменте сети, в том числе, и маршрутизатор. Получив данный запрос, маршрутизатор внесет запись о запросившем хосте в свою ARP-таблицу, а затем отправит на запросивший хост ARP-ответ, в котором сообщит свой Ethernet-адрес. Полученный в ARP-ответеEthernet-адрес будет занесен в ARP-таблицу, находящуюся в памяти операционной системы на запросившем хосте и содержащую записи соответствия IPи Ethernet-адресов для хостов внутри одной подсети. Отметим, что в случае адресации к хосту, расположенному внутри одной подсети, также используется ARP-протокол и рассмотренная выше схема полностью повторяется.

В случае использования в сетевой ОС алгоритмов удаленного поиска существует возможность осуществления в такой сети типовой удаленной атаки - ложный сервер. Из анализа ARP-протокола становится ясно, что перехватив на атакующем хосте внутри данного сегмента сети широковещательный ARP-запрос, возможно послать ложный ARP—ответ, в котором объявить себя искомым хостом (например, маршрутизатором), и, в дальнейшем активно контролировать весь сетевой трафик "обманутого" хоста по схеме ложный сервер.

Рассмотрим обобщенную функциональную схему ложного ARP-сервера:

— ожидание ARP-запроса;

— при получении ARP-запроса передача по сети на запросивший хост ложного ARP-ответа, в котором необходимо указать адрес сетевого адаптера атакующей станции (ложного ARP-сервера) или тот Ethernet-адрес, на котором будет принимать пакеты ложный ARP-сервер (совершенно необязательно указывать в ложном ARP-ответе свой настоящий Ethernet-адрес, так как при работе непосредственно с сетевым адаптером его можно запрограммировать на прием пакетов на любой Ethernet-адрес);

— прием, анализ, воздействие и передача пакетов обмена между взаимодействующими хостами.

При исследовании различных сетевых ОС выяснилось, что в ОС Linux 1.2.8при адресации к хосту, находящемуся в одной подсети с данным хостом, при отсутствии в ARP-таблице соответствующей записи об Ethernet-адресе посылается ARP-запрос и при последующих обращениях к данному хосту посылки ARP-запроса не происходит. В ОСUNIX system V,установленной на компьютере SPARC,при каждом новом обращении к хосту происходит посылка ARP-запроса и, следовательно, ARP-таблица динамически обновляется. ОС Windows 95при обращении к хостам с точки зрения использования протокола ARPведет себя так же, как и ОС Linux,за исключением того, что эта операционная система периодически (каждую минуту) посылает ARP-запрос об Ethernet-адресемаршрутизатора, а в результате в течение нескольких минут вся локальная сеть с Windows 95с легкостью поражается с помощью ложного ARP-сервера.