В Windows 10 Enterprise (и только в этой редакции) появился новый компонент Hyper-V под названием Virtual Secure Mode (VSM). VSM – это защищённый контейнер (виртуальная машина), запущенный на гипервизоре и отделенный от хостовой Windows 10 и ее ядра. Критичные с точки зрения безопасности компоненты системы запускаются внутри этого защищенного виртуального контейнера. Никакой сторонний код внутри VSM выполняться не может, а целостность кода постоянно проверяется на предмет модификации. Такая архитектура позволяет защитить данные в VSM, даже если ядро хостовой Windows 10 скомпрометировано, ведь даже ядро не имеет прямого доступа к VSM.
Контейнер VSM не может быть подключен к сети, и никто не может получить административные привилегии в нем. Внутри контейнера Virtual Secure Mode могут храниться ключи шифрования, авторизационные данные пользователей и другая критичная с точки зрения компрометация информация. Таким образом, атакующий теперь не сможет с помощью локально закэшированных данных учетной записи доменных пользователей проникнуть внутрь корпоративной инфраструктуры.
Внутри VSM могут работать следующие системные компоненты:
- LSASS (Local Security Subsystem Service) – компонент, отвечающий за авторизацию и изоляцию локальных пользователей (таким образом система защищена от атак типа “pass the hash” и утилит типа mimikatz). Это означает, что пароли (и/или хэши) пользователей, зарегистрированных в системе, не сможет получить даже пользователь с правами локального администратора.
- Виртуальный TPM (vTPM) – синтетическое TPM устройство для гостевых машин, необходимое для шифрования содержимого дисков
- Система контроля целостности кода ОС – защита кода системы от модификации
Для возможности использования режима VSM, к среде предъявляются следующие аппаратные требования:
- Поддержка UEFI, Secure Boot и Trusted Platform Module (TPM) для безопасного хранения ключей
- Поддержка аппаратной виртуализации (как минимум VT-x или AMD-V)
Как включить Virtual Secure Mode (VSM) в Windows 10
Рассмотрим, как включить режим Virtual Secure Mode Windows 10 (в нашем примере это Build 10130).
- Режим UEFI Secure Boot должен быть включен.
- Windows 10 должна быть включена в домен (VSM — защищает только доменные учетные записи пользователей, но не локальные).
- Роль Hyper-V в Windows 10 должна быть установлена (в нашем случае сначала пришлось устанавливать Hyper-V Platform, и только потом инструменты Hyper-V Management Tools).
- Режим Virtual Secure Mode (VSM) должен быть включен специальной политикой в редакторе групповой политики gpedit.msc: Computer Configuration -> System -> Device Guard -> Turn on Virtualization Based Security. Включите политику, в пункте Select Platform security level выберите Secure Boot, а также отметьте “Enable Credential Guard” (изоляция LSA).
- И, последнее, настроим BCD для запуска Windows 10 в режиме VSM
bcdedit /set vsmlaunchtype auto
- Перезагрузите компьютер
Проверка работы VSM
Убедится, что режим VSM активен можно по наличию процесса Secure System в диспетчере задач.
Или по событию “Credential Guard (Lsalso.exe) was started and will protect LSA credential” в журнале системы.
Тестирование защиты VSM
Итак, на машины с включенным режимом VSM регистрируемся под доменной учетной записью и из-под локального администратора запускаем такую команду mimikatz:
mimikatz.exe privilege::debug sekurlsa::logonpasswords exit
Мы видим, что LSA запущен в изолированной среде и хэши паролей пользователя получить не удается.
Если ту же операцию выполнить на машине с отключенным VSM, мы получаем NTLM хэш пароля пользователя, который можно использовать для атак “pass-the-hash”.