CROSSTalk: una vulnerabilidad en las CPU Intel que provoca fuga de datos entre núcleos

Un equipo de investigadores de la Vrije Universiteit Amsterdam ha identificado una nueva vulnerabilidad (CVE-2020-0543) en las estructuras microarquitectónicas de los procesadores Intel, destacando porque permite restaurar los resultados de la ejecución de algunas instrucciones ejecutadas en otro núcleo de CPU. Esta es la primera vulnerabilidad en el mecanismo de ejecución de instrucciones especulativas que permite la fuga de datos entre núcleos de CPU individuales (anteriormente las filtraciones se limitaban a diferentes subprocesos del mismo núcleo). Los investigadores llamaron al problema CROSSTalk, pero documentos intel La vulnerabilidad se conoce como SRBDS (muestreo de datos de búfer de registro especial).

La vulnerabilidad se relaciona con presentado hace un año a la clase de problemas MDS (Microarchitectural Data Sampling) y se basa en la aplicación de métodos de análisis de canal lateral a datos en estructuras de microarquitectura. Principio de funcionamiento CROSSTalk está cerca de la vulnerabilidad RIDL, pero difiere en el origen de la fuga.
La nueva vulnerabilidad manipula la fuga de un búfer intermedio previamente no documentado que comparten todos los núcleos de la CPU.

CROSSTalk: una vulnerabilidad en las CPU Intel que provoca fuga de datos entre núcleos

La esencia del problema La razón es que algunas instrucciones del microprocesador, incluidas RDRAND, RDSEED y SGX EGETKEY, se implementan mediante la operación interna de microarquitectura SRR (lecturas de registros especiales). En los procesadores afectados, los datos devueltos por SRR se depositan en un búfer intermedio común a todos los núcleos de la CPU, después de lo cual se transfieren a un búfer de llenado asociado con el núcleo físico específico de la CPU en el que se inició la operación de lectura. A continuación, el valor del búfer de llenado se copia en registros visibles para las aplicaciones.

El tamaño del búfer compartido intermedio corresponde a la línea de caché, que generalmente es mayor que el tamaño de los datos que se leen, y diferentes lecturas afectan diferentes desplazamientos en el búfer. Dado que el búfer compartido se copia por completo en el búfer de relleno, no solo se mueve la parte necesaria para la operación actual, sino también los datos restantes de otras operaciones, incluidas las realizadas en otros núcleos de CPU.

CROSSTalk: una vulnerabilidad en las CPU Intel que provoca fuga de datos entre núcleos

CROSSTalk: una vulnerabilidad en las CPU Intel que provoca fuga de datos entre núcleos

Si el ataque tiene éxito, un usuario local autenticado en el sistema puede determinar el resultado de ejecutar las instrucciones RDRAND, RDSEED y EGETKEY en un proceso externo o dentro de un enclave Intel SGX, independientemente del núcleo de CPU en el que se ejecuta el código.
Investigadores que identificaron el problema. publicado Un prototipo de exploit que demuestra la capacidad de filtrar información sobre valores aleatorios obtenidos a través de las instrucciones RDRAND y RDSEED para recuperar una clave privada ECDSA procesada en el enclave Intel SGX después de realizar solo una operación de firma digital en el sistema.


problema susceptible una amplia gama de procesadores Intel de escritorio, móviles y de servidor, incluidos Core i3, i5, i7, i9, m3, Celeron (series J, G y N), Atom (series C, E y X), Xeon (E3, E5, familias E7, W y D), Xeon Scalable, etc. Cabe destacar que Intel fue notificada de la vulnerabilidad en septiembre de 2018, y en julio de 2019 se proporcionó un prototipo de exploit que demostraba la fuga de datos entre los núcleos de la CPU, pero el desarrollo de una solución se retrasó debido a la complejidad de su implementación. La actualización de microcódigo propuesta hoy aborda el problema cambiando el comportamiento de las instrucciones RDRAND, RDSEED y EGETKEY para sobrescribir datos en el búfer compartido para evitar que la información residual se asiente allí. Además, el acceso al búfer se pausa hasta que se lee y reescribe el contenido.

Un efecto secundario de este tipo de protección es una mayor latencia al ejecutar RDRAND, RDSEED y EGETKEY, y un rendimiento reducido al intentar ejecutar estas instrucciones simultáneamente en diferentes procesadores lógicos. La ejecución de RDRAND, RDSEED y EGETKEY también suspende el acceso a la memoria desde otros procesadores lógicos. Estas características pueden afectar negativamente el rendimiento de algunas aplicaciones de servidor, por lo que el firmware proporciona un mecanismo (RNGDS_MITG_DIS) para desactivar la protección de las instrucciones RDRAND y RDSEED ejecutadas fuera del enclave Intel SGX.

Fuente: opennet.ru

Añadir un comentario