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

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

Примечание

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

Примечание

Рынки Китая и Кореи исключены, чтобы избежать известных проблем совместимости с программным обеспечением, распространенным в этих географических регионах.

Примечание

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

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

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

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

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

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

Раздел реестра Значение
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=<Current BootId>

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

Примечание

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

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

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

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

Раздел реестра Значение
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

Другие способы проверки состояния целостности памяти — просмотрите msInfo32 в разделе Запущенные службы безопасности на основе виртуализации или обратитесь к странице Основные параметры изоляции в приложении Безопасность 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

Ниже приведено перечисление потенциальных проблем совместимости 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 Требуется таблица атрибутов памяти 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