Содержание статьи
- О, моя оборона!
- Типовые сетевые атаки
- Rogue DHCP Server
- DHCP starvation
- Атака на переполнение таблицы, или СAM table overflow
- Атака на виртуальные сети, или VLAN hopping
- Готовимся к обороне
- Защита от Rogue DHCP Server
- Методы защиты от DHCP starvation
- Методы защиты от VLAN hopping
- Дополнительные опции безопасности
- Бонус: обзор тулзы Cisco Config Analysis Tool
- Заключение
О, моя оборона!
В теории обеспечения информационной безопасности есть такое понятие, как глубоко эшелонированная оборона (Defense in depth). Этим мудреным термином называют концепцию, в которой весь корпоративный ИТ-ландшафт делится на несколько уровней контроля безопасности и защиты. Причем один уровень, или, как его еще называют, рубеж защиты, не зависит от остальных и является самостоятельной единицей.
К примеру, на границе внутренней локальной сети и интернета стоят периметровые средства защиты, такие как Firewall, IDS/IPS, NGFW (Next-Generation_Firewall) или UTM-шлюзы. Далее вся сеть мониторится на предмет выявления аномальной активности и инцидентов ИБ, к примеру с помощью SIEM-системы. Состояние ПО контролируется с помощью сканеров безопасности.
На следующем уровне задействованы средства защиты прикладного ПО, к примеру WAF для веб-сервера или DAM для СУБД. Ну а на конечных узлах применяются уже endpoint средства защиты — AV, SSO, DLP и другие страшные аббревиатуры, которыми обозначают штатные механизмы безопасности ОС, системы разделения прав доступа и полномочий пользователей, шифрование на лету и прочее.
В сегодняшней статье мы разберем только одну часть этой схемы, а именно защиту сетевого периметра корпоративного ИТ-ландшафта на примере коммутаторов и маршрутизаторов компании Cisco.
INFO
Чтобы провернуть все описанные в этой статье атаки на практике, не нужно много. Вполне хватит, к примеру, такой утилиты, как Yersinia. Она доступна для установки на любую Linux-систему и входит в сборку дистрибутива Kali Linux.
Типовые сетевые атаки
Перед тем как мы приступим к практической части, посвященной безопасной настройке сетевого оборудования, рассмотрим типовые атаки, которые с высокой вероятностью будут использоваться против твоей сети злоумышленниками. Ну или экспертами ИБ при проведении пентестов.
Rogue DHCP Server
Цель этой атаки — подмена легитимного сервера DHCP сервером злоумышленника. Суть угрозы заключается в том, что, когда в сети одновременно находятся два сервера DHCP, один из которых «вражеский» (Rogue DHCP Server), часть клиентов автоматически сконфигурирует у себя неправильные адреса и прочие сетевые настройки. Далее в результате подмены умолчательного шлюза неавторизованный сервер DHCP сможет прослушивать весь трафик клиентов, при этом еще имея возможность форвардить все пакеты по своему усмотрению.
Однако чаще всего атака с подменой сервера DHCP не является атакой как таковой, а скорее служит неким плацдармом для дальнейшего углубления злодеев в атакуемую сеть.
DHCP starvation
Еще одна простая и популярная атака, выполняемая при помощи протокола DHCP. Суть ее заключается в том, что пул DHCP, из которого все корпоративные клиенты получают IP-адреса, изначально ограничен доступным диапазоном. Например, это может быть 253 адреса при использовании маски 255.255.255.0. Для нормальной работы сети этого должно хватить всем клиентам за глаза, однако «атака резервации» (DHCP starvation) стремится исчерпать этот пул и таким образом вывести легитимный сервер DHCP из игры.
Если воспроизвести действия злодеев по шагам, то вот как происходит такая атака:
- Атакующее устройство запрашивает себе IP-адрес, маску и шлюз по умолчанию у сервера DHCP и получает их.
- MAC-адрес атакующего устройства изменяется, и оно запрашивает следующий, уже другой IP-адрес, маскируясь под некоего нового клиента, который появился в корпоративной сети.
- Предыдущие два пункта циклически повторяются до тех пор, пока весь пул IP-адресов на сервере не будет исчерпан.
Возможны два следствия, в зависимости от того, чего добиваются атакующие:
- Отказ в обслуживании. Имеющиеся у сервера IP-адреса исчерпаны, и новые хосты не могут получить их. Таким образом, их взаимодействие с сетью на этом закончится.
- Подмена сервера DHCP. DHCP starvation отлично комбинируется с предыдущей атакой Rogue DHCP Server. Так как на основном сервере DHCP свободных адресов уже не осталось, он выключается, и все 100% корпоративных клиентов сети достаются вражескому атакующему DHCP-серверу.
INFO
У операционной системы IOS есть несколько режимов работы (конфигурирования):
- пользовательский режим (приглашение терминала в этом режиме имеет вид
>
) позволяет только просмотреть базовые настройки сетевого устройства; - привилегированный режим (
#
) — для полноценной настройки всех функций; - режим конфигурирования (
(config)#
), в котором выполняются глобальные настройки.
Помимо этого, для настройки каждого отдельного интерфейса есть режим специфической конфигурации (Router(config-subif)#
).
Атака на переполнение таблицы, или СAM table overflow
Атака CAM table overflow, или переполнение локальной таблицы MAC-адресов, реализуется, когда таблица коммутации заполняется и после этого коммутатор работает в режиме хаба. Иными словами, подключившись к любому порту коммутатора после успешной атаки, можно перехватывать весь трафик в пределах широковещательного домена, которому принадлежит этот порт. Атаку можно выполнить, например, с помощью утилиты macof, которая входит в dsniff.
Чтобы понять, как работает эта атака, необходимо знать принципы работы современного коммутатора. Давай представим себе коммутатор с именем SW, к которому подключены два равнозначных хоста PC1 (MAC 0000.1111.1111) и PC2 (MAC 0000.2222.2222). На них уже настроены IP-адреса (10.0.0.1 и 10.0.0.2), и эти хосты хотят общаться друг с другом, как разнополые подростки в пубертатный период.
Так как хосты располагаются в одной подсети, маршрутизатор для этого не требуется и весь обмен пакетами будет происходить с помощью коммутатора в несколько этапов.
- PC1 хочет обратиться к PC2 по IP-адресу. Тем не менее MAC-адрес PC2 ему неизвестен, поэтому PC1 использует протокол ARP. Для этого отправляется широковещательный запрос всей сети.
- Получив широковещательный запрос, коммутатор пересылает его на все свои порты, но записывает соответствие MAC-адреса отправителя (
0000.1111.1111
) и порта. Теперь все пакеты, адресованные данному получателю, он будет пересылать адресату, а не во все доступные интерфейсы подряд. - PC2 получает адресованный ему пакет, понимает, что должен ответить, и сообщает свой MAC-адрес PC1. Коммутатор при этом заносит в CAM-таблицу (таблицу MAC-адресов) запись вида
интерфейс gig1/2 - MAC 0000.2222.2222)
. Теперь, когда компьютеры начнут обмениваться информацией, будут использоваться только два порта, за которыми они расположены. На другие порты информация пересылаться не будет.
Основной смысл рассказанной выше романтической истории общения двух устройств заключается в том, что, если коммутатор видит адрес получателя в своей CAM-таблице, он пересылает этот пакет на конкретный порт. Если не видит — устраивает широковещательную рассылку в надежде, что пакет все-таки найдет своего адресата в подконтрольной сети. Дело в том, что размер таблицы MAC-адресов у любого коммутатора ограничен. И при переполнении этой таблицы новые адреса реальных клиентов уже не смогут быть записаны в нее.
Таким образом, хакеру необходимо всего лишь сгенерировать большое количество ложных адресов и заставить коммутатор записать их в свою таблицу, чтобы реальные адреса реальных устройств постепенно были оттуда вытеснены.
Коммутатор начнет рассылать кадры, адресованные конкретному получателю, на все порты, находящиеся в том же VLAN. Следовательно, у атакующего устройства появится возможность перехватить и прочитать их.
А еще все коммутаторы, подключенные к атакованному, тоже подхватят фейковые MAC-адреса и начнут вести широковещательную рассылку по всей корпоративной сети, умножая угрозу.
Атака на виртуальные сети, или VLAN hopping
Следующая атака базируется на возможности коммутаторов автоматически согласовывать тип своего порта — access
или trunk
. В двух словах расскажу о том, чем порт access
отличается от trunk
. Наберись терпения!
Как известно, протокол 802.1Q используется во всех современных сетях. Хитрая особенность этого протокола состоит в том, что он слегка расширяет ethernet-кадр, добавляя туда несколько полей (в частности, поле VLAN Identifier, VID). На основании этого поля коммутатор способен определить, какой группе портов адресован тот или иной кадр.
Благодаря полю VID к одному коммутатору можно подключить клиенты из нескольких подсетей, тем самым ограничив широковещательный домен. Также появляется возможность объединить подключенные к разным коммутаторам клиенты в одну логическую сеть.
Рассмотрим передачу кадра в сети с протоколом 802.1Q.
- PC1 подключен к access-порту
fa0/1
коммутатора SW1 в VLAN c порядковым номером 10. Это означает, что при попадании кадра на порт коммутатора в него будет добавлен 802.1Q-header с информацией о принадлежности к VLAN10. - SW1 пересылает тегированный кадр на SW2 через trunk-порт.
- SW2 получает кадр, смотрит в свою CAM-таблицу и отправляет кадр на соответствующий access-порт, заголовок 802.1Q снимается.
При этом можно выделить следующие особенности:
- клиенты ничего не знают о своей принадлежности к определенному VLAN и работают с нетегированными кадрами, заголовок 802.1Q появляется только при прохождении кадра через access-порт;
- порт может быть не тегирован (access) только в одном VLAN;
- через тегированный (trunk) порт можно передавать кадры, принадлежащие к разным VLAN;
- существует так называемый native VLAN — при попадании на trunk-порт кадра без тега он автоматически будет причислен к native VLAN. Как правило, native VLAN по умолчанию — это VLAN1 (но это можно изменить);
- при этом кадры, принадлежащие native VLAN и попавшие в access-порт, передаваться через trunk-порт будут без тега.
А теперь перейдем к самой атаке. Как уже было сказано, VLAN hopping основан на том, что коммутаторы имеют возможность автоматически согласовывать тип порта. Используется для этого проприетарный протокол компании Cisco под названием DTP. При его использовании (а он включен по умолчанию) возможны следующие состояния порта: dynamic auto
, dynamic desirable
, static access
, static trunk
.
Как мы видим, при определенных условиях, а именно в режимах dynamic auto
и dynamic desirable
, порт коммутатора может согласовать свою работу в режиме trunk
. Это значит, что, если атакующее устройство будет вести себя как порт в режиме desirable
, оно согласует на себя trunk-порт и получит доступ к трафику всех виртуальных сетей, которыми оперирует коммутатор.
Основная проблема заключается в том, что на коммутаторах Cisco все порты по умолчанию находятся в режиме auto
. Поэтому, даже если порт настроен в режиме access/auto
, при получении запроса на согласование его состояние может измениться на trunk/auto
.
Готовимся к обороне
Что ж, а вот теперь пришло время засучить рукава и приступить к укреплению нашего корпоративного бастиона. Ниже мы рассмотрим настройку функций и режимов работы IOS для нейтрализации всех описанных выше атак, а также ряд дополнительных фич, которые помогут тебе сделать сеть еще чуть-чуть более безопасной.
WARNING
Перед любыми операциями конфигурирования сетевых устройств не забывай сделать бэкап конфига! Документируй все изменения, чтобы потом не потерять лог изменений и не вырвать себе с досады волосы на затылке.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»