Включение целостности памяти и активация VBS

Целостность памяти — это функция безопасности на основе виртуализации (VBS), доступная в Windows 10, Windows 11 и Windows Server 2016 или более поздней версии. Целостность памяти и VBS улучшают модель угроз Windows и обеспечивают более надежную защиту от вредоносных программ, пытающихся использовать ядро Windows. VBS использует гипервизор Windows для создания изолированной виртуальной среды, которая служит корнем доверия для ОС, исходящей из того, что ядро может быть скомпрометировано. Целостность памяти — это критически важный компонент, который защищает Windows и повышает её защищённость за счёт выполнения проверки целостности кода в режиме ядра в изолированной виртуальной среде VBS. Целостность памяти также ограничивает выделение памяти ядра, которое может использоваться для компрометации системы, гарантируя, что страницы памяти ядра выполняются только после передачи проверок целостности кода в защищенной среде выполнения, и сами исполняемые страницы никогда не записываются.

Примечание.

Целостность памяти иногда также называют целостностью кода, защищённой гипервизором (HVCI) или принудительно обеспечиваемой гипервизором целостностью кода; первоначально эта функция была представлена как часть Device Guard. Device Guard больше не используется, кроме того, чтобы найти параметры целостности памяти и VBS в групповой политике или реестре Windows.

Дополнительные сведения об этих защитах см. в разделе "Защита ресурсов системы безопасности на основе виртуализации".

Включение по умолчанию

Целостность памяти включена по умолчанию при чистых установках Windows 11 и ранее только для чистых установок Windows 10 в режиме S на совместимом оборудовании, как описано в этой статье. Он также включен по умолчанию на всех компьютерах с защищенными ядрами. На других системах, которые не соответствуют требованиям для автоматического включения целостности памяти, клиенты могут включить её, используя любой из способов, описанных в разделе Как включить целостность памяти. ИТ-специалисты и конечные пользователи всегда имеют окончательный контроль над тем, включена ли целостность памяти.

Аппаратные функции для автоматического включения

Целостность памяти включена по умолчанию, если компьютер соответствует следующим минимальным аппаратным функциям:

Компонент Сведения
Процессор
  • Intel 8-го поколения и новее, начиная с Windows 11 версии 22H2 (для Windows 11 версии 21H2 — только процессоры Core 11-го поколения и новее)
  • Архитектура AMD Zen 2 и более новая
  • Qualcomm Snapdragon 8180 и новее
ОЗУ Минимум 8 ГБ (применимо только для процессоров x64)
Хранилище SSD с минимальным размером 64 ГБ
Драйверы Необходимо установить драйверы, совместимые с целостностью памяти. Дополнительные сведения о драйверах см. в статье о совместимости драйверов с целостностью памяти.
BIOS Виртуализация должна быть включена

Если вы создаете образ, который не будет автоматически включать целостность памяти, вы по-прежнему можете настроить образ так, чтобы он был включен по умолчанию.

Примечание.

Автоматическое включение относится только к очистке установок, а не обновлению существующих устройств.

Примечание.

Процессоры для настольных компьютеров Intel 11-го поколения не включены в текущую логику включения по умолчанию. Тем не менее, они являются рекомендуемой платформой для целостности памяти, и она может быть включена изготовителем оборудования.

Целостность памяти и элементы управления VBS

В этом разделе описывается, как производители устройств и конечные пользователи могут взаимодействовать с целостностью памяти и VBS. Сведения о том, как управлять состоянием целостности памяти в качестве администратора, см. в статье "Включение целостности памяти".

Включите целостность памяти

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

Задайте в вашем образе следующие два ключа реестра, чтобы обеспечить включение целостности памяти.

Ключ реестра Значение
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scripts\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scripts\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scripts\HypervisorEnforcedCodeIntegrity ВключенИдентификаторЗагрузки=<ТекущийИдентификаторЗагрузки>

BootId — это счётчик, который увеличивается при каждой успешной загрузке; его можно найти в следующем разделе реестра: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId. Ключи реестра WasEnabledBy и EnabledBootId управляют параметром, который защищает от ситуации, когда устройство не может загрузиться. Если этот параметр включен, устройство будет автоматически отключать целостность памяти, если во время загрузки происходит сбой системы, который может быть вызван тем, что целостность памяти блокирует несовместимый критически важный для загрузки драйвер. Эта функция автоматического отключения доступна только пока BootId меньше значения EnabledBootId + 3. В некоторых версиях Windows функция автоматического отключения предназначена для восстановления, если сбои загрузки продолжаются даже после отключения целостности памяти, указывая, что целостность памяти не является основной причиной сбоев.

Примечание.

Для систем с высоким уровнем безопасности не следует задавать значение WasEnabledBy и EnabledBootId .

Устранение неполадок

