Содержание статьи
- DHCP Snooping
- DAI & IPSG
- Обнаружение и блокировка инструмента Responder
- Анализ процесса отравления
- ACL
- VACL и VMAP
- Сигнатура для Suricata
- Блокировка инструмента mitm6
- Блокировка на основе VMAP
- Безопасность дерева STP
- Безопасность горячей системы резервирования FHRP
- Аутентификация
- Максимальный приоритет
- Защита динамической маршрутизации
- Пассивные интерфейсы
- Аутентификация
- Выводы
Эта статья — ни в коем случае не инструкция для защиты любой сети, потому что у каждой из них свои особенности и всегда потребуется какой‑то тюнинг. Я буду демонстрировать работу на оборудовании Cisco, но с железом другого вендора принципиальной разницы нет. Концепция механизмов безопасности везде одинаковая, и отличия будут лишь в синтаксисе настроек и некоторых нюансах реализации.
Немного особняком стоит только система RouterOS, на которой работает оборудование MikroTik. Там отсутствует один из главных, на мой взгляд, механизмов безопасности — Dynamic ARP Inspection. Вместо него производитель фактически предлагает вести только статическую ARP-таблицу, а, учитывая размеры современных корпоративных сетей, это в принципе нерентабельно. Также в RouterOS отсутствует RA Guard, предотвращающий атаки на сервер DHCPv6.
Еще оговорюсь, что этот материал — не всеобъемлющий мануал по защите от спуфинга. Атак может быть бесконечно много, и мы рассмотрим лишь основные из них.
DHCP Snooping
DHCP Snooping — это функция сетевой безопасности на уровне коммутации. Она позволяет защитить сетевые сегменты от атак на DHCP-сервер. К ним относятся следующие виды:
- DHCP Exhaustion — вызывает истощение адресного пространства на легитимном DHCP-сервере, рассылая ложные DHCPDISCOVER-сообщения от разных MAC-адресов источника. DHCP-сервер будет реагировать на сообщения и выдавать адреса. После атаки DHCP-сервер не сможет обслужить новые хосты. Обычно эту атаку используют либо для деструктивного воздействия, либо для атаки DHCP Spoofing;
- DHCP Spoofing — создание ложного DHCP-сервера, который будет обслуживать клиентов сети. Опасность атаки заключается в том, что атакующий в информации о шлюзе по умолчанию просто установит свой адрес и тем самым проведет MITM-атаку, так как трафик хостов будет идти в его сторону.
Настройка Snooping — это, по сути, назначение доверенных и недоверенных портов. На недоверенных портах будут отслеживаться все DHCP-сообщения. Цель в том, чтобы проверить, сгенерированы ли они DHCP-сервером. Ведь ежу понятно: если в пользовательском сегменте мы будем видеть сообщения вроде DHCPLEASEQUERY
, DHCPOFFER
и DHCPACK
, то это однозначно аномалия и в пользовательской сети находится DHCP-сервер.
На доверенных же портах все DHCP-сообщения будут считаться легитимными. Обычно доверенные порты настраиваются на соединениях между коммутаторами и маршрутизаторами, а недоверенные конфигурируются на портах, куда подключаются конечные станции (например, компьютер, принтер, точки доступа, VoIP).
Теперь к конфигурации. Предположим, перед нами коммутатор Cisco. Его порт g0/2 смотрит в сторону маршрутизатора, а значит, этот порт нужно обязательно сделать доверенным для DHCP Snooping, так как это промежуточное устройство, от которого могут лететь легитимные DHCP-сообщения. Может быть, DHCP-сервер находится на самом роутере или даже за роутером (в таком случае применяют DHCP Relay). А порты f0/1-24 — это порты, к которым подключаются конечные станции, их нужно сделать недоверенными, поскольку именно от пользовательских подключений есть риск атаки на DHCP. Заметь, DHCP Snooping включается именно на сегментах VLAN. Еще нужно указывать адрес авторизованного DHCP-сервера, который доступен через доверенный порт коммутатора.
Все порты по умолчанию недоверенные, поэтому нам нужно явно указать, какие порты будут доверенными. Затем глобально включить DHCP Snooping и Snooping-процесс для сегмента VLAN.
NightmareSwitch(config)# interface g0/2NightmareSwitch(config-if)# ip dhcp snooping trustNightmareSwitch(config)# ip dhcp-server <IP ADDRESS>NightmareSwitch(config)# ip dhcp snoopingNightmareSwitch(config)# ip dhcp snooping vlan <VLAN ID>
Теперь коммутатор будет насыщать таблицу DHCP Snooping, занося в нее MAC, IP, VLAN ID клиентов, получивших адрес по DHCP.
При необходимости можно создать статическую запись в базе данных DHCP Snooping:
NightmareSwitch(config)# ip dhcp snooping binding <MAC> vlan <VLAN ID> <IP ADDRESS> interface <INTERFACE ID> expiry <SECONDS>
Команды для отладки и проверки состояния DHCP:
NightmareSwitch(config)# show ip dhcp snoopingNightmareSwitch(config)# show ip dhcp snooping statisticsNightmareSwitch(config)# show ip dhcp snooping binding
Для надежности необходимо записывать содержимое таблицы DHCP Snooping в память коммутатора: вдруг свитч внезапно уйдет в перезагрузку, а таблица DHCP Snooping потеряется. Если это будет вместе с Dynamic ARP Inspection, то мы получим сетевой паралич.
NightmareSwitch(config)# ip dhcp snooping database flash:/snooping.db
Кстати, базу данных Snooping можно не только хранить в памяти коммутатора, но и передать по службам FTP, HTTP, RCP, SCP, TFTP.
NightmareSwitch(config)# ip dhcp snooping database ? flash:
ftp:
https:
rcp:
scp:
tftp:
timeout:
write-delay
DAI & IPSG
Обычно Dynamic ARP Inspection (DAI) настраивается вместе с DHCP Snooping, так что это, по сути, продолжение предыдущей части.
DAI позволяет предотвращать ARP-спуфинг внутри сети благодаря отслеживанию всего ARP-трафика. И здесь есть очень важный момент. Чтобы инспекция работала, ей нужно на чем‑то основываться, и вся ее работа напрямую зависит от DHCP Snooping. DAI на основе таблицы DHCP Snooping будет проверять валидность ARP-ответов, то есть проверять, действительно ли такая привязка MAC-адреса и IP-адреса есть внутри сети. Если нет, то DAI мгновенно заблокирует такой трафик.
Однако при интеграции DAI в продакшене нужно позаботиться о том, чтобы таблица DHCP Snooping была полностью насыщена. То есть в нее должны попасть абсолютно все хосты внутри сети. В противном случае трафик не попавших туда легитимных хостов будет заблокирован, что нарушит бизнес‑процессы.
warning
DAI обязательно настраивается после DHCP Snooping, и необходимо время, чтобы все хосты попали в таблицу DHCP Snooping, иначе получишь нерабочую сеть, а DAI будет блокировать входящий трафик от всех хостов.
Настройка DAI опирается на ту же концепцию доверенных и недоверенных портов. Как и в случае с DHCP Snooping, все порты коммутатора по умолчанию недоверенные. И в остальном то же самое: доверенные порты — это порты между коммутаторами и роутерами, недоверенные — пользовательские порты. На недоверенных портах стоит включить IP Source Guard (IPSG), который будет проверять источник запросов.
NightmareSwitch(config)# int g0/2NightmareSwitch(config-if)# ip arp inspection trustNightmareSwitch(config)# interface range f0/1-24NightmareSwitch(config-if-range)# ip verify source
При необходимости можно создать ARP ACL, чтобы не проверять устройства со статическим IP. Вдруг в твоей сети есть хосты со статическим адресом.
NightmareSwitch(config-if)# arp access-list DAINightmareSwitch(config-arp-nacl)# permit ip host <IP> mac host <MAC>
Кстати, для IPSG можно тоже создавать статические записи внутри коммутатора, но это делается без ACL.
NightmareSwitch(config)# ip source binding <MAC> vlan <VLAN ID> <IP ADDRESS> interface <INTERFACE ID>
Закончив настройку и убедившись, что нужные статические адреса забиндились, а таблица DHCP Snooping полностью насыщена, включаем сам DAI. DAI, как и DHCP Snooping, включается именно на сегментах VLAN.
NightmareSwitch(config)# ip arp inspection vlan <VLAN ID>
Обнаружение и блокировка инструмента Responder
Responder — это инструмент пентестеров, позволяющий перехватывать учетные данные внутри сетевой инфраструктуры, в основном он применятся в средах с Windows-машинами. Однако превентивные меры против Responder обычно заканчиваются лишь выключением MCAST-протоколов, таких как LLMNR, NBNS и MDNS.
В этой статье я постараюсь выжать максимум из сетевого коммутатора и попробую защитить машины Windows от атак на эти протоколы без выключения самих протоколов. Responder еще позволяет проводить нестандартные атаки на основе даунгрейда, но они уже выходят за рамки исследования, и я рассмотрю только основные меры блокировки.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»