RFC: 4272
Оригинал: BGP Security Vulnerabilities Analysis
Категория: Информационный
Дата публикации:
Автор:
Перевод: Николай Малых
3.1.5.3. Атрибуты пути

С атрибутами пути связано множество уязвимостей и рисков.

  • Attribute Flag, Attribute Type Code, Attribute Length

    Партнер BGP или внешний атакующий может изменить размер или тип (флаги или код типа) атрибута так, чтобы они не соответствовали значению атрибута. При изменении флагов эти флаги и код типа могут стать несовместимыми (например, обязательный атрибут будет указан как частный — partial), дополнительный атрибут может быть интерпретирован как обязательный и наоборот. При изменении кода типа атрибут может быть интерпретирован как тип и значение иного атрибута.

    Наиболее очевидным результатом изменения размера, флагов или кода будет ошибка при анализе сообщения UPDATE. Такая ошибка вызовет передачу сообщения NOTIFICATION с последующим разрывом соединения (см. описанное выше событие 28). Поскольку корректно настроенный узел BGP может в любой момент разорвать соединение, эта уязвимость приводит к дополнительному риску только в тех случаях, когда источником является внешний атакующий (т. е., не возникает дополнительного риска со стороны партнеров BGP).

  • ORIGIN

    Это поле показывает источник маршрутной информации — IGP или EGP. Поле используется на этапе выбора маршрутов, следовательно, здесь имеется незначительная уязвимость, которая позволяет воздействовать на процесс выбора маршрутов принимающим узлом BGP путем изменения этого поля.

  • AS_PATH

    Партнер BGP или внешний атакующий могут анонсировать значение AS_PATH, не связанное должным образом с NLRI.

    Поскольку партнер BGP может не проверять, что полученное значение AS_PATH начинается с номера AS его партнера, злонамеренный партнер BGP может анонсировать путь, начинающийся с номера AS любого узла BGP с минимальным воздействием на самого себя. Это может повлиять на процесс выбора маршрутов принимающим сообщение узлом BGP. Злонамеренный партнер может указать существенно более короткое значение AS_PATH, которое будет повышать шансы на выбор данного маршрута и, возможно, давать злонамеренному партнеру доступ к трафику, который он обычно не получает. Кратчайшее значение AS_PATH может также приводить к возникновению маршрутных петель, если в нем не содержится информации, требуемой для предотвращения петель.

    Узел BGP может быть настроен так, чтобы он принимал маршруты с номером своей AS в пути. Такие эксплуатационные вопросы определены как «выходящие за пределы» спецификации BGP. Но, поскольку AS_PATH может включать петли, разработчики не имеют возможности автоматически отбрасывать маршруты с петлями. Каждый узел BGP проверяет лишь отсутствие своего номера AS в AS_PATH.

    Вкупе с возможностью использования любых значений NEXT_HOP, это дает злонамеренным узлам BGP значительные возможности управления путями передачи трафика.

  • Originating Routes

    Специальным случаем анонсирования ложных атрибутов AS_PATH является ситуация, когда AS_PATH анонсирует прямое подключение к указанной сети. Партнер BGP или внешний атакующий могут нарушить маршрутизацию в сеть (сети), указанную в поле NLRI, путем рассылки ложных анонсов прямого соединения с сетью. NLRI станет недоступным для части сети, которая воспримет этот ложный маршрут, пока последняя AS из AS_PATH не создаст туннель для пересылаемых пакетов этого NLRI в направлении целевой AS по корректному пути. Но даже после туннелирования пакетов в корректную AS маршрут может быть неоптимальным или несоответствующим заданной политике. Кроме того, может быть оказано воздействие на маршрутизацию для других сетей в Internet, если ложные анонсы фрагментируют агрегированный блок адресов, заставляя маршрутизаторы обрабатывать (передавать сообщения UPDATE, сохранять и поддерживать маршруты) множество фрагментов взамен одного агрегированного маршрута. Фальшивые исходные точки для множества адресов могут приводить к тому, что маршрутизаторы и транзитные сети на анонсированном пути начнут лавинную рассылку потерявшего направление трафика.

  • NEXT_HOP

    Атрибут NEXT_HOP определяет IP-адрес граничного маршрутизатора, который следует использовать как следующий интервал при пересылке пакетов NLRI, указанному в сообщении UPDATE. Если получателем является внешний партнер, адрес получателя и значение NEXT_HOP должны находиться в одной подсети. Очевидно, что внешний атакующий, который изменит это поле, сможет нарушить пересылку трафика между двумя AS.

    Если получатель сообщения является внешним партнером AS и маршрут был получен от другой партнерской AS (это один из двух вариантов "third party" NEXT_HOP), тогда узел BGP, анонсирующий маршрут, имеет возможность направить трафик получателя узлу BGP, указанному адресом NEXT_HOP. Это дает возможность направить трафик на маршрутизатор, который не способен продолжать дальнейшую пересылку трафика. Злонамеренный узел BGP также может воспользоваться этим методом для того, чтобы заставить другую AS передавать трафик, который обычно через нее не проходит. В некоторых случаях это может дать злонамеренному узлу BGP преимущества, поскольку он способен направить передачу трафика по более длинному пути в ту или иную точку, которую он разделяет с атакуемым.

  • MULTI_EXIT_DISC

    Атрибут MULTI_EXIT_DISC используется в сообщениях UPDATE, передаваемых между партнерами, которые находятся в разных AS. Хотя полученное из другой AS значение MULTI_EXIT_DISC может распространяться внутри AS, его нельзя распространять в другие AS. В результате это поле используется только при внутреннем выборе маршрутов для одной AS. Изменение этого поля внешним атакующим или партнером BGP может сделать неоптимальной маршрутизацию внутри AS.

  • LOCAL_PREF

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

  • ATOMIC_AGGREGATE

    Поле ATOMIC_AGGREGATE показывает, что некая AS на пути объединяет несколько маршрутов и анонсирует объединенное значение NLRI без формирования AS_SET, обычно формируемого из AS в AS_PATH агрегированных маршрутов. Узлы BGP, получающие маршрут с ATOMIC_AGGREGATE, не могут делать NLRI более специфичным. Удаление атрибута ATOMIC_AGGREGATE снимает это ограничение и может стать причиной некорректной маршрутизации трафика, предназначенного для более специфичного NLRI. Добавление атрибута ATOMIC_AGGREGATE при отсутствии агрегирования будет давать незначительный эффект за счет того, что неагрегированный NLRI нельзя будет сделать более специфичным. Эта уязвимость существует независимо от того, является источник партнером BGP или внешним атакующим.

  • AGGREGATOR

    Это поле может включаться узлом BGP, который создал маршруты, представленные в сообщении UPDATE, путем объединения других маршрутов. Поле содержит номер AS и IP-адрес последнего сумматора (aggregator) маршрута. Если поле не используется при выборе маршрутов, никакой уязвимости не возникает.

3.1.5.4. NLRI

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

2007 - 2017 © Русские переводы RFC, IETF, ISOC.