Использование SkTool для проверки состояния гипервизора и VBS

Последний пакет SDK для Windows включает SkTool, полезную утилиту для устранения любых проблем, связанных с безопасностью, основанной на виртуализации (VBS), и гипервизором, или просто для их проверки на текущий момент. Двоичный файл SkTool.exe находится в папке bin пакета SDK для Windows. Типичный путь:

"C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\<Arch>

Заполнитель <Arch> соответствует системной архитектуре (например, x64, arm64).

При запуске без параметров командной строки SkTool отображает текущее состояние гипервизора и VBS, а также объясняет, почему VBS была запущена или не запущена: Заполнитель

Это средство также поддерживает другие другие параметры командной строки, наиболее важными являются следующие:

  • /status — отображение сведений о гипервизоре и безопасном ядре (параметр командной строки по умолчанию).
  • /lkey — отображает состояние подготовки главного ключа VSM (LKey).
  • /смягчения - Отображение сведений о мерах смягчения NT и Secure Kernel.

В частности, переключатель "/lkey" позволяет устранять неполадки с расширенной безопасностью входа (ESS), например, Windows Hello, в ситуациях, когда система отказывается принимать ПИН-код текущего пользователя или идентификацию по лицу.

Например, вот что сообщает средство, когда главный ключ VSM не удается расшифровать из-за того, что-то в общей конфигурации системы безопасности (измеряемой TPM) изменилось (в данном случае отключен Secure Boot):

C:\Tools>sktool.exe /lkey
Hypervisor / Secure Kernel / Secure Mitigations Parser Tool 1.4

VBS Master Key Provisioning information
Found UEFI Master Key provisioning information.
   The system has tried to unseal the VBS master key with Status 0xC0000225.
   A New VSM Master key has been generated (status 0x0) and stored in a UEFI variable (in plaintext).

Определение состояния целостности памяти

Следующий переменный regkey отражает состояние целостности памяти:

Ключ реестра Значение
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

Другие способы проверки состояния целостности памяти — просмотреть MsInfo32 в разделе "Службы безопасности на основе виртуализации" или обратиться к странице параметров изоляции Core в приложении Безопасность Windows, чтобы увидеть значение целостности памяти. Существует также интерфейс WMI для проверки с помощью средств управления, см. статью "Проверка включенных функций VBS и целостности памяти".

Проблемы с отладкой драйвера

Проверьте журналы целостности кода, чтобы узнать, были ли драйверы заблокированы при загрузке в результате целостности памяти. Их можно найти в средстве «Просмотр событий» по следующему пути:

Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational

Как правило, события совместимости целостности памяти имеют EventID=3087

Проверьте результаты включения функции целостности памяти по умолчанию

Чтобы просмотреть сведения о результатах включения целостности памяти по умолчанию, проверьте setupact.log и выполните поиск HVCI. Вы должны увидеть один из следующих журналов результатов, а также успешные или неудачные проверки, ведущие к решению о включении:

Включена целостность памяти: SYSPRP HVCI: Enabling HVCI

Целостность памяти не включена: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

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

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

Ниже приведён список возможных проблем совместимости, связанных с VBS или целостностью памяти. Каждая проблема представлена одним индексом в битовом массиве, а сообщение об ошибке выводит шестнадцатеричное значение, полученное от каждого бита ошибки.

Битовый индекс Проблема совместимости Шестнадцатеричное значение Архитектура
0 Неподдерживаемая архитектура (например, x86) 0x00000001
1 SLAT обязателен 0x00000002 x64
2 Требуемая возможность безопасной загрузки 0x00000004 x64
3 Требуется IOMMU 0x00000008 x64
4 Требуется MBEC/GMET 0x00000010 x64
5 Требуется UEFI 0x00000020 x64
6 Требуется таблица атрибутов памяти UEFI WX 0x00000040 x64
7 Таблица ACPI WSMT требуется 0x00000080 x64
8 UEFI MOR Lock требуется 0x00000100 x64
9 Устарело
10 Требуется виртуализация оборудования 0x00000400 x64
11 Требуется безопасный запуск 0x00000800 ARM64
12 Устарело
13 Размер тома устройства не соответствует минимально требуемому значению 64 ГБ 0x00002000 x64, ARM64
14 Для системного диска требуется SSD 0x00004000 x64, ARM64
15 Требуется Intel CET (применимо только в W11 21H2) 0x00008000 x64
16 Arm SoC несовместим с VBS 0x00010000 ARM64
17 Требуется 8 ГБ ОЗУ 0x00020000 x64

Пример кода ошибки и идентификации ошибок: VBS_COMPAT_ISSUES 0x000000C0

0x000000C0 -> 0x00000080 AND 0x00000040 -> требуются таблица атрибутов памяти UEFI WX и таблица ACPI WSMT