Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Windows Server 2025
Функция безопасности , применяемая аппаратной защитой стека, была введена для защиты процессов пользовательского режима и помогает предотвратить перехват в стеке в Windows 10. Защита аппаратного стека теперь распространяется на режим ядра, который защищает стеки в ядре от атак на основе возвращаемого программирования (ROP). ROP — это распространенный способ перехвата потока выполнения программы злоумышленниками и продолжения их цепочки атак, чтобы выполнить нужный код злоумышленника.
Теперь, когда стеки пользовательского режима защищены и предотвращают изменение адреса возврата из кода режима ядра, злоумышленники не могут использовать уязвимости безопасности памяти. Клиенты уже видят, как аппаратное обеспечение защиты стека в режиме ядра предотвращает выполнение вредоносных полезных данных драйверами, связанными с вирусами и вредоносными программами.
Защита стека в режиме ядра отключена по умолчанию, но клиенты могут включить ее, если выполнены предварительные требования. В этой статье содержатся дополнительные сведения о аппаратно-принудительной защите стека в режиме ядра и о том, как включить эту функцию в приложении Безопасность Windows и с помощью групповой политики.
Prerequisites
- Обновление Windows 11 2022 или более поздней версии
- Безопасность Windows приложение версии 1000.25330.0.9000 или более поздней
- Оборудование, поддерживающее технологию принудительного применения потоков intel (CET) или теневые стеки AMD.
- Для Процессоров Intel, 11-го поколения Intel Core Mobile и AMD Zen 3 Core (и более новых).
- Безопасность на основе виртуализации (VBS) и целостность кода с поддержкой гипервизора (HVCI) включены.
Использование теневых стеков для обеспечения целостности потока управления
При использовании аппаратно-принудительной защиты стека стека ядра все стеки ядра имеют соответствующий теневой стек для обеспечения целостности потока управления. Если злоумышленники используют уязвимость безопасности памяти, следующий шаг — перенаправить поток управления программой в нужное расположение злоумышленника.
Теневые стеки предотвращают перехват потока управления. Windows использует Control Flow Guard для обеспечения целостности при непрямых вызовах и аппаратно-принудительной защиты стека для обеспечения целостности при возврате для защиты от эксплойтов, направленных на перенаправление потока выполнения программы. Control Flow Guard использует растровое изображение для анимации допустимых целевых объектов перехода, чтобы предотвратить скомпрометированный косвенный вызов перенаправления потока управления в произвольные расположения.
Теневой стек поддерживает вторичный стек (аппаратно защищенный) для всех стеков вызовов, и всякий раз, когда инструкция CALL или RET отправляет или выводит значение в стек, соответствующая запись живет в теневом стеке. При несоответствии возвращаемого адреса система активирует синий экран, чтобы предотвратить непреднамеренное поведение управления программой.
Дополнительные сведения см. в записи блога о защите аппаратного обеспечения стека.
Включение аппаратно-принудительной защиты стека в режиме ядра в Безопасность Windows
Безопасность на основе виртуализации (VBS) и обеспечение целостности кода с поддержкой гипервизора (HVCI) являются предварительными условиями для аппаратно-принудительной защиты стека в режиме ядра, необходимо сначала убедиться, что эти функции включены перед продолжением. Они автоматически заполняются в системах Windows, которые соответствуют минимальным требованиям к оборудованию.
Включите VBS и HVCI, выполнив следующие действия.
Откройте приложение "Безопасность Windows ".
Перейдите к сведениям > ядра безопасности > устройства. Целостность памяти.
Переключите функцию вкл.
После внесения этого изменения необходимо перезапустить устройство.
Включение защиты стека в режиме ядра
Откройте приложение "Безопасность Windows ".
Перейдите к сведениям об > изоляции ядра безопасности > устройств с аппаратным обеспечением защиты стека.
Переключите функцию вкл.
Включение аппаратно-принудительной защиты стека в режиме ядра в редакторе локальной групповой политики
Для корпоративных клиентов можно включить защиту стека в режиме ядра с поддержкой аппаратного обеспечения с помощью групповой политики.
Откройте редактор локальной групповой политики.
Перейдите к системе > административных шаблонов > конфигурации > компьютера Device Guard>, чтобы включить безопасность на основе виртуализации.
Убедитесь, что безопасность на основе виртуализации включена.
В разделе "Параметры" найдите аппаратное обеспечение защиты стека в режиме ядра. Выберите "Включено" в режиме принудительного применения.
Нажмите кнопку "Применить". Затем ОК.
Несовместимые драйверы
Существует небольшой набор драйверов, которые еще не совместимы. Драйверы, которые демонстрируют потенциально вредоносное поведение, например перехват адресов возврата, чтобы обойти политики потока управления несовместимы, и добавляются в уязвимый список блоков драйверов для аппаратной защиты стека в режиме ядра. После работы с поставщиками драйверов для выполнения маскировки кода в теневом стеке, совместимым с теневым стеком, эти драйверы разрешены.
Чтобы обеспечить хороший пользовательский интерфейс и избежать синих экранов, Windows поддерживает известный несовместимый список блоков драйверов для защиты аппаратного стека в режиме ядра. Это драйверы, которые известны как перехват возвращаемых адресов в ядре. Если эта функция включена, драйвер не может загружаться (в отличие от синего экрана при попытке перехвата возвращаемого адреса). Кроме того, если система уже установлена в списке блокировок, эта функция не может включить. Эту функцию можно включить, удаляя связанный драйвер.
Проверка несовместимых драйверов
Эта функция не может быть включена, пока не будут разрешены несовместимости либо с обновленной версией от поставщика драйверов, либо путем удаления приложения, устанавливающего драйвер. Чтобы просмотреть список несовместимых драйверов, выберите "Проверить несовместимые драйверы".
Некоторые приложения используют драйверы, несовместимые с аппаратным обеспечением защиты стека в режиме ядра. Например, приложения, использующие механизмы маскирования для защиты потока управления IP-адресов и запутывания, которые несовместимы с теневыми стеками. Когда небезопасный драйвер пытается загрузить эту функцию безопасности, появится сообщение "Драйвер не может загрузиться на этом устройстве".
При необходимости можно отключить функцию безопасности, хотя это приведет к понижению уровня безопасности устройства. Эту функцию всегда можно повторно включить в приложении Безопасность Windows.