|
|
Обзор подготовлен
При поддержке
Системы хранения и сети хранения стали неотъемлемым элементом центров обработки данных. Их размеры и сложность постоянно увеличиваются, зависимость организаций от этой части информационной инфраструктуры растет. Вместе с тем, организация безопасности в сетях FC SAN часто остается без внимания специалистов.
Сети хранения данных, построенные на технологии Fibre Channel (FC), существуют в подавляющем большинстве ЦОД. В крупных системах, сеть хранения (storage area network, SAN) не ограничивается одним коммутатором, а формирует топологически сложную, зачастую – территориально распределенную сеть. Количество портов в сети хранения измеряется десятками и сотнями, что превышает размеры некоторых локальных сетей.
Тем не менее, как правило, системные администраторы и администраторы безопасности не уделяют внимания безопасности в SAN, полагая, что защищенность обеспечивается их территориальной ограниченностью. Нужно отметить, что с одной стороны, в случае построения резервных ЦОД, связанность двух SAN требуется для организации репликации, создания распределенных кластеров или решения задачи резервного копирования.
С другой стороны, в некоторых топологиях серверы, расположенные в DMZ, с точки зрения IP-сети, используют тот же сегмент SAN, что и серверы в доверенном сегменте. Это создает неконтролируемый канал из внешнего, незащищенного сегмента сети, в сегмент ЦОД.
Итак, если на активном оборудовании SAN и системах хранения не выполнены соответствующие настройки, то злоумышленник, получивший доступ к одному из серверов, подключенных к SAN, может получить доступ и к другим данным, хранящимся на дисковых системах и ленточных библиотеках, или атаковать другие серверы.
Протокол Fibre Channel не имеет ничего общего с IP или Ethernet, однако его структура такова, что некоторые уязвимости, типичные для локальных сетей, актуальны и для сетей хранения.
Для того, что бы лучше понимать угрозы, существующие в сетях FC SAN, кратко рассмотрим принципы функционирования протокола Fibre Channel. В ходе рассмотрения, для облегчения понимания, приведены аналоги из мира IP. Сразу оговоримся, что эти аналогии распространяются только на грубое функциональное соответствие, но реализация подсистем, как правило, весьма отличается.
Пять подуровней протокола Fibre Channel
Источник: Cisco, 2008
Итак, протокол состоит из 5 подуровней, обозначаемых кодами FC0 до FC4. Физический уровень, FC0 описывает среду передачи данных – медные кабели или оптоволокно, а также рабочие частоты.
На уровне FC1, примерно соответствующему канальному уровню в модели IP, выполняется кодирование данных для передачи. Для распространенных скоростей от 1 Гб/с до 8 Гб/с используется кодирование 8b/10b, в то время, как для 10 Гб/с – кодирование 64b/66b.
Уровень FC2 является основным в протоколе FC и соответствует одновременно сетевому и сессионному уровням в IP. Здесь описывается подключение узла к сети SAN, взаимодействие двух узлов и службы, предоставляемые сетью (иначе называемой фабрикой) Fibre Channel.
Уровень FC3 на текущий момент фактически не используется, поскольку не был окончательно стандартизован консорциумом разработчиков протокола, и не реализован производителями оборудования. Потенциально, здесь могли бы быть описаны такие сервисы, как шифрование, групповая адресация, RAID (redundant array of independent disks, массив независимых дисков с избыточностью) средствами фабрики и другие «интеллектуальные» службы.
Уровень FC4 описывает привязку протокола более высокого уровня для его передачи через Fibre Channel. В сетях хранения по протоколу FC передаются SCSI-пакеты (Small Computer System Interface), используемые для доступа к диску.
Таким образом, с точки зрения серверов, дисковые массивы, подключенные через SAN, выглядят, как локальные SCSI-диски, а FC HBA (host bus adapter) – представляется SCSI-адаптером. Однако, через FC могут передаваться и другие протоколы, например IP. Причем, этот вариант не является экзотическим, а используется, например, в некоторых дисковых системах для репликации.
Итак, FC является полноценным многоуровневым сетевым протоколом, позволяющим передачу данных различной природы.
Подключение узла (сервера, дисковой системы и т.п.) к FC-фабрике является более сложным процессом, чем подключение системы к сети Ethernet. Рассмотрим некоторые особенности этого процесса.
При подключении адаптера к сети хранения и после отработки протоколов физического и канального уровней (синхронизации, согласования скорости передачи данных, определения типа подключаемого устройства – узел или коммутатор и т.п.), хост выполняет процедуру, называемую Fabric Login.
В ее ходе, адаптер сообщает фабрике свой WWN (World Wide Number), имеющий размер 8 байт и функционально примерно соответствующий MAC-адресу (media access control) в сети Ethernet. Получив WWN, специальная служба фабрики присваивает адаптеру адрес FCID (Fibre Channel IDentificator) и сообщает узлу об этом присваивании. Таким образом, процесс Fabric Login грубо соответствует работе DHCP (Dynamic Host Control Protocol).
После окончания этого процесса запускается следующая процедура – Port Login. В ее ходе адаптер общается со специализированной службой фабрики (сети FC являются более «интеллектуальными», чем Ethernet, и в них существует концепция «служб» - специальных подсистем, обсушивающих фабрику в целом, а не отдельные коммутаторы или хосты) – сервером имен.
Узел сообщает серверу имен свой WWN, присвоенный ему FCID и некоторую другую служебную информацию. Сведения о соответствии WWN и FCID становятся известны всем коммутаторам фабрики. Два оконечных узла в фабрике общаются, используя адреса FCID, в то время, как фабрика (любой ее коммутатор) обеспечивает передачу FC-фрейма на нужный порт, зная все WWN в сети. Таким образом, процедура Port Login объединяет в себе функциональные свойства динамической регистрации имен узлов в системе DNS (domain name service) для IP и распределенную таблицу MAC-адресов в сети Ethernet.
Когда два узла в сети FC должны установить между собой соединение, инициатор выполняет процесс Node Login (иногда называемый process login) в отношении получателя. Зная FCID получателя, отправитель сообщает о своем желании установить соединение, согласовывает несколько параметров (в т.ч. так называемые Exchange ID), после чего данные могут передаваться. Процесс Node Login примерно соответствует установлению соединения в TCP, а параметры Exchange ID (их два – для получателя и для отправителя) выполняют туже роль, что и номер порта в TCP.
В сетях хранения может функционировать несколько механизмов, позволяющих обеспечить безопасность взаимодействия. К ним относятся т.н. «зонинг» и аутентификация портов, выполняемые фабрикой, а также механизмы контроля доступа к логическим дискам систем хранения и средства логического разделения коммутаторов, такие как Virtual SAN (VSAN).
Зонинг является стандартным элементом протокола Fibre Channel и реализован всеми основными производителями. Зонинг является средством контроля доступа. В ходе настройки в сети хранения выделяется несколько зон, причем узлы, входящие в одну зону, могут взаимодействовать между собой. А те, которые не находятся в одной зоне – нет.
Порт, идентифицирующий хост, систему хранения, ленточную библиотеку и пр., может входить в несколько зон. Как правило, производитель рекомендует создавать зону, соответствующую каждому адаптеру HBA хоста и вносить в нее все устройства, с которыми должен взаимодействовать хост. Такой, хост-ориентированный подход позволяет обеспечить максимальный уровень безопасности, которого вообще можно добиться с применением зонирования.
На практике же, администраторы зачастую применяют подход, когда в центр зоны помещается система хранения и все хосты, которые с ней должны взаимодействовать. Нередки и случаи, когда в одну зону помещаются все серверы и системы хранения, подключенные к SAN. Это отключает все (и без того небезупречные) механизмы контроля доступа в фабрике.
Идентификация устройств при их включении в зону может осуществляться по номеру порта, к которому подключено устройство или по WWN. Контроль доступа может обеспечиваться двумя способами – за счет проверки на сервере имен (устройства, входящие в разные зоны, не смогут выяснить каким WWN соответствуют FCID, т.н. «мягкий» зонинг) или за счет действительной фильтрации трафика получающим коммутатором.
Другим средством контроля доступа, не входящим в спецификацию FC, является проверка получаемых запросов непосредственно на системе хранения. Как правило, каждый производитель реализует эту проверку по-своему. Общим являются только механизмы идентификации устройств, которым разрешен доступ. Как правило, для идентификации используется WWN устройства, хотя некоторые производители позволяют установить на хост программный агент, который позволит идентифицировать хост не по WWN, а по символическому имени.
В стек протоколов FC также входят механизмы аутентификации подключаемых устройств. На текущий момент используется протокол DH-CHAP (Diffie-Hellman Challenge Authentication Protocol). Подсистема аутентификации в FC находится в состоянии развития и, возможно, в дальнейшем будет реализованы другие механизмы аутентификации, например, с использованием PKI. Как правило, в настоящее время администраторы не выполняют настройку аутентификации в сетях хранения.
Протокол не использует шифрование служебного трафика, хотя существует принципиальная (но нереализованная) возможность организовать защиту передаваемых данных. В рассмотренном виде, протокол уязвим для ряда атак с подменой участников соединения и атак типа «отказ в обслуживании».
В частности, в ходе Fabric Login атакующий может попытаться выполнить переполнение адресов FCID. Структура FCID такова, что, хотя полный размер поля составляет 3 байта, в пределах одного коммутатора все подключенные порты должны иметь одинаковыми первых два октета. Тогда, если при каждом Fabric Login коммутатор выдает новый FCID, переполнение может быть вызвано максимум за 256 попыток.
Аналогично в случае Port Login, в момент регистрации узла на сервере имен, запрос на регистрацию выполняется в открытом виде и не аутентифицирован фабрикой. Таким образом, атакующий может создать шторм запросов к серверу имен, выполнив отказ в обслуживании, или попытаться подделать FCID получателя, отправив запрос на регистрацию чужого FCID на собственный WWN. Это позволит легко организовать атаку типа «человек посередине».
Для организации атаки «человек посередине» атакующий выбирает неиспользуемый FCID, первые два октета которого совпадают с соответствующими октетами в адресе атакуемого. Атакующий регистрирует выбранный FCID на WWN атакуемого, а FCID атакуемого – на собственный WWN. Получая пакеты, предназначенные для атакуемого, злоумышленник меняет в них FCID получателя на выбранный и отправляет их атакуемому. Таким образом, атака может быть незаметна для всех участников сети. Подмена FCID так же в некоторых случаях позволит обойти механизмы контроля доступа на системах хранения.
В случае, когда подмена FCID представляется сложной, атакующий имеет возможность изменить WWN устройства. Поскольку WWN (аналогично MAC-адресу) является параметром устройства, как правило, ПО настройки HBA позволяет штатно изменить WWN. Изменение WWN позволяет тривиально обойти как механизмы контроля доступа на системах хранения, так и настройки зонинга, в которых для идентификации используется WWN.
Как было сказано выше, зонинг может быть реализован двумя способами. Во-первых, за счет контроля трафика. И, во-вторых, за счет блокирования ответов сервера имен.
Ясно, что последний механизм с точки зрения безопасности не выдерживает никакой критики. Если атакующему удается угадать (или выявить путем сканирования) адрес получателя, он может самостоятельно, не обращаясь к серверу имен, выполнить подключение. Как было отмечено, в силу архитектуры Fibre Channel, атакующий может сделать ряд предположений о структуре FCID, что значительно упростит его задачу. Сказанное означает, что реализация «жесткого» зонинга является обязательной для оборудования, используемого в сети хранения.
Очень привлекательной для атакующего была бы возможность изменить настройки зонинга. Как оказывается, FC легко позволяет сделать это. Одной из особенностей протокола является возможность настройки зонига на любой из коммутаторов, после чего эти настройки будут средствами Fibre Channel распространены на все коммутаторы фабрики.
В момент подключения к фабрике нового порта, перед выполнением Fabric Login, коммутатор выясняет, является ли подключаемое устройство конечным узлом (хостом, системой хранения и т.п.) или другим коммутатором. Атакующий, подключаясь к сети хранения, может «представиться» коммутатором, что позволит ему объявить себя доверенным устройством в фабрике. После этого, он сможет выполнить изменение настроек зонинга, переподключиться, как оконечное устройство и получить требуемый доступ.
Снизить риски, связанные с уязвимостями FC, вполне можно. И, мало того, нужно. Для этого имеются несколько возможностей.
Во-первых, необходимо использовать механизмы аутентификации подключаемых устройств – как минимум, подключение порта в виде коммутатора должно быть невозможно без аутентификации. Это позволит не только избежать атак с изменением зонинга, но и возможных нарушений маршрутизации (в FC используется протокол динамической маршрутизации, сходный с OSPF) и работы сервисов фабрики.
Во-вторых, с учетом недостаточности стандартных свойств протокола, стоит обратить внимание на средства, предоставляемые конкретным производителям оборудования. Например, на возможность сегментирования сети хранения на виртуальные SAN, использования read-only зон (тех зон, где хосту запрещены операции записи на дисковые тома), зон с учетом логических дисков и других расширенных механизмов безопасности.
В-третьих, необходимо обратить внимание на реализацию стандартной функциональности FC, в частности, на то, как реализованы механизмы зонинга («мягко» или «жестко»), возможно ли использовать номер порта, а не WWN хоста в качестве идентификаторов.
Наконец, имеющиеся возможности должны быть правильно использованы. Для настроек зон следует использовать принцип «один HBA – несколько систем хранения», по возможности использовать read-only зоны, зонирование логических дисков и средства контроля на системах хранения.
Такой комплексный подход позволит обеспечить приемлемый уровень безопасности и снизить рассмотренные риски. Нельзя не порекомендовать прислушиваться к рекомендациям производителей, внимательно изучать свойства используемого оборудования и программного обеспечения, и постоянно быть в курсе новых веяний в области безопасности.
Владимир Иванов