- PVSM.RU - https://www.pvsm.ru -

Что такое ARP‑Spoofing и как от него защититься

«ARP‑Spoofing», или же «Отравление ARP‑кеша» — это тип кибератаки уровня L2, чья работоспособность до сих пор держится лишь на огромной дыре в безопасности Address Resolution Protocol. Основная суть данной атаки — испортить ARP‑кеш устройства путём рассылки пакетов с поддельными данными в своей подсети. В этой статье я по шагам покажу весь процесс атаки типа MITM (Man In The Middle) на своих домашних устройствах, а также расскажу как от неё защититься.

Что такое ARP?

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

Как происходит отравление ARP‑кеша?

Представим следующую схему:

Схема слева — штатная работа сети. Схема справа — работа сети при отравлении ARP-кеша.

Схема слева — штатная работа сети. Схема справа — работа сети при отравлении ARP‑кеша.

На её основе будет произведена пробная атака, описанная дальше. В основном, список действий при атаке состоит из следующих действий:

  • Рассылка поддельных ARP‑ответов устройству жертвы

  • Рассылка поддельных ARP‑ответов маршрутизатору

  • Пересылка пакетов через себя

Машина атакующего становится транзитной точкой между устройством жертвы и маршрутизатором. При этом, злоумышленник имеет возможность просматривать весь трафик с помощью специальных утилит.

Пробная атака

Проводить отравление ARP‑кеша я буду со своего ПК (Linux) на стороне (MikroTik). В качестве жертвы будет выступать мой смартфон на базе Android.

Выбор жертвы

Сканирование устройств в своей подсети с помощью пакета arp-scan.

Сканирование устройств в своей подсети с помощью пакета arp‑scan.

После сканирования подсети находим IP и MAC адреса жертвы. Стоит отметить, что для успешной атаки типа MITM, в Linux‑системах необходимо изменить параметр net.ipv4.ip_forward на 1.

Начало отравления

Рассылка поддельных ответов устройству от лица маршрутизатора с помощью утилиты из набора dsniff

Рассылка поддельных ответов устройству от лица маршрутизатора с помощью утилиты из набора dsniff

В первой сессии терминала начинаем рассылку поддельных ARP‑ответов смартфону.

Рассылка поддельных ответов маршрутизатору от лица устройства с помощью утилиты из набора dsniff

Рассылка поддельных ответов маршрутизатору от лица устройства с помощью утилиты из набора dsniff

Во второй сессии терминала начинаем рассылку поддельных ARP‑ответов маршрутизатору.

Результат

Вывод слева — ARP-таблица маршрутизатора. Вывод справа — MAC-адрес атакующего

Вывод слева — ARP‑таблица маршрутизатора. Вывод справа — MAC‑адрес атакующего

Вуаля — атака увенчалась успехом. Вывод команды ip arp print показывает привязку IP‑адреса телефона к MAC‑адресу атакующего компьютера. Давайте подтвердим это путём отладки через Wireshark.

Поддельный ARP-ответ устройству жертвы от лица маршрутизатора

Поддельный ARP‑ответ устройству жертвы от лица маршрутизатора
Поддельный ARP-ответ маршрутизатору от лица устройства жертвы

Поддельный ARP‑ответ маршрутизатору от лица устройства жертвы
Пакет TCP-SYN, что прошёл через наше устройство, засветив данные.

Пакет TCP‑SYN, что прошёл через наше устройство, засветив данные.

Почему он вам не нужен?

Безусловно, ARP‑Spoofing позволяет просматривать чужие пакеты насквозь, но стоит ли оно того? Даже с помощью Wireshark вы не сможете подслушать ни одно HTTPS‑соединение, ни одну SFTP‑сессию. Легче перечислить возможные уязвимости, с которыми эта атака будет эффективна, нежели наоборот. Несмотря на это, всё же нельзя недооценивать отравление ARP‑кеша. Хоть тело запроса HTTPS и не вытащить, зато очень хорошо видны все метаданные, а с помощью подключения других методов атаки, таких как SSLstrip, или другие, можно полностью просматривать весь трафик. Так как же защититься от столь примитивной, но от того не менее опасной кибератаки?

