Контейнерная безопасность: шифрование at rest

Аватар пользователя Pavel Virtuozzo
Автор: Емельянов Павел, Virtuozzo
(0)
()
Опубликовано в:

Несмотря на то, что виртуальные машины становятся все более шустрыми и эффективными – за счет развития гипервизоров, улучшения самих ОС и процессорных оптимизаций – контейнеры все же остаются вне конкуренции для некоторых задач. Так, недавно проведенный тест Cloud Spectator показал, что контейнеры ОС оказываются до 50% быстрее виртуальных машин в сценариях VPS, а с чтением и записью на виртуальные диски справляются вообще в разы быстрее традиционных гипервизоров. Естественно, что многим хочется использовать контейнеры почаще, но при этом остаются опасения в их защите.

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

Защитить контейнеры

Контейнеры ОС с момента их появления в 2001 году используют следующую архитектуру. Каждый гость получает виртуальное пространство, но при этом все «легкие ВМ» используют одни и те же библиотеки и ресурсы ядра. Именно это и создает определенные проблемы: при взломе одного из контейнеров под угрозой могут оказаться и другие, работающие на том же хосте.

Тем не менее, способов защиты информации в контейнерах разработано достаточно много: это и специальные версии для ядра Linux, поддерживающие дополнительную изоляцию ресурсов, и возможность моментальной установки патчей ReadyKernel, и использование CGroups/NameSpaces для разделения доступа.

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

Хранение информации

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

Идея состоит в следующем: получить прямой доступ к оперативной памяти, в которой работает контейнер ОС достаточно сложно, и практически все угрозы сводятся к тому, что данные будут похищены с диска (обычно в случае инцидента именно так и происходит). Чтобы исключить такую возможности мы решили хранить информацию исключительно в зашифрованном виде. При загрузке данных в память для работы, они автоматически расшифровываются (и снова зашифровываются при записи обратно в хранилище). Все это происходит автоматически и уже «вшито» в Virtuozzo Storage – нашу распределенную систему хранения для контейнеров.

Поскольку основной сферой применения контейнеров ОС является хостинг, пользователям необходимо раздать собственные ключи для шифрования/дешифровки. Это происходит за счет интеграции со службами управления ключами (KMS). Например, клиенты могут использовать Safenet или альтернативную систему с открытым исходным кодом. Главное, что только пользователь может расшифровать свой контейнер, а кодирование происходит автоматически, как только данные сохраняются из памяти на диск.

Четырех зайцев

Если задуматься, оказывается, что такая простая с идеологической точки зрения новация (оказавшаяся не столь простой с технических позиций), помогает решить сразу 4 важных вопроса.

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

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

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

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

Берегите ключи

Таким образом, сегодня мы можем говорить об еще одном уровне безопасности контейнеров ОС, который делает их еще более интересной альтернативой традиционным ВМ. Главное – надежно хранить ключи шифрования. Ведь если кто-то сможет скопировать их, данные вновь окажутся в опасности и смогут утечь за пределы компании. Но а потеряв ключ…мы фактически теряем диски своих контейнеров и ценную информацию. Таким образом, нужно тщательно продумать регламенты управления ключами доступа, а сама технология Encrypted Containers уже доступна всем пользователям Virtuozzo 7.

Оцените материал:
Total votes: 63
 
Комментарии в Facebook
 

Вы сообщаете об ошибке в следующем тексте:
Нажмите кнопку «Сообщить об ошибке», чтобы отправить сообщение. Вы также можете добавить комментарий.