Авторская колонка

Существует ли панацея для безопасности BGP?

BGP (Border Gateway Protocol), разработанный в конце 1980-х годов, стал основным протоколом для обмена информацией о маршрутизации между автономными системами в Интернете. Основными целями при создании BGP были обеспечение масштабируемости и функциональности, но без учёта безопасности.

Лежащие в основе BGP вычисления распределённых векторов расстояний в значительной степени основаны на неформальных моделях доверия, применяемых при распространении информации, для получения надёжных и правильных результатов. Это можно сравнить с сетью распространения слухов — информация передаётся по сети в виде серии сообщений “точка-точка”, при этом информация постепенно модифицируется каждый раз, когда она передаётся между носителями BGP. Разработка BGP проводилась в относительно однородной и основанной на взаимном доверии среде раннего Интернета.

Модель взаимного доверия BGP не предусматривает явного представления учётных данных, распространения полномочий и каких-либо надёжных средств проверки подлинности информации, передаваемой через систему маршрутизации. Злоумышленники могут атаковать сеть, используя в своих собственных целях эту модель доверия при междоменной маршрутизации.

Главная проблема реализации BGP— отсутствие встроенной аутентификации для проверки легитимности маршрутов, что позволяет злоумышленникам объявлять ложные маршруты, перенаправляя трафик через свои системы для перехвата данных или создания сбоев передачи информации. Перехват префикса является серьёзной угрозой целостности маршрутизации.

Уязвимости BGP обусловлены фундаментальными недостатками в протоколе и среде междоменной маршрутизации:

• отсутствие защиты целостности, актуальности и подлинности источника сообщений BGP;

• отсутствие информации о подлинности префикса адреса и источника этого префикса в системе маршрутизации;

• отсутствие проверки подлинности атрибутов сообщения об обновлении BGP.

На протяжении десятилетий предпринимались многочисленные попытки усилить безопасность BGP – от простых фильтров до сложных криптографических систем.

В 1990-х годах, с ростом Интернета и увеличением числа инцидентов, операторы сетей начали применять фильтрацию маршрутов. Этот метод заключался в ручной настройке фильтров для блокировки подозрительных или некорректных объявлений маршрутов. Однако фильтрация была трудоёмкой, нередко приводила к ошибкам и не масштабировалась на глобальном уровне из-за необходимости взаимной постоянной координации.

Изначально информационной основой для поддержки маршрутизации были IRR (Internet Routing Registry). Но они не всегда содержат точную и актуальную информацию во всех деталях.

На транспортном уровне сети был предложен метод защиты BGP-сессий с использованием MD5-хешей. Он обеспечивал аутентификацию TCP-соединений, на которых работает BGP, предотвращая подделку сессий. Однако MD5 не решал проблему подделки маршрутов, а лишь защищал соединения между маршрутизаторами. Со временем MD5 стал уязвимым к криптографическим атакам, что снизило его эффективность.

C начала 2000-х годов были предложены методы с использованием криптографии.

Их можно грубо разделить на два типа – построения безопасных сетей с шифрованием всего и вся, начиная с маршрутизаторов, и создания системы внешних репозитариев, не создающих излишнюю нагрузку на процессоры.

  • Так, Secure BGP (S-BGP) предлагал использовать цифровые подписи для аутентификации каждого обновления маршрута, проверяя как происхождение, так и путь. Однако S-BGP требовал изменений в протокол, значительных вычислительных ресурсов и глобальной инфраструктуры ключей, что затрудняло его внедрение.
  • Secure Origin BGP (soBGP) был ориентирован на аутентификацию происхождения маршрутов. Это было более простое решение, но оно не защищало от атак на промежуточные узлы в пути маршрутизации. Также он требовал публикаций политик маршрутизации операторов.

Эти первые два подхода столкнулись с трудностями внедрения из-за необходимости внесения изменений в протокол BGP, сложности вычислений и скепсиса операторов.

  • RPKI и ROA. В 2010-х годах появилась система Resource Public Key Infrastructure (RPKI), ставшая важным шагом вперёд. RPKI позволяет владельцам IP-адресов и автономных систем создавать цифровые сертификаты, подтверждающие их права на ресурсы. С помощью RPKI генерируются Route Origin Authorizations (ROA), указывающие, какие автономные системы могут объявлять определённые префиксы IP-адресов. Это помогает операторам сетей проверять легитимность происхождения маршрутов и предотвращать их подделку. RPKI получила уже широкое распространение среди операторов, но пока защищает только происхождение маршрутов, а не весь их путь. Последние разработки по RPKI (ASPA – Autonomous System Provider Authorization) могут помочь решить и эту проблему.
  • BGPsec. В 2017 году был опубликован стандарт BGPsec (RFC 8205), расширяющий RPKI, точнее, это была практическая реинкарнация S-BGP но уже с использованием RPKI. BGPsec использует цифровые подписи для аутентификации каждого шага на пути маршрута, обеспечивая защиту как происхождения, так и целостности пути. Такой подход значительно усиливает безопасность, но требует больших вычислительных ресурсов и глобальной координации. Практическое применение BGPsec на глобальном уровне изначально ставится под сомнение.

