Курс лекций «Проблемы безопасности в информационных технологиях»



жүктеу 4.51 Mb.
бет29/44
Дата13.09.2017
өлшемі4.51 Mb.
түріКурс лекций
1   ...   25   26   27   28   29   30   31   32   ...   44

Проблемы протокола ARP


ARP (Address Resolution Protocol — протокол определения адреса) — протокол канального уровня, предназначенный для определения (сопоставления) MAC-адреса по известному IP-адресу. Наибольшее распространение этот протокол получил благодаря повсеместному распространению сетей IP, работающих поверх Ethernet, поскольку в 100% случаев при таком сочетании используется ARP. Можно отнести протокол ARP к основополагающим, «инфраструктурным», т.к. сочетание IP-Ethernet без ARP будет неработоспособным.

Протокол используется в следующих случаях:




  1. Хост A хочет передать IP-пакет узлу B, находящемуся с ним в одной сети;

  2. Хост A хочет передать IP-пакет узлу B, находящемуся с ним в разных сетях, и пользуется для этого услугами маршрутизатора R.

В любом из этих случаев узлом A будет использоваться протокол ARP, только в первом случае для определения аппаратного MAC-адреса узла B, а во втором — для определения MAC-адреса маршрутизатора R. В последнем случае пакет будет передан маршрутизатору для дальнейшей пересылки на узел B.

Протокол ARP является абсолютно незащищённым. Он не обладает никакими способами проверки подлинности пакетов, как запросов, так и ответов. Ситуацию ещё усугубляет т.н. самопроизвольный ARP (gratuitous ARP).

Самопроизвольный ARP-ответ – это пакет-ответ ARP, присланный без запроса. Он применяется для определения конфликтов IP-адресов в сети: как только станция получает адрес по DHCP или адрес ей присваивается вручную, рассылается ARP-ответ gratuitous ARP.

Самопроизвольный ARP может быть полезен в следующих случаях:


  • Обновление ARP-таблиц, в частности, в кластерных системах;

  • Информирование коммутаторов;

  • Извещение о включении сетевого интерфейса.

Gratuitous ARP является особенно небезопасным, поскольку с его помощью можно уверить удалённый узел в том, что MAC-адрес какой-либо системы, находящейся с ней в одной сети, изменился и указать, какой адрес используется теперь, тем самым реализовав атаку «человек-посередине». На рисунках ниже проиллюстрирована технология атаки с использованием технологии ARP-spoofing.




Рис.93 «Отравление» таблиц ARP соседей по сети
Разослав сфальсифицированные ARP-ответы, злоумышленник меняет содержимое таблиц узла 10.1.1.1 и 10.1.1.2. Теперь они «думают», что IP-адресу 10.1.1.2 соответствует MAC C (так «думает» первый узел). А второй узел «уверен», что IP-адресу 10.1.1.1 соответствует тоже MAC C. И теперь весь IP-трафик между 10.1.1.1 и 10.1.1.2 пойдёт через машину злоумышленника:



Рис.94 Весь трафик проходит через хост злоумышленника

Заставив весь трафик проходить через свой компьютер, злоумышленник вклинился в поток передаваемых данных и может реализовать сценарий «человек-посередине».





Рис.95 «Заметание» следов, коррекция таблиц
По окончанию атаки злоумышленник может, разослав соответствующие ARP-ответы, привести ARP-таблицы соседей в корректное состояние. После чего потоки трафика возвращаются к норме.



Рис.96 Возможные контрмеры против ARP-spoofing.
Способ предотвращения атак типа ARP-spoofing, к сожалению, не может быть решён ни модификацией, ни заменой протокола – слишком он прост и фундаментален, чтобы можно было от него отказаться. Вариант контрмер, предлагаемый на последнем рисунке, требует наличия достаточно продвинутого сетевого оборудования. Т.е., решение проблем безопасности с протоколом ARP лежит за пределами собственно протокола.

Не следует путать ARP-spoofing с ещё одной атакой, также имеющей дело с адресами канального уровня (MAC): MAC-spoofing. Эта атак возможна, потому что очень часто изменение MAC-адреса сетевого интерфейса не намного сложнее, чем изменение его IP-адреса.





Рис.97 MAC spoofing
Полезной утилитой, отслеживающей соответствие MAC-IP в сети, и оповещающей о смене соответствия, является arpwatch (в Unix-системах). Для Windows существует утилита с аналогичным функционалом – BinaryPlant-ARP-Monitor.

Проблемы протокола DHCP


Хотя, в отличие от ARP-а, теоретически без протокола DHCP в локальных сетях Ethernet обойтись вполне возможно, на сегодня даже в сетях небольшого размера, состоящих всего из нескольких компьютеров, администраторы предпочитают настройки IP на рабочих станциях производить централизованно, именно с помощью протокола DHCP. Это позволяет также отнести DHCP к «инфраструктурным» и особенно важным.

