Шифрование дисков в vmware
When you create an encrypted virtual machine from the vSphere Client , you can decide which disks to exclude from encryption. You can later add disks and set their encryption policies. You cannot add an encrypted disk to a virtual machine that is not encrypted, and you cannot encrypt a disk if the virtual machine is not encrypted.
- Setting the storage policy of VM Home to an encryption policy encrypts only the virtual machine itself.
- Setting the storage policy of VM Home and all the disks to an encryption policy encrypts all components.
Consider the following use cases.
After virtual machine creation, you can explicitly change the storage policy for each disk. See Change the Encryption Policy for Virtual Disks.
The disk uses the default storage policy. You can explicitly change the storage policy after adding the disk if you want an encrypted disk. See Change the Encryption Policy for Virtual Disks.
If you remove an encrypted virtual machine from vCenter Server but do not delete it from disk, you can return it to the vCenter Server inventory by registering the VM's virtual machine configuration (.vmx) file. To register the encrypted VM, the user must have the Cryptographic operations . Register VM privilege.
If the VM was encrypted using a standard key provider, when the encrypted VM is registered, vCenter Server pushes the required keys to the ESXi host. If the user registering the VM does not have the Cryptographic operations . Register VM privilege, vCenter Server locks the VM upon registration, and the VM is not usable until it is unlocked.
If the VM was encrypted using a trusted key provider or vSphere Native Key Provider, when the encrypted VM is registered, vCenter Server no longer pushes keys to the ESXi host. Instead, the keys are fetched from the host when the VM is registered. If the user registering the VM does not have the Cryptographic operations . Register VM privilege, vCenter Server does not permit the operation.
В век облачных технологий, когда у каждого пользователя есть собственное облако для хранения фотографий, а компании арендуют сервера для облачных вычислений, встает вопрос о конфиденциальности хранимой информации. И если пользователи для защиты хранимых данных могут обойтись доверием к облаку или использованием крипто контейнеров, то у компаний дела обстоят хуже. Так как в облака переносится не только хранилище данных, но и сами вычисления.
Особенно страдает защита виртуальных машин, так как в случае компрометации хоста, не составит труда получить доступ к ВМ. До недавнего времени ни один из гипервизоров будь то VMware, Xen, Hyper-V не предоставляли каких-либо значимых технологий по защите ВМ.
А если злоумышленник получит физический доступ к серверу, то спасти может только шифрование дисков, и то не во всех случаях. Конечно арендуя сервер, часть защитных мер берет на себя дата центр. Но в таком случае необходимо доверять администраторам дата центра.
С релизом Windows Server 2016, в Microsoft решили уделить больше внимания безопасности хоста и виртуальной инфраструктуры. Появилась возможность изолировать ВМ от администратора хоста Hyper-V. А используя виртуальный TPM стало возможным шифрование данных ВМ с помощью bitlocker.
Таким образом используя новые технологии можно размещать виртуальные машины на неподконтрольных серверах или в корпоративных дата центрах, но с повышенным уровнем безопасности, разграничивая роли физического и виртуального доступа.
Используемые технологии
Shielded VM – технология изолирующая виртуальную машину от хоста. Защищает ВМ от случайных или преднамеренных действий администратора хоста и от вредоносного программного обеспечения.
Для работы Shielded VM необходимо наличие сервера Host Guardian Service(HGS), который выдает ключи доступа к ВМ и проверяет здоровье хоста Hyper-V.
HGS поддерживает два вида аттестации:
- TPM-trusted аттестация – проверка проходит на основе идентификатора TPM, последовательности загрузки ОС и политики целостности кода. Таким образом можно быть уверенным, что на хосте работает только одобренный код.
- Admin-trusted аттестация – проверка происходит на основе принадлежности к группе безопасности Active Directory.
При запуске виртуальной машины защищённый хост проходит аттестацию у HGS сервера, который принимает решение о передачи ключей доступа к виртуальной машине.
Admin-trusted аттестацию целесообразно использовать внутри предприятия, когда нужно изолировать доступ к ВМ от администраторов.
TPM-trusted аттестацию лучше использовать при размещении ВМ на арендованном сервере, чтобы обеспечить изоляцию данных и ВМ от работников Дата Центра.
Virtual Secure Mode (VSM) – технология работающая на основе виртуализации, которая позволяет изолировать критические для безопасности операции в мини ОС.
На VSM работают две другие технологии:
- Device Guard – проверка данных UEFI прошивки и драйверов режима ядра (контроль целостности кода).
- Credential Guard – изоляция процесса аутентификации пользователей (LSA).
Основная ОС запускается в виртуальном окружении. А гипервизор выступает в роли хостовой ОС, тем самым ограничивая доступ к оперативной памяти. В итоге вредоносное ПО запущенное на хосте даже с администраторскими правами не сможет получить доступ к памяти VSM. Также такая структура должна защищать от атаки на DMA порты.
Об организации Shielded VM
Заказывая Shielded VM подразумевается, что хост Hyper-V и сервер HGS находятся на стороне дата центра (так организованно в Microsoft Azure). В таком случае создавать экранированную виртуальную машину можно самостоятельно или используя предоставленный шаблон.
Создавая Shielded VM самостоятельно заказчик у себя на ПК разворачивает и настраивает ВМ, а потом шифрует ключом выданным Дата Центром. После переносит ВМ в Дата Центр.
Во втором случае, заказчик создает только PDK файл, защищающий ВМ созданную из шаблона. PDK файл связывает файл шаблона с HGS сервером. Но необходимо убедиться, что в шаблоне нет вредоносного ПО.
Первый способ выглядит более безопасным, так как файл данных ВМ попадает на хост в уже шифрованном виде. В любом случае ключи доступа к ВМ не попадают к администраторам Дата Центра в открытом виде.
Единственным местом подверженным атакам остался HGS сервер. Так как:
- Администратор HGS может понизить требования к политике безопасности.
- Злоумышленник получивший администраторские права может попробовать получить ключи доступа.
- Для работы HGS требуется AD и нет требования к обязательному наличию TPM, следовательно, ключи вероятней всего будут храниться в открытом виде.
Может возникнуть вопрос о подмене сервера HGS администратором гипервизора — ведь для этого необходимо просто указать новый адрес. Защита от этого реализована достаточно просто, созданная ВМ зашифрована с использованием открытого ключа HGS сервера, поэтому другой HGS сервер не сможет выдать ключи для ее запуска.
Также стоит понимать, что технология Shielded VM шифрует только конфигурационные файлы виртуальной машины. VHDX файл остаётся незашифрованным. Для его шифрования нужно включить vTPM, и зашифровать диск битлокером.
Сочетание новых технологий предоставляет надежную защиту:
- человеческий фактор устранен;
- ключи передаются в зашифрованном виде;
- серверы защищены новыми технологиями, предусматривающими проверку целостности кода;
- белый список разрешенных приложений;
- изоляция ВМ от хоста.
Требования к серверам Hyper-V и HGS
Требования указаны для использования TPM аттестации. AD аттестация менее требовательна, но при этом обеспечивает гораздо меньшую защиту.
- Windows Server 2016
- Windows Server 2016 Datacenter Edition
- UEFI Secure Boot
- TPM v2
- IOMMU (VT-d)
Как настроить
Добавление и настройка HGS роли на сервере
Установка HGS сервера и создание домена
Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
HGS для работы необходим домен. Его можно подключить к уже существующему домену, но рекомендуется создание отдельного домена для повышения безопасности. Перед выполнением следующей команды необходимо убедиться, что компьютер не подключен к домену.
Создание самоподписаных сертификатов
Для теста были созданы самоподписанные сертификаты, но для реальной среды лучше использовать PKI.
Инициализация HGS сервера
Указываем сертификаты шифрования и подписи. Выбираем метод аттестации.
Добавление охраняемого хоста Hyper-V
Получаем идентификатор TPM
Данную процедуру необходимо выполнить для каждого защищаемого хоста.
Добавляем полученный файл на сервер HGS
Создаем и применяем Code Integrity Policy
При создании политики происходит сканирование всех установленных программ и добавление их в белый список. Перед созданием политики необходимо убедится, что в системе:
- Отсутствуют вирусы и вредоносное ПО
- Установлено необходимое для работы ПО и оно является благонадежным
Сканирование займет некоторое время.
Файл .p7b необходимо переименовать в SIPolicy.p7b и скопировать в папку C:\Windows\System32\CodeIntegrity\SIPolicy.p7b
Перезагружаем компьютер и проверяем работу системы под планируемой типичной нагрузкой. После успешной проверки работы системы отключаем режим аудита
Если защищаться будет несколько идентичных хостов, политику можно создать только один раз.
Рекомендуется оставить исходный XML файл, чтобы в случае необходимости изменения политики не проводить повторное сканирование.
При включенной политике необходимо быть осторожным с обновлением или добавление драйверов режима ядра, так как это может предотвратить загрузку системы.
Регистрируем политику на HGS сервере
Создание TPM baseline политики
Эта политика основывается на PCR регистрах (Platform Configuration Registers), находящихся в модуле TPM. В них хранятся целостности метрик системы, начиная с загрузки BIOS до завершения работы системы. Если порядок загрузки будет изменен, например, руткитом, это отобразиться в регистрах PCR.
Политика создается для класса одинаковых аппаратных хостов. Перед ее созданием необходимо иметь установленный Hyper-V.
Для данной команды необходимо включить Secure Boot, IOMMU (VT-d), Virtualization Based Security.
Можно использовать флаг -SkipValidation который позволить выполниться команде, но он не исправит ошибки.
Добавляем TCGlog файл на HGS сервере
Проверяем статус HGS сервера
На этом моменте настройка HGS сервера заканчивается. Для проверки выполненной работы проведем диагностику.
Подключаем хост Hyper-V к HGS серверу
Для подключения защищаемого хоста к серверу HGS достаточно указать URL адрес сервера.
При правильной настройке должно быть:
- IsHostGuarded: true
- AttestationStatus: passed
Создание экранированной виртуальной машины
Получаем файл описания HGS сервера, который понадобиться для привязки ВМ к серверу.
Создавать ВМ нужно на отдельной машине под управлением Windows Server 2016, не настроенной на использование HGS.
Создаем новую ВМ второго поколения, устанавливаем на нее ОС, настраиваем RDP и проверяем его работоспособность, шифруем битлокером.
Экранирование ВМ
Задаем название ВМ
Создаем сертификат владельца
Импортируем сертификат сервера
Создаем Key Protector
Включаем экранирование
Включаем vTPM в виртуальной машине
После настройки и включения защиты в ВМ ее необходимо переместить на охраняемый хост. Для этого экспортируем машину, переносим полученные файлы на хост, и импортируем ее в консоль Hyper-V.
На этом этапе настройка завершена, ВМ экранирована.
Проверяем работу Shielded VM
Так же в настройках ВМ увидим предупреждение о невозможности менять настройки защиты:
Раздел виртуальной машины защищен BitLocker-ом:
Таким образом была произведена настройка Shielded VM, которая обеспечивает более высокий уровень защиты виртуальных машин. Если у вас остались вопросы, добро пожаловать в комментарии.
Привет, Хабр! Я Александр Воронцов, технический специалист Cloud4Y. В этой статье расскажу про vSphere Virtual Machine Encryption. Здесь не будет описания опыта внедрения. Это, скорее, обзор технологии и её неочевидных нюансов и особенностей, не описанных в документации. Я постараюсь дать ответы на вопросы, которые могут возникнуть у специалиста в процессе изучения.
Демонстрацию буду проводить на тестовом стенде vSphere 6.7 U3, Cloud Director 10.2
vSphere VM Encryption — механизм шифрования виртуальных машин, который впервые появился в VMware vSphere 6.5. Официальная документация по VM Encryption по ссылке. VM Encryption требует VMware vSphere 6.5 и новее и KMS (кластера KMS) с поддержкой протокола KMIP v1.1. VMware не предоставляет KMS, его требуется приобрести отдельно у другого вендора. В vSphere 7.0 U2 добавили Native Key Provider, который можно использовать вместо внешнего KMS для VM Encryption. В данной статье его не рассматриваю.
KMS — Key Management Server - Сервер управления ключами.
KMIP — Key Management Interoperability Protocol - протокол совместным управлением ключами. По этому протоколу происходит взаимодействие между vCenter и KMS сервером.
vTPM — Virtual Trusted Platform Module - виртуальный аналог TPM, криптографический модуль, предназначенный для хранения ключей. Может использоваться в паре с Windows Bitlocker.
Автоматизация
Все эти характеристики имеют определенный уровень автоматизации, например, шифрование политик vMotion. Вот все, что мы хотели рассказать о безопасности в vSphere 6.5. Руководство по безопасности vSphere выйдет в течение квартала после релиза версии 6.5.
Безопасность компьютерных систем за последние годы является одной из самых важных проблем в сфере IT. Различные комплексные системы компьютерной безопасности и средства производителей операционных систем и программного обеспечения позволяют в данный момент достаточно надежно защитить IT-инфраструктуру предприятия от атак извне. В этом плане, за последнее время средства защиты производственной среды компаний существенно продвинулись вперед. Однако, проблема инсайдерских (внутренних) атак является сейчас одной из самых актуальных. Предприятия вынуждены детально разрабатывать комплексные политики безопасности рабочих станций и серверов, использующихся различными категориями сотрудников, тратя на это значительное время и ресурсы.
Существенный прогресс технологий виртуализации позволил многим компаниям значительно сократить затраты на содержание IT-инфраструктуры в отношении как настольных, так и серверных платформ, за счет консолидации нескольких виртуальных машин на одной физической. Виртуальные системы способны тесно интегрироваться в производственную среду предприятия и повысить эффективность IT-составляющей компании, однако, так же, как и физические платформы (если не более), требуют высокого внимания в отношении безопасности. Компания VMware является одной из первых, кто задумался о проблеме безопасности виртуальной инфраструктуры и создании защищенных пользовательских окружений. Первым продуктом компании, решающим эти проблемы в отношении рабочих станций, был VMware ACE 1.0. В нем можно было создавать защищенные политиками безопасности виртуальные машины и использовать их как рабочие среды для сотрудников компании, а также для демонстрации программного обеспечения и обучения. Однако продукту явно не хватало многих возможностей, необходимых для корпоративного использования, таких, как централизованное развертывание и интеграция с другими платформами виртуализации VMware, и он не обрел большой популярности. Вышедшая во втором квартале 2007 года вторая версия VMware ACE приобрела столько новых возможностей, что можно с уверенностью сказать, что этот продукт будет использоваться многими компаниями как средство создания надежных виртуальных пользовательских окружений.О платформе VMware ACE 2.0
Компания VMware выпустила вторую версию продукта VMware ACE одновременно с выпуском своей платформы VMware Workstation 6 не случайно: VMware ACE является расширением Workstation с дополнительными функциями по созданию изолированных, защищенных пользовательских сред в соответствии с концепцией надежного компьютерного окружения (assured computing environment). ACE Option Pack может быть включен в VMware Workstation 6 путем введения лицензионного ключа на VMware ACE. Основные возможности продукта включают в себя:
Централизованное управление
- управлять правами доступа и политиками безопасности, централизованно применяемыми к рабочим станциям, с помощью механизма VRM (Virtual Rights Management)
- осуществлять безопасный доступ к виртуальным окружениям из любой точки
- контролировать подключение устройств к виртуальным машинам (USB-устройств, принтеров или CD/DVD-приводов)
- управлять политиками устаревания виртуальных машин, которые могут быть активированы на определенное время
Повышенная безопасность
- использование доступа к сети из виртуальной машины на основе правил безопасности
- шифрование файлов виртуальных дисков и файлов конфигурации по алгоритму AES с длиной ключа 128 бит
- гибкость в отношении ограничения пользовательских действий
Удобство развертывания и использования
- возможностям создания независимых от оборудования пакетов на съемных носителях с помощью Pocket ACE
- интеграции с платформой VMware Workstation, с включенным ACE Option Pack, на которой могут быть запущены эти пакеты
- удобству резервного копирования пользовательских окружений и их восстановления
- возможности создания снимков состояния виртуальных машин («снапшотов»), к которым может быть произведен быстрый откат, что очень полезно при различного рода демонстрациях программного обеспечения
- Использование надежно защищенных виртуальных десктопов, доступ к которым может осуществляться публично. Эти десктопы могут также переноситься разными пользователями между различными компьютерами без риска утечки конфиденциальной информации.
- Применение изолированных аппаратно независимых защищенных рабочих сред пользователей, где их действия централизованно ограничены (к примеру, возможность скопировать информацию на USB-flash-диск).
- Поддержка старых операционных систем, в которых проблематично соответствовать требованиям к безопасности
- Создание ограниченных по времени виртуальных приложений (Virtual Appliances), которые подходят для целей демонстрации программных продуктов, а также распространения программного обеспечения по модели SaaS (Software-as-a-Service).
VMware ACE позволяет развертывать и обслуживать пакеты, состоящие из виртуальной машины, политик доступа и безопасности, централизованно с сервера ACE Management Server. При этом можно динамически «накатывать» необходимые обновления на виртуальные десктопы и деактивировать их в любое время. В общем случае схема использования VMware ACE выглядит так:
- Создание виртуальной машины в VMware Workstation, установка необходимой гостевой операционной системы и приложений. Создание защищенных сред VMware ACE доступно пока только для хостовых систем Windows, однако в ближайшем времени ожидается версия ACE и под Linux.
- Определение свойств безопасности и доступа в VMware Workstation с активированным ACE Option Pack, включающих в себя:
- Разграничение сетевого доступа (порты и тип трафика)
- Ограничение устройств по типам или ID
- Защиту виртуальной машины от изменения
- Определение срока действия виртуальной машины
- Защита паролем
- Упаковка виртуальной машины в пакет и подготовка их для последующего развертывания. Этот шаг включает в себя также следующие действия:
- включение «проигрывателя» виртуальных машин VMware ACE Player в формате *.msi (для Windows) или *.tar (для Linux). VMware ACE Player поддерживает следующие хостовые платформы:
- Windows Vista
- Windows Server 2003
- Windows XP
- Windows 2000
- Windows Vista x64
- Windows Server 2003 x64
- Windows XP Professional x64
- Mandriva Linux
- Mandrake Linux
- Red Hat Enterprise Linux
- Red Hat Linux
- SUSE Linux Enterprise Server
- openSUSE
- SUSE Linux
- Ubuntu Linux
- Mandriva Linux x64
- Mandriva Corporate x64
- Red Hat Enterprise Linux x64
- SUSE Linux Enterprise Server x64
- openSUSE 10.2 x64
- SUSE Linux x64
- Ubuntu Linux x64
- автоматизация использования утилиты sysprep.exe (в гостевых ОС Windows) для подготовки ОС к развертыванию
- удаленное включение виртуальных машин в домен, а также включение возможности виртуальной частной сети (VPN, Virtual Private Network) для управления виртуальной машиной с помощью политик домена
- интеграция аутентификации в гостевой ОС со службами Active Directory
- включение «проигрывателя» виртуальных машин VMware ACE Player в формате *.msi (для Windows) или *.tar (для Linux). VMware ACE Player поддерживает следующие хостовые платформы:
- Развертывание виртуальных машин на любые поддерживаемые носители.
- Управление клиентскими системами VMware ACE с помощью ACE Management Server, для которого необходима следующая платформа:
- процессор 1200 МГц и выше
- 1 ГБ оперативной памяти
- рекомендуется 10 ГБ памяти на жестком диске (для хранения информации во внутренней базе данных SQLite или внешней Microsoft SQL Server или Oracle)
- хостовая ОС Windows 2000/XP/2003 или Red Hat Linux
Компания VMware предлагает воспользоваться продуктом VMware ACE, выбрав одно из трех изданий: Starter, Standard и Enterprise. Последние два издания лицензируются с помощью Volume License Key, что подразумевает единовременный ввод лицензионного ключа и автоматическое включение лицензий в создаваемые пакеты, что очень удобно при массовом развертывании пакетов. В таблице ниже представлены возможности каждого из изданий.
ACE 2 Starter Kit | ACE 2 Standard Kit | ACE 2 Enterprise Kit | |
Число клиентских лицензий | 10 | 50 | 200 |
Volume Licensing Key | нет | да | да |
Средство управления ACE Management Server | нет | да | да |
Шифрование конфигурационных файлов VM без шифрования дисков
Мы можем зашифровать конфигурационные файлы VM, не шифруя файлы виртуальных дисков VM. Для этого нам нужно включить шифрование VM, а затем переопределить Storage Policy для виртуальных дисков. В результате такой настройки в vSphere Client мы увидим:
VM configuration files are encrypted.
No hard disks are encrypted.
Мы можем использовать такой сценарий для подключения vTPM и используя Bitlocker в Windows VM. Про vTPM и Bitlocker расскажу дальше.
Из vSphere невозможно выгрузить VM (в ova или ovf), использующую VM Encryption.
Дополнительные возможности для Windows
Virtualization Based Security
Для Windows 10, Windows Server 2016 и новее мы можем использовать Virtualization Based Security. Включение VBS принудительно установит механизм загрузки в UEFI и включит Secure Boot. Если VM использовала BIOS, она, скорее всего, не загрузится после включения.
Про VBS можно прочитать в документации Microsoft или блоге VMware. VBS недостаточно включить в настройках виртуальной машины, его необходимо настроить в гостевой ОС. Процедура настройки описана здесь и в документации Microsoft.
Как делать резервные копии зашифрованных VM
Я провёл тестирования резервного копирования и восстановления с помощью Veeam Backup & Replication 10. Использовал один сервер бэкапа и две виртуальные машины Veeam Proxy в режиме Virtual Appliance. Тестировал бэкап из vDC VMware Cloud Director.
Для того, чтобы Virtual Appliance прокси мог делать бэкап зашифрованной VM, он сам должен являться зашифрованной VM. Подробнее в документации VEEAM.
Провёл 35 тестов. Во всех тестах использовал Windows Server 2019 EN c 1 диском на 40ГБ.
Рассматривал 6 вариаций конфигурации VM:
VM с UEFI и включенным Secure Boot;
VM с UEFI, включенным Secure Boot и включенным Virtualization Based Security ;
VM с UEFI, включенным Secure Boot, включенным Virtualization Based Security, установленным vTPM и настроенным BitLocker в гостевой ОС;
VM с BIOS, бэкап которой выполнялся на Storage Policy без шифрования, затем было включено шифрования и бэкап выполнялся уже зашифрованной VM (Кейс, где шифрование будет включено на VM, бэкап которой уже выполнялся до включения шифрования).
Для каждой VM протестировал 2 варианта бэкапа и 3 варианта восстановления.
vSphere 6.5 является поворотным пунктом в инфраструктуре безопасности компании VMware. То, что считалось второстепенным для многих еще несколько лет назад, сейчас является одной из отправных точек в развитии инноваций для vSphere. Безопасность стала наиболее важным параметром и она в центре внимания в этом релизе. Внимание в этом релизе сосредоточено на безопасности управления. Если саму безопасность нелегко реализовать, как нелегко и управлять ею, то пользу может принести смещение. Безопасность в виртуальной инфраструктуре должен быть масштабируема. Ключ к безопасности в масштабировании и автоматизации.
Создание Storage Policy с шифрованием
Следующим шагом будет создание Storage Policy, использующей шифрование.
VM Encryption позволяет хранить VM с шифрованием и без шифрования на одной СХД. У нас уже есть Storage Policy vcd-default-policy. Создадим аналогичную vcd-default-encrypted-policy и включим шифрование в параметрах Host based services.
Шифрование ВМ
Шифрование виртуальных машин — это то, что было в разработке долгие годы. Тем не менее, это решение так и не получило должного развития, потому что каждое решение имеет негативные эксплуатационные воздействия. С vSphere 6.5 этот вопрос решается.
Шифрование будет производиться на уровне гипервизора, «под» виртуальной машиной. Поскольку в качестве I/O выступает контроллер виртуального диска в ВМ, шифрование происходит мгновенно с помощью модуля в ядре еще перед отправлением к слою хранения ядра. Файлы ВМ (файл vmx, снапшот ) и зашифрованы.
Преимуществ множество.
- Поскольку шифрование происходит на уровне гипервизора, а не в ВМ, тип гостевой ОС и тип хранилища данных не важны. Шифрование виртуальной машины — агностик.
- Шифрование осуществляется через политики. Политики могут применяться к многим ВМ, независимо от их гостевой ОС.
- Шифрование не управляется «внутри» виртуальной машины. Это ключевой фактор дифференциации по отношению к любому другому решению на рынке! Вам не придется контролировать шифрование, выполняемое в виртуальной машине, а ключи не хранятся в ее памяти.
- Управление ключами осуществляется на основе отраслевого стандарта, KMIP с 1.1. В vSphere vcenter является клиентом KMIP, он работает с большим количеством менеджеров ключей KMIP 1.1. Это дает возможность выбора и достаточную гибкость для клиентов. Ключи ВМ не хранятся в vCenter.
- Шифрование виртуальной машины дает возможность использовать новейшие технические средства, присущих сегодняшним процессорам. Для шифрования используется алгоритм .
- Шифрование vMotion. Этот вопрос стоял уже давно, и с версией 6.5 на него наконец получен ответ. Уникальность шифрования технологии vMotion заключается в том, что сеть не шифруется. Нет сертификатов, которыми нужно управлять, и нет настроек сети, которые необходимо делать.
Шифрование происходит на уровне каждой отдельной виртуальной машины. Технология шифрования vMotion дает толчок всему остальному. Во время миграции ВМ используется сгенерированный сервером vCenter однократно и случайным образом ключ (для этого ключа не используется менеджер ключей).
Кроме того, также генерируется «код» (произвольное число, используемое только один раз в ). Ключ шифрования и код упакованы в спецификации миграции, отправляемой на оба хоста. В этот момент все данные виртуальных машин vMotion шифруются с ключом и кодом, гарантируя невозможность воспроизведения данных.
Шифрование vmotion может быть использовано для незашифрованных ВМ, а на зашифрованных ВМ применяется всегда.
Как настроить VM Encryption
Поскольку есть множество KMS серверов с поддержкой KMIP (у VMware даже есть документ, описывающий "сертифицированные KMS"), я не буду рассматривать конкретную реализацию KMS, выбор и настройку также обойду стороной. В моей тестовой среде уже есть кластер KMS из трёх нод, в котором каждая нода реплицирует данные с другими нодами.
Если у вас нет KMS, можете взять любой из списка "сертифицированных". Бесплатных решений в этом списке нет, если требуется что-то такое, смотрите в сторону PyKMIP. Кластер на PyKMIP построить нельзя, но с vCenter он работает. Проверял.
Для кластера KMS не требуется Load Balancer. Все ноды кластера равнозначны, содержат одинаковую базу данных и vCenter может запросить ключ у любой ноды KMS, а KMS, который выдал ключ, реплицирует этот ключ на другие ноды.
Bitlocker
С vTPM мы можем использовать Windows Bitlocker без ввода пароля при загрузке Windows.
Windows будет загружаться автоматически и разблокировать диски с помощью ключей в vTPM. Если такую VM вынести за пределы площадки облачного провайдера, (или, если vTPM будет изменён, а такое происходит даже при восстановлении бэкапа VM, кроме восстановления поверх) то Bitlocker будет требовать ввести ключ восстановления Bitlocker. Перенести ключи из vTPM невозможно (такой кейс не описан в документации и простых способов извлечения ключей из vTPM я не вижу).
После ввода ключа восстановление Bitlocker диск останется зашифрован и начнёт использовать новый vTPM, т.е., в случае изменения vTPM, ключ восстановления Bitlocker нужно будет ввести только 1 раз.
Кейс использования vTPM + Bitlocker может быть компромиссом между удобством (VM включается автоматически без ввода пароля Bitlocker) и безопасностью данных (данные зашифрованы средствами гостевой ОС).
Как управлять шифрованием VM из VMware Cloud Director. Взгляд со стороны клиента облачного провайдера
Через панель управления VMware Cloud Director 10.1 и новее есть возможность выбрать Storage Policy, использующую шифрование.
Можно изменять как VM default policy, и в этом случае, изменится политика всех дисков VM, у которых Storage policy не задана явно (задана как VM default policy), а также изменится политика хранения конфигурационных файлов VM.
Также можно задавать Storage Policy индивидуально для каждого диска.
Необходимо придерживаться правила, чтоб все диски VM были или зашифрованы, или были без шифрования. При попытке использования дисков с шифрованием и без шифрования на одной виртуальной машине VMware Cloud Director не позволит это сделать.
При зашифрованных конфигурационных файлах виртуальной машины мы увидим напротив VM Storage Policy надпись (Encrypted). При зашифрованных дисках надпись (Encrypted) будет отображаться напротив каждого виртуального диска.
vTPM без шифрования диска средствами VM Encryption
Чтобы подключить vTPM, конфигурационные файлы VM нужно зашифровать (также, должен быть включен Secure Boot и использовать Windows в качестве гостевой ОС). Если использовать Bitlocker, то шифрование дисков VM средствами VM Encryption приведёт к двойному шифрованию и может негативно сказаться на производительности. Чтобы зашифровать конфигурационные файлы и не шифровать диски VM,необходимо назначить VM Storage Policy c шифрованием, а для дисков использовать Storage Policy без шифрования.
Подключить vTPM из интерфейса VMware Cloud Director нельзя, но это возможно сделать через vSphere Client силами инженеров облачного провайдера.
Через VMware Cloud Director невозможно выгрузить VM , использующую VM Encryption.
Недокументированная фича
vTPM для *nix систем
Существует недокументированный способ подключить vTPM для *nix, или для Windows, использующей BIOS. Этим способом можно подключить vTPM к любой виртуальной машине.
Для этого нужно подключить vTPM, используя PowerCLI. Установим PowerCLI и выполним скрипт через PowerShell.
Выполните через PowerShell Install-Module -Name VMware.PowerCLI
После выполнения скрипта мы увидим, что конфигурационные файлы VM зашифрованы, но диск использует Storage Policy без шифрования.
vTPM на Linux VM
Также отобразится подключенный vTPM.
vTPM на Linux VM
Проверим работу vTPM в Ubuntu 1804.
На Ubuntu установим пакеты:
apt install clevis clevis-tpm2
Проверим наличие TPM
test -c /dev/tpm0 && echo OK || echo FAIL
Проверим работу TPM
echo 'Test vTPM' | clevis encrypt tpm2 '<>' > test.jwe
cat test.jwe | clevis decrypt tpm2
vTPM работает. Теперь мы можем настроить шифрование диска, используя ключи из vTPM, например, по этой статье.
Это недокументированная фича. Используйте на свой страх и риск.
Установка и настройка виртуальных окружений в VMware ACE
После того как вы установите VMware Workstation 6 в хостовой системе, вам необходимо ввести лицензионный ключ для того, чтобы превратить продукт в VMware ACE. После перезапуска вы увидите новое окно VMware ACE, в котором вы можете по-прежнему создавать обычные виртуальные машины. Для того чтобы создать новую виртуальную защищенную среду ACE, в меню «File» выберите «New->ACE Master». Далее вы увидите следующее окно:
Затем вам будет необходимо указать такие же настройки, как и в VMware Workstation, за исключением того, что нельзя будет выбрать возможность использования физического диска виртуальной машиной напрямую. Нужно также отметить, что для создаваемых виртуальных окружений по умолчанию выбран тип сетевого взаимодействия NAT (Network Address Translation) как наиболее безопасный, что позволяет защищенным виртуальным машинам инициировать соединения во внешнюю по отношению к хостовой системе сеть, без возможности подключения к ним из внешней сети. После того как виртуальная машина будет создана, вам необходимо установить гостевую ОС и VMware Tools в ней. Затем вы можете приступать к заданию политик для созданного окружения. Для этого в главном окне программы выберите «Edit policies».
Далее вы увидите следующее окно:
В этом окне вы можете управлять различными параметрами политик доступа и безопасности виртуальной среды в следующих аспектах:
- Access Control
Позволяет установить защиту на активацию виртуальной машины в панели «Activation». Если пароль установлен, то пользователи могут получить доступ к пакету с виртуальной машиной, только введя пароль. На панели «Authentication» можно определить пользователей, которые могут включать виртуальную машину, создать ключ восстановления пароля, а также задать собственный скрипт аутентификации, который будет разделять права доступа для Linux и Windows хостовых платформ в VMware ACE Player.
- Host-Guest Data Script
В этой категории можно задать скрипт, который будет исполняться в хостовой и гостевой системах при старте виртуальной машины. Его использование удобно, когда требуется, например, использование общих ресурсов между хостовой и гостевой системами.
- Copy protection
На этой вкладке можно включить защиту от копирования виртуального окружения. Она работает следующим образом: на основании пути к папке, где будет располагаться виртуальная машина, и ID BIOS хостовой системы генерируется CPID (Copy Protection Identifier). В случае использования Pocket ACE для переносных носителей вместо BIOS ID используется ID файловой системы. Если установлена защита от копирования, виртуальная машина запустится только на определенной хостовой платформе и не сможет быть скопирована. CPID хранится на сервере ACE Management Server и может меняться системным администратором.
- Resource Signing
Здесь определяется, может ли быть запущено виртуальное окружение при нарушении целостности файлов в папке ACE Resources. В этой папке могут лежать различные скрипты, лицензии для пользователей и вспомогательные файлы, целостность которых критична для правильного использования виртуальной машины. В случае распространения программного обеспечения с помощью VMware ACE, эта политика оказывается весьма полезной.
- Network Access
Политики разделения сетевого доступа определяют, как виртуальная машина будет использовать сетевые ресурсы хоста. Можно настроить сетевой экран, определить подсети, в которых будет действовать виртуальная машина и многое другое. С сервера ACE Management Server можно в любой момент отключить или ограничить использование сети виртуальным окружением в случае, например, вирусной угрозы.
- Removable Devices и USB Devices
В этих категориях можно ограничить использование физических устройств виртуальной машиной, включая USB-устройства. Эти возможности необходимы для предотвращения кражи конфиденциальной информации из пользовательских сред.
- Virtual Printer
Включение этой опции позволяет приложениям в гостевой системе печатать документы на принтере хостовой системы без необходимости установки каких-либо драйверов. Виртуальный принтер подключается к эмулируемому последовательному порту, который можно увидеть на вкладке «Hardware» в меню «Settings» виртуальной машины.
- Runtime Preferences
Здесь можно определить настройки виртуальной машины, такие как запуск только в полноэкранном режиме, возможность изменения выделенной оперативной памяти пользователем и поведение виртуальной машины при ее выключении (например, переход в состояние Suspend – аналог Hibernate).
- Snapshots
В этой категории можно настроить создание автоматических снимков состояния системы, к которым пользователь может откатиться в случае ее повреждения.
- Administrator mode
Эта политика позволяет задать пароль для административного доступа к настройкам виртуальной машины, которые могут быть изменены на клиентских компьютерах с помощью как GUI-интерфейса, так и утилиты vmware-acetool.
- утери пароля
- устаревания виртуальной машины
- использования защищенной от копирования виртуальной машины
После того как политики будут установлены, необходимо произвести настройку пакета, который будет создан из различных компонентов защищенного виртуального окружения. Для редактирования настроек пакета нажмите «Edit package setting» в главном окне VMware ACE.
- Encryption
На этой вкладке можно настроить шифрование развертываемого пакета (Package protection) — полностью или только файла конфигурации, а также шифрование виртуальной машины, полученной после инсталляции пакета. - Package Lifetime
Эти настройки позволяют управлять временем, в которое возможна инсталляция пакета: всегда, в течение определенного количества дней с момента инсталляции и в заданный диапазон дат. Эти возможности удобны для распространения пакетов для демонстрации программного обеспечения - Instance Customization
В этой категории можно настроить различные параметры для автоматизированного развертывания виртуальных окружений в инфраструктуре Microsoft. Для того чтобы эти параметры оказались доступны, необходимо ввести лицензионный ключ для развертываемой гостевой системы. После его введения становятся доступны следующие возможности:- System Options
Эти настройки позволяют ввести имя, организацию и имя компьютера пользователя виртуальной среды, а также сгенерировать идентификатор безопасности (SID, Security ID) для каждой устанавливаемой копии гостевой системы и разрешить синхронизацию времени между хостовой и гостевой системой. - Initialization Scripts
Позволяет системным администраторам указать сценарии, которые будут выполнены в гостевой системе по окончании настройки виртуальной машины. - Workgroup or Domain
В этой категории можно указать учетную запись домена или присоединить компьютер к рабочей группе. При этом в пакет можно включить конфигурационный скрипт, который присоединит компьютер к домену, используя удаленный сервер с помощью установки VPN-соединения.
- Full (пакет со всеми компонентами)
- Policy Update (пакет только для обновления политик безопасности)
- Custom (позволяет выбрать компоненты вручную)
Выберите Custom и отметьте необходимые вам компоненты пакета.
- Саму виртуальную машину
- Политики ACE, которые мы настроили в окне «Policies»
- Ресурсы виртуальной машины, находящиеся в папке ACE Resources в каталоге с виртуальной машиной
- Проигрыватели виртуальных машин для Windows и Linux платформ
- Инсталляционные файлы в формате *.msi или *.tar для установки виртуальной среды на хостовой платформе
На панели «Disk Space» показан также окончательный объем пакета и объем свободного места, необходимого для развертывания виртуальной среды.
После того как пакет будет создан, его можно развертывать на рабочих станциях или серверах для получения виртуальной инфраструктуры десктопов (VDI, Virtual Desktop Infrastructure). В случае их небольшого количества можно вполне обойтись без централизованного управления ими, однако, при создании большого числа защищенных пользовательских сред, перемещаемых пользователями между различными компьютерами, необходим постоянный контроль и централизованное обновление политик безопасности.VMware ACE Management Server
- управление активациями пакетов VMware ACE
- управление правами доступа к виртуальным окружениям
- динамическое развертывание обновлений к виртуальным средам
- управление настройками гостевых систем на Windows-платформе
Для того чтобы подключить виртуальные пользовательские среды к ACE Management Server, необходимо при создании виртуальной машины указать адрес сервера, который будет управлять ей. При работе в производственной среде предприятия, Management Server собирает информацию о клиентских виртуальных средах и хранит ее в базе SQLite 3. При большом числе клиентских машин, возможно, потребуется довольно большая база данных, которую могут поддерживать Oracle или Microsoft SQL Server. Издания Standard и Enterprise продукта VMware ACE предполагают управление до 50 и 200 клиентами соответственно. Дополнительные лицензии могут быть приобретены в любой момент, что удобно при росте потребностей в использовании защищенных окружений.Резюме
Продукт VMware ACE является уникальным средством среди решений в сфере виртуализации с точки зрения создания защищенных пользовательских окружений в безопасной среде (assured computing environment). Широкие возможности по централизованному развертыванию пакетов виртуальных машин, включающих в себя политики безопасности и разделения доступа, а также контроль времени использования, заставляют производителей программного обеспечения всерьез задуматься о новом способе его доставки конечным пользователям. VMware ACE весьма удобен также при различного рода демонстрациях программных продуктов. И, конечно же, VMware ACE идеально подходит для развертывания в производственной среде предприятия виртуальной инфраструктуры десктопов, предполагающей наличие средств по защите информации от несанкционированного доступа. Возможности VMware ACE позволяют пользователям не заботиться о безопасности своих переносных виртуальных сред, которые могут быть украдены, например с ноутбуком. Безусловно, у платформы VMware ACE есть будущее в секторе среднего и крупного бизнеса, где одну из ключевых ролей играет защита информации.
Virtual Trusted Platform Module
Для Windows 10 и Windows Server 2016 и новее, включив шифрование конфигурационных файлов VM и используя для загрузки UEFI (Secure boot можно не включать), в настройках VM становится доступна установка vTPM.
Данные vTPM хранятся в файле *.nvram в зашифрованном виде.
В гостевой ОС vTPM определяется как обычный физический TPM 2.0.
vTPM в Windows определяется как обычный TPM 2.0
Secure Boot виртуальной машины
В отношении ВМ организация SecureBoot очень проста. Виртуальная машина должна быть сконфигурирована таким образом, чтобы использовать встроенное EFI, а затем Secure Boot включается с помощью проставления галочки в чекбокс. Обратите внимание, что если безопасная загрузка включена, вы сможете загрузить только сертифицированные драйверы на виртуальную машину.
Secure Boot для виртуальных машин работает с Windows и Linux.
Расширенные логи
Логи vSphere традиционно были ориентированы на устранение неполадок, а не на безопасность. Ситуация меняется в vSphere 6.5 с введением расширенных логов. Прошли те времена, когда вы вносили существенные изменения в виртуальную машину, а в логе получали только запись о том, что ВМ была изменена.
В новом релизе логии усовершенствованы и сделаны более действенными с помощью отправки данных по мероприятию, таких как «ВМ была перенастроена», через поток данных syslog. Событий теперь содержат то, что на самом деле называется данными. Вместо извещения о том, что изменилось, теперь вы получаете информацию о том, что изменилась, что это изменило и как это изменилось. Это данные, на основе которых можно принимать меры, а не просто сухое уведомление.
В 6.5 вы получаете описательный отчет о действии. Например, если добавлено 4 Гб памяти для виртуальной машины, у которой на данный момент 6ГБ, лог расскажет, как это выглядело раньше и как выглядит сейчас. В контексте безопасности, при перемещении виртуальной машины с vSwitch с меткой «PCI» на vSwitch с меткой , вы получите понятный лог, описывающие эти изменения. Рисунок с примером ниже.
Решения вроде VMware Log Insight теперь будут давать куда больше информации, но что более важно, более детализированный отчет значит, что вы можете создать более прескриптивные предупреждения и исправления. Более детальная информация помогает принимать более взвешенные критически важные решения в отношении центров обработки данных.
ESXi Secure Boot
С включенной функцией Secure Boot встроенное UEFI проверяет цифровую подпись ядра ESXi по цифровому сертификату в прошивке UEFI. Это гарантирует, что загружаться будет только «правильное» ядро. Для ESXi Secure Boot идет еще дальше, добавляя криптографическое обеспечение всех компонентов ESXi.
Сегодня в ESXi уже существует цифровая подпись пакетов — VIB (vSphere Installation Bundle). Файловая система ESXi отсылает к содержимому этих пакетов (взломать пакеты невозможно). Благодаря использованию цифровых сертификатов во встроенном UEFI, во время загрузки уже проверенное ESXi Kernel будет, в свою очередь, проверять каждый VIB на предмет встроенного сертификата. Это обеспечивает криптографически чистую загрузку.
Примечание: если включена Secure Boot, то Вы не сможете принудительно установить неподписанный код на ESXi. Это гарантирует, что при включенной Secure Boot ESXi будет работать только с подписанным цифровым кодом VMware.
Установка доверительных отношений между vCenter и KMS
Давайте подключим наши vCenter к кластеру KMS. Процедуру подключения необходимо повторить на каждом vCenter.
Создаём новый кластер, указываем адрес нашей первой ноды и порт 5696 (стандартный порт KMIP). В моем случае логин и пароль указывать не требуется, но это может зависеть от реализации KMS.
Говорим vCenter доверять KMS.
На следующем шаге нам нужно, чтобы KMS доверял vCenter. Нажимаем MAKE KMS TRUST VCENTER.
На выбор есть несколько вариантов установки доверия KMS к vCenter. В случае с нашим кластером используется способ загрузки в vCenter ключевой пары KMS.
Указываем пару публичного и приватного ключей, сгенерированных KMS сервером. Эта пара ключей генерируется специально для настройки доверительных отношений между KMS и KMIP клиентом.
После установки доверия KMS к vCenter, кластер KMS будет доверять этому vCenter. Добавляем в vCenter остальные ноды KMS (загрузка пары ключей этих нод не потребуется) и на этом настройка KMS завершена.
Поддержка Secure Boot
В релизе vSphere 6.5 представлена поддержка Secure Boot для виртуальных машин и для гипервизора ESXi.
Как это работает
У VMware есть видео, которое демонстрирует работы механизма vSphere Virtual Machine Encryption.
В механизме VM Encryption используется два ключа симметричного шифрования:
1. Data Encryption Key (дал. DEK). Этот ключ генерирует ESXi хост. Таким ключом зашифрованы файлы конфигурации и файлы виртуальных дисков виртуальной машины. Для файлов конфигурации VM DEK хранится в *.vmx в зашифрованном виде, для файлов виртуальных дисков - в *.vmdk файле в зашифрованном виде.
Давайте рассмотрим процессы, который происходят при работе VM Encryption.
Этапы инициализации шифрования:
vCenter запрашивает KEK у KMS. KMS генерирует KEK, сохраняет его в своей базе данных, и передает его vCenter. vCenter передаёт KEK всем ESXi в vSphere High Avalibility кластере. ESXi хранят KEK в оперативной памяти и никогда не записывают его на диск.
ESXi, получив KEK, генерирует DEK, зашифровывает DEK с помощью KEK и записывает зашифрованный DEK в конфигурационный файл VM.
ESXi выполняет процесс шифрования файлов VM с помощью DEK.
Этапы включения зашифрованной VM:
ESXi получает команду на запуск зашифрованной VM, проверяет в своей ОЗУ наличие KEK для расшифровки VM. Если KEK нет в ОЗУ ESXi, KEK запрашивается у vCenter, а vCenter запрашивает KEK у KMS.
KMS передаёт KEK vCenter, а vCenter передаёт KEK ESXi хосту.
ESXi хост запускает VM.
Этапы миграции vMotion зашифрованной VM:
При миграции vMotion KMS сервер не используется. Encrypted vMotion можно использовать и без VM Encryption.
ESXi получает команду на миграцию VM на другой ESXi хост. Если миграция выполняется в другой ESXi кластер, то на этом шаге vCenter запросит KEK у KMS и передаст его на ESXi назначения.
ESXi источника запрашивает "одноразовый ключ" у vCenter. vCenter генерирует ключ и передаёт его хостам источника и назначения миграции.
ESXi источника зашифровывает "одноразовым ключом" ОЗУ виртуальной машины и расшифрованный DEK и передаёт их на хост назначения с помощью vMotion
ESXi назначения расшифровывает "одноразовым ключом" полученные данные и VM продолжает работу на ESXi назначения.
Как управлять шифрованием из vSphere Client
Когда KMS и Storage Policy настроены, можно применить Storage Policy с шифрованием к VM. Включаем шифрование в настройках VM, выбирая vcd-default-encrypted-policy. На примере Linux машины это выглядит так.
Применяем настройки, и в Tasks виртуальной машины видим прогресс выполнения первичного шифрования.
Какие задачи решает VM Encryption
VM Encryption позволяет хранить файлы виртуальной машины (файл конфигурации, файлы виртуальных дисков, снапшоты и т. п.) в зашифрованном виде на СХД, не прибегая к средствам шифрования самой СХД.
VM Encryption позволяет облачному провайдеру дополнительно защитить свою инфраструктуру (напр. зашифровать служебные VM), а также предоставлять своим клиентам опциональную возможность шифрования клиентских VM с управлением шифрованием через VMware Cloud Director.
VM Encryption позволяет клиенту облачного провайдера зашифровать свои VM в облаке, а также использовать vTPM (Virtual Trusted Platfom Module) в связке, например c Windows BitLocker.
Читайте также:
- System Options