Un grupo de investigadores de la Universidad Libre de Ámsterdam ha descubierto una nueva ((CVE-2020-0543) en las estructuras microarchitecionales de los procesadores Intel, notable porque permite recuperar los resultados de ejecución de ciertas instrucciones llevadas a cabo en otro núcleo de CPU. Esta es la primera vulnerabilidad del mecanismo de ejecución especulativa de instrucciones que permite la filtración de datos entre núcleos individuales de CPU (previamente, las filtraciones estaban limitadas a diferentes hilos de un solo núcleo). Los investigadores han bautizado el problema como CROSSTalk, pero en la vulnerabilidad se menciona como SRBDS (Special Register Buffer Data Sampling).
La vulnerabilidad se relaciona con hace un año y se basa en la aplicación de métodos de análisis de canal lateral a datos en estructuras microarquitectónicas. de CROSSTalk es similar a la vulnerabilidad , pero se diferencia en la fuente de la filtración.
La nueva vulnerabilidad manipula la filtración de un búfer intermedio previamente no documentado, utilizado por todos los núcleos de la CPU.
es que algunas instrucciones del microprocesador, incluyendo RDRAND, RDSEED y SGX EGETKEY, se implementan utilizando una operación interna microarquitectónica SRR (Lecturas de Registros Especiales). En los procesadores afectados por la vulnerabilidad, los datos devueltos para SRR permanecen en un búfer intermedio común a todos los núcleos de la CPU, y luego se pasan a un búfer de llenado asociado a un núcleo físico específico de la CPU donde se inició la operación de lectura. A continuación, desde el búfer de llenado, el valor se copia en registros visibles para las aplicaciones.
El tamaño del búfer intermedio compartido corresponde a la línea de caché, que generalmente es mayor que el tamaño de los datos leídos, y diferentes operaciones de lectura afectan diferentes desplazamientos en el búfer. Dado que el búfer compartido se copia en el búfer de llenado en su totalidad, no solo se mueve la porción necesaria para la operación actual, sino también los datos que quedan de la ejecución de otras operaciones, incluidas las realizadas en otros núcleos de la CPU.
En caso de una organización exitosa del ataque, un usuario local autenticado en el sistema puede determinar el resultado de la ejecución de las instrucciones RDRAND, RDSEED y EGETKEY en un proceso ajeno o dentro de un enclave de Intel SGX, independientemente del núcleo de la CPU en el que se ejecute el código.
Los investigadores que descubrieron el problema un prototipo de exploit que demuestra la posibilidad de filtrar información sobre valores aleatorios obtenidos a través de las instrucciones RDRAND y RDSEED, para recuperar la clave privada ECDSA que se procesa en el enclave Intel SGX, después de realizar solo una operación de firma digital en el sistema.

El problema una amplia gama de procesadores Intel de escritorio, móviles y servidores, incluyendo Core i3, i5, i7, i9, m3, Celeron (series J, G y N), Atom (series C, E y X), Xeon (familias E3, E5, E7, W y D), Xeon Scalable, etc. Cabe destacar que Intel fue notificada sobre la vulnerabilidad en septiembre de 2018, y en julio de 2019 se proporcionó un prototipo de exploit que demostraba la filtración de datos entre núcleos de CPU, pero el desarrollo de una solución se prolongó debido a la complejidad de su implementación. La actualización de microcódigo propuesta hoy bloquea el problema cambiando el comportamiento de las instrucciones RDRAND, RDSEED y EGETKEY para la sobrescritura redundante de datos en un búfer compartido para evitar que se quede información residual. Además, se ha implementado una pausa en el acceso al búfer hasta que se completen las operaciones de lectura y sobrescritura del contenido.
Un efecto secundario de dicha protección es el aumento de la latencia en la ejecución de RDRAND, RDSEED y EGETKEY, y la reducción del ancho de banda al intentar ejecutar simultáneamente estas instrucciones 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 impactar negativamente en el rendimiento de algunas aplicaciones de servidor, por lo que el firmware incluye un mecanismo (RNGDS_MITG_DIS) para desactivar la protección de las instrucciones RDRAND y RDSEED que se ejecutan fuera del enclave Intel SGX.
Fuente: opennet.ru
