Наличие уязвимых мест в междоменной маршрутизации может привести к отказу в обслуживании или к нарушению конфиденциальности важной информации, однако многие системные администраторы не задумываются о таких рисках и не знают, как можно сделать маршрутизацию более безопасной. Разберем особенности междоменной маршрутизации и приведем наилучшие практические решения, которые смогут помочь быстро повысить уровень безопасности.
Маршрутизация между организациями
Системе, через которую передаются пакеты, должно быть известно о том, куда их передавать, с учетом адреса назначения и информации, содержащейся в таблицах маршрутизации, имеющихся на каждом маршрутизаторе. В такой таблице, например, указано, что пакеты, адресованные хосту A, могут быть сначала направлены в систему H, которая в состоянии их передать A, возможно, через промежуточные узлы. Поскольку топология Сети постоянно меняется по мере того, как системы выходят из строя или их заменяют, таблицы маршрутизации могут обновляться за день множество раз. Этой цели служит Border Gateway Protocol (BGP) для Internet. Когда в BGP возникает ошибка, часть Internet становится недоступной на какое-то время, от нескольких минут до нескольких часов.
До недавнего времени большинство инцидентов, связанных с BGP, были непреднамеренными, например, в апреле 1997 года действия небольшого Internet-провайдера из Флориды вызвали нестабильность в Сети, которая привела к выходу из строя маршрутизаторов, а связь более часа оставалась крайне медленной. Это произошло после того, как этот провайдер случайно отправил сообщения, показывающие, что есть более прямой маршрут к значительным фрагментам Internet [1]. По магистрали другого, крупного провайдера, к которой была подключена сеть «инициатора», эти ошибочные сообщения были разосланы другим крупным провайдерам. Как следствие, провайдеру из Флориды стали поступать миллионы пакетов, а некорректная информация о маршрутизации быстро распространилась по Internet. В 2008 году с помощью аналогичного процесса уже преднамеренно было «похищено» адресное пространство YouTube, в результате чего временно недоступными оказались миллионы пользователей [2]. Уроки, которые должны были извлечь системные администраторы, предельно ясны – существуют серьезные изъяны в маршрутизации, а прерывание сервиса или другие инциденты могут быть инициированы как случайно, так и злонамеренно.
Немало организаций слепо полагаются на Internet-провайдеров для реализации функций междоменного управления маршрутизацией, но при этом многие университеты или компании с крупными сетями используют для решения такой задачи BGP. Совокупность маршрутизаторов, компьютеров и других компонентов в рамках одного административного домена называют автономной системой (autonomous system, AS). Каждая AS может обрабатывать пакеты, направляемые на тысячи IP-адресов в организации, например, IEEE работает с AS 13462, обслуживающей блок из 65 792 адресов. ICANN предоставила организациям, занимающимся регистрацией в Internet, право присваивать AS номера, и по состоянию на декабрь 2008 года в Internet существовало более 30 тыс. автономных систем.
При передаче по Internet пакеты, такие как сообщение электронной почты, пересылаются от одной AS к другой до тех пор, пока не достигнут адресата, и именно BGP должен поддерживать актуальные списки рациональных путей между ними. Эти пути должны быть максимально короткими и не иметь циклов. Маршрутизаторы BGP хранят и обмениваются таблицами с информацией о доступности, где перечислены номера AS, которые могут использоваться для передачи пакетов в определенную сеть назначения. Например, междоменный маршрутизатор может объявить о том, что он обеспечивает доступ к адресам в блоке 129.6.0.0/16, то есть к адресам, первые 16 разрядов которых имеют десятичный префикс 129.6. Предположим, что другой маршрутизатор объявил 129.6.2.0/23. Если пакет содержит адрес 129.6.3.164, то направляющий маршрутизатор, как правило, предпочтет послать пакет на второй маршрутизатор, поскольку адрес /23 более точен и можно предположить, что сообщение достигнет своего назначения через меньшее количество промежуточных узлов. Это одна из причин, почему маршрутизаторы сконфигурированы таким образом, чтобы отдавать предпочтения префиксам, соответствующим меньшему по размеру блоку адресов.
Обычно такая практика делает маршрутизацию более эффективной, но, когда в AS происходит ошибка в адресации, нагрузка на маршрутизатор становится чрезмерной, как это произошло во время инцидента во Флориде. Число активных записей BGP (то есть число префиксов достижимых адресов) сейчас приближается к 300 тыс., оперируя которыми и используя информацию о достижимых адресах для обмена с другими AS, каждая AS создает граф путей в Internet без циклов и достаточно коротких, чтобы быть целесообразными. В такой сложной системе сбои вполне вероятны.
Потенциальные атаки
Обсуждаемые в данном разделе атаки относятся к числу тех, что могут вызвать наибольшую обеспокоенность, хотя это далеко не исчерпывающий их список. Поскольку BGP работает на TCP/IP, любая атака на TCP/IP может быть направлена против BGP, но здесь мы остановимся на факторах, в первую очередь относящихся к обеспечению безопасности при маршрутизации.
Злонамеренное добавление маршрута
При отсутствии элементов управления безопасностью злоумышленник может послать обновления с информацией о некорректной маршрутизации. Например, Национальный институт по стандартам и технологии США (NIST) располагает адресным пространством 129.6.0.0/16, и если хакер объявит более специфический маршрут (такой, как адрес /24 в пространстве IP-адресов NIST), то это может изменить путь движения пакетов, направляющихся в NIST. В результате пакеты будут пересылаться на машину хакера, который может их дальше никуда не передать, организуя своего рода «черную дыру». Хакер может также прослушивать пакеты, организуя атаки на другие маршрутизаторы с целью изменить длину пути и заставить пакеты проходить через свой маршрутизатор. Злонамеренное добавление маршрута такого рода возможно, поскольку стандартный BGP не поддерживает аутентификацию, позволяющую гарантировать подлинность других BGP-узлов, и не имеет механизма авторизации, дающего возможность убедиться в том, что BGP-узел имеет право обновлять маршруты для передачи пакетов по адресам с конкретными префиксами.
Перезагрузка TCP
Хакеры могут использовать протокол Internet Control Message Protocol (ICMP) для перезагрузки сессий. Существующие спецификации IETF не предусматривают, чтобы маршрутизаторы проверяли номера последовательности в получаемых сообщениях ICMP. Для таких атак необходимо знание IP-адреса жертвы и номера порта, но природа BGP требует, чтобы эти данные были общедоступны. Следовательно, хакеры могут имитировать сообщения ICMP об ошибках, которые вызовут перезагрузку TCP-сессии (аппаратные ошибки) или снижение пропускной способности (программные ошибки). Перезагрузка TCP прерывает сессии взаимодействия BGP с другими узлами, заставляя маршрутизаторы перестраивать таблицы маршрутизации. Производители маршрутизаторов пытаются решить этот вопрос, но пока универсального подхода нет.
Добавление незарезервированных маршрутов
Один из способов злонамеренного искажения маршрутов заключается в добавлении маршрутов на незарезервированные префиксы (не присвоенные какой-либо организации): эти адреса никто не должен использовать, так что никакого трафика на них передаваться не должно. Соответствующая атака предусматривает указание маршрутов в подсетях, которые зарезервированы, но не используются той организацией, которой они выделены.
Исчерпание ресурсов
Поскольку BGP реализован на TCP/IP, то SYN-атаки и другие виды атак на TCP могут затронуть работу BGP. Более того, помимо хранения, которого требует базовая обработка TCP/IP, маршрутизаторы используют большое количество ресурсов хранения для префиксов путей. Эти ресурсы могут быть исчерпаны, если маршрутизатор получает обновления слишком быстро, либо если маршрутизатор вынужден хранить слишком много префиксов путей из-за злонамеренного объявления префиксов. Чрезмерные обновления маршрутов могут также возникнуть из-за нарушения целостности данных или технических проблем у доверенного соседнего узла.
Контрмеры
Несмотря на то что сегодня предлагаются различные протоколы для более совершенного обеспечения безопасности при междоменной маршрутизации, ни один из них не получил пока широкого распространения. Однако есть несколько практических решений, которые можно использовать уже сейчас.
Безопасный механизм TTL
Атака, которую часто называют time-to-live hack, для исходящих пакетов устанавливает значение счетчика промежуточных узлов TTL в 255 и заставляет соседние маршрутизаторы игнорировать пакеты с TTL, меньшим, чем 254 (с учетом некоторых вариаций в реализациях маршрутизаторов), тем самым гарантируя, что входящие пакеты находятся на расстоянии одного промежуточного узла до адресата. Универсальной реализации безопасного механизма работы с TTL (Generalized TTL Security Mechanism, GTSM) не существует, но, зная о такой уязвимости, можно несколько укрепить безопасность передачи.
Фильтрация
Системные администраторы могут устанавливать фильтрацию как входящих (фильтрация на входе), так и исходящих префиксов (фильтрация на выходе) за счет использования синтаксиса, аналогичного применяемому на межсетевых экранах. В частности, они устанавливают фильтры таким образом, чтобы принимать определенные блоки адресных префиксов, отклоняя незарезервированные префиксы (используя постоянно обновляемые списки) и заведомо некорректные префиксы, подобные тем, что используются в частных сетях (например, 192.168.0.0/16). Обычно соседние маршрутизаторы должны иметь согласованные фильтры, то есть выходные фильтры AS должны соответствовать входным фильтрам узлов, с которыми они взаимодействуют. Проверка того, что номер последовательности TCP находится в диапазоне пакетов, которые уже переданы, но еще не подтверждены, может помочь противодействовать злонамеренному искажению маршрута.
Цифровые подписи
Коммерческие маршрутизаторы поддерживают цифровые подписи MD5, с помощью которых можно гарантировать, что получаемые пакеты приходят от авторизованных маршрутизаторов. Недостаток этого решения состоит в том, что каждая пара соседних узлов должна совместно использовать секретный ключ, причем этот ключ необходимо периодически обновлять, чтобы предотвратить взлом по принципу грубой силы со стороны хакера, собравшего большое число сообщений.
Списки управления доступом
Системные администраторы могут использовать списки управления доступом (Access Control List, ACL) так, чтобы их маршрутизатор поддерживал соединения только с авторизованными соседними маршрутизаторами.
***
Многие исследовательские проекты посвящены проблеме повышения безопасности междоменной маршрутизации, и в IETF имеются как уже устоявшиеся, так и новые спецификации на безопасность маршрутизации [3]. Однако их широкому распространению препятствует необходимость обеспечивать совместимость с уже существующими решениями. Кроме того, некоторые спецификации предусматривают серьезную криптографическую обработку, которая может повлиять на производительность. Как следствие, многие новые проекты посвящены решениям, которые отдельные организации могут использовать для того, чтобы повысить уровень собственной безопасности, при этом по-прежнему стремясь к постепенному внедрению более эффективных, общих для Internet механизмов. К таким проектам относится программа Secure Protocols for the Routing Infrastructure Министерства внутренней безопасности США и работы ряда групп в IETF.
Ситуация с уязвимостью сетей быстро меняется, и некоторые из наиболее распространенных атак сейчас стали встречаться значительно реже, чем несколько лет назад. Однако по мере того, как администраторы укрепляют защиту в одной области, хакеры ищут другие средства проникновения. Междоменная маршрутизация сегодня недостаточно безопасна, а сложная экономическая ситуация препятствует распространению улучшенных версий BGP, поэтому организации должны сосредотачиваться на уже существующих практических средствах. Устранение уязвимых мест в междоменной маршрутизации – это перспективная задача, решением которой пока занимаются немногие, поэтому внедрение практичных средств обеспечения безопасности именно сейчас может позволить администраторам оказаться на один шаг впереди хакеров.
Литература
- W. Aiello, J. Ionnidis, P. McDaniel, Origin Authentication in Interdomain Routing. Proc. 10th ACM Conf. Computer and Comm. Security, ACM Press, 2003.
- YouTube Hijacking: A RIPE NCC RIS Case Study. 2008, www.ripe.net/news/study-youtube-hijacking.html.
- D. Montgomery, S. Murphy, Toward Secure Routing Infrastructures. IEEE Security & Privacy, v. 4, N. 5, 2006.
Рик Кан (kuhn@nist.gov) – специалист Национального института по стандартам и технологиям США; Симон Лью (simon_liu@nlm.nih.gov) – директор по информационным системам Национальной медицинской библиотеки США; Харт Россман (hart.m.rossman@saic.com) – директор по технологиям в SAIC.
Rick Kuhn, Simon Liu, Hart Rossman. Practical Interdomain Routing Security. IEEE IT Pro, November/December, 2009, IEEE Computer Society, 2009. All rights reserved. Reprinted with permission.