ARP-spoofing

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

undefined

ARP-spoofing может позволить злоумышленнику перехватывать кадры данных в сети, изменять их или блокировать весь сетевой трафик. Часто эта атака используется как первый этап для проведения других атак, таких как отказ в обслуживании, атаки типа «человек посередине» или захват сессии[1].

Атака применима только к сетям, использующим ARP, и для её осуществления злоумышленник должен иметь прямой доступ к локальному сегменту атакуемой сети[2].

Уязвимости ARP

Протокол разрешения адресов (ARP) — широко используемый сетевой протокол для преобразования адрес на сетевом уровне в адрес на канальный уровень.

Когда IP-датаграмма отправляется от одного хоста другому в локальной сети, IP-адрес получателя должен быть преобразован в MAC-адрес для передачи по канальному уровню. Если известен только IP-адрес, ПК на сетевом уровне отправляет широковещательный пакет — ARP-запрос, запрашивая соответствующий MAC-адрес. Хост с этим IP-адресом отвечает ARP-ответом, содержащим свой MAC-адрес[2].

ARP — протокол без состояния: сетевые узлы автоматически кэшируют любые ARP-ответы, которые они получают, вне зависимости от того, запрашивали ли они их. Даже если срок существования (TTL) записи не истёк, она будет перезаписана новым ARP-ответом. При этом в протоколе ARP отсутствуют механизмы аутентификации источника пакета, что и создаёт уязвимость, позволяющую производить ARP-spoofing[1][2][3].

Механизм атаки

Суть ARP-spoofing заключается в эксплуатации отсутствия аутентификации в ARP. Поддельные ARP-сообщения рассылаются по локальной сети злоумышленником с целью введения других хостов сети в заблуждение[4]. Атаку можно выполнить как с скомпрометированного хоста ЛВС, так и с компьютера злоумышленника, напрямую подключённого к сети жертвы.

Основная цель — привязать MAC-адрес злоумышленника к IP-адресу целевого хоста, чтобы весь трафик, предназначенный для него, направлялся взломщику. Злоумышленник может анализировать пакеты (шпионить), пересылать трафик к реальному получателю (чтобы атака осталась незамеченной), модифицировать передаваемые данные (реализация атаки «человек посередине») либо создавать отказ в обслуживании, обрывая соединения путём блокирования пакетов.

Защита

Статические записи ARP

Самый простой способ повысить безопасность — добавление статических, доступных только для чтения записей для критичных сервисов в локальный кэш ARP. Связь IP-адреса и MAC-адреса может быть прописана вручную и не требует ARP-запросов[5]. Однако этот подход требует ручного обновления для всех систем в сети и плохо масштабируется: число статических ARP-записей на каждом из n хостов составляет n-1, а всего n²-n записей, что затрудняет администрирование в больших сетях.

Программные средства обнаружения и предотвращения

Программы для обнаружения ARP-spoofing, как правило, используют методы сертификации или скрещивания-валидации ARP-ответов: неподтверждённые ответы блокируются. Такие решения могут интегрироваться с DHCP-сервером для автоматической сертификации как динамических, так и статических IP-адресов. Обнаружение может выполняться как на отдельных хостах, так и непосредственно на Ethernet-коммутаторах или другом сетевом оборудовании. Если один MAC-адрес связан с несколькими IP-адресами, это может свидетельствовать об атаке ARP-spoofing (хотя иногда такая конфигурация допустима легитимно). При пассивном подходе устройство просто слушает ARP-ответы в сети и отправляет уведомление (например, по email) в случае изменений[6].

AntiARP[7] реализует защиту в Windows на уровне ядра. ArpStar — модуль под Linux для ядра 2.6 и роутеров Linksys, который блокирует некорректные пакеты, нарушающие сопоставление, и содержит режим восстановления.

В некоторых виртуализированных средах, например KVM, реализованы механизмы защиты от подмены MAC-адресов между виртуальными машинами, работающими на одном хосте[8].

Ряд сетевых карт поддерживают антиспуфинг MAC- или VLAN-адресов на аппаратном уровне[9].

OpenBSD пассивно отслеживает попытки подмены локального хоста и уведомляет администратора при попытке перезаписать статическую запись[10].

