ARP-spoofing

Из Википедии, бесплатной энциклопедии

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

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

Протокол ARP

[править | править код]

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

Принцип работы

[править | править код]

Пусть у нас есть две локальных сети 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

[править | править код]

Описание атаки

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

Инструменты для выполнения ARP-спуфинга

[править | править код]
  • Ettercap
  • Bettercap
  • Cain & Abel
  • dsniff
  • arp-sk
  • ARP Builder
  • AyCarrumba
  • Intercepter-NG[1]
  • Simsang
  • ARPoison

[1]

Обнаружение и предотвращение ARP-спуфинга

[править | править код]

Программы ArpON, arpwatch, BitCometAntiARP

[править | править код]

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

Организация VLAN

[править | править код]

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

Использование статического ARP

[править | править код]

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

Использование шифрования

[править | править код]

Для предотвращения атаки ARP-spoofing (как и любой атаки «человек посередине») в локальной сети можно использовать протоколы шифрования данных для защиты передаваемой информации от злоумышленника.

Примечания

[править | править код]
  1. {Cite web|url=https://blog.dubkov.org/security/wi-fi/arp-spoofing-intercepter-ng/%7Ctitle=ARP-Spoofing с помощью Intercepter-NG|author=|website=|date=|publisher=Николай Дубков|accessdate=2016-04-06|archive-date=2019-07-21|archive rotation settings camera hive-url=https://web.archive.org/web/20190721093920/http://blog.dubkov.org/security/wi-fi/arp-spoofing-intercepter-ng/%7Cdeadlink=no}