ARP-spoofing (ARP — poisoning) — разновидность сетевой атаки типа MITM (англ. Man in the middle), применяемая в сетях с использованием протокола ARP. В основном применяется в сетях Ethernet. Атака основана на недостатках протокола 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-таблицы пусты. Далее:
Протокол IP запрашивает у протокола ARP MAC адрес интерфейса с адресом IP1.
Протокол ARP проверяет свою ARP-таблицу и не находит MAC адреса, соответствующего адресу IP1
Тогда протокол ARP формирует ARP-запрос (смысл запроса -узнать MAC-адрес интерфейса по его IP -адресу), вкладывает его в кадр Ethernet и рассылает данный кадр широковещательно в локальной сети 1.
Каждый интерфейс локальной сети 1 получает ARP-запрос и направляет его своему протоколу ARP.
Если протокол ARP интерфейса нашел совпадение IP адреса интерфейса с IP1, то ARP генерирует ARP-ответ (В данной ситуации это ARP маршрутизатора), который направляется запрашивающему узлу. В ARP-ответе содержится MAC адрес интерфейса, на который нужно отправить кадр (в данном случае это интерфейс маршрутизатора, подключенный к локальной сети 1).
Далее узел A передает кадр с инкапсулированным пакетом на соответствующий интерфейс маршрутизатора.
Уязвимости ARP
Протокол ARP является уязвимым - он не проверяет подлинность ARP-запросов и ARP-ответов. А так как сетевые интерфейсы на компьютерах поддерживают самопроизвольный ARP (ARP-ответ присылается на интерфейс устройства без необходимости), то как раз в таком случае возможна атака ARP-spoofing.
Инструменты и методы для обнаружения и предотвращения ARP-спуфинга
Программы arpwatch, BitCometAntiARP
Эти программы отслеживают ARP активность на заданных интерфейсах. Могут обнаружить атаку ARP-spoofing, но не могут предотвратить её. Для предотвращения атаки требуется вмешательство администратора сети.
Организация VLAN
Если в локальной сети есть разделение на несколько VLAN, то атака ARP-spoofing может быть применена только к компьютерам, находящимся в одном VLAN. Идеальной ситуацией, с точки зрения безопасности, является наличие только одного компьютера и интерфейса маршрутизатора в одном VLAN. Атака ARP-spoofing для такого сегмента невозможна.
Использование статического ARP
Можно избежать атаки ARP-spoofing путём настраивания ARP-таблицы вручную. Тогда злоумышленник не сможет обновлять ARP-таблицы путём посылки ARP-ответов на интерфейсы компьютеров
Использование шифрования
Для предотвращения атаки ARP-spoofing (как и любой атаки "человек посередине") в локальной сети можно использовать протоколы шифрования данных, для защиты передаваемой информации от злоумышленника. Например такие протоколы как PPPoE или IPSec