Особенности поведения ОС

Операционные системы реагируют на ARP-ответы по-разному. Linux игнорирует неподписанные (неожиданные) ответы, но при этом обновляет кэш на основе ответов других машин. Solaris принимает обновления только по истечении таймаута записи. В Microsoft Windows поведение кэша ARP можно настроить через параметры реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters: ArpCacheLife, ArpCacheMinReferenceLife, ArpUseEtherSNAP, ArpTRSingleRoute, ArpAlwaysSourceRoute, ArpRetryCount[11].

Легитимное использование

Техники, аналогичные используемым в ARP-spoofing, могут применяться для построения избыточных сетевых сервисов. Например, некоторые программы позволяют резервному серверу отправить беззапросный ARP-запрос для взятия на себя адреса отключившегося основного сервера и предоставления прозрачной надёжности[12][13]. Circle[14] и CUJO предлагают коммерческие продукты на базе таких методов.

ARP-spoofing иногда используется разработчиками для отладки IP-трафика между двумя хостами в сетях с использованием коммутатора: если хосты A и B обмениваются данными через Ethernet-коммутатор, сетевая активность остаётся невидимой для хоста M. Разработчик прописывает для хоста A MAC-адрес M для B, и наоборот — для B MAC-адрес M для A; M перенаправляет пакеты по назначению. Таким образом, M может просматривать трафик («человек посередине»).

Инструменты

Для защиты

Название ОС Графический интерфейс Бесплатное ПО Защита По интерфейсам Активный/Пассивный режим Особенности
Agnitum Outpost Firewall Windows да нет да нет пассивный
AntiARP Windows да нет да нет активный+пассивный
Antidote[15] Linux нет да нет ? пассивный Демон для Linux, мониторит соответствие, реагирует на аномально большой поток ARP-пакетов.
Arp_Antidote[16] Linux нет да нет ? пассивный Патч ядра Linux 2.4.18-2.4.20, отслеживает изменения, пользователь может определить действие при выявлении.
Arpalert Linux нет да нет да пассивный Список разрешённых MAC-адресов, сигнализация при появлении чужих адресов.
ArpON Linux нет да да да активный + пассивный Демон для проверки достоверности ARP, защищает кэш от подмены и отравления в статических, динамических и гибридных сетях.
ArpGuard Mac да нет да да активный+пассивный
ArpStar Linux нет да да ? пассивный
Arpwatch Linux нет да нет да пассивный Отслеживание пар IP-MAC-адресов, сообщения об изменениях через Syslog и Email.
ArpwatchNG Linux нет да нет нет пассивный То же, что и Arpwatch, без функции оповещения по интерфейсам.
Colasoft Capsa Windows да нет нет да анализ без автоматического обнаружения
cSploit[17] Android (root) да да нет да пассивный
elmoCut[18] Windows да да нет ? пассивный EyeCandy-ARP-спуфер для Windows
Prelude IDS ? ? ? ? ? ? Плагин ArpSpoof, проверка адресов.
Panda Security Windows ? ? да ? активный Базовая проверка адресов.
remarp Linux нет да нет нет пассивный
Snort Windows/Linux нет да нет да пассивный Препроцессор Arpspoof, базовая проверка ARP-адресов.
Winarpwatch Windows нет да нет нет пассивный Отслеживание соответствия IP-MAC, оповещения через Syslog и Email.
XArp[19] Windows, Linux да да (+pro версия) да (Linux, Pro) да активный + пассивный Продвинутое обнаружение spoofing, активная и пассивная проверка, две панели для настройки модулей и проверки на разных интерфейсах.
Seconfig XP Windows 2000/XP/2003 да да да нет только активирует штатную защиту Windows
zANTI Android (root) да да нет ? пассивный
NetSec Framework Linux нет да нет нет активный
anti-arpspoof[20] Windows да да ? ? ?
DefendARP:[21] ? ? ? ? ? ? Хостовое мониторинг и защита ARP-таблицы (WIFI): определяет атаку, исправляет отравленные записи, указывает MAC и IP злоумышленника.
NetCutDefender:[22] Windows ? ? ? ? ? Графический интерфейс для защиты от ARP-атак.

