Расширенный поиск

Программно-конфигурируемые сети (ПКС) представляют собой сети, в которых программно разделены управление и коммутация потоков данных, что открывает возможность программного управления пересылкой данных, которое может быть логически и/или физически отделено от физических коммутаторов и маршрутизаторов. Программно-конфигурируемые сети (ПКС) быстро совершенствуются и на данный момент используются некоторыми потребителями, в частности центрами обработки данных (ЦОД). Они обеспечивают весьма значительную экономию капиталовложений за счет замены проприетарных маршрутизаторов на общедоступные коммутаторы и контроллеры; применение абстракций из Computer Science в управлении сетями обеспечивает снижение эксплуатационных расходов с одновременным повышением технических характеристик и улучшением функциональности.

В статье рассматривается следующий вопрос, до какой степени программно-конфигурируемые сети могут решить проблемы управления сетевой безопасностью?

Что такое ПКС?

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

В рамках подхода программно-конфигурируемых сетей, программное обеспечение может динамически конфигурировать сеть, что позволяет ей адаптироваться к меняющимся требованиям. ПКС позволяет решать несколько задач:

  1. Создавать виртуальные сети, которые функционируют поверх физической сети. В multi-tenant облаке виртуальная сеть может представлять топологию сети tenant’а с его собственными IP-адресами, подсетями и даже топологией маршрутизации. С помощью ПКС виртуальные сети могут создаваться динамически и могут поддерживать мобильность виртуальных машин (VM) в рамках всего ЦОД, сохраняя абстракцию логической сети.
  2. Управлять потоками трафика в сети. Некоторые виды трафика могут нуждаться в пересылке на определенные устройства (VM) для анализа безопасности или мониторинга. Может возникнуть необходимость гарантировать определенную пропускную способность или ограничить ее для некоторых загрузок. С помощью ПКС можно создавать такие политики и динамически изменять их в соответствии с рабочей нагрузкой.
  3. Создавать интегрированные политики, которые соединяют физические и виртуальные сети. С помощью ПКС можно добиться, чтобы обработка трафика физической сетью и оконечными устройствами происходила схожим образом. Например, можно развернуть общие профили безопасности или обеспечить совместное использование инфраструктуры мониторинга и измерений для физических и виртуальных коммутаторов.

Таким образом, ПКС дает возможность конфигурировать конечные хосты и физические элементы сети, динамически регулировать политики управления движением трафика по сети и создавать абстракции виртуальных сетей, поддерживающие создание экземпляров VM в реальном времени и их миграцию по всему ЦОД. Программируемость ПКС включает не только конфигурирование физических элементов сети. Она значительно шире и включает программируемость конечных хостов, что делает возможной реализацию полного программного управления в центре обработки данных. Все эти функции важны для облегчения автоматизации и повышения надёжности крупных ЦОД (см. Рис. 1)

Рис. 1.

Рис. 1. Организация программно-конфигурируемой сети

Безопасность в сетях традиционной архитектуры

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

Наши дальнейшие рассуждения мы будем иллюстрировать на следующих примерах:

  • Крупный транзитный поставщик услуг уровня 1 с сотнями точек присутствия (PoP) в различных странах.
  • Компания, обеспечивающая некоторые услуги в филиалах крупной Международной компании в различных странах, например, услуги VPN для ее офисов в больших городах.
  • Сеть крупной организации, например международного аэропорта с миллионами пассажиров, офисами авиакомпаний, представителей государственных организаций (например, службы безопасности на транспорте, пограничной службы и т.д.) и персоналом аэропорта.

В этом списке должны быть центры обработки данных. Однако, имеется огромное количество публикаций об архитектуре ЦОД и перспективах ПКС для ЦОД. При движении вниз по списку сложность физического контроля инфраструктуры сети и степень этого контроля снижаются.

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

Термин «защита» сложен. Он означает поддержание целостности и конфиденциальности данных заказчика, предохранение от отказа сетевых сервисов (например, DDoDs) и т.д. При современном развитии сетевых технологий, огромном росте пропускной способности Интернета и переходе от стационарных клиентских устройств к мобильным сетям (имеется уже 1 миллиард подключенных смартфонов в начале 2013 г. и только около 200 тысяч стационарных устройств), эффективность существующих решений управления доступом снижается. Для каждой новой версии протокола Ethernet нужны все более дорогие устройства для сетей одного и того же масштаба, что пять или десять лет назад. В терминах мобильности клиентских устройств, сетевые конфигурации быстро меняются, и изменения информации о топологии сети не могут использоваться непосредственно для управления доступом. Таким образом, проблема управления доступом к сети на основе информации об ожидаемом поведении (потоках) сетевых приложений становится все более важной.

Инфраструктура

