Включение функции защиты целостности кода на основе виртуализации

Warning

Некоторые приложения и аппаратные драйверы устройств могут быть несовместимы с целостностью памяти. Такая несовместимость может привести к сбоям устройств или программного обеспечения, а в редких случаях — к сбою загрузки (синий экран). Такие проблемы могут возникать после включения целостности памяти или во время самого процесса включения. Если возникают проблемы с совместимостью, см. раздел Устранение неполадок для действий по исправлению.

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

Примечание.

  • Целостность памяти иногда называется защищенной гипервизором целостности кода (HVCI) или принудительной целостностью кода гипервизора, и первоначально была выпущена в составе Device Guard. Device Guard больше не используется, кроме как для поиска целостности памяти и параметров VBS в групповая политика или реестре Windows.
  • Целостность памяти лучше работает с процессорами Intel Kabylake и более поздних версий с управлением выполнением на основе режима, а также процессорами AMD Zen 2 и более поздних версий с возможностями выполнения перехвата в гостевом режиме . Старые процессоры используют эмуляцию этих функций, называемую режимом ограниченного пользователя, и оказывают большее влияние на производительность. Если включена вложенная виртуализация, целостность памяти работает лучше, если виртуальная машина имеет версию >9.3.

Функции целостности памяти

  • Защищает изменение растрового изображения Control Flow Guard (CFG) для драйверов режима ядра.
  • Защищает процесс целостности кода в режиме ядра, который гарантирует, что другие доверенные процессы ядра имеют действительный сертификат.

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

Чтобы обеспечить целостность памяти на устройствах с Windows с поддержкой оборудования на предприятии, используйте любой из следующих вариантов:

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

Целостность памяти можно включить в параметрах Безопасность Windows и найти в разделе Безопасность Windows>Изолировать>основные сведения о>целостности памяти. Дополнительные сведения см. в разделе Защита устройств в Безопасность Windows.

Начиная с Windows 11 22H2, Безопасность Windows отображает предупреждение, если целостность памяти отключена. Индикатор предупреждения также отображается на значке Безопасность Windows на панели задач Windows и в Центре уведомлений Windows. Пользователь может отклонить предупреждение в Безопасность Windows.

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

Использование класса WMI Win32_DeviceGuard

Windows 10, Windows 11 и Windows Server 2016 и выше имеют класс WMI для свойств и функций, связанных с VBS: Win32_DeviceGuard. Этот класс можно запросить из сеанса Windows PowerShell с повышенными привилегиями с помощью следующей команды:

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

Примечание.

Свойство элемента управления выполнением на основе режима будет указано как доступное только начиная с Windows 10 версии 1803 и Windows 11 версии 21H2. Это значение указывается для возможностей Intel Mode-Based Execution Control и AMD в гостевом режиме Execute Trap .

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

  • InstanceIdentifier: строка, которая является уникальной для определенного устройства и задается WMI.

  • Версия: в этом поле указана версия этого класса WMI. Единственным допустимым значением на данный момент является 1.0.

  • AvailableSecurityProperties: это поле помогает перечислить и сообщить о состоянии соответствующих свойств безопасности для VBS и целостности памяти.

    Значение Описание
    0 Означает, что на устройстве отсутствуют соответствующие свойства.
    1 Означает, что предусмотрена поддержка низкоуровневой оболочки.
    2 Означает, что доступна безопасная загрузка.
    3 Означает, что доступна защита DMA.
    4 Означает, что доступна безопасная перезапись памяти.
    5 Означает, что доступна защита NX.
    6 Означает, что доступны меры защиты SMM.
    7 При наличии mbec/GMET доступен.
    8 При наличии доступна виртуализация APIC.
  • CodeIntegrityPolicyEnforcementStatus: это поле указывает состояние принудительного применения политики целостности кода.

    Значение Описание
    0 Отключено
    1 Аудит.
    2 Применяются.
  • RequiredSecurityProperties: в этом поле описаны необходимые свойства безопасности для включения VBS.

    Значение Описание
    0 Ничего не требуется.
    1 Означает, что необходима поддержка низкоуровневой оболочки.
    2 Означает, что требуется безопасная загрузка.
    3 Означает, что требуется защита DMA.
    4 Означает, что требуется безопасная перезапись памяти.
    5 Означает, что требуются средства защиты NX.
    6 Означает, что требуются меры защиты SMM.
    7 При наличии требуется MBEC/GMET.
  • SecurityServicesConfigured: это поле указывает, настроен ли Credential Guard или целостность памяти.

    Значение Описание
    0 Службы не настроены.
    1 Означает, что настроен Credential Guard.
    2 При наличии настроена целостность памяти.
    3 Если это так, настроен System Guard безопасный запуск.
    4 Если это так, настроено измерение встроенного ПО СММ.
    5 Если это так, настроена защита стека в режиме ядра с аппаратным применением.
    6 Если это так, то в режиме ядра аппаратной защиты стека настраивается режим аудита.
    7 Если это так, Hypervisor-Enforced преобразование разбиения на разбиение на разбиение настроено.
  • SecurityServicesRunning: это поле указывает, выполняется ли Credential Guard или целостность памяти.

    Значение Описание
    0 Никакие службы не выполняются.
    1 Означает, что запущен Credential Guard.
    2 При наличии выполняется целостность памяти.
    3 Если это так, System Guard выполняется безопасный запуск.
    4 При наличии выполняется измерение встроенного ПО СММ.
    5 Если это так, то выполняется защита стека в режиме ядра с применением аппаратного обеспечения.
    6 Если это так, то в режиме ядра аппаратной защиты стека выполняется в режиме аудита.
    7 При наличии выполняется преобразование Hypervisor-Enforced разбиения по страницам.
  • SmmIsolationLevel: это поле указывает уровень изоляции СММ.

  • UsermodeCodeIntegrityPolicyEnforcementStatus: это поле указывает состояние применения политики целостности кода в пользовательском режиме.

    Значение Описание
    0 Отключено
    1 Аудит.
    2 Применяются.
  • VirtualizationBasedSecurityStatus: это поле указывает, включена ли и запущена ли VBS.

    Значение Описание
    0 VBS не включен.
    1 Функция VBS включена, но не работает.
    2 Функция VBS включена и работает.
  • VirtualMachineIsolation: это поле указывает, включена ли изоляция виртуальной машины.

  • VirtualMachineIsolationProperties: это поле указывает набор доступных свойств изоляции виртуальных машин.

    Значение Описание
    1 AMD SEV-SNP
    2 Безопасность на основе виртуализации
    3 Intel TDX

