Беспроводные коммутаторы, маршрутизаторы и решения с непрерывным обучением, основанные на архитектуре цифровой сети Cisco DNA, повышают вашу безопасность. Постоянная адаптация. Постоянная защита. Сети вступают в новую эру своего развития.
Атака, осуществляемая при помощи протокола DHCP. DHCP-пул, из которого клиенты получают IP-адреса, ограничен. Например, это может быть 253 адреса (при маске 255.255.255.0). Для нормальной работы сети этого должно хватить всем клиентам, но атака DHCP starvation стремится изменить данную ситуацию.
Как происходит действие:
1) Атакующее устройство запрашивает себе IP-адрес у DHCP-сервера и получает его;
2) MAC-адрес атакующего устройства изменяется и оно запрашивает следующий, уже другой IP-адрес, маскируясь под нового клиента;
3) Такие действия повторяются до тех пор, пока весь пул IP-адресов на сервере не будет исчерпан.
Далее возможны два последствия, в зависимости от того, что является целью атаки:
• Отказ в обслуживании. IP-адреса исчерпаны, и новые хосты не могут получить их. Таким образом, их взаимодействие с сетью на этом закончится.
• Подмена DHCP-сервера. DHCP starvation отлично комбинируется с предыдущей атакой. Так как на основном DHCP-сервере свободных адресов не осталось, он выбывает из игры, и 100% клиентов достается вражескому атакующему DHCP-серверу.
Методы защиты
Самый простой способ защиты – ограничение числа MAC-адресов на порту коммутатора. Реализуется это с помощью функции port-security:
1) Переводим порт в access режим:
SW(config-if)#switchport mode access
2) Включаем port-security на интерфейсе:
SW(config-if)#switchport port-security
3) Ограничиваем число MAC-адресов на интерфейсе:
SW(config-if)switchport port-security maximum
4) Выбираем способ изучения MAC-адресов коммутатором (статический, sticky): Отличие статического адреса от sticky адреса состоит в том, что статические адреса необходимо прописывать руками, а sticky выучиваются автоматически и сохраняются в конфигурационный файл.
SW(config-if)#switchport port-security mac-address <mac-address | sticky>
5) Задаем тип реагирования на превышение числа разрешенных MAC-адресов:
protect
– после переполнения все пакеты, отправленные с других MAC-адресов отбрасываются.
restrict
– то же самое, но с уведомлением в syslog или по SNMP.
shutdown
– порт выключается до автоматического или ручного его поднятия, также отправляются уведомления.
SW(config-if)#switchport port-security violation <protect | restrict | shutdown>
Таким образом атакующее устройство просто не сможет исчерпать лимит IP-адресов DHCP-пула, так как коммутатор не позволит ему безнаказанно изменять свой MAC-адрес.
Также здесь может помочь все тот же DHCP snooping, а именно команда
SW(config-if)ip dhcp snooping limit rate
Эта команда ограничивает количество пакетов DHCP в секунду на порт (рекомендуется не более 100 пакетов в секунду), и если этот предел превышен, она переводит порт в состояние отключения из-за ошибки, то есть временно отключает его. Типичный клиент не превысит этот предел, но будет обнаружено атакующее устройство, генерирующее сотни MAC-адресов в секунду.
Следующая атака базируется на возможности коммутаторов автоматически согласовывать тип своего порта — access или trunk.
Немного теории о том, чем access порт отличается от trunk порта:
Как известно, протокол 802.1Q повсеместен во всех современных сетях. Суть его в том, что он немного расширяет кадр Ethernet, добавляя несколько полей (в частности, VLAN Identifier, поле VID). На основе этого поля коммутатор может определить, к какой группе портов адресован данный кадр.
Благодаря полю VID клиенты из разных подсетей могут быть подключены к коммутатору, тем самым ограничивая широковещательный домен. Также становится возможным объединение клиентов, подключенных к разным коммутаторам, в логической сети.
По сути 802.1Q — очень гибкий механизм для создания необходимой логической топологии поверх уже существующей физической.
Рассмотрим процесс передачи кадра в сети с протоколом 802.1Q.
1) PC1 подключен к access-порту fa2/1 коммутатора SW1 в 10 VLAN’е. Это означает, что при попадании кадра на порт коммутатора, в него будет добавлен 802.1Q header с информацией о принадлежности к VLAN10.
2) SW1 пересылает тегированный кадр на SW2 через trunk-порт.
3) SW2 получает кадр, смотрит в свою CAM-таблицу и отправляет кадр в соответствующий access-порт, заголовок 802.1Q снимается.
При этом можно выделить следующие особенности:
• Клиенты ничего не знают о своей принадлежности к определенному VLAN и работают с нетегированными кадрами, заголовок 802.1Q появляется только при прохождении кадра через access-порт;
• Порт может быть нетегирован (access) только в одном VLAN (верно для коммутаторов Cisco);
• Через тегированный (trunk) порт можно передавать кадры, принадлежащие к разным VLAN.
• Существует так называемый native VLAN – при попадании на trunk-порт кадра без тега, он автоматически будет причислен к native VLAN. Как правило native VLAN’ом по умолчанию считается VLAN1 (изменяемо).
При этом кадры, принадлежащие native VLAN и попавшие в access-порт, передаваться через trunk-порт будут без тега.
Теперьперейдем к атаке:
Как уже было сказано, VLAN hopping основан на том, что коммутаторы имеют возможность автоматически согласовывать тип порта. Используется для этого проприетарный протокол компании Cisco DTP (Dynamic Trunking Protocol). При его использовании (а он включен по умолчанию) возможны следующие состояния порта: dynamic auto, dynamic desirable, static access, static trunk. Предоставим сводную таблицу, как согласуются состояния двух портов, подключенных друг к другу:
Как видите, при определенных условиях, а именно в динамическом автоматическом и желаемом динамическом режимах, порт коммутатора может согласовывать свою работу в магистральном режиме. Это означает, что если атакующее устройство ведет себя как порт в желаемом режиме, оно согласовывает магистральный порт и получает доступ к трафику всех VLAN, на которых работает коммутатор.
Основная проблема коммутаторов Cisco в том, что по умолчанию все порты находятся в автоматическом режиме. Даже если порт настроен в режиме доступа / авто, его статус может измениться на магистральный / автоматический при получении запроса на согласование.
Защита
Решение данной проблемы очень простое, но многие при конфигурировании коммутаторов забывают его использовать. Командой
SW(config-if)#switchport nonegotiate
мы просто отключаем возможность автоматического согласования и делаем атаку нереализуемой.
Другой возможный вектор атаки с перескоком VLAN — использование собственной VLAN и добавление второго тега. Это работает, только если атакующее устройство находится в VLAN, которая является собственной VLAN для магистрального порта.
На основе определения собственной VLAN кадр, поступающий на порт fa2 / 1, расположенный в VLAN1, будет перенаправлен через нетегированный магистральный порт, но, поскольку злоумышленник PC1 назначил ему два заголовка, он будет выводиться с тегом VLAN2 и достигать атакованного клиента, чего в нормальной ситуации быть не должно.
Обратите внимание, что такая атака является однонаправленной, так как невозможно повторно отправить кадр, используя тот же шаблон.
Защита
Защититься можно следующим образом:
Назначаем на всех trunk-портах неиспользуемый VLAN в качестве native.
SW(config-if)# switchport trunk native vlan 999
Теперь атака неосуществима, так как VLAN 999 не относится ни к одному из access-портов.
Цель этой атаки — подменить DHCP-сервер. Если в сети одновременно находятся два DHCP-сервера, один из которых является «вражеским», некоторые клиенты будут настраивать для себя неправильные адреса и другие сетевые параметры.
Переопределив шлюз по умолчанию, неавторизованный DHCP-сервер сможет прослушивать весь клиентский трафик и пересылать пакеты по назначению. Таким образом, у нас есть простейшая реализация атаки MitM (Man in the Middle), которая может быть выполнена в большинстве современных сетей.
Обратите внимание, что в большинстве случаев атака с подменой DHCP не является атакой сама по себе. Бывают случаи, когда по незнанию маршрутизатор SOHO с настроенным DHCP-сервером подключается к сети и подключается через порт LAN. Впоследствии клиенты, которым удалось получить от него IP-адреса, испытывают как минимум значительную потерю скорости, а чаще всего полную невозможность использовать локальные и глобальные ресурсы.
Защита
Простейший способ защиты от атак подобного рода – включение на всех коммутаторах функции DHCP snooping. Далее необходимо определить два типа портов:
• Доверенные – порты коммутатора, к которым подключается DHCP-сервер, либо другой коммутатор.
• Недоверенные – порты для клиентских подключений, за которыми DHCP-сервер находиться не может, зато вполне может находиться атакующее устройство.
В этом случае отслеживание DHCP необходимо, чтобы указать коммутатору, что он должен обращать внимание на предложение DHCP и пакеты подтверждения, которые проходят через него, и не позволять этим пакетам проходить через ненадежные порты. Кроме того, широковещательные запросы клиента (обнаружение и запрос) теперь будут перенаправляться только на доверенные порты. Топология должна выглядеть так:
Для конфигурирования функции DHCP snooping необходимо:
1) Включить ее на коммутаторе:
SW(config)#ip dhcp snooping
2) Указать для каких VLAN требуется отслеживать пакеты:
SW(config)#ip dhcp snooping vlan
3) Указать доверенные порты на коммутаторе (все остальные по умолчанию становятся недоверенными):
SW(config-if)#ip dhcp snooping trust
Спасти трафик от прослушки также может шифрование на стороне клиента, например туннелирование в транспортном режиме.
Для того, чтобы понять, как работает данная атака, необходимо понимать принцип работы коммутатора.
Представим себе новый SW-коммутатор, к которому подключены два хоста PC1 (MAC 0000.1111.1111) и PC2 (MAC 0000.2222.2222). Они уже настроены с IP-адресами (10.0.0.1 и 10.0.0.2) и хотят общаться друг с другом. Поскольку они находятся в одной подсети, маршрутизатор не требуется, и все обмены пакетами будут происходить через коммутатор. Итак, какова последовательность установления их общения:
1) PC1 хочет связаться с PC2 со своим IP-адресом. Однако ему не известен MAC-адрес PC2, поэтому PC1использует ARP. Отправляется широковещательный запрос: «Компьютер с IP-адресом 10.0.0.2, сообщите свой MAC-адрес компьютеру с 10.0.0.1, чтобы я мог с вами общаться».
2) Коммутатор пересылает запрос на все свои порты, но регистрирует соответствие между MAC-адресом отправителя (0000.1111.1111) и портом, теперь он будет пересылать все кадры, адресованные непосредственно этому получателю, а не случайным образом на все доступные интерфейсы.
PC2 получает адресованный ему пакет, понимает, что он должен ответить, и сообщает свой MAC-адрес PC1. В этом случае коммутатор вносит в таблицу CAM (таблицу MAC-адресов) запись вида: (интерфейс gig1 / 2 — MAC 0000.2222.2222). Теперь, когда компьютеры обмениваются информацией, задействованы будут только два порта, за которыми они находятся. Информация не будет отправлена другим лицам.
Суть в том, что когда коммутатор видит адрес назначения в своей таблице CAM, он пересылает кадр на определенный порт. Если не видит, устраивает трансляцию в надежде, что кадр все-таки найдет адресата.
На основании этого правила и работает рассматриваемая атака. Дело в том, что размер таблицы MAC-адресов у любого коммутатора ограничен. При переполнении новые адреса реальных клиентов уже не смогут пробиться в таблицу.
Поэтому достаточно сгенерировать большое количество адресов и заставить коммутатор записать их в свою таблицу, и реальные адреса реальных устройств постепенно уйдут из нее. В этом случае коммутатор начнет отправку фреймов, адресованных определенному получателю, на все порты одной VLAN, после чего атакующее устройство сможет их перехватить и прочитать.
Обратите внимание, что все коммутаторы, подключенные к атакуемой стороне, также получат поддельные MAC-адреса и начнут транслировать все кадры.
Защита
1) Port-security на всех access-портах с лимитированием максимального количество MAC-адресов.
2) Шифрование трафика – в таком случае хоть все кадры и будут рассылаться широковещательно, а производительность сети сильно ухудшится, информация, попавшая в чужие руки, не будет прочитана.
Все атаки, описанные в этой статье, требуют небольшой практики. Например, такого средства, как Yersinia, будет достаточно. Он доступен для установки в любой системе Linux и включен в сборку дистрибутива Kali Linux.
Чтобы взломать сеть Wi-Fi с помощью Kali Linux, вам нужна беспроводная карта, поддерживающая режим мониторинга…
Работа с консолью считается более эффективной, чем работа с графическим интерфейсом по нескольким причинам.Во-первых, ввод…
Конечно, вы также можете приобрести подписку на соответствующую услугу, но наличие SSH-доступа к компьютеру с…
С тех пор как ChatGPT вышел на арену, возросла потребность в поддержке чата на базе…
Если вы когда-нибудь окажетесь в ситуации, когда вам нужно взглянуть на спектр беспроводной связи, будь…
Elastic Security стремится превзойти противников в инновациях и обеспечить защиту от новейших технологий злоумышленников. В…