|
17. Как производители могли бы отреагировать на появление в публичном доступе информации по STP-атакам
- До тех пор, пока не будут найдены лучшие пути, устройства "из
коробки" должны игнорировать STP протокол, как сделано, например, в
коммутаторах Hewlett Packard HP212M и 224M (в них поддержка STP "из
коробки" выключена). Это позволит избежать атак в тех ситуациях,
когда STP не является жизненно необходимым элементом сети (например,
в сети с единственным коммутатором).
- Следует отказаться от принципа plug&play по отношению к сети:
например, выпустив новую версию стандарта, которая будет требовать
переконфигурации администратором некоего STP пароля (желательно
нетранслируемого напрямую в сеть), который требовался бы для участия
в изменении топологии по новому STP-протоколу, и без ввода которого
поддержка STP была бы выключена. Так можно было бы значительно
усложнить воспроизведение атаки на топологию сети. Ничего особенно
страшного в том, что устройство перед вводом в полнофункциональную
работу с сетью надо будет чуть-чуть отконфигурировать нет: обычно
устройства все же конфигурируют, перед тем, как задействовать в
сложных сетях, а сети, в которых STP работает не просто так, а с
пользой, явно сложнее остальных, которых, кстати, большинство.:)
Конкретная реализация может быть выполнена с использованием
известных криптографических методов, например, при помощи Кодов
Подтверждения Достоверности (Message Authentication Code, MAC). Для
этого в пределах группы оборудования, которое должно образовать
stp-дерево, выбирается "общий секрет" (пароль, ключ), заносимый в
каждое устройство (лучше с помощью dip-switches на панели, т.е.
аппаратно)
|
Такой подход позволит автоматически выполнить и
предыдущую рекомендацию, если положение переключателей по умолчанию
("все в 0") будет означать для устройства отключение поддержки
STP.. После этого перед посылкой BPDU-пакета к нему добавляется
секрет, для всего массива (пакет вместе с "общим секретом")
рассчитывается значение хеш-функции (например, SHA-1) и прибавляется
к отправляемому BPDU-пакету ("общий секрет", естественно, при
этом не передается). На принимающей стороне к принятому пакету также
добавляется секрет и рассчитывается значение хеш-функции, которое
сравнивается с полученным в пакете. В результате получатель уверен,
что пакет послал кто-то из "своих" (обладающих знанием секрета),
при этом сам секрет по сети не передается и не может быть
перехвачен злоумышленником для последующего использования.
|
- Каждое устройство, поддерживающее STP, должно иметь
возможность отключить обработку STP на каждом порту по отдельности,
это реализуется переписыванием управляющего софта. Без выполнения
этого условия применение такого устройства в сети становится
небезопасным. Разумеется, в момент выключения STP на порту
администратор должен понимать, что он лишается возможности
использовать преимущества STP и ставит себе потенциальную ловушку.
Однако есть масса случаев, когда это оправдано. Например,
предоставление клиентам ISP сервиса по Ethernet сети - в этом случае
сети всегда будут разделены и STP на клиентских портах никогда не
принесет пользы. С точки зрения реализации, порты с выключенной
поддержкой STP должны просто отбрасывать любые STP-BPDU и не должны
посылать никаких STP-BPDU.
- Крайне желательно, чтобы каждое STP-совместимое устройство
поддерживало команду, аналогичную командам Сisco STP portfast и
BPDU-guard. Это позволило бы избежать некоторых типов DoS (STP
portfast), а также (BPDU-guard) локализовать сегмент с атакующим.
- Каждое устройство, поддерживающее и STP, и VLANы, должно поддерживать
отдельное STP-дерево на каждый VLAN, в противном случае атака в одном VLAN
может привести к отказу работы всей сети (например, в случае использования
intel 460T с включенным STP).
- Алгоритм работы STP должен быть пересмотрен: на используемые
алгоритмом таймауты должны быть наложены более жесткие ограничения,
такие, чтобы стала невозможной постоянная реконфигурация устройств,
при которой время, проводимое в состояниях с запрещенной трансляцией
фреймов, не может быть больше времени устаревания информации.
- Протокол STP требует доработки в части внесения в него функций
обеспечения аутентичности и целостности передаваемой информации
(пакетов BPDU), например, с применением криптографических методов.
Это позволило бы избежать ситуации когда конфигурация изменяется
атакующим в любой момент времени посредством посылки bpdu от имени
другого устройства.
- Спецификация алгоритма STP (как и прочих административных
протоколов, работающих на 2-м уровне OSI), а также спецификация
канального уровня всех LAN могут быть расширены таким образом, чтобы
NIC'и физически не могли общаться с устройствами, обслуживающими
сеть (маршрутизаторы, мосты, концентраторы и т.п.) с использованием
административных протоколов. Иными словами, административные
протоколы, используемые коммутаторами для определения топологии,
могли бы работать с использованием отдельной схемы электрической
сигнализации (другой вольтаж или метод кодирования сигнала).
Поскольку сетевые адаптеры конечных устройств не будут иметь такой
схемы, они физически не смогут вмешаться в работу административных
протоколов. Этот вариант изменения протокола представляется мало
перспективным. Во-первых, он достаточно сложен в реализации
(необходимо перепроектировать аппаратную часть). Во-вторых,
аппаратная несовместимость остановит лишь часть личностей с
деструктивными наклонностями (не умеющих держать в руках паяльник).
В-третьих, сразу же встает вопрос обратной совместимости с ранее
выпущенным оборудованием. Таким образом, несмотря на серьезные
затраты, он не является панацеей.
- Возможно, следует изменить STP протокол таким образом, чтобы
пользовательские фреймы передавались всегда, предусмотрев при этом
дополнительную маркировку фреймов, переданных в период реконфигурации
маркером, который помогал бы уничтожать их по прошествии
некоторого таймаута - в конце концов не так уж и много урона сети
нанесут продублированные по разным каналам фреймы, в отличие от
описанных в этой статье DoS атак.
- Возможно, стоит создавать более сложные административные
протоколы - с установлением соединения (подобно tcp). Это может
серьезно усложнить спуфинг конфигурационных сообщений.
- Также, возможно, стоит расширить STP таким образом, чтобы
устройства запрашивали подтверждения происходящего поверх
заблокированных каналов в тех случаях, когда это возможно. Такая
модификация отбросит возможность определенных подвидов атак (в
частности, MitM).
|
|