Примечания

  1. 1 2 Ramachandran, Vivek. Detecting ARP Spoofing: An Active Technique // Information systems security: first international conference, ICISS 2005, Kolkata, India, December 19–21, 2005 : proceedings : [англ.] / Ramachandran, Vivek, Nandi, Sukumar. — Birkhauser, 2005. — P. 239. — ISBN 978-3-540-30706-8.
  2. 1 2 3 Lockhart, Andrew. Network security hacks : [англ.]. — O'Reilly, 2007. — P. 184. — ISBN 978-0-596-52763-1.
  3. Steve Gibson. ARP Cache Poisoning (англ.). Gibson Research Corporation (11 декабря 2005). Дата обращения: 10 июня 2024. Архивировано 11 декабря 2005 года.
  4. Moon, Daesung; Lee, Jae Dong; Jeong, Young-Sik; Park, Jong Hyuk (19 декабря 2014). “RTNSS: a routing trace-based network security system for preventing ARP spoofing attacks”. The Journal of Supercomputing [англ.]. 72 (5): 1740—1756. DOI:10.1007/s11227-014-1353-0. ISSN 0920-8542. S2CID 18861134. Архивировано из оригинала 2021-01-23. Дата обращения 2021-01-23.
  5. Lockhart, Andrew. Network security hacks : [англ.]. — O'Reilly, 2007. — P. 186. — ISBN 978-0-596-52763-1.
  6. A Security Approach to Prevent ARP Poisoning and Defensive tools (англ.). ResearchGate. Дата обращения: 22 марта 2019. Архивировано 3 мая 2019 года.
  7. AntiARP (англ.). Дата обращения: 6 июня 2011. Архивировано 6 июня 2011 года.
  8. Daniel P. Berrangé » Blog Archive » Guest MAC spoofing denial of service and preventing it with libvirt and KVM (англ.). Дата обращения: 9 августа 2019. Архивировано 9 августа 2019 года.
  9. Archived copy (англ.). Дата обращения: 9 августа 2019. Архивировано 3 сентября 2019 года.
  10. Arp(4) – OpenBSD manual pages (англ.). Дата обращения: 9 августа 2019. Архивировано 9 августа 2019 года.
  11. Address Resolution Protocol (англ.) (18 июля 2012). Дата обращения: 26 августа 2017. Архивировано 23 января 2021 года.
  12. OpenBSD manpage for CARP (4) (англ.). Дата обращения: 4 февраля 2018. Архивировано 5 февраля 2018 года.
  13. Simon Horman. Ultra Monkey: IP Address Takeover (англ.). Дата обращения: 4 января 2013. Архивировано 18 ноября 2012 года.
  14. Circle with Disney Locks Down Kids Devices from Afar (англ.). Архивировано 12 октября 2016 года. Дата обращения: 12 октября 2016.
  15. Antidote (англ.). Дата обращения: 7 апреля 2014. Архивировано 13 марта 2012 года.
  16. Arp_Antidote (англ.). Дата обращения: 2 августа 2011. Архивировано 14 января 2012 года.
  17. cSploit (англ.). tux_mind. Дата обращения: 17 октября 2015. Архивировано 12 марта 2019 года.
  18. elmoCut: EyeCandy ARP Spoofer (GitHub Home Page) (англ.). GitHub.
  19. XArp (англ.). Дата обращения: 23 января 2021. Архивировано 16 июня 2020 года.
  20. anti-arpspoof (англ.). Дата обращения: 31 августа 2015. Архивировано 31 августа 2008 года.
  21. Defense Scripts – ARP Poisoning (англ.). Дата обращения: 8 июня 2013. Архивировано 22 января 2013 года.
  22. Netcut defender (англ.). Дата обращения: 7 февраля 2018. Архивировано 8 апреля 2019 года.

Литература

  • Ramachandran, Vivek; Nandi, Sukumar. Detecting ARP Spoofing: An Active Technique // Information Systems Security: First international conference, ICISS 2005, Kolkata, India, December 19-21, 2005 : proceedings. — Birkhauser, 2005. — С. 239. ISBN 978-3-540-30706-8.

Ссылки

Категории