Использование msinfo32.exe

Другим способом определения доступных и включенных функций VBS является запуск msinfo32.exe из сеанса PowerShell с повышенными привилегиями. При запуске этой программы функции VBS отображаются в нижней части раздела Сводка по системе .

Функции безопасности на основе виртуализации в системной сводке сведений о системе.

Поиск и устранение неисправностей

  • Если драйвер устройства не загружается или аварийно завершает работу во время выполнения, возможно, вы сможете обновить драйвер с помощью диспетчер устройств.
  • Если во время загрузки возникает критическая ошибка или система нестабильна после включения целостности памяти, вы можете выполнить восстановление с помощью Среды восстановления Windows (Windows RE).
    1. Сначала отключите все политики, которые используются для включения целостности VBS и памяти, например групповая политика.

    2. Затем загрузите Windows RE на затронутом компьютере, см. раздел Технический справочник по Windows RE.

    3. После входа в Windows RE установите для раздела реестра целостности памяти значение off:

      reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
      
    4. Наконец, перезапустите устройство.

Примечание.

Если вы включили целостность памяти с блокировкой UEFI, необходимо отключить безопасную загрузку, чтобы выполнить Windows RE шаги восстановления.

Развертывание целостности памяти на виртуальных машинах

Целостность памяти может защитить виртуальную машину Hyper-V так же, как и физическую машину. Действия по включению целостности памяти одинаковы в виртуальной машине.

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

Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true

Требования для выполнения целостности памяти на виртуальных машинах Hyper-V

  • На узле Hyper-V должна быть установлена по крайней мере версия Windows Server 2016 или Windows 10 версии 1607.
  • Виртуальная машина Hyper-V должна быть по крайней мере 2 поколения и должна работать под управлением Windows Server 2016 или Windows 10.
  • Целостность памяти и вложенная виртуализация могут быть включены одновременно. Чтобы включить роль Hyper-V на виртуальной машине, необходимо сначала установить роль Hyper-V во вложенной среде виртуализации Windows.
  • виртуальный адаптер Fibre Channel адаптеры несовместимы с целостностью памяти. Перед подключением виртуального адаптера Fibre Channel к виртуальной машине необходимо сначала отказаться от безопасности на основе виртуализации с помощью Set-VMSecurity.
  • Параметр AllowFullSCSICommandSet для сквозных дисков несовместим с целостностью памяти. Перед настройкой сквозного диска с помощью AllowFullSCSICommandSet необходимо сначала отказаться от безопасности на основе виртуализации с помощью Set-VMSecurity.