В этой статье

Сводка

Корпорация Майкрософт узнала об уязвимости в Windows, которая позволяет злоумышленнику с правами администратора заменять обновленные системные файлы Windows с более старыми версиями, открывая злоумышленнику возможность повторно ввести уязвимости в систему безопасности на основе виртуализации (VBS).  Откат этих двоичных файлов может позволить злоумышленнику обойти функции безопасности VBS и эксфильтровать данные, защищенные С помощью VBS. Эта проблема описана в cve-2024-21302 | Уязвимость защищенного режима ядра Windows, связанная с повышением привилегий.

Чтобы устранить эту проблему, мы отменим уязвимые системные файлы VBS, которые не были обновлены. Из-за большого количества файлов, связанных с VBS, которые должны быть заблокированы, мы используем альтернативный подход для блокировки версий файлов, которые не обновляются.

Область воздействия

Эта проблема затрагивает все устройства Windows, поддерживающие VBS. Сюда входят локальные физические устройства и виртуальные машины. VBS поддерживается в Windows 10 и более поздних версиях Windows, а также Windows Server 2016 и более поздних версиях Windows Server.

Состояние VBS можно проверить с помощью средства Microsoft System Information (Msinfo32.exe). Это средство собирает сведения о вашем устройстве. После запуска Msinfo32.exe прокрутите вниз до строки безопасности на основе виртуализации . Если эта строка имеет значение Выполняется, VBS включена и запущена.

Диалоговое окно "Сведения о системе" с выделенной строкой "Безопасность на основе виртуализации"

Состояние VBS также можно проверить с помощью Windows PowerShell с помощью класса WMI Win32_DeviceGuard. Чтобы запросить состояние VBS из PowerShell, откройте сеанс Windows PowerShell с повышенными привилегиями и выполните следующую команду:

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

После выполнения приведенной выше команды PowerShell состояние VBS должно иметь одно из следующих значений.

Имя поля

Состояние

VirtualizationBasedSecurityStatus

  • Если поле равно 0, VBS не включен.

  • Если поле равно 1, VBS включен, но не запущен.

  • Если поле равно 2, VBS включается и выполняется.

Доступные способы устранения рисков

Для всех поддерживаемых версий Windows 10 версии 1809 и более поздних версий Windows, а также Windows Server 2019 и более поздних версий Windows Server администраторы могут развернуть политику отзыва с подписью Майкрософт (SkuSiPolicy.p7b). Это блокирует загрузку операционной системой уязвимых версий системных файлов VBS, которые не обновляются.

Примечание Для будущих обновлений планируется дополнительное устранение рисков и поддержка мер для всех поддерживаемых версий Windows 10, версии 1507 и более ранних версий Windows, а также Windows Server 2016 и более ранних версий Windows Server.

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

Чтобы устранение рисков политики работало, устройство должно быть обновлено с помощью обновления Windows, выпущенного 13 августа 2024 г. или позже. Если обновления отсутствуют, устройство может не запускаться с примененной мерой или не работать должным образом. Кроме того, к устройству следует применять меры по устранению рисков, описанные в KB5025885 .

Важно! Не применяйте эту меру защиты к версиям Windows, предшествующим Windows 10, версии 1809 или Версиям Windows Server, предшествующим Windows Server 2019. Если устранение рисков применяется к неподдерживаемым устройствам, они не запускаются и вы получите сообщение об ошибке 0xc0000428. Для восстановления необходимо выполнить инструкции, описанные в разделе Процедура удаления и восстановления политики .

Диалоговое окно восстановления, указывающее, что устройство должно быть восстановлено

Общие сведения о рисках, связанных с устранением рисков

