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

Cisco_1700

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

Исторически протоколы маршрутизации считаются "внутренними", то есть вся информация, которую они передают, является достоверной и доверенным. Существующие механизмы безопасности, является частью современных протоколов маршрутизации, — механизмы обнаружения модификаций сообщений с помощью криптографии и контрольных сумм; механизмы обнаружения сообщений из неизвестных источников с помощью секретных паролей; механизмы контроля маршрутной информации на основе статических фильтров (списков сетей, частичной информации о пути) использование реестра маршрутной информации (так называемого IRR) для формирования правил проверки сообщений. Однако эти средства или не дают решение проблемы недостоверности информации или имеют недостатки, не позволяющие их использовать в больших сетях (низкая масштабируемость, большое время реагирования на изменения топологии сети и т.п.). Существуют проекты принципиально новых протоколов маршрутизации, позволяющие разделить топологическую информацию и информацию о достижимости сетей. Это позволяет значительно упростить проверку правдивости однако из-за сложности перехода от существующих протоколов они не внедряются.

Напомним механизмы работы протокола BGPv4, описанного в документе RFC4251. Взаимодействие между маршрутизаторами, например маршрутизаторы Cisco серии 1700, происходит посредством соединения TCP, которое обеспечивает надежную передачу сообщений, причем соединение настраивается вручную на обоих маршрутизаторах. Существует три основные типы сообщение:

OPEN — согласование параметров соединения, KEEPALIVE — поддержка соединения и определения достижимости соседа, UPDATE — передача информации о достижимости или

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

Нас, в первую очередь, интересует сообщения UPDATE. Оно состоит из двух частей: списка префиксов сетей, недосягаемы и изымаются из таблицы маршрутов, и списка достижимых префиксов сетей и соответствующего маршрута к ним. Маршрут (англ. path) можно описать как множество необязательных и обязательных атрибутов (AS_PATH, ORIGIN, NEXTHOP). Маршрутизатор может получить информацию о достижимости сети от соседних маршрутизаторов и должен выбрать лучший из них (как правило, маршрут с кратчайшим AS_PATH). Лучший маршрут о достижимости передается соседним маршрутизаторам. Проблема в том, что каждый маршрут при передаче между автономными системами может и будет меняться: добавляется номер автономной системы-отправителя маршрута, изменяется атрибут NEXTHOP, могут добавляться или удаляться атрибуты. При этом протокол не предусматривает механизмов защиты от нежелательных изменений или от сообщений, несущих ложную информацию. А это может привести к тому, что недействующий, ошибочный или созданный злоумышленником маршрут будет выбран лучший. Если злоумышленник может влиять на выбор лучшего маршрута, то он может перехватывать данные, которые будут передаваться по данному маршруту, или привести к тому, что определенная сеть станет недоступной. Поиск механизмов противодействия таким атакам посвящена данная статья.

Критериями оценки того, что предложенные механизмы является корректным решением, являются:

1. Гарантировать, что полученное сообщение UPDATE было отправлено именно соседним

маршрутизатором, не было изменено при передаче и актуален (т.е. не старше, чем последнее полученное) и сообщение адресовано именно нам.

2. Возможность проверить соседней маршрутизатор, который отправил сообщение, имеет право действовать от имени автономной системы, указанной в сообщении.

3. Гарантировать, что первая автономная система в полученном маршруте имеет право

сообщать о доступности (или недоступности) данной сети, т.е. данные префиксы сетей принадлежат

именно ей.

4. Гарантировать, что соседний маршрутизатор (а также маршрутизаторы предыдущих

автономных систем маршрута) корректно обрабатывает сообщения, не вносит в него изменения, на которые не имеет права (например, не меняет предыдущие автономные системы атрибута AS_PATH).

Кроме того, необходимо ввести количественные оценки, позволяющие сравнивать варианты реализации с целью оценки эффективности их работы. Такими количественными оценками избраны:

— Объем дополнительной служебной информации, что необходимо передать для проверки одного префикса сети;

— Сложность вычислений, которые необходимо выполнить для приема и передачи одного сообщения о достижимость префикса сети.