![]() |
![]() |
|||
|
![]() |
![]() |
||
![]() |
||||
![]() |
Согласно RFC 2878:
Поскольку RFC доступны в виде ASCII-текстов, их цитирование гораздо удобнее, чем IEEE-стандартов, распространяемых в формате pdf (см. раздел 20). В этом разделе цитаты из RFC 2878 в связи с большим их количеством будут просто браться в кавычки и выделяться в отдельный абзац, без специального упоминания о том, какой именно цитируется документ - достаточно одного раза.
![]() |
Здесь STE frame - Spanning Tree Explorer frame - специфичный для 802.5 MAC фрейм.
|
Таким образом, для систем, использующих "Source Route Bridging", STP-атаки из удаленного сегмента во многих случаях не страшны. Внутри таких систем, соединенных WAN-линком, существуют независимые STP-деревья, так что максимум, чего мог бы добиться атакующий - опустить WAN-link, передавая STP пакеты от имени удаленного designated root. Однако даже это может оказаться невозможным - смысл в поддержке STP пакетов для линка между двумя различными STP-сущностями не очевиден.
Из главы 4.1.4. [5] "Separation of Spanning Tree Domains"
То есть, во-первых, администратор может разделить STP в связанных WAN линком сетях посредством выключения STP на обоих концах. Во-вторых, если подцепить несовместимый с STP свитч, то согласно этому RFC он должен уничтожать STP-пакеты. Причем, после прочтения этой главы остается такое впечатление, что по умолчанию STP ходит и его надо специально выключать, чтобы это поведение отменить. Видимо в этом месте авторы RFC забыли обратить внимание на то, что это относится не к "Source Route Bridging" (иначе получается противоречие), а к "Transparent Bridging".
Стоит сказать пару слов об RFC 1638, в котором описан старый алгоритм работы протокола BCP и прочие подробности, в том числе пересмотренные в [5]. Основной смысл (с точки зрения тематики этой статьи) сводится к тому, что в старых версиях PPP BCP некоторые параметры не использовались, однако устройства, работающие по спецификации RFC 1638, также способны передавать STP-BPDU. С точки зрения STP атак не важно, какой RFC определяет их хождение - главное, что они ходят. Собственно, формат фреймов проходящих по PPP WAN линку определяется в [5] в главах 4.2 и 4.3, а немного ниже в [5], в главе 4.4, говорится, что для определения корректной топологии, состояния VLAN, регистрации участия в мультикастовых группах мосты (или свитчи, а с точки зрения этой статьи - просто некие устройства поддерживающие данные протоколы) обмениваются BPDU по спецификации STP, GVRP, GMRP (и вообще GARP):
Ну, и, наконец, в следующем абзаце определяется самое главное в контексте STP-атак:
С оговоркой, о совместимости со старыми устройствами, но тем не менее обязательной поддержкой этих протоколов, а значит и STP:
![]() |
Здесь ссылка [10] - ссылка на RFC 1638.
|
Резюмируем: в принципе PPP WAN линки могут служить переносчиками STP атак.
Теперь о деталях. В BCP методика действий сходна с PPP LCP:
LCP, грубо говоря, служит для определения того, какие потенциально возможные опции устанавливаемого линка будут применены в данном конкретном соединении. В PPP LCP используется система обмена запрос/ответ. Аналогичный подход и в BCP:
То есть могут использоваться какие-то значения по умолчанию. Какие же? Давайте посмотрим - ниже будут замечания по этим значениям, а пока стоит взглянуть на главу 5.6 в [5]. Эта глава описывает поведение устройств при работе с STP. Первым же абзацем идет определение совместимости со старым форматом (RFC 1638):
![]() |
Здесь ссылка [10] - ссылка на RFC 1638.
|
Далее определяется возможное поведение системы, в случае, если на другом конце стоит устройство, работающее по RFC 1638, и при этом выбирается совместимый с ним алгоритм работы:
Здесь стоит сделать следующий комментарий - согласно RFC 2878 Spanning Tree протоколов несколько, каждый из которых пронумерован согласно RFC 1700 [7]:
Очевидно, все эти протоколы имеют некие общие свойства, позволяющие называть их Spanning Tree протоколами, что, кстати, наталкивает на мысль, что все они могут быть подвержены, как минимум части описываемых здесь атак на Spanning Tree Protocol, пронумерованный в [7] как 1. Поскольку часть сказанного в данной статье относится к Spanning Tree алгоритму вообще, то слабость этих протоколов очевидна.
![]() |
В данной
статье пока рассматривается только IEEE реализация STP, однако в
дальнейшем мы планируем включить анализ и остальных реализации
ST-алгоритма.
|
Приложение A в [5] содержит аналогичную таблицу для значений передаваемых в поле идентификатора STP протокола, согласно [7]:
|
Далее декларируется возможность PPP WAN линков работать сразу с несколькими типами STP:
А вот еще одно важное замечание: если устройства на обоих концах не могут прийти к согласию по поводу того, какой STP протокол использовать, то выигрывает протокол с меньшим номером, то есть, IEEE реализация, если STP вообще поддерживается, конечно:
Выделенное заглавными буквами весьма важно - если с обоих сторон поддерживается STP, то он должен обязательно быть использован. Далее сказано, что по умолчанию либо STP поддерживает хотя бы IEEE реализацию, либо не поддерживается вовсе:
Теперь рассмотрим эту ситуацию в следующем теоретическом случае, очень близком к повсеместной практике. Допустим, мы имеем ISP с dialup доступом, построенном на маршрутизаторе доступа. Если этот маршрутизатор доступа поддерживает STP (например, многие модели Cisco), то, вероятно, PPP линки, которые организуются между ISP и его клиентом, будут поддерживать STP со стороны ISP. В нормальной ситуации PPP клиенты не запрашивают поддержку STP просто за ненадобностью, однако, если вместо обычного пользователя PPP соединение с провайдером установит вредитель, он, вероятно, сможет, модифицировав процедуру установления PPP соединения, реализовать часть STP-атак на сеть провайдера.
Стоит заметить, что согласно главе 5.7 [5], по WAN линкам может также передаваться информация о VLAN (и прочих опциях определяемых тегированными фреймами 802.1q [4]). При этом определено, что если удаленное устройство не заявило о поддержке 802.1q, то тегированные фреймы не должны ему посылаться. Однако ситуация, при которой злоумышленник будет посылать со своей стороны такие фреймы не определена, что позволяет предположить различную реакцию со стороны устройств различных производителей:
Не следует забывать, что помимо PPP существуют еще и другие WAN-линки,
например, ADSL based, на которые есть свои стандарты. Они также могут
допускать свободное хождение STP по умолчанию - это дотошный читатель
может выяснить самостоятельно.
|
|