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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ложный 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-сервера.

Ложный DNS-сервер.

Как говорилось в предыдущем пункте, для обращения к хостам в сети Internet используются 32-разрядные IP-адреса, уникально идентифицирующие каждый сетевой компьютер в этой глобальной сети. Однако, для пользователей использование IP-адресов для обращения к хостам является не слишком удобным и не самым наглядным. Поэтому, в самом начале зарождения Internet для удобства пользователей было принято решение присвоить всем компьютерам в сети имена. Это решение породило проблему преобразования имен в IP-адреса. Такое преобразование необходимо, так как на сетевом уровне адресация пакетов идет не по именам, а по IP-адресам. На этапе раннего развития Internet, когда в сеть было объединено небольшое количество компьютеров, NIC (Network Information Center) для решения проблемы преобразования имен в адреса создал специальный файл {host file), в который вносились имена и соответствующие им IP-адреса всех хостов в сети. Данный файл регулярно обновлялся и распространялся по всей сети. Но, по мере развития Internet, число хостов, объединенных в сеть, увеличивалось, и данная схема становилась все менее и менее работоспособной. Поэтому была создана новая система преобразования имен, названная доменной системой имен-DNS (Domain Name System).

Для реализации системы DNS был создан специальный сетевой протокол DNS, а также, в сети Internet создавались специальные выделенные DNS-серверы.

Поясним основную проблему, решаемую службой DNS. В современной сети Internet хост при обращении к удаленному хосту может иметь информацию только о его имени и не знать его IP-адреса, который и необходим для непосредственной адресации. Следовательно, перед хостом возникает проблема удаленного поиска: по имени удаленного хоста найти его IP-адрес. Решением этой проблемы и занимается служба DNS на базе протокола DNS.

Рассмотрим DNS-алгоритм поиска IP-адреса по имени в сети Internet:

— хост посылает на IP-адрес ближайшего DNS-сервера (он устанавливается при инсталляции сетевой ОС) DNS-запрос, в котором указывает имя сервера, IP-адрес которого необходимо найти;

— DNS-сервер, получив DNS-запрос, просматривает свой host file на предмет наличия в нем указанного в запросе имени. В случае, если имя найдено, а, следовательно, найден и соответствующий ему IP-адрес, то на запросивший хост DNS-сервер отправляет DNS-ответ, в котором указывает искомый IP-адрес. В случае, если указанное в запросе имя DNS-сервер не смог обнаружить в своей базе имен (host file), то DNS-запрос отсылается DNS-сервером на следующий ближайший к нему DNS-сервер и описанная в этом пункте процедура повторяется пока имя не будет найдено (или не найдено).

Анализируя уязвимость с точки зрения безопасности этой схемы удаленного поиска с помощью протокола DNS, а также можно сделать вывод о возможности осуществления в сети, использующий протокол DNS, типовой удаленной атаки - ложный сервер. Для ее реализации на атакующей станции достаточно перехватить DNS-запрос и послать ложный DNS-ответ, в котором указать в качестве искомого IP-адреса настоящий IP-адрес ложного DNS-сервера. Это позволит, в дальнейшем, полностью перехватить и активно воздействовать по схеме ложный сервер на трафик между "обманутым" хостом и сервером. Важно отметить, что в случае нахождения дающего в одном сегменте с настоящим DNS-сервером реализация данной удаленной атаки позволяет органиQga-гь межсегментную атаку на сеть Internet.

Рассмотрим обобщенную схему работы ложного DNS-сервера:

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

— получив DNS-запрос, передача по сети на запросивший хост ложного DNS-ответа, в котором указывается IP-адрес ложного DNS-сервера;

— в случае получения пакета от хоста, изменение в IP-заголовке пакета его IP-адреса на IP-адрес ложного DNS-сервера и передача пакета на сервер (то есть, ложный DNS-сервер ведет работу с сервером от своего имени);

— в случае получения пакета от сервера, изменение в IP-заголовке пакета его IP-адреса на IP-адрес ложного DNS-сервера и передача пакета на хост (для хоста ложный DNS-сервер и есть настоящий сервер).

Практическая реализация данной удаленной атаки выявила ряд интереснейших особенностей в работе протокола FTP и в механизме идентификации TCP-пакетов. В случае, если FTP-клиент на хосте подключился к удаленному FTP-серверу через ложный DNS-сервер, то оказывалось, что каждый раз после выдачи пользователем прикладной команды FTP (например, ls, get, put и т.д.) FTP— клиент вырабатывал команду представительного уровня PORT, которая состояла в передаче на FTP-сервер в поле данных TCP-пакета номера порта и IP-адреса клиентского хоста. Это приводило к тому, что если на ложном DNS-сервере не изменить передаваемый IP-адрес в поле данных TCP-пакета и передать этот пакет на FTP-сервер по обыкновенной схеме, то следующий пакет будет передан FTP-сервером на хост FTP-клиента, минуя ложный DNS-сервер и, что самое удивительное, этот пакет будет воспринят как нормальный пакет, и, в дальнейшем, ложный DNS-сервер потеряет контроль над трафиком между FTP-сервером и FTP-клиентом!



Поделиться:


Последнее изменение этой страницы: 2017-02-21; просмотров: 329; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.185.194 (0.006 с.)