HOW-TO: Как защитить локальную сеть от ARP-спуфинга

Если хакер запустит снифер (к примеру, Wireshark) в локальной сети, то ничего интересного, кроме своих бродкастов и прочей служебной информации, он не увидит. Поэтому для перехвата трафика обычно используются слабости самого протокола ARP. Разберемся, как можно компенсировать их.

ARP spoofing attack

Протокол ARP используется для преобразования IP-адреса в MAC-адрес. Исторически ARP не имеет никакой защиты или хотя бы проверки подлинности запросов. Повторю: совсем никакой! А еще возможна отправка ARP-ответов без ARP-запросов — это так называемый gratuitous ARP. Он-то нас и интересует. Чтобы провернуть подобную схему, можно воспользоваться тулзой Cain & Abel. Думаю, ты о ней знаешь.

С помощью Cain & Abel злоумышленник может вклиниться и перехватить трафик в одном широковещательном домене. Защититься от этой напасти можно при помощи механизма Dynamic ARP Inspection (Protection).

Для корректной работы Dynamic ARP Inspection необходимо указывать, какие порты коммутатора будут доверенными, а какие — нет. Под ненадежным портом подразумевается тот порт, к которому подключены клиенты. Для ненадежных портов выполняется ряд проверок сообщений ARP. А к доверенным портам коммутатора относятся те порты, к которым подключен другой коммутатор. Сообщения протокола ARP, полученные с доверенных портов, не отбрасываются.

Коммутатор перехватывает все ARP-запросы и ARP-ответы на ненадежных портах, прежде чем перенаправлять их. Также на ненадежных портах коммутатор проверяет соответствие MAC-адреса IP-адресу.

Проверка соответствия MAC-адреса IP-адресу может выполняться на основании статических записей или базы данных привязки DHCP.

На коммутаторах Cisco этот механизм во VLAN включается командой

Switch(config)# ip arp inspection vlan 1

А вот как выглядит настройка доверенного порта:

Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip arp inspection trust

Если у тебя нет коммутатора, способного защитить от атак подобного типа, можешь установить arpwatch: это демон, который отслеживает соответствие между IP- и MAC-адресами и при обнаружении аномалий фиксирует это в системном логе. Документацию можно глянуть вот здесь.

Как сам понимаешь, главный недостаток arpwatch, как и, в принципе, всех программ подобного рода, в том, что он должен работать на хостах, которые он защищает, или хотя бы на маршрутизаторе, ведущем в защищаемую сеть. Однако маршрутизатор не всегда работает под управлением UNIX или Linux. Чаще всего это специализированный аппаратный маршрутизатор или коммутатор третьего уровня.

Чтобы защитить такой маршрутизатор, нужно получать от него ARP-таблицу по SNMP и анализировать ее на другой машине. Так, к примеру, действует программа remarp.

Комментарии (5)

  • Ну и смысл от этого arp когда практически все сайты на сегодня используют https ?

    • mitm-атака с sslsrip+ может обойти https в 70% случаев.

    • к примеру, в небольших компаниях обычно не запариваются с https и юзают http для внутренних ресурсов (трекер, веб-морда для git'а, ...).

      • Речь идет о "Таргетированой" атаке типа MitM , Имеем локальную корпоративную сеть которая ходит в "интернеты" с помощью одного ip при помощи 1го хаба/свича . И если человек использующий данную атаку не находится в этой локальной сети , то атака не имеет никакого смысла. Даже если внутри сети используются http вместо https.

        • Стоит злоумышленнику попасть в локальную сеть, используя хотя бы банальный фишинг, и дальше уже можно, не парясь, слушать пароли от прокси сервера всех пользователей и ждать, пока проскочит учётка администратора домена - значительно упрощает жизнь, поэтому арп пока ещё актуален.