Fecha de publicación original: Agosto de 13, 2024
KB ID: 5042562
El soporte para Windows 10 finalizará en octubre de 2025
Después del 14 de octubre de 2025, Microsoft ya no proporcionará actualizaciones de software gratuitas desde Windows Update, asistencia técnica ni correcciones de seguridad para Windows 10. El PC seguirá funcionando, pero recomendamos que se cambie a Windows 11.
Cambiar fecha |
Descripción |
11/12/2024 |
|
En este artículo
Resumen
Microsoft fue consciente de una vulnerabilidad de Windows que permite a un atacante con privilegios de administrador reemplazar archivos actualizados del sistema de Windows que tienen versiones anteriores, lo que abre la puerta a que un atacante pueda volver a introducir las vulnerabilidades a la seguridad basada en virtualización (VBS). La reversión de estos archivos binarios podría permitir que un atacante sortee las características de seguridad de VBS y exfiltre los datos protegidos por VBS. Este problema se describe en CVE-2024-21302 | Vulnerabilidad de elevación de privilegios en modo kernel seguro de Windows.
Para resolver este problema, revocaremos los archivos de sistema VBS vulnerables que no se actualicen. Debido al gran número de archivos relacionados con VBS que deben bloquearse, usamos un método alternativo para bloquear las versiones de archivo que no se actualizan.
Alcance del impacto
Este problema afecta a todos los dispositivos Windows que admiten VBS. Esto incluye los dispositivos físicos locales y las máquinas virtuales (VM). VBS es compatible con Windows 10 y versiones posteriores de Windows y Windows Server 2016 y versiones posteriores de Windows Server.
El estado de VBS se puede comprobar a través de la Herramienta de información del sistema (Msinfo32.exe) de Microsoft. Esta herramienta recopila información sobre el dispositivo. Después de iniciar Msinfo32.exe, desplázate hacia abajo hasta la fila seguridad basada en virtualización. Si el valor de esta fila está Ejecutándose, VBS está habilitado y ejecutándose.
El estado de VBS también se puede comprobar con Windows PowerShell mediante la clase WMI Win32_DeviceGuard. Para consultar el estado de VBS desde PowerShell, abra una sesión de Windows PowerShell con privilegios elevados y, a continuación, ejecuta el siguiente comando:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Después de ejecutar el comando de PowerShell anterior, el estado del estado de VBS debe ser uno de los siguientes.
Nombre de campo |
Estado |
VirtualizationBasedSecurityStatus |
|
Mitigaciones disponibles
Para todas las versiones compatibles de Windows 10, versión 1507 y versiones posteriores de Windows, y Windows Server 2016 y versiones posteriores de Windows Server, los administradores pueden implementar una directiva de revocación firmada por Microsoft (SKUSiPolicy.p7b). Esto bloqueará que el sistema operativo cargue las versiones vulnerables de los archivos de sistema de VBS que no se actualizan.
Nota Se ha agregado compatibilidad con las directivas SKUSIPolicy.p7b y VbsSI_Audit.p7b para Windows 10, versión 1507, Windows 10 Enterprise 2016 y Windows Server 2016 como parte de las últimas actualizaciones de Windows publicadas el 8 de octubre de 2024 y después. Las versiones más recientes de Windows y Windows Server introdujeron estas directivas en las actualizaciones del 13 de agosto de 2024.
Cuando esta directiva se aplica a un dispositivo Windows, la directiva también se bloqueará en el dispositivo agregando una variable al firmware UEFI. Durante el inicio, la directiva se carga y Windows bloquea la carga de archivos binarios que infringen la directiva. Si se aplica el bloqueo de UEFI y la directiva se quita o se reemplaza por una versión anterior, el Administrador de arranque de Windows no se iniciará y el dispositivo no se iniciará. Este error de arranque no mostrará un error y el sistema procederá a la siguiente opción de arranque disponible que podría dar lugar a un bucle de arranque.
Para que la mitigación de directivas funcione, la directiva debe actualizarse mediante la actualización de mantenimiento de Windows, ya que los componentes de Windows y la directiva deben ser de la misma versión. Si la mitigación de directivas se copia en el dispositivo, es posible que el dispositivo no se inicie si se aplica la versión incorrecta de la mitigación o si la mitigación puede no funcionar según lo esperado. Además, las mitigaciones descritas en KB5025885 deben aplicarse al dispositivo.
Descripción de los riesgos de mitigación
Debes ser consciente de los riesgos potenciales antes de aplicar la directiva de revocación firmada por Microsoft. Revisa estos riesgos y realiza las actualizaciones necesarias en los medios de recuperación antes de aplicar la mitigación.
-
Integridad del código del modo usuario (UMCI) La directiva de revocación firmada por Microsoft permite la integridad del código en modo de usuario para que las reglas de la directiva se apliquen a los archivos binarios del modo de usuario. UMCI también habilita la seguridad de código dinámico de forma predeterminada. La aplicación de estas características puede introducir problemas de compatibilidad con aplicaciones y scripts y puede impedir que se ejecuten y tener un impacto en el rendimiento en el tiempo de inicio. Antes de implementar la mitigación, sigue las instrucciones para implementar la directiva de modo de auditoría para probar posibles problemas.
-
Bloqueo y desinstalación de actualizaciones de UEFI. Después de aplicar el bloqueo UEFI con la directiva de revocación firmada por Microsoft en un dispositivo, el dispositivo no se puede revertir (desinstalando las actualizaciones de Windows, usando un punto de restauración o por otros medios) si sigues aplicando el arranque seguro. Incluso volver a formatear el disco no quitará el bloqueo UEFI de la mitigación si ya se ha aplicado. Esto significa que si intentas revertir el sistema operativo Windows a un estado anterior que no tenga la mitigación aplicada, el dispositivo no se iniciará, no se mostrará ningún mensaje de error y UEFI procederá a la siguiente opción de arranque disponible. Esto podría dar lugar a un bucle de arranque. Debes deshabilitar arranque seguro para quitar el bloqueo UEFI. Tenga en cuenta todas las posibles implicaciones y realice pruebas exhaustivas antes de aplicar las revocaciones que se describen en este artículo al dispositivo.
-
Medios de arranque externo. Después de aplicar las mitigaciones de bloqueo ueFI a un dispositivo, los medios de arranque externo deben actualizarse con las últimas actualizaciones de Windows instaladas en el dispositivo y con la directiva de revocación firmada por Microsoft (SKUSiPolicy.p7b). Si el medio de arranque externo no está actualizado, es posible que el dispositivo no arranque desde ese medio. Consulta las instrucciones de la sección Actualizar medios de arranque externo antes de aplicar las mitigaciones. El medio de arranque que está actualizado con la directiva de revocación firmada por Microsoft solo debe usarse para arrancar dispositivos que ya tengan aplicada la mitigación. Si se usa con dispositivos sin la mitigación, el bloqueo UEFI se aplicará durante el inicio desde el medio de arranque. Se producirá un error al iniciarse posteriormente desde el disco a menos que el dispositivo se actualice con la mitigación o se quite el bloqueo UEFI.
-
Entorno de recuperación de Windows. El Entorno de recuperación de Windows (WinRE) del dispositivo debe actualizarse con las últimas actualizaciones de Windows instaladas en el dispositivo antes de que se aplique el SKUSipolicy.p7b al dispositivo. Si omites este paso, puede que WinRE no ejecutes la característica Restablecer PC. Para obtener más información, consulta Agregar un paquete de actualización a Windows RE.
-
Arranque del entorno de ejecución de arranque previo (PXE). Si la mitigación se implementa en un dispositivo e intentas usar el arranque PXE, el dispositivo no se iniciará a menos que las mitigaciones también se apliquen a los orígenes de arranque de red (raíz donde bootmgfw.efi está presente). Si un dispositivo se inicia desde un origen de arranque de red que tenga aplicada la mitigación, el bloqueo de la UEFI se aplicará al dispositivo y afectará a los inicios posteriores. No se recomienda implementar mitigaciones en orígenes de arranque de red a menos que todos los dispositivos del entorno tengan implementadas las mitigaciones.
Directrices de implementación de mitigación
Para solucionar los problemas descritos en este artículo, puedes implementar una directiva de revocación firmada por Microsoft (SkuSiPolicy.p7b). Esta mitigación solo es compatible con Windows 10, versión 1507 y versiones posteriores de Windows, y Windows Server 2016. Antes de implementar la directiva de revocación firmada por Microsoft (SkuSiPolicy.p7b), debes probar si hay problemas de compatibilidad mediante una directiva de modo auditoría.
Nota Si usas BitLocker, asegúrese de que se ha realizado una copia de seguridad de la clave de recuperación de BitLocker. Puedes ejecutar el siguiente comando desde un símbolo del sistema de administrador y anotar la contraseña numérica de 48 dígitos:
manage-bde -protectors -get %systemdrive%
Implementar una directiva de modo auditoría
La directiva de revocación firmada por Microsoft (SkuSiPolicy.p7b) exige la integridad de código de modo de usuario (UMCI) y la seguridad del código dinámica. Estas características pueden tener problemas de compatibilidad con las aplicaciones de los clientes. Antes de implementar la mitigación, debes implementar una directiva de auditoría para detectar problemas de compatibilidad.
Tienes dos opciones de directiva de auditoría:
-
Usar la directiva de auditoría SiPolicy.p7b proporcionada,
-
O bien, compilar su propia directiva de auditoría binaria a partir de un archivo XML proporcionado.
Te recomendamos que uses la directiva de auditoría binaria SiPolicy.p7b proporcionada, a menos que ya hayas implementado una directiva de Protección de aplicaciones de Windows Defender (WDAC) existente. La directiva de auditoría binaria proporcionada no tendrá bloqueo UEFI. Los medios de arranque externo y los medios de recuperación no necesitan actualizarse antes de aplicar la directiva de auditoría.
La integridad de código de Windows evaluará los binarios del modo kernel y del usuario en función de las reglas de la directiva de auditoría. Si la integridad del código identifica una aplicación o un script que infringe la directiva, se generará un evento de registro de eventos de Windows con información sobre la aplicación o script bloqueados e información sobre la directiva impuesta. Estos eventos se pueden usar para determinar si se están usando aplicaciones o scripts incompatibles en el dispositivo. Para obtener más información, consulta la sección de registros de evento de Windows.
La directiva de auditoría SiPolicy.p7b se incluye en la actualización de Windows publicada el 8 de octubre de 2024 o después para todos los sistemas operativos Windows compatibles de Windows 10, versión 1507, Windows 10 Enterprise 2016 y Windows Server 2016. Esta directiva de auditoría solo debe aplicarse a los dispositivos instalando la actualización de mantenimiento más reciente y, a continuación, sigue estos pasos:
-
Ejecuta el siguiente comando desde una indicación elevada de Windows PowerShell:
# Inicializar ubicación y destino de la directiva
$PolicyBinary = $env:windir+"\System32\SecureBootUpdates\VbsSI_Audit.p7b"
$DestinationBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"
# Copiar el binario de la directiva de auditoría
Copy-Item -Path $PolicyBinary -Destination $DestinationBinary -force
-
Reinicie el dispositivo.
-
Confirma que la directiva se carga en el Visor de eventos con la información de la sección Eventos de activación de directivas.
-
Prueba usando aplicaciones y scripts mientras se aplica la directiva para identificar problemas de compatibilidad.
Para desinstalar la directiva de auditoría SiPolicy.p7b, sigue estos pasos:
-
Ejecuta el siguiente comando desde una indicación elevada de Windows PowerShell:
# Inicializar ubicación de la directiva
$PolicyBinary = $env:windir+"\System32\CodeIntegrity\SiPolicy.p7b"
# Quitar SiPolicy.p7b
Remove-Item -Path $PolicyBinary -force
-
Reinicie el dispositivo.
-
Confirma que la directiva de auditoría no se carga en el Visor de eventos con la información de la sección Eventos de activación de directivas.
Si utilizas WDAC para administrar aplicaciones y controladores permitidos para ejecutarse en sus dispositivos, es posible que ya estés usando una directiva denominada "SiPolicy.p7b". Para todos los sistemas operativos Windows compatibles con Windows 10, versión 21H2 y versiones posteriores de Windows, y Windows Server 2022 y versiones posteriores de Windows Server, puedes usar el archivo XML proporcionado para crear e implementar una directiva de auditoría mediante el formato de varias directivas WDAC. Para obtener instrucciones sobre cómo crear e implementar el binario de directiva de auditoría, consulta Implementar directivas de Control de aplicaciones de Windows Defender (WDAC)..
Un archivo XML con las reglas de directiva de auditoría está disponible en dispositivos que tienen instalada la actualización de Windows publicada el 12 de noviembre de 2024 o después. El archivo XML se encuentra en "%systemroot%\schemas\CodeIntegrity\ExamplePolicies\VbsSI_Audit.xml".
Implementación de una directiva de revocación firmada por Microsoft (SkuSiPolicy.p7b)
La directiva de revocación firmada por Microsoft se incluye como parte de la actualización de Windows más reciente. Esta directiva solo debe aplicarse a los dispositivos instalando la actualización de mantenimiento más reciente y, a continuación, sigue estos pasos:
Nota: Si faltan actualizaciones, es posible que el dispositivo no se inicie con la mitigación aplicada o que la mitigación no funcione según lo esperado.
-
Ejecuta el siguiente comando en una indicación elevada de 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
-
Reinicie el dispositivo
-
Confirma que la directiva se carga en el Visor de eventos con la información de la sección Registros de eventos de Windows.
Notas
-
No debe quitar el archivo de revocación (directiva) SkuSiPolicy.p7b una vez implementado. Es posible que el dispositivo ya no pueda iniciarse si se quita el archivo.
-
Si el dispositivo no se inicia, consulta la sección Procedimiento de recuperación.
Actualización de medios de arranque externo
Para usar medios de arranque externo con un dispositivo que tenga aplicada una directiva de revocación firmada por Microsoft, el medio de arranque externo debe actualizarse con el archivo de directiva aplicado. Además, debe incluir las últimas actualizaciones de Windows instaladas en el dispositivo. Si el elemento multimedia no incluye las actualizaciones, no se iniciará.
El medio de arranque que está actualizado con la directiva de revocación firmada por Microsoft solo debe usarse para arrancar dispositivos que ya tengan aplicada la mitigación. Si se usa con dispositivos sin la mitigación, el bloqueo UEFI se aplicará durante el inicio desde el medio de arranque. Se producirá un error al iniciarse posteriormente desde el disco a menos que el dispositivo se actualice con la mitigación o se quite el bloqueo UEFI.
Importante Te recomendamos que crees una unidad de recuperación antes de continuar. Este medio se puede usar para reinstalar un dispositivo en caso de que haya un problema importante.
Usa los siguientes pasos para actualizar los medios de arranque externo:
-
Ve a un dispositivo donde se hayan instalado las actualizaciones de Windows publicadas el 12 de noviembre de 2024 o después.
-
Monta el medio de arranque externo como una letra de unidad. Por ejemplo, monte una unidad USB como D:.
-
Haz clic en Inicio, escribe Crear una unidad de recuperación en el cuadro de búsqueda y, a continuación, haz clic en Crear un panel de control de unidad de recuperación. Sigue las instrucciones para crear una unidad de recuperación mediante la unidad USB montada.
-
Con el medio recién creado montado, copia el archivo SkuSiPolicy.p7b en <MediaRoot>\EFI\Microsoft\Boot (por ejemplo, D:\EFI\Microsoft\Boot).
-
Quita de forma segura la unidad USB montada.
Si administra los medios instalables en su entorno con la guía de Actualizar los medios de instalación de Windows con la actualización dinámica, siga estos pasos:
-
Ve a un dispositivo donde se hayan instalado las actualizaciones de Windows publicadas el 12 de noviembre de 2024 o después.
-
Sigue los pasos de Actualizar los medios de instalación de Windows con Actualización dinámica para crear medios que tengan instaladas las actualizaciones de Windows publicadas el 12 de noviembre de 2024 o después.
-
Coloque el contenido del medio en una unidad flash USB y monte dicha unidad como una letra de unidad. Por ejemplo, monte la unidad USB como D:.
-
Copia SkuSiPolicy.p7b en <MediaRoot>\EFI\Microsoft\Boot (por ejemplo, D:\EFI\Microsoft\Boot).
-
Quita de forma segura la unidad USB montada.
Registros de eventos de Windows
Windows registra eventos cuando se cargan directivas de integridad de código, incluidas SkuSiPolicy.p7b, y cuando se impide que se cargue un archivo debido a la aplicación de directivas. Puedes usar estos eventos para comprobar que se ha aplicado la mitigación.
Los registros de integridad de código están disponibles en el Visor de eventos de Windows, en Registros de aplicaciones y servicios > Microsoft > Windows > CodeIntegrity > Operativo > Registros de aplicaciones y servicios > Registros de servicios > Microsoft > Windows > AppLocker > MSI y script.
Para obtener más información sobre los eventos de integridad de código, consulta la Guía operativa del Control de aplicaciones de Windows Defender.
Eventos de activación de directiva
Los eventos de activación de directivas están disponibles en el Visor de eventos de Windows, en registros de aplicaciones y servicios > Microsoft > Windows > CodeIntegrity > Operativo.
El evento CodeIntegrity 3099 indica que se ha cargado una directiva e incluye detalles sobre la directiva cargada. La información del evento incluye el nombre descriptivo de la directiva, un identificador único global (GUID) y un hash de la directiva. Habrá varios eventos de Evento de CodeIntegrity 3099 si hay varias directivas de integridad de código aplicadas al dispositivo.
Cuando se aplique la directiva de auditoría proporcionada, habrá un evento con la siguiente información:
-
PolicyNameBuffer: directiva de auditoría de seguridad basada en virtualización de Microsoft Windows
-
PolicyGUID – {a244370e-44c9-4c06-b551-f6016e563076}
-
PolicyHash – 98FC5872FD022C7DB400953053756A6E62A8F24E7BD8FE080C6525DFBCA38387
Cuando se aplica la directiva de revocación firmada por Microsoft (SkuSiPolicy.p7b), habrá un evento con la siguiente información (consulta la captura de pantalla del evento CodeIntegrity 3099 a continuación):
-
PolicyNameBuffer: directiva de SI de SKU de Microsoft Windows
-
PolicyGUID – {976d12c8-cb9f-4730-be52-54600843238e}
-
PolicyHash – 107E8FDD187C34CF8B8EA46A4EE99F0DB60F491650DC989DB71B4825DC73169D
Si ha aplicado la directiva de auditoría o la mitigación al dispositivo y al evento de CodeIntegrity 3099 para la directiva aplicada no está presente, la directiva no se aplica. Consulte las instrucciones de implementación para comprobar que la directiva se instaló correctamente.
Eventos de auditoría y bloqueo
Los eventos de auditoría y bloqueo de integridad de código están disponibles en el Visor de eventos de Windows en registros de aplicaciones y servicios > Microsoft > Windows > CodeIntegrity > Operativo > Registros de aplicación y servicios > Microsoft > Windows > AppLocker > MSI y Script.
La antigua ubicación de registro incluye eventos sobre el control de ejecutables, dll y controladores. La última ubicación de registro incluye eventos sobre el control de los instaladores MSI, scripts y objetos COM.
Evento de CodeIntegrity 3076 en el registro "CodeIntegrity – Operativo" es el evento de bloque principal para directivas de modo auditoría e indica que se habría bloqueado un archivo si se aplicara una directiva. Este evento incluye información sobre el archivo bloqueado y sobre la directiva impuesta. Para los archivos que la mitigación bloquearía, la información de directiva del evento 3077 coincidirá con la información de directiva de directiva de auditoría del evento 3099.
Evento de CodeIntegrity 3077 en el registro "CodeIntegrity – Operativo" indica que se ha bloqueado la carga de un ejecutable, .dll o controlador. Este evento incluye información sobre el archivo bloqueado y sobre la directiva impuesta. Para los archivos bloqueados por la mitigación, la información de directiva en el evento CodeIntegrity 3077 coincidirá con la información de directiva de SkuSiPolicy.p7b del evento CodeIntegrity 3099. El evento CodeIntegrity 3077 no estará presente si no hay ningún ejecutable, .dll o controladores que infrinjan la directiva de integridad de código en el dispositivo.
Para ver otros eventos de bloque y auditoría de integridad de código, consulte Información sobre los eventos de Control de aplicaciones.
Procedimiento de recuperación y eliminación de directivas
Si algo va mal después de aplicar la mitigación, puedes usar los siguientes pasos para quitar la mitigación:
-
Suspende BitLocker si está habilitado. Ejecuta el comando siguiente en la ventana del símbolo del sistema con privilegios elevados:
Manager-bde -protectors -disable c: -rebootcount 3
-
Desactiva el Arranque seguro desde el menú de UEFI BIOS.Deshabilitar el arranque seguro.
El procedimiento para desactivar el arranque seguro difiere entre los modelos y fabricantes de dispositivos. Para obtener ayuda sobre dónde desactivar el arranque seguro, consulta con la documentación del fabricante del dispositivo. Puedes encontrar más detalles en -
Quita la directiva SkuSiPolicy.p7b.
-
Inicia Windows normalmente e inicia sesión.
La directiva SkuSiPolicy.p7b debe quitarse de la siguiente ubicación:-
<Partición del sistema EFI>\Microsoft\Boot\SKUSiPolicy.p7b
-
-
Ejecuta el siguiente script desde una sesión con privilegios elevados de Windows PowerShell para limpiar la directiva de esas ubicaciones:
$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
-
-
Activa Arranque seguro desde BIOS.suspende la protección de BitLocker y, a continuación, activa el Arranque seguro desde el menú del BIOS de UEFI.
Consulta con la documentación del fabricante del dispositivo para localizar dónde activar el arranque seguro. Si has desactivado el arranque seguro en el paso 1 y la unidad está protegida por BitLocker, -
Activar BitLocker. Ejecuta el comando siguiente en la ventana del símbolo del sistema con privilegios elevados:
Manager-bde -protectors -enable c:
-
Reinicie el dispositivo