Это только часть попыток улучшить безопасность BGP.

Многие попытки были инициированы и поддерживались Минобороны США, в дальнейшем DHS (Министерством внутренней безопасности США). Результаты работ включены в национальные рекомендации/требования правительственных органов США для операторов связи.

В реальности RPKI – на данный момент единственно применяемый и развиваемый механизм повышения безопасности маршрутизации.

RPKI состоит из иерархически организованных хранилищ, известных как точки публикации (PPS), и средства проверки проверяющей стороны (RP) – обычно это LIR (Local Internet Registry), которое извлекает объекты RPKI, управляет ими и проверяет их. Роль RP заключается в обработке этих объектов и, в конечном счёте, в предоставлении маршрутизаторам необходимых данных по протоколу RPKI-To-Router (RTR), что определяет их решения о маршрутизации. Протокол RPKI разработан таким образом, чтобы его можно было адаптировать, поддерживая не только ROA, но и различные механизмы безопасности BGP, такие как BGPsec, ASPA (AS Path Authorisation) и, возможно, другие новые типы объектов RPKI. Точки публикации являются составными элементами распределённой базы данных RPKI. RP обслуживает уникальное подмножество глобальных ROA, при этом каждый RP обслуживает объекты, относящиеся к одному или нескольким центрам сертификации (CA).

Система в целом на данный момент состоит из пяти репозитариев, поддерживаемых региональными интернет-регистратурами (RIR). Они же являются удостоверяющими центрами для RP.

Изначальная модель, предложенная IAB (Internet Architecture Board IETF), предполагала наличие общего корня для верификации ресурсов в IANA/ICANN. В офисе ICANN даже был развёрнут соответствующий центр. Но RIR отказались от идеи построения ещё одной глобальной централизованной структуры как DNS/DNSSEC, а в 2017 году и IAB признала сложившуюся практику и изменила рекомендацию.

Всё равно остаются опасения на уровне стран о зависимости от этих внешних репозитариев. В начале 2010-х был предложен механизм LTAM (Local Trust Anchor Management), позволяющий локально на уровне RP управлять всеми сертификатами с возможностью их переподписания. Как стандарт RFC он не был принят в IETF, но использовался в странах Тихоокеанского региона национальными интернет-регистратурами (NIR). Так, известно, что в КНР он лежал в основе их национального пилота по внедрению RPKI.

В настоящее время основным направлением использования RPKI является распространение ROA. Однако экосистеме RPKI требуются дополнительные вспомогательные объекты для обеспечения безопасности и целостности. В этом году RIR начинают регистрацию и объектов AS Path (AS Path Authorisation).

Для улучшения безопасности регистрации объектов в RPKI недостаточно. Необходима их проверка ROV (Route Object Validation) для принятия решений о маршрутизации.

Несмотря на неполное внедрение, RPKI уже продемонстрировал результаты для тех, кто применяет ROV. С другой стороны, при более широком внедрении любой сбой и уязвимость или преднамеренное вмешательство в RPKI могут влиять на большую часть Интернета.

Несмотря на прогресс, BGP остаётся уязвимым к атакам. Основная сложность в этой проблеме — децентрализованная природа Интернета, где тысячи автономных систем управляются разными организациями. В последние годы появляются новые идеи, такие как использование блокчейн-технологий для децентрализованной аутентификации маршрутов, имеются и предложения по замене BGP.

Но в принципе, вообще сомнительна реализуемость идей, требующих полной замены текущей технологии. С другой стороны, от масштаба внедрения решения зависит эффективность его применения. Так, до сих пор не достигнуты цели внедрения IPv6 и DNSSEC, которые каждое по-своему являются яркими примерами навязанных решений. Во многом на массовое внедрение оказывает и экономический фактор затрат. Нельзя игнорировать факты конкретной заинтересованности во внедрении той или иной технологии.

Жизнь никогда не стоит на месте. Современный общедоступный Интернет стал в значительной степени сетью доставки услуг, использующей CDN для доставки контента и услуг как можно ближе к пользователю. В этой ситуации резко упрощается маршрутизация.

Инфраструктура открытых ключей ресурсов (RPKI), система защиты информации, передаваемой по протоколу маршрутизации BGP, может быть не так уж полезна в сервисной сети, где нет маршрутизации!

Ну и в любом случае, пока остаётся полагаться на профессионализм сетевых инженеров.