Одна из основных угроз в области инфраструктуры — физический доступ к сетевым устройствам. В большом аэропорту невозможно гарантировать физическую недоступность сетевых устройств. Как только злоумышленник получает доступ к устройству, он может полностью или частично изменить его содержимое. Злоумышленник также может получить доступ к сетевым кабелям. Это еще один пример угрозы в этой области. Такой доступ предотвратить невозможно. Например, если поставщику услуг необходимо заменить какое-то сетевое устройство в его сети, то никто не может гарантировать, что оборудование по пути с завода на склад поставщика не будет изменено.

В сети ПКС ситуация совершенно другая. Все интеллектуальные функции удалены с маршрутизаторов и коммутаторов и помещены на контроллеры сети ПКС (см. рис. 1). Сервер с контроллером можно легко перенести в надежно защищенное помещение. Программируемые контроллеры могут поддерживать набор так называемых приложений (c-приложение или управляющая программа на рис. 1), которые обеспечивают традиционные сетевые сервисы, такие как маршрутизация, защита от перегрузок, управление QoS и т.д., а также новые сервисы, такие как виртуализация, фильтрация (как обычные брандмауэры), обнаружение вредоносных программ и т.д. В данном контексте сервисы виртуализации означают разделение.

Программное обеспечение

Программное обеспечение в сети ПКС сконцентрировано в контроллерах. Таким образом, один из ключевых вопросов — где следует разместить контроллер ПКС [2]. Сегодня уже ясно, что должна быть иерархия контроллеров с различными наборами приложений.

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

Каждый контроллер должен реализовывать следующие функции:

  • контроллеры на одном и том же уровне должны иметь один и тот же набор с-приложений;
  • c-приложения должны быть пригодны для многократного (reusable) использования контроллерами, размещаемыми поблизости один от другого;
  • различные экземпляры контроллера должны быть способны совместно использовать один экземпляр n-приложения;
  • контроллер должен быть доверенной (trusted) средой;
  • контроллер должен быть масштабируемым; это означает, что при возрастании рабочей нагрузки выше определенного уровня, контроллер должен быть способен получить дополнительную вычислительную мощность, например путем разделения своей работы с другим экземпляром контроллера, размещенным на другом физическом ресурсе;
  • если один из экземпляров контроллера неожиданно прекратил работу, другие контроллеры, размещенные поблизости, должны взять на себя ту часть сетевых коммутаторов, которая управлялась отключившимся контроллером.

Безопасность с-приложения представляет собой другую проблему. Здесь мы сталкиваемся с той проблемой, какая возникает у тех, кто работает с приложениями для iPhone, Android и т.д. Хорошим решением этой проблемы могло бы быть описание поведения c-приложения [3]. Кажется, этот подход будет более эффективным и менее ресурсоемким, чем, например, формальная верификация и проверка на моделях (model checking) [4].

Мониторинг — другая ключевая функция для безопасности ПКС сетей. Должно вестись несколько видов мониторинга. Мониторинг поведения с-приложений — одна из этих задач. Другая — мониторинг и проверка пакетов. Это важно как для сбора образцов потоков данных, так и для того, чтобы убедиться в том, что виртуализация разделила потоки данных надлежащим образом, например, потоки данных конкурентов никогда не пересекаются. Мониторинг является важной функцией системы реагирования. При проникновении злоумышленника система должна реагировать должным образом для восстановления работы контроллера. Не имеет значения, в какой форме выступает злоумышленник — как несанкционированное программное обеспечение, не- правильно ведущее себя с-приложение или что-то другое.

Протоколы

Рассмотрение безопасности протоколов мы разделим на следующие части:

  1. безопасность протокола контроллер-коммутатор;
  2. безопасность протоколов c-приложений;
  3. безопасность протоколов контроллер-контроллер.

1. Безопасность протоколов контроллер-коммутатор. В типичном сегменте сети ПКС между коммутатором и контроллером используется безопасное соединение SSL. SSL обеспечивает базовый уровень безопасности, но в реальных условиях ПКС сети его может быть недостаточно (например, развитые криптографические протоколы: Internet Key Exchange, IPsec, Kerberos и т.д.). Эти методы шифрования могут быть достаточны для ЦОД, но вряд ли подойдут для сетей WAN и даже для автономных систем. Здесь возникают все проблемы, связанные с управлением ключами, с возрастанием расходов и задержками шифрования [5,6].

2. Безопасность протоколов c-приложений. Одна из проблем здесь заключается в том, достаточно ли существующих решений и будут ли другими решения для с-приложений ПКС? Например, как безопасно загрузить ключи в устройство. Другим примером может быть вопрос о том, где надлежащее место для с-приложения для анализа трафика на контроллере. Но приложения контроллера концентрируются только на анализе заголовков сетевых пакетов. Вот почему не рекомендуется помещать DPI-функцию на контроллер, поскольку она требует передачи тела пакета на контроллер. Тело пакета никогда не должно обрабатываться на стороне контроллера.

