ARP-spoofing

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

ARP-spoofing (ARP — poisoning) — разновидность сетевой атаки типа MITM (англ. Man in the middle), применяемая в сетях с использованием протокола ARP. В основном применяется в сетях Ethernet. Атака основана на недостатках протокола ARP.

При использовании в распределённой вычислительной сети алгоритмов удалённого поиска существует возможность осуществления в такой сети типовой удалённой атаки «ложный объект распределённой вычислительной системы». Анализ безопасности протокола ARP показывает, что, перехватив на атакующем узле внутри данного сегмента сети широковещательный ARP-запрос, можно послать ложный ARP-ответ, в котором объявить себя искомым узлом (например, маршрутизатором), и в дальнейшем активно контролировать сетевой трафик дезинформированного узла, воздействуя на него по схеме «ложный объект РВС».

Протокол ARP[править | править вики-текст]

Протокол ARP(Address Resolution Protocol или протокол разрешения адреса) — сетевой протокол, использующийся для связи IP-адреса устройства с его MAC адресом, тем самым делая возможным связь между устройствами сетевого уровня локальной и глобальной сети.

Принцип работы[править | править вики-текст]

Пусть у нас есть две локальных сети Ethernet, соединенных маршрутизатором, и пусть узел первой локальной сети (узел A) хочет передать узлу второй локальной сети (узлу B) пакет. По протоколу IP определяется IP адрес интерфейса маршрутизатора (IP1), к которому подключена локальная сеть 1, где находится узел А. Теперь, чтобы пакет инкапсулировать в кадр и передать на интерфейс маршрутизатора с адресом IP1, нужно знать MAC адрес этого интерфейса. Далее начинается работа протокола ARP. Протокол ARP имеет на каждом сетевом интерфейсе компьютера или маршрутизатора свою ARP-таблицу, в которой записаны соответствия между IP-адресами и MAC адресами сетевых устройств. Пусть вначале все ARP-таблицы пусты. Далее:

  1. Протокол IP запрашивает у протокола ARP MAC адрес интерфейса с адресом IP1.
    пример ARP-таблицы
  2. Протокол ARP проверяет свою ARP-таблицу и не находит MAC адреса, соответствующего адресу IP1
  3. Тогда протокол ARP формирует ARP-запрос (смысл запроса -узнать MAC-адрес интерфейса по его IP -адресу), вкладывает его в кадр Ethernet и рассылает данный кадр широковещательно в локальной сети 1.
  4. Каждый интерфейс локальной сети 1 получает ARP-запрос и направляет его своему протоколу ARP.
  5. Если протокол ARP интерфейса нашел совпадение IP адреса интерфейса с IP1, то ARP генерирует ARP-ответ (В данной ситуации это ARP маршрутизатора), который направляется запрашивающему узлу. В ARP-ответе содержится MAC адрес интерфейса, на который нужно отправить кадр(в данном случае это интерфейс маршрутизатора, подключенный к локальной сети 1).
  6. Далее узел A передает кадр с инкапсулированным пакетом на соответствующий интерфейс маршрутизатора.

Уязвимости ARP[править | править вики-текст]

Протокол ARP является уязвимым - он не проверяет подлинность ARP-запросов и ARP-ответов. А так как сетевые интерфейсы на компьютерах поддерживают самопроизвольный ARP (ARP-ответ присылается на интерфейс устройства без необходимости), то как раз в таком случае возможна атака ARP-spoofing.

Атака ARP-spoofing[править | править вики-текст]

Описание атаки[править | править вики-текст]

  1. Два компьютера(узла) M и N в локальной сети Ethernet обмениваются сообщениями. Злоумышленник X, находящийся в этой же сети, хочет перехватывать сообщения между этими узлами. До применения атаки ARP-spoofing на сетевом интерфейсе узла M ARP-таблица содержит IP и MAC адрес узла N.Также на сетевом интерфейсе узла N ARP-таблица содержит IP и MAC узла M.  
рисунок
Зеленое соединение - связь между M и N до применения ARP-spoofing. Красное соединение - связь между M и N после применения ARP-spoofing (все пакеты проходят через X)
  1. Во время атаки ARP-spoofing узел X (злоумышленник) отсылает два ARP ответа (без запроса) – узлу M и узлу N. ARP-ответ узлу A содержит IP-адрес N и MAC-адрес X. ARP-ответ узлу N содержит IP адрес M и MAC-адрес X.
  2. Так как компьютеры M и N  поддерживают самопроизвольный ARP, то, после получения ARP-ответа, они изменяют свои ARP таблицы, и теперь ARP-таблица M содержит MAC адрес X, привязанный к IP-адресу N, а ARP-таблица N содержит MAC адрес X, привязанный к IP-адресу M.
  3. Тем самым атака ARP-spoofing выполнена, и теперь все пакеты(кадры) между M и N проходят через X. К примеру, если M хочет передать пакет компьютеру N, то M смотрит в свою ARP-таблицу, находит запись с IP-адресом узла N, выбирает оттуда MAC-адрес (а там уже MAC-адрес узла X) и передает пакет. Пакет поступает на интерфейс X, анализируется им, после чего перенаправляется узлу N.

Инструменты для выполнения ARP-спуфинга:[править | править вики-текст]

  • Ettercap,
  • Cain & Abel,
  • dsniff,
  • arp-sk,
  • ARP Builder,
  • AyCarrumba.
  • Intercepter-ng

Инструменты и методы для обнаружения и предотвращения ARP-спуфинга:[править | править вики-текст]

программы arpwatch, BitCometAntiARP[править | править вики-текст]

Эти программы отслеживают ARP активность на заданных интерфейсах. Могут обнаружить атаку ARP-spoofing, но не могут предотвратить ее. Для предотвращения атаки требуется вмешательство администратора сети.

организация VLAN[править | править вики-текст]

Если в локальной сети есть разделение на несколько VLAN, то атака ARP-spoofing может быть применена только к компьютерам, находящимся в одном VLAN. Идеальной ситуацией, с точки зрения безопасности, является наличие только одного компьютера и интерфейса маршрутизатора в одном VLAN. Атака ARP-spoofing для такого сегмента невозможна.

использование статического ARP[править | править вики-текст]

Можно избежать атаки ARP-spoofing путем настраивания ARP-таблицы вручную. Тогда злоумышленник не сможет обновлять ARP-таблицы путем посылки ARP-ответов на интерфейсы компьютеров.

использование шифрования[править | править вики-текст]

Для предотвращения атаки ARP-spoofing в локальной сети можно использовать протоколы шифрования данных, для защиты передаваемой информации от злоумышленника. Например такие протоколы как PPPoE или IPSec

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]