Технология Shielded VM в Windows Server 2016
Безопасен ли хостинг?
В случае виртуальных машин (ВМ) мы берем операционную систему, приложения и инкапсулируем их в несколько файлов ВМ, получая возможность запустить несколько виртуальных машин (иногда десятки) на одной системе одновременно. Виртуальные машины упрощают процессы миграции, резервного копирования, репликации, но это также означает, что проще стало изменить или даже скопировать всю ВМ, весь ваш виртуальный сервер по сети или на USB-флэшку и унести с собой.
Это касается не только коммерческих, но даже корпоративных дата-центров. Как пример — контроллер домена, развернутый в вашем ЦОД. Представьте себе, если контроллер домена покинет пределы вашей организации. Это буквально «ключи от квартиры, где деньги лежат». Поскольку все хранится централизованно, можно вынести десятки ВМ и запустить их где-то в другом месте. А в случае хостинга у стороннего провайдера проблема становится еще более острой.
Поэтому излишне говорить об актуальности проблемы защиты данных внутри виртуальных машин — размещенных как в публичных облаках, так и в частном внутреннем облаке. Причем она характерна для любой платформы виртуализации, будь то VMware, Hyper-V, Xen, KVM и пр. Как и от кого нужно защищать данные? Должны ли иметь к ним доступ админы с различными ролями — администраторы виртуализации, администраторы домена, администраторы сети, администраторы дисковых хранилищ?
Шифрование и TPM — не панацея
Некоторые скажут: если в качестве операционной системы хоста используется Windows Server, то проблема решается шифрованием. Достаточно добавить к ВМ виртуальный Trusted Platform Module (TPM), и можно будет шифровать ее содержимое с помощью BitLocker. Идея хорошая, но не работает. Нужна более сильная защита от козней админов. Ведь администратор теоретически может делать с системой все, что угодно, то есть он в состоянии снять любую защиту ВМ, если не принять особых мер. Например, в случае виртуального TPM (vTPM) он может найти ключ шифрования в памяти и расшифровать ВМ.
Нужна настоящая защита ВМ, которая позволит запускать ее только в конкретной инфраструктурной среде и полностью обезопасит от действий администратора, устраняя тем самым слабое звено в системе ИБ, ведь админа потенциально можно путем обмана, подкупа или шантажа заставить сделать все, что угодно. Причем такой способ гораздо дешевле и доступнее, чем хакерские кибератаки.
Для этого и служит технология Shielded VM в Windows Server 2016 (в терминологии Microsoft — экранированные виртуальные машины), ограничивающая доступ к ВМ админов и защищающая виртуальные машины от вредоносного кода. Технология экранирования виртуальных машин Shielded VM — еще одна причина обратить внимание на Windows Server 2016. Кому же она нужна в первую очередь?
Кому |
Зачем |
Хостерам | Могут гарантировать защиту данных клиентов от любых действий администраторов ЦОД. |
Заказчикам |
Могут перенести нагрузку в облако или коммерческий ЦОД и при этом не опасаться за сохранность, конфиденциальность и целостность своих информационных активов, соответствовать требованиям регуляторов. |
Предприятиям |
Получают возможность четко отделить администраторов Hyper-V от выполнения ответственных нагрузок. |
Как это реализовано?
Как же устроена защита Shielded VM? Во-первых, технологии обеспечения информационной безопасности с аппаратными функциями защиты изолируют ВМ от администраторов хоста. Во-вторых, служба Host Guardian Service может идентифицировать законные хосты Hyper-V и защищать ключи шифрования конкретных Shielded VM. В-третьих, это делается помощью поддержки virtual Trusted Platform Module (vTPM) второго поколения для ВМ. Широко используется шифрование и аутентификация. Итак, по порядку.
Shielded VM — принципиально новая технология Windows Server 2016. Однако и старое доброе шифрование в ней также используется. Хоть это и не панацея, без него никак не обойтись. Оно позволяет владельцу виртуальной машины включить шифрование томов внутри гостевой ОС, например, с помощью того же BitLocker. Тем самым содержимое ВМ становится недоступным как для вредоносного кода, если тот окажется на узле Hyper-V, где расположена ВМ, так и для администратора этого узла.
Технология Shielded VM защищает виртуальные машины от компрометации и от админов любого уровня путем шифрования диска и состояния ВМ, после чего доступ к ней будет иметь только владелец. И, самое интересное, что ключи шифрования никогда не хранятся на узлах Hyper-V с экранированными ВМ, что позволяет существенно повысить безопасность решения в целом.
Еще одно новое средство Windows Server — Host Guardian Service (HGS) — проверяет, может ли Shielded VM быть запущена на данном хосте, законный, доверенный ли это хост-сервер. Для этого используются средства аттестации хоста и метрики аппаратной загрузки, а также функции проверки кода (Code Integrity). Все это позволяет проверить отвечает ли хост требуемым критериям, и можно ли запускать на нем ВМ.
Host Guardian Service обеспечивает аттестацию — проверку хоста Hyper-V и защиту ключа, необходимого для запуска защищенной виртуальной машины Shielded VM. HGS запускается как роль Windows Server 2016 и включает две отдельных службы — аттестации и защиты ключей.
Таким образом, упрощенно процесс экранирования ВМ по шагам выглядит так:
- Шифрование состояния ВМ и ее данных, устранение избыточного административного доступа к виртуальной машине. Копирование такой ВМ просто теряет смысл.
- Ключи шифрования хранятся на внешней системе. Просто виртуальный или аппаратный TPM для этого не подходит по двум причинам: ВМ «склонны к переездам» с сервера на сервер, да и администратор сервера имеет доступ к TPM. В Server 2016 для такого внешнего хранения как раз и используется служба Host Guardian Service.
- ВМ при запуске получает ключ с доверенного хоста посредством HGS. Подобным образом можно защищать гостевые ОС Windows Server 2016, 2012 и 2008 R2. В планах — Linux.
Служба защиты узла Host Guardian Service — новая роль в Windows Server 2016, которая позволяет защитить виртуальные машины и данные в них от несанкционированного доступа даже со стороны администраторов Hyper-V. Поскольку ключи шифрования никогда не хранятся на узлах Hyper-V с экранированными ВМ, это позволяет существенно повысить безопасность решения в целом.
Работает HGS следующим образом:
- Хост Hyper-V запрашивает ключ у HGS.
- HGS отвечает, что не имеет данных о законности хоста Hyper-V.
- Тогда хост Hyper-V отправляет HGS свои идентификационные данные.
- HGS передает хосту Hyper-V сертификат соответствия.
- Хост Hyper-V снова отправляет запрос и передает HGS сертификат.
- В ответ HGS передает ключ шифрования в зону безопасности среды виртуализации хоста Hyper-V.
Тем самым содержимое ВМ остается недоступным как для вредоносного кода на узле Hyper-V, где расположена ВМ, так и для администратора этого узла. От каких типов атак защищает технология Shielded VM? Они перечислены ниже.
Вектор атаки |
Защита Shielded VM |
Кража VHD системным администратором |
Shielded VM предусматривает шифрование VHD, ключ хранится вне хоста. |
Использование режима отладки в Hyper-V |
Хост HGS не выдает ключи хостам с отладчиками. Служба HGS позволяет это контролировать. |
Заражение хоста Hyper-V вредоносным кодом. |
Все ПО на хосте (в режиме kernel mode, user mode и драйверы) отслеживается, контролируется целостность кода (CI). |
Заражение шаблона диска ВМ. |
Shielded VM развертываются только из проверенных шаблонов. |
Попытка миграции Shielded VM на недоверенный хост. |
Доверенные хосты добавляются в HGS с уникальными идентификаторами своих TPM. Новый, не добавленный хост распознаваться не будет. |
Отметим, что от DDoS-атак Shielded VM не защищает — нужен отдельный сервис.
Для загрузки Shielded VM используется Unified Extensible Firmware Interface (UEFI), а не традиционный BIOS, обеспечивается защита Secure Boot, включается шифрование диска ВМ с помощью BitLocker. Данные ВМ защищены BitLocker в том числе и при миграции Live Migration.
Shielded VM ограничивает доступ к виртуальной машине администраторов разного уровня. Такой достум имеет только сам администратор ВМ.
Таким образом, Host Guardian Service, — новая роль в Windows Server 2016 — позволяет защитить ВМ от несанкционированного доступа администраторов хоста Hyper-V. Админ, не имеющий полных прав на Shielded VM, сможет только запускать или останавливать такую виртуальную машину, но не менять ее настройки или видеть содержимое.
Для Shielded VM требуется гостевая ОС Windows Server 2012 или Windows 8 или выше. Защищенные (экранированные) виртуальные машины Shielded VM можно создавать и на портале Azure Management Pack Portal. Стандартные виртуальные машины также могут быть преобразованы в защищенные. При этом, как уже отмечалось, виртуальные диски шифруются с помощью BitLocker.
Доверяй, но проверяй
Как можно аттестовать хост, то есть убедиться, что ВМ запускается на доверенной системе и на члене домена? Для этого есть два способа: облегченный (Admin-Trusted) и усиленный (TPM-based).
Первый в основном предназначен для ЦОД предприятий или для особо доверенных хостинг-провайдеров и основан на Active Directory: для авторизации хоста на запуск ВМ его включают в группу AD. Аппаратная проверка отсутствует — годятся любые серверы (без криптопроцессора). Это программный способ проверки доверенных узлов.
Второй, предназначенный для основной массы хостеров, более сложен и требует оборудования с поддержкой криптопроцессора TPM 2.0 и UEFI 2.3.1. Такое оборудование пока что встречается редко. Так что выбор конкретного метода защиты зависит еще и от возможностей аппаратных средств. Аппаратный процесс аттестации выглядит так:
- Запускается Shielded VM.
- Клиент инициирует протокол аттестации.
- Хост отправляет метрики и результаты контроля целостности кода.
- Валидируются метрики хоста.
- Хосту выдается подписанный сертификат аттестации. Тем самым разрешается запуск ВМ.
При наличии TMP применяется аппаратная проверка — в зависимости от настроек проверяются бинарники, гипервизоры и пр. Что делать, если нет соответствующих аппаратных средств — TPM 2.0 и UEFI? Можно использовать программные. Аттестация хоста выполняется через Kerberos и контроллер домена. Данные ВМ также шифруются и защищены от админов, но нет защиты ВМ на системном уровне, например, от вирусов или кейлоггеров. Тем не менее, данный уровень безопасности в большинстве случаев считается адекватным. Он требует только конфигурирования группы AD.
AD при программном методе (Admin-Trusted) используется для хранения информации — вместо TMP. При аппаратном методе выполняется больше проверок, например, проверяется «состояние здоровья» ВМ и узла, однако программный метод дает возможность использовать существующую ИТ-инфраструктуру, поэтому в ближайшее время он будет основным. Для защиты от сбоев рекомендуется развертывать три сервера HGS. Для поиска узла HGS можно использовать DNS. Отметим, что обновлять HGS нужно вместе с хостом виртуализации.
Теоретически эти серверы HGS могут быть и виртуальными (работать как Shielded VM), но такая конфигурация ненадежна и не запустится после сбоя — рекомендуется как минимум один физический сервер HGS или хотя бы обычный виртуальный (не Shielded VM).
Управляется HGS из PowerShell или с консоли, поддерживается режим высокой доступности (HA), масштабирование. Особое внимание следует уделять безопасности HGS — рекомендуется физическая защита сервера. Microsoft рекомендует также разрешить для HGS функции BitLocker и SecureBoot, включить межсетевой экран и присвоить каждому узлу HGS как минимум один статический IP. Чтобы разрешить SSL для вызовов REST API, потребуется действующий сертификат SSL. В нем указывается имя HGS Service FQDN.
Тотальная защита
Все это вписывается в концепцию Microsoft Virtualization Based Security (VBS), предполагающую защиту гипервизоров, сетей и пр. Для обеспечения безопасности и изоляции VBS использует расширения платформы виртуализации. В Hyper-V VBS применяется для защиты ОС хоста и гостевых ВМ, серверов и клиентов.
Virtualization-based Security (VBS) использует аппаратную технологию защиты для создания зоны безопасности, изолированной от ядра и приложений. Тем самым обеспечивается защита от внешних атак.
К аппаратной платформе VBS предъявляет следующие требования: наличие UEFI 2.3.1c для безопасной и контролируемой загрузки, TPM v2.0 для защиты ресурсов, расширения виртуализации (Intel VT-X, AMD-V), трансляция адресов (Intel EPT, AMD RVI), защита памяти гипервизором.
Важная задача — обеспечение проверки целостности кода (Hypervisor Enforced Code Integrity). В настоящее время проверки CI осуществляются из ядра, и, если ядро скомпрометировано, код будет выполнен. В VBS это делается безопасно. Гипервизор проверяет права доступа к каждой странице памяти, права выполнения размещенного там кода и целостность данных. Тем самым существенно ограничиваются потенциальные атаки через операции с памятью и реализуется защита от некорректных драйверов.
Code Integrity с помощью Virtualization-Based Security гарантирует запуск в системе с момента ее старта только разрешенного двоичного кода.
VBS включает в себя множество архитектурных изменений и отдельных средств. Например, Virtual Security Mode (VSM) серьезно ограничивает действия хоста и ВМ. В рамках VMS реализована безопасная среда выполнения ОС и гостевых ВМ, проверяется их целостность, а также усилена безопасность применяемого в Shielded VM процесса VM Worker Process для защиты информации о состоянии ВМ. Virtual TMP (vTPM) для гостевых машин поддерживает сервисы TPM, например, шифрование диска.
Необходимо не только ограничить права доступа админа хоста к гостевым ВМ. Администратор не должен вмешиваться в работу операционной системы хоста — гипервизор также нужно защитить от его действий. Эти механизмы — ключевые в реализации VSM, предполагающей защиту платформ, виртуальных машин и виртуального оборудования.
По сути, VMS — набор методов контроля оперативной памяти (ее защиты, распределения, прав доступа), разграничения между операционными системами, операций с «секретами» платформы без их раскрытия. VMS позволяет выстраивать новые уровни безопасности — Virtual Trust Levels (VTL). В Windows Server 2016 наряду со встроенными уровнями безопасности можно создавать новые VTL с более жесткими требованиями. VTL обеспечивает изоляцию памяти, защищает доступ к физической памяти. На уровне VTL0 работают незащищенные ВМ, на уровне VTL1 — экранированные ВМ. Можно создавать дополнительные уровни VTL — они иерархические. Админ не может изменить VTL из ОС хоста.
Что такое ВМ, работающая в режиме VSM? Это уменьшенное ядро (proxy kernel, SMART или SKERNEL), которое обращается к обычному ядру через IUM (Isolated User Mode) с использованием Intel VT-d. Данный механизм защищает виртуальные аппаратные ресурсы от доступа администратора хоста.
Важный момент — защита от так называемых DMA-атак, например, «подложных» драйверов, пытающихся скомпрометировать память VSM. Для контроля памяти DMA гипервизор использует IOMMU системы.
Виртуальная машина должна быть защищена в любом состоянии: выключена, работает или «переезжает». Для этого необходима материнская плата с поддержкой UEFI, Secure Boot в ВМ и поддержка TPM 2.0.
Trusted Platform Module (TPM) — криптопроцессор международного стандарта. Windows Server 2016 Hyper-V позволяет применять для защиты ВМ виртуальный TPM. В результате ВМ могут использовать, например, функцию BitLocker. Виртуальный TPM не требует наличия физического модуля TPM. vTPM — это некое виртуальное устройство TPM для гостевых ВМ, позволяющее шифровать их диски.
Для защиты ВМ в «состоянии покоя» служит vTPM. Виртуальный TPM не требует физического TPM и позволяет перемещать ВМ. Это виртуальное устройство TPM 2.0. Кроме того, диск гостевой ВМ шифруется средствами BitLocker. Шифруется и трафик миграции ВМ.
Для каждой ВМ создается процесс Virtual Machine Workerr Process (VMWP). Для Shielded VM это защищенный процесс с запретом доступа отладчика и ограничением целого ряда функций. Административный доступ к Shielded VM также ограничен. Закрыт доступ к ней через VMconnect (в базовом режиме), запрещен RemoteFX, незащищенные вызовы WMI, KVP, отключены компоненты интеграции, вставка реестра IMC, удалены незащищенные устройства VDEV. Такой ВМ можно управлять через встроенные механизмы. Если ВМ «сломалась», то для ее починки потребуется отключить режим Shielded VM или восстановить ее из резервной копии.
Новые границы безопасности Hyper-V. Проверяются бинарники в ОС, операционная система ограничивает доступ к ресурсам, широко используется аутентификация. Гостевая ОС работает с хостом через защищенный VMWP. Виртуальный TPM шифрует данные ВМ, а ключи шифрования хранятся на внешнем сервере. Гипервизор, VSM, гостевая ОС реализуют отдельные уровни безопасности.
Конечно, уровень экранирования (защиты) ВМ можно настраивать. Более слабый уровень защиты можно использовать, когда вы доверяете админу хоста, или хост-система не поддерживает все требования Shielded VM. В этом случае снижаются и непроизводительные потери из-за экранирования.
- Базовый уровень. Использует функции TPM — в ВМ работает vTPM, поддерживается Secure Boot, шифрование диска, VSC и т.д.
- Защита этого уровня дополняется шифрованием состояния ВМ и трафика миграции.
- Полное экранирование, включая ограничение операций администратора хоста.
Чтобы все это работало, внесены изменения в режимы безопасности гипервизора. По умолчанию он не доверяет хост-системе, из нее нет прямого доступа к гипервизору, ограничен ее доступ к ключевым системным ресурсам. Все необходимое выполняется из ОС гостевых ВМ. Операционная система хоста в основном реализует функции управления. Состояние гипервизора в файле гибернации шифруется.
Таким образом, данные и состояние Shielded VM защищены от админов и вредоносных программ, VSM на хосте защищается с помощью vTPM, поддерживается шифрование диска, а Shielded VM может запускаться только на проверенном узле. О развертывании экранированных ВМ и особенностях Shielded VM рассказывается в этом документе.
С прицелом на хостинговые компании и крупные организации в Windows Server 2016 реализован также инструментарий Guarded Fabric. С его помощью можно гибко сконфигурировать сетевую инфраструктуру и разбить ее на сегменты таким образом, чтобы нельзя было перехватывать данные, вмешиваться из одной виртуальной машины в другую и выполнять прочие противоречащие политикам безопасности операции. В сетях провайдеров облачных услуг могут функционировать десятки тысяч виртуальных машин, в инфраструктуре которых могут возникать конфликты IP-адресов, появляться системы виртуализации с вредоносными программами. Задача Guarded Fabric — это предотвратить.
Виртуальный хостинг и облака больше не являются небезопасными — устранено одно из основных препятствий в использовании облачных сервисов. Виртуальные серверы теперь можно использовать для нагрузок, которые ранее из соображений безопасности можно было выполнять лишь на аппаратных платформах.