Включение целостности памяти и 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 (11-е поколение процессоров Core и более поздних версий для Windows 11 версии 21H2)
  • Архитектура AMD Zen 2 и более новая
  • Qualcomm Snap dragon 8180 и более новые
ОЗУ Минимум 8 ГБ (применимо только для процессоров x64)
Хранилище SSD с минимальным размером 64 ГБ
Драйверы Необходимо установить драйверы, совместимые с целостностью памяти. Дополнительные сведения о драйверах см. в статье о совместимости драйверов с целостностью памяти.
BIOS Виртуализация должна быть включена

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

Примечание.

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

Примечание.

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

Элементы управления целостностью памяти и VBS

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

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

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

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

Раздел реестра Значение
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 EnabledBootId=<Current BootId>

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

Примечание.

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

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

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

Следующий переменный 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.

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

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

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

Битовый индекс Проблема с compat Шестнадцатеричное значение Архитектура
0 Неподдерживаемая архитектура (например, x86) 0x00000001
1 Обязательный SLAT 0x00000002 x64
2 Требуемая возможность безопасной загрузки 0x00000004 x64
3 Требуется IOMMU 0x00000008 x64
4 Требуется MBEC/GMET 0x00000010 x64
5 Обязательный UEFI 0x00000020 x64
6 Требуется таблица атрибутов памяти WX WX UEFI 0x00000040 x64
7 Требуется таблица WSMT ACPI 0x00000080 x64
8 Требуется блокировка UEFI MOR 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 —> требуется таблица атрибутов памяти WX UEFI, требуется таблица WSMT ACPI