3. Безопасность протоколов контроллер-контроллер. Скорее всего, в ближайшем будущем ПКС-контроллеры будут работать в локальной распределенной компьютерной среде. В таком случае можно использовать протоколы SSL/TLS. Основным компонентом распределенного контроллера является протокол взаимодействия нескольких контроллеров в локальной среде. Предполагается, что такой протокол может работать двумя способами: “out- band” и ”in-band”. При “out-band” создается отдельная сеть управления из контроллеров, и нет необходимости защиты сети. При ”in-band” необходимо создать защищенный канал данных между контроллерами. В случае WAN или MAN для связи между контроллерами будет два случая. Либо этот протокол будет работать в плоскости данных, тогда будут необходимы изощренные методы обеспечения безопасности. Если будет выделенная плоскость управления, недоступная из плоскости данных, то можно будет использовать более простые методы. Мы должны постоянно помнить, что простота — это сила.

Рассматривая безопасность ПКС в случае WAN, мы должны понимать, что контроллер будет чрезвычайно привлекательной мишенью для злоумышленника. И здесь мы сталкиваемся с проблемой идентификации (fingerprinting). Другими словами: как идентифицировать, управляется ли сегмент сети контроллером ПКС или представляет собой обычную для традиционных сетей смесь плоскости данных и плоскости управления? В этом случае наиболее вероятный подход — использовать отклонения таймаута при установлении соединения с конкретным сегментом.

Остается одна область, которая здесь не была рассмотрена — безопасность протоколов сетевых приложений. В этой области у нас все еще есть вопросы без ответов: должно ли сетевое приложение поддерживать какую-либо связь с c-приложением?

Исходя из принципов сетевой безопасности ответ должен быть Нет. Однако практика показывает, что по многим причинам было бы полезно, чтобы между ними поддерживалась связь. Один из примеров — управление качеством обслуживания.

Заключение

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

ПКС подход имеет много преимуществ в области безопасности, особенно в части физической безопасности сетевого оборудования. Разделение плоскости данных и плоскости управления дает дополнительные преимущества. Однако необходимо исследовать еще очень многое, особенно в области программного обеспечения ПКС. Примером одной из таких областей является протокол связи коммутатор-контроллер и контроллер-контроллер.

Одной из основных возможностей ПКС подхода является удобство и гибкость конфигурирования политик коммутации (forwarding policy). С помощью протокола OpenFlow можно не только конфигурировать пересылку конкретных типов трафика через определенные точки сети, но также проверять, все ли сетевые пакеты проходят через эти конкретные точки. Это дает огромные возможности для сетевой безопасности, но все еще требует исследований.

(1) Выступление Nick McKeown, Москва, 2012.

Дополнительная литература:
  1. http://blogs.technet.com/b/windowsserver/archive/2012/08/22/software-efined-networking-enabled-in-windows-server-2012-and-system-center-2012-sp1-virtual-machine-manager.aspx
  1. Heller, R. Sherwood, and N. McKeown, “The controller placement problem,” in Proceedings of the first workshop on Hot topics in software defined networks, ser. HotSDN ’12. ACM, 2012, pp. 7–12.
  1. R.L.Smeliansky, D.Gamaynov “The model of network applications behavior.”, Moscow, Programmirovanie, 2007, № 4, pp.1-12 (Programming and Computer Software, ISSN 0361-7688, 2007, Vol. 33, No. 6, pp. 308–316. ©Pleiades Publishing, Inc., 2007.)
  1. Edmund M. Clarke, Jr., Orna Grumberg and Doron A. Peled, Model Checking, MIT Press, 1999, ISBN 0-262-03270-8.
  1. M.Lepinski (Ed.) “BGPSEC Protocol Specification,” Internet Engineering Task Force, Feb. 2013. [Online]. Available: http://www.ietf.org/id/draft-ietf-sidr-bgpsec-protocol-07.txt
  1. Domain Name System Security Extensions. RFC 2535

Материал подготовлен на основе доклада, представленного на Седьмой научной конференции Международного исследовательского консорциума информационной безопасности в рамках международного форума «Партнерство государства, бизнеса и гражданского общества при обеспечении международной информационной безопасности», 22-25 апреля 2013 года г.Гармиш-Партенкирхен, Германия.

Об авторе

Руслан Смелянский

Член-корреспондент РАН, профессор факультета вычислительной математики и кибернетики, МГУ имени М.В.Ломоносова.

Написать ответ

Send this to a friend
Перейти к верхней панели