BGP (the Border Gateway Protocol)— это магистральный протокол и «клей» Интернета, который рассылает информацию о маршрутах между сетями провайдеров. Короче говоря, этот протокол, BGP, является очень важным элементом, необходимым для правильной работы глобальной сети в целом.
Программное обеспечение маршрутизаторов, реализующее BGP, не идеально, поскольку как коммерческие, так и версии с открытым исходным кодом имеют проблемы в реализации этого протокола маршрутизации.
В то время как многие недостатки незначительны и связаны с проблемами маршрутизации, рассматриваемая ошибка обработки пакета BGP вызывает особое беспокойство, так как может распространяться как компьютерный червь.
Владелец BGP[.] Бен Картрайт-Кокс обнаружил этот недостаток; Это компания, которая предлагает услуги мониторинга BGP для обнаружения и решения проблем.
Ошибочный атрибут
2 июня 2023 года небольшая бразильская сеть повторно анонсировала маршрут с поврежденным атрибутом в пакете, что потенциально повлияло на транзитные маршрутизаторы.
Многие маршрутизаторы игнорировали этот атрибут, но маршрутизаторы Juniper принимая его, и ответ на ошибку в пакете закрывали сессии BGP, тем самым нарушая связанность своих сетей с глобальной сетью Интернет.
Кроме того, такая ошибка в пакете BGP прерывает сессию, прекращая переток клиентского трафика до тех пор, пока не будет выполнен автоматический перезапуск маршрутизатора, который обычно занимает от нескольких секунд до нескольких минут.
Завершение сессии BGP вследствие получения пакета с ошибочным атрибутом |
Это затронуло многих операторов, таких как COLT, сбой в работе которых и привлек внимание к этой проблеме.
Ошибка, связанная с обработкой ошибок BGP
Каждый атрибут пакета обновления BGP начинается с флагов, включая ключевой 'транзитивный бит':
Транзитивный бит в пакете обновления BGP |
Если транзитивный бит атрибута установлен, а маршрутизатор его не понимает, он копируется на другой маршрутизатор, что может привести к слепому распространению неизвестной маршрутной информации.
Завершение работы сессии BGP нарушает переток трафика между автономными системами и может распространяться как червь. В то время как атрибуты, неизвестные одной реализации, могут привести к завершению работы другой, созданный BGP UPDATE может быть нацелен на поставщика определенного оборудования и вывести сеть провайдера из строя целиком.
Распространение ошибки в пакете BGP по сети |
Эффект от атаки сохраняется довольно долгое время, так как анонсированный маршрут всё остается в одноранговом маршрутизаторе, даже после его перезапуска, при передаче нового пакета обновлений BGP он инициирует еще один сброс сессии, что приводит к длительным простоям.
Более того, чтобы проверить, какие реализации протокола BGP подвержены этой уязвимости можно использовать простую утилиту для тестирования.
Незатронутые поставщики оборудования
Далее приводим список поставщиков, которые не были затронуты этой уязвимостью:
- MikroTik RouterOS 7+
- Ubiquiti EdgeOS
- Arista EOS
- Huawei NE40
- Cisco IOS-XE / “Classic” / XR
- Bird 1.6, All versions of Bird 2.0
- GoBGP
Подверженные версии оборудования или ПО
- Juniper Networks Junos OS
- Nokia’s SR-OS
- Extreme Networks’ EXOS
- OpenBSD’s OpenBGPd
- OpenBSD’s FRRouting
Вопросы и ответы
Ранее было сообщено об этих уязвимостях всем подверженным ей поставщикам оборудования и программного обеспечения. После получения уведомления были получены следующие ответы от затронутых поставщиков:
- OpenBSD выпустила патч
- Компании Juniper присвоили CVE
- FRR также присвоил CVE
- В Nokia проблему не решили
- Extreme также не решил эту проблему
Кроме того, несмотря на отсутствие ответов некоторых поставщиков оборудования, провайдеры услуг интернета сами могут принять меры по предотвращению потенциальной эксплуатации этой уязвимости.