DHCP (Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Для автоматической конфигурации компьютер-клиент на этапе конфигурации сетевого устройства обращается к серверу DHCP, и получает от него нужные параметры. Сетевой администратор может задать диапазон адресов, распределяемых сервером среди компьютеров. Это позволяет избежать ручной настройки компьютеров сети и уменьшает количество ошибок. Протокол DHCP используется в большинстве сетей TCP/IP.

DHCP является расширением протокола BOOTP, использовавшегося ранее для обеспечения бездисковых рабочих станций IP-адресами при их загрузке. DHCP сохраняет обратную совместимость с BOOTP.

Как и в случае с ARP, базовый DHCP практически не защищён, хотя некоторые расширения протокола позволяют увеличить его защищённость. Короткое описание работы протокола DHCP приведено ниже.




Рис.98 Алгоритм работы протокола DHCP
В базовом варианте получение IP-адреса и настроек по DHCP происходит за четыре этапа:


  1. Обнаружение серверов DHCP (discover) – вначале клиент выполняет широковещательный запрос по всей физической сети с целью обнаружить доступные DHCP-серверы. Он отправляет сообщение типа DHCPDISCOVER, при этом в качестве IP-адреса источника указывается 0.0.0.0 (так как компьютер ещё не имеет собственного IP-адреса), а в качестве адреса назначения — широковещательный адрес 255.255.255.255.

  2. Предложение DHCP (offer) – получив широковещательный запрос от клиента, сервер определяет требуемую конфигурацию клиента в соответствии с указанными сетевым администратором настройками. Сервер отправляет ответ (DHCPOFFER), в котором предлагает конфигурацию. Предлагаемый клиенту IP-адрес указывается в поле yiaddr. Прочие параметры (такие, как адреса маршрутизаторов и DNS-серверов) указываются в виде опций в соответствующем поле.

Это сообщение DHCP-сервер отправляет хосту, пославшему DHCPDISCOVER, на его MAC, при определенных обстоятельствах сообщение может распространяться как широковещательная рассылка. Клиент может получить несколько различных предложений DHCP от разных серверов; из них он должен выбрать то, которое его более всего «устраивает»1.

  1. Запрос DHCP (request) – выбрав одну из конфигураций, предложенных DHCP-серверами, клиент отправляет запрос DHCP (DHCPREQUEST). Он рассылается широковещательно; при этом к опциям, указанным клиентом в сообщении DHCPDISCOVER, добавляется специальная опция — идентификатор сервера — указывающая адрес DHCP-сервера, выбранного клиентом.

  2. Подтверждение DHCP (ack) – наконец, сервер подтверждает запрос и направляет это подтверждение (DHCPACK) клиенту. После этого клиент должен настроить свой сетевой интерфейс, используя предоставленные опции.

Далее клиент в процессе работы должен время от времени запрашивать подтверждение аренды адреса, если собирается пользоваться им дальше. Первое подтверждение (начинающееся сразу с DHCPREQUEST) клиент посылает через 50% времени аренды. Если по какой-то причине сервер не ответил, делается повторная попытка после истечения 87,5% времени аренды. Если и на этот запрос сервер не ответит, то по достижении 100% времени аренды клиент предпринимает последнюю попытку и, в случае её неудачи, он обязан немедленно освободить арендованный IP-адрес.

Один из очевидных векторов атаки на DHCP – т.н. атака DHCP starvation («исчерпание»). Злоумышленник, посылая множество запросов, забирает их все в аренду, пока все доступные адреса не закончатся. Реализуется один из видов отказа в обслуживании (DoS).

Второй вариант атаки на DHCP – использование ложного DHCP-сервера. Поскольку клиент при получении обычно никак не проверяет ответ на принадлежность к конкретному серверу (даже при проверке подделать MAC/IP легального сервера не составляет никаких особых трудностей), то можно выдать клиентам неверные настройки, например, выдать в качестве шлюза по умолчанию адрес стороннего хоста и пустить трафик клиентов через него. Можно выдать «нехороший» адрес DNS-сервера, который сможет ввести в заблуждение клиентов, направляя их по неверным адресам.

Для борьбы с ложными DHCP-серверами существует технология DHCP snooping. И, как и в случае с ARP, технология DHCP snooping – это не модификация протокола DHCP, а свойство сетевого оборудования соответствующего класса.


Рис.99 Принципы работы DHCP Snooping.
Идея DHCP Snooping состоит в том, что сетевой администратор описывает порты сетевого оборудования, указывая те из них, на которые могут (имеют право) поступать ответы DHCP-серверов. Такие порты называются доверенными (trusted). Все остальные порты считаются ненадёжными (untrusted). По умолчанию коммутатор отбрасывает DHCP-пакет, который пришёл на ненадёжный порт, если:


  • Приходит одно из сообщений, которые отправляет DHCP-сервер (DHCPOFFER, DHCPACK, DHCPNAK или DHCPLEASEQUERY);

  • Приходит сообщение DHCPRELEASE или DHCPDECLINE, в котором содержится MAC-адрес из базы данных привязки DHCP, но информация об интерфейсе в таблице не совпадает с интерфейсом, на котором был получен пакет;

  • В пришедшем DHCP-пакете не совпадают MAC-адрес, указанный в DHCP-запросе и MAC-адрес отправителя;

  • Приходит DHCP-пакет, в котором есть опция 82.

Если же DHCP-ответ был принят на доверенный порт, он будет переслан далее. На ненадёжные порты не передаются запросы на получение адреса.





Достарыңызбен бөлісу:
1   ...   25   26   27   28   29   30   31   32   ...   44


©kzref.org 2019
әкімшілігінің қараңыз

    Басты бет