Перед применением политики отзыва, подписанной корпорацией Майкрософт, необходимо знать о потенциальных рисках. Ознакомьтесь с этими рисками и внесите необходимые обновления на носитель восстановления перед применением мер по устранению рисков.

  • Целостность кода в пользовательском режиме (UMCI). Политика отзыва, подписанная корпорацией Майкрософт, обеспечивает целостность кода в пользовательском режиме, чтобы правила в политике применялись к двоичным файлам в пользовательском режиме. UMCI также включает динамический код безопасности по умолчанию. Применение этих функций может привести к проблемам совместимости с приложениями и сценариями, а также может помешать их выполнению и повлиять на производительность во время запуска. Перед развертыванием мер по устранению неполадок следуйте инструкциям по развертыванию политики режима аудита , чтобы проверить наличие потенциальных проблем.

  • Блокировка и удаление обновлений UEFI. После применения блокировки UEFI с помощью политики отзыва, подписанной Корпорацией Майкрософт, на устройстве устройство не может быть восстановлено (путем удаления обновлений Windows, с помощью точки восстановления или другими способами), если вы продолжаете применять безопасную загрузку. Даже переформатирование диска не снимет блокировку UEFI для устранения рисков, если она уже применена. Это означает, что при попытке вернуть ОС Windows в более раннее состояние, в котором не применяется устранение рисков, устройство не запустится, сообщение об ошибке не отобразится, а UEFI перейдет к следующему доступному параметру загрузки. Это может привести к циклу загрузки. Чтобы удалить блокировку UEFI, необходимо отключить безопасную загрузку. Обратите внимание на все возможные последствия и тщательно протестируйте, прежде чем применять к устройству описанные в этой статье действия отзыва.

  • Внешний загрузочный носитель. После применения к устройству мер по устранению рисков блокировки UEFI внешний загрузочный носитель должен быть обновлен с помощью обновлений Windows, датируемых 13 августа 2024 г. или позже, а также политикой отзыва, подписанной корпорацией Майкрософт (SkuSiPolicy.p7b). Если внешний загрузочный носитель не обновляется, устройство может не загружаться с этого носителя. См. инструкции в разделе Обновление внешнего загрузочного носителя , прежде чем применять меры по устранению рисков.Загрузочный носитель, обновленный с помощью политики отзыва, подписанной Корпорацией Майкрософт, должен использоваться только для загрузки устройств, на которых уже применена мера защиты.  Если он используется с устройствами без устранения рисков, блокировка UEFI будет применена во время запуска с загрузочного носителя. Последующие запуски с диска завершаются ошибкой, если устройство не будет обновлено с помощью меры по устранению рисков или не будет удалена блокировка UEFI.

  • Среда восстановления WindowsСреда восстановления Windows (WinRE) на устройстве должна быть обновлена с помощью обновлений Windows, датируемых 13 августа 2024 г. или позже, прежде чем SkuSipolicy.p7b будет применен к устройству. Пропуск этого шага может помешать WinRE запустить функцию сброса компьютера.  Дополнительные сведения см. в статье Добавление пакета обновления в windows RE.

  • Предварительная загрузка среды выполнения (PXE). Если устранение рисков развернуто на устройстве и вы пытаетесь использовать PXE-загрузку, устройство не запустится, если меры по устранению рисков также не будут применены к источникам загрузки сети (корневой каталог, где присутствует bootmgfw.efi). Если устройство запускается из источника сетевой загрузки, к которому применена мера по устранению рисков, блокировка UEFI будет применена к устройству и повлияет на последующие запуски. Мы не рекомендуем развертывать средства устранения рисков в сетевых источниках загрузки, если только на всех устройствах в вашей среде не развернуты средства устранения рисков.  

Рекомендации по развертыванию мер по устранению рисков

Чтобы устранить проблемы, описанные в этой статье, можно развернуть политику отзыва, подписанную корпорацией Майкрософт (SkuSiPolicy.p7b). Эта мера защиты поддерживается только в Windows 10 версии 1809 и более поздних версиях Windows, а также Windows Server 2019 и более поздних версиях Windows Server. Перед развертыванием политики отзыва с подписью Майкрософт (SkuSiPolicy.p7b) следует проверить наличие проблем совместимости с помощью политики режима аудита.

Примечание Если вы используете BitLocker, убедитесь, что резервная копия ключа восстановления BitLocker создана. Вы можете выполнить следующую команду из командной строки администратора и запишите 48-значный числовой пароль:

manage-bde -protectors -get %systemdrive%

Развертывание политики режима аудита

Политика отзыва с подписью Майкрософт (SkuSiPolicy.p7b) обеспечивает целостность кода в пользовательском режиме (UMCI) и динамическое обеспечение безопасности кода. Эти функции могут иметь проблемы совместимости с клиентскими приложениями. Перед развертыванием мер по устранению рисков необходимо развернуть политику аудита для обнаружения проблем совместимости.

У вас есть два варианта политики аудита:

  • Используйте предоставленную политику аудита SiPolicy.p7b.

  • Или скомпилируйте собственный двоичный файл политики аудита из предоставленного XML-файла.

