Глава 8.3.2 в [1] содержит следующую фразу: "A MAC frame conveyng a BPDU". Это значит, что BPDU это пакет, а не фрейм. Таким образом, нет необходимости конструировать фреймы самостоятельно, поскольку они стандартны для данной физической среды - мы можем конструировать BPDU пакеты выше, чем самый нижний подуровень 2-го уровня OSI. Иначе говоря, можно отвязать программу конструктор BPDU от конструктора фреймов, оставив функцию инкапсуляции соответствующему драйверу. Однако, авторы выбрали для своих исследований создание программного модуля, конструирующего BPDU напрямую. Исходный текст модуля на языке C и сценарий на языке bash для более удобного манипулирования параметрами командной строки приведены в приложениях.
Авторы долго не могли
прийти к единому мнению: стоит ли делать эти тексты общедоступными.
Без понимания принципов работы STP и выбора параметров эти тексты
ничем не помогут личностям с деструктивными наклонностями, а
человек, который разобрался в сути уязвимости, может воспользоваться
любым конструктором пакетов. В связи с этим, тексты решено было
включить в открытую публикацию.
|
Чем хорошо создание фреймов напрямую:
Чем плохо создание фреймов, а не пакетов Spanning Tree:
Media Access Control (управление доступом к
среде передачи данных). Например, Ethernet, Token Ring и т.п.,
код получится непереносимым между ними.
|
Ethernet был выбран авторами из-за наибольшей распространенности, по сравнению со всеми остальными типами сетей.
Помимо написания собственных программ есть возможность использовать готовые программные средства, обернув их в скрипты на любом подходящем языке, например, perl или языках shell - bash, zsh, ksh, csh (см. раздел 9), что значительно упрощает работу с параметрами Spanning Tree. Однако при этом появляется дополнительное условие - Linux с ядром, настроенным для поддержки bridging плюс соответствующий комплект утилит. Еще одним отрицательным моментом выбора такого пути будет необходимость накладывания патчей на исходный код Linux bridging project в случае, если потребуется сконструировать атаку с модификацией алгоритма работы, выходящей за рамки стандарта, например, изменить значения таймеров на меньшие или большие, чем описано в стандарте.
Стоит также сказать несколько слов на тему особенностей программирования под разные операционные системы и выбора языка:
|
|