Способы защиты

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

Защита от ARP‑Spoofing со стороны устройств

Самое надёжное, и в то же время простое решение — создать статическую ARP‑запись к маршрутизатору. Например в Windows это делается с помощью одной команды — netsh -c i i add neighbors "Ethernet" 123.123.123.123 AA-BB-CC-DD-EE-FF. В Linux‑системах это можно осуществить через добавления команды sudo ip neigh add 123.123.123.123 lladdr AA:BB:CC:DD:EE:FF dev eth0 nud permanent в /etc/rc.local.

Защита от ARP‑Spoofing со стороны сетевого оборудования

Теперь всё становится немного интереснее. Здесь можно выделить три основных способа защиты: создание статических записей с включённым reply-only на интерфейсе, периодическая рассылка ARP‑запросов на широковещательный канал и DAI. Рассмотрим каждый пункт:

Создание статических записей

Процесс показан на примере роутера MikroTik. Достаточно лишь найти существующую ARP‑запись в WEB‑интерфейсе и нажать Make Static

Перевод динамической ARP-записи в статическую через WEB-интерфейс

Перевод динамической ARP‑записи в статическую через WEB‑интерфейс

Или же прописать /ip arp add address=123.123.123.123 mac-address=AA:BB:CC:DD:EE:FF interface=bridge-LAN, если работа идёт через CLI. Вместе с этим также можно изменить параметры интерфейса, принимая ARP‑запросы только от уже имеющихся устройств в кэше. Пример команды: /interface bridge set bridge-LAN arp=reply-only.

Периодическая рассылка ARP‑запросов на широковещательный канал

Этот способ не столь безопасен, как предыдущий, но довольно прост в настройке. Суть заключается в том, чтобы генерировать ARP‑запросы через traffic-generator, периодически обновляя таблицу подключённых устройств. Этот способ предотвращает долгосрочные перехваты трафика, но не устраняет атаку полностью. Команду можно обернуть в скрипт и настроить запуск через Schedule.

DAI

DAI (Dynamic ARP Inspection) — функция безопасности в коммутаторах, являющаяся стандартом безопасности сетей уровня больших корпораций. Его основная задача — предотвращать ARP‑спуфинг путём проверки всех ARP‑пакетов, проходящих через коммутатор, на соответствие с заранее собранной базой доверенных привязок IP‑MAC. DAI не является самостоятельной функцией, ведь она тесно связана с DHCP‑Snooping и использует его таблицу привязок для сверки. Основная проверка содержит в себе несколько этапов:

  • DAI перехватывает все ARP‑запросы и ARP‑ответы на недоверенных портах коммутатора

  • Сверка с базой привязок. Кроме сопоставления IP‑MAC, DAI может выполнять дополнительные проверки целостности заголовков ARP (src‑mac, dst‑mac, ip и так далее)

Если привязка не совпадает или пакет пришёл с недоверенного порта без подтверждённых данных, DAI отбрасывает такой ARP‑запрос и, при настроенном логировании, заносит событие в журнал. Это полностью блокирует попытки подмены адресов.

Подводя итог, можно утверждать: ARP‑Spoofing — это та уязвимость, которую проще предотвратить, чем обнаружить. Выстроив защиту из статических записей и функций коммутатора, вы лишаете атакующего самой возможности встать в разрыв, а значит, сохраняете конфиденциальность своих данных.

Все действия, описанные в данной статье, демонстрируются исключительно в образовательных целях, на собственном оборудовании автора. Проведение подобных кибератак в иных сетях без явного разрешения владельца является незаконным. Материал несёт лишь образовательный характер.

Автор: dotdfs

Источник [1]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/456410

Ссылки в тексте:

[1] Источник: https://habr.com/ru/articles/1069394/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1069394