Como activar Retpoline en Windows 10 (Spectre)
El año pasado salto la noticia de que los microprocesadores Intel y AMD se vieron afectado por una de las mayores vulneraciones de seguridad recordadas ya que lo millones de usuarios vieron como sus dispositivos se vieron afectados por los ya populares Spectre y Meltdown. Estas vulnerabilidades de hardware permiten a los programas robar datos que se procesan en tu ordenador.
Relacionado: Como evitar la vulnerabilidad Spectre en Google Chrome (Navegador Web)
Tras la primera vulnerabilidad, se conoció una segunda conocida como Spectre 2. Si bien este agujero de seguridad se soluciono rápidamente, lo cierto es que el rendimiento de los ordenadores se vio afectado muy negativamente. Para reducir el impacto de rendimiento fue lanzado Retpoline el cual reduce considerablemente la caída de rendimiento provocada por los parches anti-Spectre y anti-Meltdown.
Sin Retpoline la caída de rendimiento podría llegar hasta el 30%, sin embargo, tras la activación de Retpoline este porcentaje no debería ser de más de 1-2%.
Windows 10, tras las últimas actualizaciones, incorpora Retpoline de manera predeterminada. No obstante, los usuarios deberás activar esta función de manera manual para mitigar el impacto negativo de las soluciones para paliar la vulnerabilidad de Spectre y Meltdown.
Realmente, Retpoline es una técnica de modificación binaria desarrollada por Google. Retpoline se usa para protegerse contra la vulnerabilidad "Branch target injection", también conocida como "Spectre". Microsoft está desplegando esto en varias fases. Y debido a la complejidad de su implementación, los beneficios de rendimiento están disponibles a partir de Windows 10 v1809 o versiones posteriores. Para habilitar manualmente Retpoline en Windows, asegúrese de contar la actualización KB4482887.
A continuación os mostramos paso a paso como activar manualmente Retpoline en Windows 10:
Como activar Retpoline en Windows 10 (mejorar rendimiento del Micro-procesador)
A continuación, agregue las siguientes actualizaciones de configuración de registro:
Para usuarios de Windows 10:
- Abre el CMD (Símbolo del Sistema) Ejecutándolo como administrador.
- Una vez mostrada la interfaz negra del CMD deberás introducir y ejecutar los siguientes comandos:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400
- Pulsa Enter para ejecutar el comando y a continuación introduce el este segundo:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x400
- Vuelve a pulsar la tecla Enter para ejecutar este segundo comando para renglón seguido proceder al reinicio de tu ordenador y listo. A partir de ese momento, Retpoline estará activo y el rendimiento de tu ordenador mejorarás considerablemente.
Para usuarios servidores de Windows 10:
- Igualmente tendrás que abrir el CMD con derechos de administrador.
- Una vez que dentro del CMD deberás introducir y ejecutar los siguientes comandos en el siguiente orden:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400
y
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x401
- Tras ejecutar el segundo comando, deberás hacer cerrar el CMD y reiniciar tu ordenador para que las mejoras de rendimiento surtan efecto.
Cómo comprobar que Retpoline en Windows 10 está activado correctamente.
Para confirmar si Retpoline está activado y funcionando correctamente, puedes usar el comando Get-SpeculationControlSettings en PowerShell cmdlet.
- Primeramente tendrás que descargar el script para PowerShell desde el siguiente enlace: SpeculationControlSettings.
- Una vez descargado, deberás descomprimir el script y abre la herramienta PowerShell.
- Cuando esté abierto el PowerShell deberás ejecutar los siguientes comandos en el orden indicado:
PS C:\> Install-Module -Name SpeculationControl
PS> # Save the current execution policy so it can be reset
PS> $SaveExecutionPolicy = Get-ExecutionPolicy
PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser
PS> Import-Module SpeculationControl
PS> Get-SpeculationControlSettings
PS> # Reset the execution policy to the original state
PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
Tras la ejecución hará que PowerShell te muestre un mensaje similar o igual al siguiente:
PS C:\> Import-Module SpeculationControl
PS C:\> Get-SpeculationControlSettings
For more information about the output below, please refer to https://support.microsoft.com/en-in/help/4074629
Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: True
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID performance optimization is enabled: True [not required for security]
Speculation control settings for CVE-2018-3639 [speculative store bypass]
Hardware is vulnerable to speculative store bypass: True
Hardware support for speculative store bypass disable is present: False
Windows OS support for speculative store bypass disable is present: True
Windows OS support for speculative store bypass disable is enabled system-wide: False
Speculation control settings for CVE-2018-3620 [L1 terminal fault]
Hardware is vulnerable to L1 terminal fault: True
Windows OS support for L1 terminal fault mitigation is present: True
Windows OS support for L1 terminal fault mitigation is enabled: True
BTIHardwarePresent: True
BTIWindowsSupportPresent: True
BTIWindowsSupportEnabled: True
BTIDisabledBySystemPolicy: False
BTIDisabledByNoHardwareSupport: False
BTIKernelRetpolineEnabled: True
BTIKernelImportOptimizationEnabled: True
KVAShadowRequired: True
KVAShadowWindowsSupportPresent: True
KVAShadowWindowsSupportEnabled: True
KVAShadowPcidEnabled: True
SSBDWindowsSupportPresent: True
SSBDHardwareVulnerable: True
SSBDHardwarePresent: False
SSBDWindowsSupportEnabledSystemWide : False
L1TFHardwareVulnerable: True
L1TFWindowsSupportPresent: True
L1TFWindowsSupportEnabled: True
L1TFInvalidPteBit: 45
L1DFlushSupported: False
Este mensaje revela el estado de las mitigaciones configurables de Windows para varias vulnerabilidades del canal lateral de ejecución especulativa. Incluye la variante Spectre 2 y Meltdown.
Retpoline es una optimización del rendimiento para la variante Spectre 2. La clave es que requiere que tanto el hardware como el sistema operativo posean y tengan activa, la vulnerabilidad "Branch target injection" (Spectre). Debes tener en cuenta que Skylake y las generaciones posteriores de procesadores Intel no son compatibles con Retpoline. En estos casos solo tendrán habilitada la optimización de importación en estos modelos de procesadores.
En futuras actualizaciones, esta característica vendrá habilitada por defecto. Microsoft está trabajando en una solución que ya no requerirá Retpoline. La próxima generación de hardware debería poder arreglar eso, pero hasta entonces las actualizaciones solucionarán las vulnerabilidades.