Comprobaremos que en el servidor de nuestro laboratorio, la política de ejecución está configurada en
Unrestricted. Salvaremos la configuración de la política actual en una variable de entorno, y procederemos a modificar la configuración actual por
RemoteSigned.
La política de ejecución que necesitamos para el proceso de validación es
RemoteSigned, si ya la tenéis configurada en vuestro equipo podéis saltar los dos pasos siguientes.
Procederemos a salvar la configuración de la política actual en una variable de entorno, para no tener que recordar la política que teníamos asignada al finalizar la validación, y, acto seguido modificaremos la configuración por
RemoteSigned
Para guardar el valor a una variable de nuestro entorno escribiremos lo siguiente:
$SaveExecutionPolicy = Get-ExecutionPolicy
Para cambiar la política de ejecución de nuestro servidor usaremos el cmdlet
Set-ExecutionPolicy.
Set-ExecutionPolicy, nos permitirá definir qué
scripts de
Windows PowerShell se le permitirán ejecutar a nuestro servidor.
Windows PowerShell tiene cuatro políticas de ejecución diferentes:
- Restricted o Restringido: no se pueden ejecutar scripts.
- AllSigned: solo se pueden ejecutar scripts firmados por un editor de confianza.
- RemoteSigned: las secuencias de comandos descargadas deben estar firmadas por un editor de confianza antes de poder ejecutarlas.
- Unrestricted o Sin restricciones: sin restricciones; todos los scripts de Windows PowerShell se pueden ejecutar.
La construcción final del cmdled será la siguiente:
Set-ExecutionPolicy RemoteSigned -Scope Currentuser
Seguidamente, comprobaremos que nuestra política de ejecución ha cambiado usando nuevamente
Get-ExecutionPolicy. Si todo es correcto, cambiaremos nuestro directorio actual y nos dirigiremos al path al dónde hemos guardado el script de validación que hemos descargado de la página oficial de
Microsoft en los pasos anteriores.
Una vez nos encontremos en el directorio, importaremos el modulo, usando el cmdled que mostramos a continuación:
Import-Module .\SpeculationControl.psd1
En este momento, estaremos en disposición de ejecutar el comando que nos realizará la verificación de nuestro servidor.
Get-SpeculationControlSettings
El resultado de este script de
PowerShell tendrá el aspecto que podéis ver en la imagen.
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 optimization is enabled: True
Las protecciones habilitadas figuran en el resultado como
True. Si las tenemos el
False, como es el caso en nuestro laboratorio tendremos trabajo por delante a actualizar nuestro servidor.
Una vez terminado el trabajo no hemos de olvidar de devolver la política de ejecución de nuestro servidor a su estado original.
Podemos usar la variable de entorno que hemos creado en los pasos anteriores:
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
O simplemente construir el comando del modo siguiente:
Set-ExecutionPolicy Unrestricted -Scope Currentuser
Espero os sea de utilidad.