Vulnerabilidad en los procesadores Intel que conduce a la fuga de datos a través de canales de terceros

Un grupo de investigadores de universidades chinas y estadounidenses ha identificado una nueva vulnerabilidad en los procesadores de Intel que conduce a la fuga de información sobre el resultado de operaciones especulativas a través de canales de terceros, que puede utilizarse, por ejemplo, para organizar un canal de comunicación oculto. entre procesos o detectar fugas durante ataques Meltdown.

La esencia de la vulnerabilidad es que un cambio en el registro del procesador EFLAGS, que ocurrió como resultado de la ejecución especulativa de instrucciones, afecta el tiempo de ejecución posterior de las instrucciones JCC (salto cuando se cumplen las condiciones especificadas). Las operaciones especulativas no se completan y el resultado se descarta, pero el cambio de EFLAGS descartado se puede determinar analizando el tiempo de ejecución de las instrucciones JCC. Las operaciones de comparación previas al salto realizadas especulativamente, si la comparación es exitosa, dan como resultado un pequeño retraso que se puede medir y usar como una característica para hacer coincidir el contenido.

Vulnerabilidad en los procesadores Intel que conduce a la fuga de datos a través de canales de terceros

A diferencia de otros ataques similares a través de canales de terceros, el nuevo método no analiza el cambio en el tiempo de acceso a los datos en caché y no en caché y no requiere la etapa de restablecer el registro EFLAGS al estado inicial, lo que dificulta detectar y bloquear el ataque. A modo de demostración, los investigadores implementaron una variante del ataque Meltdown, utilizando en él un nuevo método para obtener información sobre el resultado de una operación especulativa. El funcionamiento del método para organizar la fuga de información durante un ataque Meltdown se ha demostrado con éxito en sistemas con CPU Intel Core i7-6700 e i7-7700 en un entorno con kernel Ubuntu 22.04 y Linux 5.15. En un sistema con una CPU Intel i9-10980XE, el ataque solo tuvo un éxito parcial.

La vulnerabilidad Meltdown se basa en que durante la ejecución especulativa de instrucciones, el procesador puede acceder a un área de datos privados y luego descartar el resultado, ya que los privilegios establecidos prohíben dicho acceso desde el proceso del usuario. En un programa, un bloque ejecutado especulativamente se separa del código principal mediante un salto condicional, que en condiciones reales siempre se activa, pero debido al hecho de que la instrucción condicional utiliza un valor calculado que el procesador no conoce durante el código preventivo. ejecución, todas las opciones de bifurcación se ejecutan especulativamente.

En la versión clásica de Meltdown, dado que se usa el mismo caché para operaciones ejecutadas especulativamente que para instrucciones normalmente ejecutadas, es posible durante la ejecución especulativa establecer marcadores en el caché que reflejen el contenido de bits individuales en un área de memoria cerrada, y luego en el código normalmente ejecutado para determinar su significado a través del análisis del tiempo de acceso a datos almacenados y no almacenados en caché. La nueva variante utiliza el cambio en el registro EFLAGS como marcador de una fuga. En la demostración de Covert Channel, un proceso moduló los datos que se enviaban para cambiar el contenido del registro EFLAGS y otro proceso analizó el cambio en el tiempo de ejecución de JCC para recrear los datos enviados por el primer proceso.

Fuente: opennet.ru

Añadir un comentario