Мы рекомендуем использовать предоставленный двоичный файл политики аудита SiPolicy.p7b, если вы еще не развернули существующую политику Application Guard в Защитнике Windows (WDAC). Предоставленный двоичный файл политики аудита не будет заблокирован UEFI. Перед применением политики аудита не требуется обновлять внешний загрузочный носитель и носитель восстановления.

Целостность кода Windows будет оценивать двоичные файлы пользователей и режима ядра по правилам в политике аудита. Если целостность кода идентифицирует приложение или скрипт в нарушение политики, будет создано событие журнала событий Windows со сведениями о заблокированном приложении или скрипте, а также сведениями о принудительной политике. Эти события можно использовать, чтобы определить, используются ли на устройстве несовместимые приложения или скрипты. Дополнительные сведения см. в разделе Журналы событий Windows .

Политика аудита SiPolicy.p7b включена в обновление Windows от 13 августа 2024 г. или позже для всех поддерживаемых операционных систем Windows 10 версии 1809 и более поздних версий Windows, а также Windows Server 2019 и более поздних версий Windows Server. Эта политика аудита должна применяться только к устройствам, на которых установлено обновление Windows от 13 августа 2024 г. или более поздней версии, или политика аудита может работать неправильно.

Чтобы развернуть предоставленную политику аудита SiPolicy.p7b, выполните следующие действия.

  1. Выполните следующие команды в командной строке Windows PowerShell с повышенными привилегиями:

    # Инициализация расположения и назначения политики

    $PolicyBinary = $env:windir+"\System32\SecureBootUpdates\VbsSI_Audit.p7b"

    $DestinationBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"

    # Копирование двоичного файла политики аудита

    Copy-Item -Path $PolicyBinary -Destination $DestinationBinary -force

  2. Перезагрузите устройство.

  3. Убедитесь, что политика загружена в средстве просмотра событий, используя сведения в разделе События активации политики .

  4. Протестируйте с помощью приложений и скриптов, пока политика применяется для выявления проблем совместимости.

Чтобы удалить политику аудита SiPolicy.p7b, выполните следующие действия.

  1. Выполните следующие команды в командной строке Windows PowerShell с повышенными привилегиями:

    # Инициализация расположения политики

    $PolicyBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"

    # Удаление SiPolicy.p7b

    Remove-Item -Path $PolicyBinary -force

  2. Перезагрузите устройство.

  3. Убедитесь, что политика аудита не загружена в средстве просмотра событий, используя сведения в разделе События активации политики .

Если вы используете WDAC для управления приложениями и драйверами, которые могут работать на ваших устройствах, возможно, вы уже используете политику с именем "SiPolicy.p7b". Для всех поддерживаемых операционных систем Windows 10 версии 1903 и более поздних версий Windows, а также Windows Server 2022 и более поздних версий Windows Server можно использовать предоставленный XML-файл для создания и развертывания политики аудита с помощью нескольких форматов политики WDAC. Инструкции по созданию и развертыванию двоичного файла политики аудита см. в статье Развертывание политик управления приложениями в Защитнике Windows (WDAC).

XML-файл с правилами политики аудита доступен на устройствах с установленным обновлением Windows 13 августа 2024 г. или позже. XML-файл находится в разделе "%systemroot%\schemas\CodeIntegrity\ExamplePolicies\VbsSI_Audit.xml".

Если вы используете политику WDAC в Windows 10 версии 1809 и более ранних версиях Windows или Windows Server 2016 и более ранних версиях Windows Server, вам потребуется заменить существующую политику WDAC политикой аудита, чтобы проверить наличие проблем совместимости с устранением рисков.

Развертывание политики отзыва с подписью Майкрософт (SkuSiPolicy.p7b)

Политика отзыва, подписанная корпорацией Майкрософт, включена в обновление Windows от 13 августа 2024 года или позже. Эта политика должна применяться только к устройствам с установленным обновлением от 13 августа 2024 г. или более поздней версии. Если обновления отсутствуют, устройство может не запускаться с примененной меры по устранению или не работать должным образом.

Чтобы развернуть политику отзыва, подписанную корпорацией Майкрософт (SkuSiPolicy.p7b), выполните следующие действия.

  1. Выполните следующие команды в командной строке Windows PowerShell с повышенными привилегиями:

    $PolicyBinary = $env:windir+"\System32\SecureBootUpdates\SkuSiPolicy.p7b" $MountPoint = 'C:\EFIMount'

    $EFIDestinationFolder = "$MountPoint\EFI\Microsoft\Boot" $EFIPartition = (Get-Partition | Where-Object IsSystem). AccessPaths[0] if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force } mountvol $MountPoint $EFIPartition if (-Not (Test-Path $EFIDestinationFolder)) { New-Item -Path $EFIDestinationFolder -Type Directory -Force }

    Copy-Item -Path $PolicyBinary -Destination $EFIDestinationFolder -Force

    mountvol $MountPoint /D

  2. Перезапустите устройство.

  3. Убедитесь, что политика загружена в средстве просмотра событий, используя сведения в разделе Журналы событий Windows .

