Включение целостности памяти и 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 на совместимом оборудовании, как описано в этой статье. Он также включен по умолчанию на всех компьютерах с защищенными ядрами. В других системах, которые не соответствуют требованиям автоматической включения целостности памяти, клиенты могут использовать любой из методов, описанных в том, как включить целостность памяти. ИТ-специалисты и конечные пользователи всегда имеют окончательный контроль над тем, включена ли целостность памяти.
Аппаратные функции для автоматического включения
Целостность памяти включена по умолчанию, если компьютер соответствует следующим минимальным аппаратным функциям:
Компонент | Подробный сведения |
---|---|
Процессор |
|
ОЗУ | Минимум 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