🔥Adquiere tu membresía:  acceso a todos los cursos, videos eliminados, contenidos protegidos, manuales y más. >> Ver Más

Las CPUs Intel son vulnerables a un nuevo ataque de canal lateral

Investigadores han descubierto un nuevo ataque de canal lateral que afecta a varias generaciones de CPUs Intel, lo que permite filtrar datos a través del registro EFLAGS.

El nuevo ataque fue descubierto por investigadores de la Universidad de Tsinghua, la Universidad de Maryland y un laboratorio de computación (BUPT) administrado por el Ministerio de Educación de China y es diferente a la mayoría de los otros ataques de canal lateral.

En lugar de confiar en el sistema de caché como muchos otros ataques de canal lateral, este nuevo ataque aprovecha una vulnerabilidad en la ejecución transitoria. En otras palabras, esto hace posible extraer datos secretos del espacio de la memoria del usuario a través del análisis de tiempo.

El ataque funciona como un canal secundario para Meltdown, una vulnerabilidad de seguridad crítica descubierta en 2018, que  afecta a muchos microprocesadores basados ​​en x86. 

Meltdown explota una función de optimización del rendimiento llamada “ejecución especulativa” para permitir a los atacantes eludir los mecanismos de aislamiento de la memoria. Esto para acceder a los secretos almacenados en la memoria del núcleo, como contraseñas, claves de cifrado y otros datos privados.

Meltdown se ha  mitigado en gran medida mediante parches de software, actualizaciones de microcódigos y rediseños de hardware. Sin embargo, ninguna solución ha abordado el problema al 100%, y el método de ataque más reciente podría funcionar incluso en sistemas con parches completos. Esto según las configuraciones de hardware, software y parches.

Ataque de temporización de ejecución transitoria

El nuevo ataque de canal lateral presentado en un  documento técnico publicado en Arxiv.org describe una falla en el cambio del registro EFLAGS en ejecución transitoria, que afecta el tiempo de las instrucciones JCC (jump on condition code).

El registro EFLAGS es un registro de la CPU que contiene varios indicadores relacionados con el estado del procesador, mientras que la instrucción JCC es una instrucción de la CPU que permite la bifurcación condicional basada en el contenido del registro EFLAGS.

El ataque se lleva a cabo en dos fases, la primera es activar la ejecución transitoria y codificar datos secretos a través del registro EFLAGS, y la segunda es medir el tiempo de ejecución de la instrucción KCC para decodificar los datos.

Resumen de ataques

Los datos experimentales mostraron que el ataque logró el 100 % de recuperación de datos (fuga) para Intel i7-6700 e Intel i7-7700 y tuvo cierto éxito contra la nueva CPU Intel i9-10980XE. El experimento se realizó en Ubuntu 22.04 jammy con kernel de Linux versión 5.15.0.

Pseudocódigo para cronometrar el ataque de ejecución transitoria

Sin embargo, los investigadores señalan que este ataque de sincronización no es tan confiable como los métodos de canal lateral de estado de caché. Asimismo, para obtener mejores resultados en chips recientes, el ataque tendría que repetirse miles de veces.

Mitigaciones

Los investigadores admiten que las causas fundamentales del ataque siguen siendo esquivas y plantean la hipótesis de que hay un búfer en la unidad de ejecución de la CPU de Intel. Este necesita tiempo para revertirse si se debe retirar la ejecución, un proceso que provoca un bloqueo si la instrucción subsiguiente depende en el objetivo del búfer.

Sin embargo, aún proponen algunas mitigaciones no triviales, como cambiar la implementación de la instrucción JCC para hacer imposible la medición de la ejecución contradictoria bajo cualquier condición, o reescribir el EFLAGS después de la ejecución transitoria para reducir su influencia sobre la instrucción JCC.

Deja un comentario

Adquiere tu Membresía Anual Wiser

Adquiere tu Membresía Anual Wiser y adquiere grandes beneficios

Más información