Примечания

  • Не следует удалять файл отзыва SkuSiPolicy.p7b (политика) после его развертывания. Если файл удален, устройство больше не сможет запуститься.

  • Если устройство не запускается, см. раздел Процедура восстановления.

Обновление внешнего загрузочного носителя

Чтобы использовать внешний загрузочный носитель с устройством, на которое применена политика отзыва с подписью Майкрософт, внешний загрузочный носитель должен быть обновлен с помощью файла примененной политики. Кроме того, он должен включать обновления Windows, датированные 13 августа 2024 г. или позже. Если носитель не содержит обновления, он не запускается.

Загрузочный носитель, обновленный с помощью политики отзыва, подписанной Корпорацией Майкрософт, должен использоваться только для загрузки устройств, на которых уже применена мера защиты.  Если он используется с устройствами без устранения рисков, блокировка UEFI будет применена во время запуска с загрузочного носителя. Последующие запуски с диска завершаются ошибкой, если устройство не будет обновлено с помощью меры по устранению рисков или не будет удалена блокировка UEFI.

Важно! Перед продолжением рекомендуется создать диск восстановления. Этот носитель можно использовать для переустановки устройства в случае возникновения серьезной проблемы.

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

  1. Перейдите на устройство, на котором установлены обновления Windows, выпущенные 13 августа 2024 г. или позже.

  2. Подключите внешний загрузочный носитель в виде буквы диска. Например, подключите диск с большим пальцем как D:.

  3. Нажмите кнопку Пуск, введите Create a Recovery Drive (Создать диск восстановления) в поле Поиска , а затем щелкните Создать панель управления диском восстановления. Следуйте инструкциям, чтобы создать диск восстановления с помощью подключенного диска с большим пальцем.

  4. После подключения только что созданного носителя скопируйте файл SkuSiPolicy.p7b в <MediaRoot>\EFI\Microsoft\Boot (например, D:\EFI\Microsoft\Boot).

  5. Безопасное удаление подключенного диска с большим пальцем.

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

  1. Перейдите на устройство, на котором установлены обновления Windows, выпущенные 13 августа 2024 г. или позже.

  2. Выполните действия, описанные в статье Обновление установочного носителя Windows с помощью динамического обновления, чтобы создать носитель, на котором установлены обновления Windows, выпущенные 13 августа 2024 г. или позже.

  3. Поместите содержимое носителя на USB-накопитель и подключите его в качестве буквы диска. Например, подключите диск с большим пальцем как D:.

  4. Скопируйте SkuSiPolicy.p7b в <MediaRoot>\EFI\Microsoft\Boot (например, D:\EFI\Microsoft\Boot).

  5. Безопасное удаление подключенного диска с большим пальцем.

Журналы событий Windows

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

Журналы целостности кода доступны в средстве просмотра событий Windows в разделе Журналы приложений и служб> Microsoft > Windows > CodeИнтеграция > операционных > журналы приложений и служб > >Microsoft > Windows > AppLocker > MSI и script.

Дополнительные сведения о событиях целостности кода см. в руководстве по управлению приложениями в Защитнике Windows.

События активации политики

События активации политики доступны в средстве просмотра событий Windows в разделе Журналы приложений и служб > Microsoft > Windows > CodeIntegrity > Operational.

Событие CodeIntegrity 3099 указывает, что политика загружена и содержит сведения о загруженной политике. Сведения в событии включают понятное имя политики, глобальный уникальный идентификатор (GUID) и хэш политики. При наличии нескольких политик целостности кода, примененных к устройству, будет присутствовать несколько событий CodeIntegrity Event 3099.

При применении предоставленной политики аудита произойдет событие со следующими сведениями:

  • PolicyNameBuffer — политика аудита безопасности на основе виртуализации Microsoft Windows

  • PolicyGUID — {a244370e-44c9-4c06-b551-f6016e563076}

  • PolicyHash — 98FC5872FD022C7DB400953756A6E62A8F24E7BD8FE080C6525DFBCA38387

