BGP (Border Gateway Protocol) — протокол маршрутизации, с помощью которого сети интернета сообщают друг другу, какие диапазоны IP-адресов им доступны, фактически определяя, как трафик проходит через интернет.
Как работает BGP
Интернет состоит из десятков тысяч автономных систем (AS) — сетей провайдеров, облачных компаний, университетов и предприятий. Каждая AS анонсирует соседям принадлежащие ей префиксы IP-адресов по TCP-порту 179, а маршрутизаторы передают эти анонсы дальше, выбирая пути согласно политикам и длине маршрута. Текущая версия BGP-4 описана в RFC 4271. Протокол проектировался в расчёте на доверие: по умолчанию маршрутизатор принимает всё, что анонсирует сосед.
Почему BGP важен для безопасности
Поскольку анонсы не проверяются, ошибки или злонамеренные действия могут перенаправить трафик целых сервисов:
- Утечки и перехваты маршрутов — в 2008 году Pakistan Telecom, пытаясь заблокировать YouTube внутри страны, случайно анонсировал его префикс, и YouTube на несколько часов стал недоступен по всему миру.
- Кража криптовалюты — в 2018 году злоумышленники перехватили адресное пространство Amazon Route 53, перенаправили DNS сервиса MyEtherWallet и похитили средства из криптокошельков пользователей.
- Перехват трафика — захват маршрута позволяет провести трафик через сеть атакующего для атаки «человек посередине» и затем отправить его дальше, что трудно заметить.
- Сбои — в октябре 2021 года ошибочное изменение конфигурации отозвало BGP-маршруты Facebook, и Facebook, Instagram и WhatsApp были недоступны около шести часов.
Как защитить BGP
- Публиковать авторизации источника маршрута (ROA) в RPKI и включать проверку источника маршрутов на маршрутизаторах.
- Фильтровать анонсы клиентов и пиров по данным IRR, следуя рекомендациям MANRS.
- Защищать BGP-сессии аутентификацией TCP-AO или MD5 и лимитами на число префиксов.
- Отслеживать свои префиксы сервисами мониторинга BGP и всегда использовать TLS, чтобы перехваченный трафик нельзя было прочитать.





