Атака на протокол STP

В этой статье расскажем, зачем нужен протокол STP: что он делает, какие у него есть плюсы и минусы. Также разберем практический пример атаки на протокол.

Что такое протокол STP

STP (Spanning Tree Protocol) — это сетевой протокол, который предотвращает возникновение «петель» в сетях Интернет, использующих коммутаторы и мосты.

Давайте метафору: Сеть → это система дорог. Данные, которые передаются по сети → это машины.

Коммутаторы в сети работают как перекрёстки, которые направляют данные (машины) к месту назначения. Если у нас есть несколько путей для достижения одного и того же места назначения, данные могут зациклиться (произойдет так называемая «петля»), так же как машины могут войти в круговое движение и ехать по нему бесконечно.

Эти самые «петли» могут вызвать множество проблем: перегрузка сети из-за бесконечного дублирования данных и сбои в работе оборудования. Здесь и вступает протокол STP. Он решает проблему петель, автоматически определяя наиболее эффективный путь для передачи данных и блокируя все другие пути.

Когда STP работает, он выбирает один основной маршрут для передачи данных и временно «отключает» другие альтернативны. Если основной маршрут выходит из строя, STP быстро определит новый эффективный путь и включит его, чтобы данные продолжили свой путь к месту назначения.

Таким образом, используя STP, мы можем гарантировать, что наша сеть останется стабильной и эффективной, без беспорядка и всевозможных «петель».

Какие есть плюсы и минусы у протокола STP

+-

Устраняет петли, которые могут парализовать сеть

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

Автоматически переключает трафик на запасной маршрут в случае сбоя или отказа активной связи. Это обеспечивает избыточность сети увеличивает её надежность.

В больших сетях очень сложная настройка.

Легко внедряется в существующую инфраструктуру

Может быть уязвим для определенных видов атак (про это мы поговорим ниже)

Легко интегрируется: STP поддерживает большинство производителей сетевого оборудования

У STP есть ограничения по количеству поддерживаемых коммутаторов и уровням иерархии. Так что этот протокол не подходит для гигантских по масштабу сетей.

Атака на STP

Это сегмент типовой топологии, которую обычно используют в корпоративной сети.

SW1 → корневой мост (root bridge). SW2 и SW3 → некорневые коммутаторы (non-root bridges). Порты SW1 (0/0 и 0/1), SW2 (0/1 и 0/3) и SW3 (0/0 и 0/2) → настроены на пропускание трафика. Порты 0/0 и 0/1 на SW2 и SW3 заблокированы для предотвращения образования сетевых петель.

Движение трафика идет по маршруту SW2 → SW1 → SW3. Мы подсоединяемся к этим двум коммутаторам доступа SW2 и SW3 с помощью нашего устройства на базе Linux и обнаруживаем получение сообщений протокола STP.

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

Выберем тип атаки Claiming Root Role. Так мы нач­нем анон­сировать себя в качес­тве ком­мутато­ра с мень­шим при­ори­тетом. Это заставит перес­тро­ить­ся дерево STP.

В итоге мы ста­ли кор­невым ком­мутато­ром для нашего сег­мента сети и сейчас смо­жем уви­деть тра­фик, который ранее шел через SW1:

SW2-LINUX-SW3

SW2

Для про­вер­ки запус­тим пинг:

R4#ping 192.168.0.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.0.5, timeout is 2 seconds: .!!!!

Мы можем видеть, что все пакеты ICMP прош­ли через нашу машину.

Last updated