Политика аудита безопасности на основе виртуализации Майкрософт

При применении политики отзыва с подписью Майкрософт (SkuSiPolicy.p7b) произойдет событие со следующими сведениями (см. снимок экрана события CodeIntegrity 3099 ниже):

  • PolicyNameBuffer — политика si номера SKU Microsoft Windows

  • PolicyGUID — {976d12c8-cb9f-4730-be52-54600843238e}

  • PolicyHash — 107E8FDD187C34CF8B8EA46A4EE99F0DB60F491650DC989DB71B4825DC73169D

Политика SI номера SKU Microsoft Windows

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

События аудита и блокировки

События аудита целостности кода и блокировки доступны в средстве просмотра событий Windows в разделе Журналы приложений и служб > Microsoft > Windows > CodeИнтеграция > журналы операционных > приложений и служб > Microsoft > Windows > AppLocker > MSI и скрипта.

Прежнее расположение ведения журнала включает события об управлении исполняемыми файлами, библиотеками DLL и драйверами. Последнее расположение ведения журнала включает события об управлении установщиками MSI, скриптами и COM-объектами.

Событие CodeIntegrity 3076 в журнале CodeIntegrity — Operational является основным событием блока для политик режима аудита и указывает, что файл был бы заблокирован, если бы политика была применена. Это событие включает сведения о заблокированных файлах и принудительной политике. Для файлов, которые будут заблокированы устранением рисков, сведения о политике в событии 3077 будут соответствовать сведениям политики аудита из события 3099.

Событие CodeIntegrity 3077 в журнале CodeIntegrity — Operational указывает, что загрузка исполняемого файла, .dll или драйвера заблокирована. Это событие включает сведения о заблокированных файлах и принудительной политике. Для файлов, заблокированных в случае устранения рисков, сведения о политике в событии CodeIntegrity 3077 будут соответствовать сведениям о политике SkuSiPolicy.p7b из codeIntegrity Event 3099. Событие CodeIntegrity 3077 не будет присутствовать, если на вашем устройстве нет исполняемых файлов, .dll или драйверов, нарушающих политику целостности кода.

Сведения о других событиях аудита целостности кода и блокировки см. в разделе Общие сведения о событиях управления приложениями.

Процедура удаления и восстановления политики

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

  1. Приостановите BitLocker, если он включен. Выполните следующую команду в окне командной строки с повышенными привилегиями:

    Manager-bde -protectors -disable c: -rebootcount 3

  2. Отключите безопасную загрузку в меню UEFI BIOS.Процедура отключения безопасной загрузки различается в разных производителях устройств и моделях. Сведения о том, где отключить безопасную загрузку, см. в документации от производителя устройства. Дополнительные сведения см. в разделе Отключение безопасной загрузки.

  3. Удалите политику SkuSiPolicy.p7b.

    1. Обычно запустите Windows, а затем войдите в систему.Политику SkuSiPolicy.p7b необходимо удалить из следующего расположения:

      • <системный раздел EFI>\Microsoft\Boot\SKUSiPolicy.p7b

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

      $PolicyBinary = $env:windir+"\System32\SecureBootUpdates\SkuSiPolicy.p7b" $MountPoint = 'C:\EFIMount'

      $EFIPolicyPath = "$MountPoint\EFI\Microsoft\Boot\SkuSiPolicy.p7b"

      $EFIDestinationFolder="$MountPoint\EFI\Microsoft\Boot" $EFIPartition = (Get-Partition | Where-Object IsSystem). AccessPaths[0] if (-Not (Test-Path $MountPoint)) { New-Item -Path $MountPoint -Type Directory -Force } mountvol $MountPoint $EFIPartition if (-Not (Test-Path $EFIDestinationFolder)) { New-Item -Path $EFIDestinationFolder -Type Directory -Force }

      if (Test-Path $EFIPolicyPath ) {Remove-Item -Path $EFIPolicyPath -Force }

      mountvol $MountPoint /D

  4. Включите безопасную загрузку из BIOS.Обратитесь к документации от производителя устройства, чтобы найти, где включить безопасную загрузку.Если вы отключили безопасную загрузку на шаге 1 и диск защищен с помощью BitLocker, приостановите защиту BitLocker , а затем включите безопасную загрузку в меню UEFI BIOS .

  5. Включите BitLocker. Выполните следующую команду в окне командной строки с повышенными привилегиями:

    Manager-bde -protectors -enable c:

  6. Перезапустите устройство.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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