Атака на протокол STP STP (покрывающее дерево, Spanning Tree Protocol) – это служебный протокол, используемый мостами и коммутаторами, отвечающий за построение и поддержание древовидной структуры топологии сети на уровне L2, без образования петель. Устроен STP достаточно просто: раз в две секунды каждое сетевое устройство рассылает служебные multicast BPDU-пакеты, которые могут содержать сведения о конфигурации, уведомление/подтверждение получения изменений топологии. Большинство BPDU-кадров не содержит никакой «полезной нагрузки» – получение такого «пустого» пакета – это часть работы протокола по поддержанию топологии.
Рис.130 STP ликвидирует петли в топологии сети Используя слабую защищённость протокола STP и очень неудовлетворительные настройки по умолчанию с точки зрения безопасности5, злоумышленник может изменить топологию сети и получить доступ к трафику, бывшему для него недоступным.
Рис.131 Пример атаки на STP 1/2 Для проведения этой атаки злоумышленник должен быть физически подключён к двум разным коммутаторам, как представлено на рисунке выше. До проведения атаки протоколом STP в качестве корня дерева был выбран левый верхний коммутатор, при этом, чтобы избежать образования петли, STP заблокировал соединение от машины злоумышленника ко второму коммутатору – правому верхнему.
Рис.132 Пример атаки на STP 2/2
Послав соответствующие BPDU-кадры, машина атакующего может изменить топологию и стать корнем (root) в дереве – протокол STP в этом случае заблокирует соединение между коммутаторами. В итоге весь трафик, раньше пересылавшийся через это соединение, пойдёт через компьютер злоумышленника. В итоге возможным становятся DoS-атаки на сеть, атаки с использованием MitM («человек посередине») и т.п. Проблема решается конфигурированием протокола STP на всех коммутаторах. При этом настройки по умолчанию принципиально не могут быть признаны годными с точки зрения безопасности, т.к. настройка как раз заключается в конфигурировании портов и протоколов под конкретную физическую топологию.
Стандарт IEEE 802.1X Как было сказано выше, уязвимость протоколов нижних уровней может привести к «эффекту домино» и вызвать компрометацию вышележащих уровней. Layer 2 (канальный) в популярных сетевых технологиях – Ethernet (802.3), Wi-Fi (802.11) – исходно не обладает никакими механизмами защиты, в частности, возможностями аутентификации. Один из возможных механизмов описывает стандарт IEEE 802.1X, который работает на канальном уровне и определяет механизм контроля доступа к сети на основе принадлежности к порту (в контексте стандарта порт — точка подключения к сети).
Согласно протоколу 802.1X доступ к сети получают только клиенты, прошедшие аутентификацию, если аутентификация не была пройдена, доступ с соответствующего порта будет запрещён, и этот порт будет пропускать только трафик, относящийся к 802.1X. Ни на канальном уровне, ни на уровнях выше не аутентифицированный клиент не получит доступа к сети.
802.1X предполагает использование модели точка-точка. То есть он не может быть применен в ситуациях, когда несколько хостов соединяются с коммутатором (на котором настроена аутентификация 802.1X) через хаб или через другой коммутатор.
Рис.133 Модель контроля порта доступа Supplicant — устройство (компьютер, ноутбук, IP-телефон или др.), которое запрашивает доступ к сети у аутентификатора (коммутатора или точки доступа) и отвечает на его запросы. На клиенте должно быть установлено (или встроено) программное обеспечение, работающее по протоколу 802.1X. Существуют как сторонние разработки (например, Xsupplicant), так и встроенные в ОС (Windows 2000 и новее, MAC OS X). Supplicant также может быть встроен в коммутатор, в точку доступа.
Аутентификатор (authenticator) — устройство, контролирующее физический доступ к сети, основывающийся на статусе аутентификации клиента. Выполняет роль посредника (proxy) между клиентом и сервером аутентификации. Аутентификаторы встраивают в коммутаторы и беспроводные точки доступа корпоративного уровня.
Для каждого порта коммутатора (с включённой поддержкой 802.1X) создается два виртуальных порта:
Контролируемый порт (controlled port) — открывается только после аутентификации по 802.1X;
Неконтролируемый порт (uncontrolled port) — разрешает передавать только EAPOL трафик.
До тех пор, пока клиент не аутентифицирован, на неконтролируемом порту разрешён только EAPOL. Кроме терминов контролируемый и неконтролируемый порты применяются термины авторизованный (authorized) и неавторизованный (unauthorized) порты, соответственно.
Сервер аутентификации (authentication server) — осуществляет аутентификацию клиента. Сервер аутентификации проверяет identity (идентичности) клиента и сообщает аутентификатору разрешен ли клиенту доступ к сети. Примером сервера аутентификации может служить сервер RADIUS.
Используя стандарт IEEE 802.1X и некоторые дополнительные технологии, возможно реализовать политику управления доступом к сети, основывающуюся на identity. В качестве identity при работе в сети могут быть использованы:
Имя пользователя и пароль;
E-mail адрес: user@foo.com;
MAC-адрес: 00-21-13-59-66-74;
IP-адрес: 192.168.12.21;
Цифровые сертификаты.
На рисунке ниже представлены основные протоколы, используемые 802.1X:
Рис.134 Протоколы 802.1X При работе в 802.1X RADIUS-сервер действует как транспорт, переносящий EAP-пакеты от аутентификатора до сервера аутентификации (RFC3579-3580). Также RADIUS используется для переноса policy instructions (авторизация) обратно к аутентификатору в виде пар атрибут-значение.
EAP (Extensible Authentification Protocol) предоставляет гибкий безопасный framework для управления соединениями, инкапсулируя различные типы обменов аутентификации. EAP не зависит от IP, и может работать поверх линков разного типа – PPP, 802.
Некоторые методы аутентификации, доступные с EAP, перечислены в таблице ниже.
Метод
| Credential клиента
| База для шифрования
| Ключевые преимущества
| EAP-TLS
| Сертификат клиента
| не требуется
| Высокая безопасность
| PEAP-MSCHAPv2
| Имя/пароль
| TLS туннель (сертификат сервера)
| Не требует сертификат клиента
| EAP-FAST
| PAC (Protected Access Credential)
| Серверный PAC
| Не требует сертификатов
|
Сочетание поддерживаемых EAP-методов зависит от клиента и сервера аутентификации, обычно поддерживается некоторое ограниченное количество методов.
Рис.135 Пример работы 802.1X (EAP) Без поддержки IEEE 802.1X по умолчанию на всех портах коммутатора разрешены все без исключения протоколы, от клиента на канальном уровне не требуется никакой аутентификации:
Рис.136 Состояние порта по умолчанию без IEEE 802.1X При активированном протоколе 802.1X в состоянии по умолчанию порт пропускает только пакеты, относящиеся к EAP:
Рис.137 Состояние порта по умолчанию с 802.1X до аутентификации После успешной аутентификации порт «открывается» и начинает пропускать все протоколы:
Рис.138 Состояние порта по умолчанию с 802.1X после аутентификации У технологии 802.1X, при всех очевидных её плюсах, есть некоторые проблемы и серьёзные сложности. Клиентское устройство, не поддерживающее 802.1X, не получит доступ к сети при подключении к порту, требующему аутентификации. Также к одному порту часто может быть подключено более одного устройства (хаб, коммутатор, компьютер через IP-телефон и т.п.).
Вариантом аутентификации устройства, не поддерживающего 802.1X, может стать аутентификация по MAC-адресу (MAB – MAC Authentication Bypass). В этом случае, несколько раз не получив ответ на EAPOL-Request (timeout) от клиентского устройства, аутентификатор может начать проверку его MAC-адреса в своей специальной базе данных. База данных должна быть каким-то способом заполнена требуемыми адресами до того, как такие устройства попытаются пройти аутентификацию.
Ещё одним вариантом может стать аутентификация, основанная на Web. В беспроводных сетях (WLAN) эта технология достаточно распространена, называется она Captive portal. После таймаутов при попытке инициировать обмен по 802.1X, на порту разрешается ограниченный набор протоколов: HTTP, HTTPS, DHCP и DNS, после чего клиенту выдаются такие настройки, что при любом обращении по любому URL, он всегда попадает на одну и ту же страницу, на которой он должен будет ввести свой идентификатор (имя) и пароль. После успешного прохождения аутентификации порт открывается и разрешает работу всех протоколов.
Рис.139 Аутентификация, основанная на Web-proxy технологии Очевидно, что аутентификация по Web-proxy применима только к пользователю (человеку). MAB – аутентификация по MAC – может быть применена и к человеку, и к устройству.
Стандарт IEEE 802.1X представляет собой основу для организации мощной, гибкой и надёжной системы аутентификации для устройств/пользователей, работающих в сети. Но, при всей привлекательности и достаточной зрелости этой технологии, она по-прежнему распространена не очень широко, в первую очередь, в проводных Ethernet-коммуникациях. В корпоративных беспроводных сетях 802.1X используется значительно активнее. Причина не очень широкой распространённости – существенные сложности как для сетевых администраторов, так и для рядовых клиентов (необходимо, чтобы система поддерживала supplicant, чтобы на клиентской системе были установлены требуемые сертификаты и т.д.). С 802.1X есть также множество серьёзных проблем в случае подключения к одному порту более одного устройства (например, компьютер через IP-телефон) и в случае, когда при физическом отключении/подключении меняется link state.
Внедрение решений на базе стандарта IEEE 802.1X являет собой очень сложнуюзадачу. Даже такие мощные организации, как ЦЕРН, в которых уделяется огромное внимание вопросам безопасности в ИТ, в своей публичной сети аутентификацию клиентских машин реализовали только по MAC-адресам. При полном осознании того факта, что это далеко не так надёжно, как было бы в случае 802.1X, в частности потому, что MAC-адрес можно легко фальсифицировать.
|