En la actualidad, han aparecido una nueva clase de vulnerabilidades que se conocen como ataques de ejecución especulativa al canal lateral, y que afectan a toda la industria de microprocesadores y sistemas operativos modernos.
Esta vulnerabilidad afecta a sistemas operativos, como pueden ser Microsoft Windows, Android, iOS, MacOS y a los procesadores de las marcas Intel, AMD y ARM.
Una ejecución especulativa es una forma de optimizar, en la que un sistema informático lleva a cabo una tarea antes de saber si realmente será necesaria o no. Esto lo hace con la intención de evitar el tiempo de espera que supondría realizar la tarea después de saber que es realmente necesaria.
Recientemente ha sido identificada una vulnerabilidad en ciertos métodos de análisis de software que cuando se usan de forma maliciosa, podrían llegar a ejecutar tareas en nuestro equipo sin mostrar ningún indicio y recopilar nuestra información confidencial de manera no autorizada. Esta vulnerabilidad, a menudo es conocida como Side-Channel Analysis Method, Spectre o Meltdown.
Información de la vulnerabilidad publicada por distintos fabricantes de hardware.
- Intel: Speculative Execution and Indirect Branch Prediction Side Channel Analysis Method.
- Intel Responds to Security Research Findings.
- AMD: An Update on AMD Processor Security
- ARM: Arm Processor Security Update
Para solucionar el problema, lo primero que tenemos que hacer será actualizar el firmware de nuestro hardware. A continuación, encontrareis los enlaces a los firmware de todos los equipos de la marca Hewlett Packard, Lenovo, DELL/EMC, Fujitsu y Huawei afectados a día de hoy, no obstante, el trabajo es continuo y no está concluido por lo que la afectación de otros productos y/o nuevas soluciones pueden ir apareciendo publicadas de forma adicional en un futuro. Os aconsejo ir consultando los enlaces si vuestro equipo no figura en los listados a día de hoy.
Estaciones de trabajo Hewlett Packard.
Servidores Hewlett Packard.
- Hewlett Packard Enterprise Product Security Vulnerability Alerts - Side Channel Analysis Method allows information disclosure in Microprocessors (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754)
- HPE Security Bulletin (actualizado regularmente) - HPESBHF03805 - Certain HPE products using Microprocessors from Intel, AMD, and ARM, with Speculative Execution, Elevation of Privilege and Information Disclosure
- HPE vulnerability website (actualizado regularmente) - HPE Product Security Vulnerability Alerts
Servidores Fujitsu.
Servidores Huawei.
Servidores y Estaciones de trabajo Lenovo.
Dell
Una vez actualizado el Hardware de nuestro equipo, deberemos instalar todas las actualizaciones del Sistema operativo
Servidores Huawei.
Servidores y Estaciones de trabajo Lenovo.
Dell
- Meltdown and Spectre Impact on Dell Data Security.
- Ataques de canal lateral a microprocesadores (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754): impacto en los productos de Dell.
- Microprocessor Side-Channel Vulnerabilities (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754): Impact on Dell EMC products (Dell Enterprise Servers, Storage and Networking)
Una vez actualizado el Hardware de nuestro equipo, deberemos instalar todas las actualizaciones del Sistema operativo
- Microsoft: Windows Server guidance to protect against the speculative execution side-channel vulnerabilities
- Vmware: VMware ESXi, Workstation and Fusion updates address side-channel analysis due to speculative execution
- Suse: SUSE Addresses Meltdown and Spectre Vulnerabilities
- RedHat: Kernel Side-Channel Attacks
En el caso de sistemas operativos Windows tendremos que aplicar todas las actualizaciones disponibles de sistema operativo, incluidas en las actualizaciones de seguridad de Microsoft Windows de enero de 2018.
Podremos consultar el Microsoft Security Advisory ADV180002 para obtener actualizaciones de Windows necesarias.
Pero, en primer lugar deberemos verificar si nuestro equipo está afectado o no por la vulnerabilidad. Descargaremos, de la página oficial de Microsoft el script que nos permitirá realizar la validación del canal lateral de ejecución especulativa.
Una vez descargado el archivo, lo descomprimiremos en una carpeta local del disco duro de nuestro servidor, en el enlace que encontrareis a continuación podréis descargar el script que necesitamos.
Una vez descargado el archivo, lo descomprimiremos en una carpeta local del disco duro de nuestro servidor, en el enlace que encontrareis a continuación podréis descargar el script que necesitamos.
También, podéis acceder al canal de YouTube de Pantallazos.es, donde encontrareis un vídeo tutorial en el realizamos la comprobación del canal lateral de ejecución especulativa en un servidor Microsoft Windows 2012 R2.
Podéis acceder y suscribiros al canal de Youtube de Pantallazos.es en el enlace que mostramos a continuación:
Seguidamente, abriremos una nueva ventana de PowerShell con permisos administrativos. Una vez nos encontremos en la ventana de PowerShell, ejecutaremos el comando Get-ExecutionPolicy para saber que política de ejecución tiene actualmente nuestro servidor asignada.
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:
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.
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
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.
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.
Enlaces relacionados
Desinstalar Licencias de Terminal ServicesWindows 2012 R2: Instalación de servicios de escritorio remoto (Quick Start). Parte 1
No se puede instalar Hyper-V: ya hay un hipervisor en ejecución.
Windows 2012: Activar Servicio de DHCP.
Windows 2012: Instalar Servicio de DHCP.
Terminal Services: Instalar las licencias CAL.
Windows 2012:Configurar Servicio de DHCP. - Parte 1
No hay comentarios:
Publicar un comentario