В копилку уязвимостей BGP — как устроена атака Kirin

от автора

За годы существования протокола в нем было выявлено немало уязвимостей. И недавно группа исследователей нашла новую. Рассказываем, в чем тут дело.

Фотография: Winston Chen / Unsplash.com

Фотография: Winston Chen / Unsplash.com

Немного контекста

Протокол динамической маршрутизации BGP появился в восьмидесятых и с тех пор практически не изменился. Многие специалисты отмечают, что он плохо справляется с современными нагрузками, поскольку изначально был рассчитан на работу в сетях куда меньших масштабов [косвенно эту точку зрения подтверждает тот факт, что BGP был написан авторами во время обеда на двух салфетках]. Неудивительно, что ИБ-специалисты регулярно фиксируют связанные с ним инциденты, затрагивающие инфраструктуру крупных облачных провайдеров, телеком-компаний и целых стран.

Так, в 2020 году крупный американский провайдер допустил ошибку при обновлении конфигурации BGP. В попытке перераспределить трафик с одного из магистральных каналов, инженеры случайно удалили настройки, отвечавшие за фильтрацию маршрутов. Произошел коллапс части сети, и на протяжении получаса были недоступны крупные социальные сети и онлайн-сервисы.

Помимо сложностей с конфигурацией, за прошедшее время в протоколе BGP накопились и проблемы с точки зрения информационной безопасности. Буквально в прошлом году исследователи обнаружили серию уязвимостей, связанных с обработкой BGP-сообщений: CVE-2022-40302, CVE-2022-40318 и CVE-2022-43681. Каждой из них был присвоен уровень опасности 6.5 по шкале CVSS. Злоумышленники могли отправлять специально сформированные сообщения, которые не проходили проверку протокола на корректность. Вследствие чего текущие BGP-сеансы завершались, а запросы оставались без ответа, формируя условия для DoS.

И совсем недавно группа инженеров на конференции IETF рассказала про новый тип атаки на BGP-протокол — Kirin (название не стоит путать с одноименными чипсетами).

Как это работает

Атака Kirin направлена на перегрузку маршрутизаторов. Она использует огромное количество маршрутов IPv6, которые злоумышленники распространяют через точки обмена интернет-трафиком (IXP), чтобы заполнить память маршрутизаторов жертв. Как только их таблицы заполняются до предела, устройства начинают сбрасывать трафик или отключаться. Большинство роутеров может хранить миллионы маршрутов, но в условиях перегрузки со своей работой перестают справляться даже роутеры высокого уровня.

Атака особенно опасна из-за распределённой природы — Kirin использует тысячи подключений, что позволяет злоумышленникам обойти традиционные механизмы защиты (например, ограничения на количество маршрутов или фильтрацию сбоев). Более того, благодаря относительной доступности виртуальных серверов, необходимую для атаки инфраструктуру можно развернуть с минимальными затратами и на легитимных AS.

Для противодействия такого рода атакам специалисты интернет-регистратора APNIC рекомендуют сетевым операторам следить за размерами таблиц маршрутизации и настраивать ограничения по числу префиксов, ориентируясь на статистику предыдущих дней. Мониторинг аномального поведения в сети поможет обнаружить массовые анонсы новых префиксов. Специалисты по информационной безопасности также представили open source реализацию возможного защитного механизма. 

Пересмотреть архитектуру сети

За все время существования BGP в него вносились модификации, призванные закрыть ряд уязвимостей. Однако устраняя одну проблему, эти решения зачастую формировали две других. Так, расширение BGPsec предотвращает route hijacking, заменяя традиционный AS_PATH на атрибут с цифровыми подписями. Но дополнительные криптографические операции увеличивают нагрузку на маршрутизаторы, что замедляет обработку пакетов.

Фотография: Joshua Rawson-Harris / Unsplash.com

Фотография: Joshua Rawson-Harris / Unsplash.com

Сегодня в ИТ-сообществе можно встретить мнение, что невозможно бесконечно улучшать BGP. Поэтому появляются проекты, авторы которых призывают пересмотреть архитектуру интернета и заменить протокол на новое решение.

Одно из них — это MobilityFirst, эксперимент по созданию архитектуры интернета с нуля, оптимизированной для мобильных и беспроводных устройств. Основные компоненты MobilityFirst включают глобальные уникальные идентификаторы (GUIDs), которые представляют собой самоподтверждаемые имена, основанные на открытых ключах, для объектов, подключенных к сети. Плюс применяется маршрутизация с учетом задержек и хранения данных (GSTAR), которая помогает справляться с нестабильностью беспроводных соединений и временными разрывами связи. Такое разделение между именами, идентификаторами и адресами должно в теории обеспечить бесшовную безопасную связь для мобильных устройств.

Другим примером является NEBULA. В основе проекта лежит гипотеза о том, что в будущем облачные вычисления станут ведущей технологией. Главная цель решения — разработка отказоустойчивых и высокодоступных сетевых сервисов, которые поддерживают маршрутизацию трафика по нескольким независимым путям. Архитектура NEBULA включает три компонента. Первый из них, NCore, ответственен за маршрутизацию и обеспечение связи между дата-центрами. Второй, NDP, представляет собой управляемую плоскость данных, которая отвечает за соблюдение сетевых правил, повышает подотчетность и поддерживает авторизацию маршрутов. Третий компонент, NVENT, динамически управляет сетевой конфигурацией, что позволяет решению адаптироваться к различным типам сетей.

Еще одна архитектура — SCION, о которой мы уже рассказывали в своем блоге. SCION в отличие от BGP, где конечные хосты не контролируют маршрут передачи пакетов, предоставляет отправителю полный контроль над тем, каким путем пакет достигает пункта назначения, используя систему маяков и сегментов. 

Серверы-маячки генерируют и собирают данные, необходимые для формирования маршрутов между автономными системами (AS) и изолированными доменами (ISD). Управление пользовательским трафиком осуществляется через плоскость данных. Важная информация о маршруте содержится в заголовке SCION-пакета. Процесс форвардинга схож с подходом, предложенным в протоколе LISP (RFC 6830). Примечательно, что внедрение SCION не требует изменений в текущей инфраструктуре интернет-провайдеров. Пакеты легко инкапсулируются в любые локальные структуры пересылки, такие как MPLS.

Несмотря на кажущееся разнообразие решений, сложно предугадать, какой будет архитектура интернета будущего. В рамках MobilityFirst, который находится на стадии перехода от прототипирования, проводятся испытания в нескольких университетах, включая MIT и университет Мичигана. Дальнейшее развитие архитектуры будет зависеть от успешности полевых экспериментов. Параллельно SCION уже реализуют в рамках Швейцарской финансовой инфраструктуры, которая объединяет банки, работающие со швейцарскими франками.

О чем еще мы пишем в нашем блоге:


ссылка на оригинал статьи https://habr.com/ru/articles/845014/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *