Nuevamente Intel en problemas, descubren una fuga de datos
Un grupo de investigadores de la Universidad de Illinois dieron a conocer hace poco que han desarrollado una nueva técnica de ataque de canal lateral que permite manipular la fuga de información a través de la interconexión en anillo de los procesadores Intel.
Los investigadores destacan que el ataque permite resaltar información sobre el uso de la memoria en otra aplicación y realizar un seguimiento de la información sobre los tiempos de pulsación de teclas. Los investigadores han publicado un conjunto de herramientas de medición complementario y varios prototipos de exploits.
Sobre este nuevo tipo de ataque se han propuesto tres exploits que permiten realizar lo siguiente::
- Recuperar bits individuales de claves de cifrado cuando utilice implementaciones de RSA y EdDSA que son vulnerables a ataques de canal lateral (si los retrasos en el cálculo dependen de los datos que se procesan). Por ejemplo, las fugas de bits individuales con información sobre el vector de inicialización (nonce) de EdDSA son suficientes para utilizar ataques para recuperar secuencialmente toda la clave privada. El ataque es difícil de implementar en la práctica y puede llevarse a cabo con un gran número de reservas. Por ejemplo, la operación exitosa se muestra deshabilitando SMT (HyperThreading) y segmentando la caché LLC entre los núcleos de la CPU.
- Definir parámetros sobre los retrasos entre pulsaciones de teclas. Los retrasos dependen de la posición de las teclas y permiten, a través del análisis estadístico, recrear los datos ingresados desde el teclado con cierta probabilidad (por ejemplo, la mayoría de las personas suelen escribir «s» después de «a» mucho más rápido que «g» después «s»).
- Organizar un canal de comunicación encubierto para transferir datos entre procesos a una velocidad de aproximadamente 4 megabits por segundo, que no utiliza memoria compartida, caché de procesador ni estructuras de procesador y recursos específicos de la CPU. Se observa que el método propuesto de crear un canal encubierto es muy difícil de bloquear por los métodos existentes de protección contra ataques a través de canales laterales.
Los investigadores también informan que los exploits no requieren privilegios elevados y pueden ser utilizados por usuarios habituales sin privilegios, además mencionan que el ataque se puede adaptar potencialmente para organizar la fuga de datos entre máquinas virtuales, pero este problema fue más allá del alcance de la investigación y no se llevaron a cabo las pruebas de los sistemas de virtualización.
El código propuesto se ha probado en una CPU Intel i7-9700 en un entorno Ubuntu 16.04. En general, el método de ataque se ha probado en procesadores de escritorio Intel Coffee Lake y Skylake, y es potencialmente aplicable a los procesadores de servidor Broadwell Xeon.
La tecnología Ring Interconnect apareció en procesadores basados en la microarquitectura Sandy Bridge y consta de varios buses de bucle invertido que se utilizan para conectar núcleos computacionales y gráficos, northbridge y caché. La esencia del método de ataque es que, debido a la limitación del ancho de banda del bus de anillo, las operaciones de memoria en un proceso retrasan el acceso a la memoria de otro proceso. Una vez determinados los detalles de implementación mediante ingeniería inversa, un atacante puede generar una carga que lleve a retrasos en el acceso a la memoria en otro proceso y utilizar los datos de retraso como un canal lateral para obtener información.
Los ataques a los buses internos de la CPU se ven obstaculizados por la falta de información sobre la arquitectura y los métodos de operación del bus, así como por el alto nivel de ruido que dificulta la extracción de datos útiles. Fue posible comprender los principios del bus a través de la ingeniería inversa de los protocolos utilizados al transferir datos a través del bus. Para separar la información útil del ruido, se aplicó un modelo de clasificación de datos basado en métodos de aprendizaje automático.
El modelo propuesto permitió organizar el seguimiento de los retrasos computacionales en un proceso específico, en condiciones en las que varios procesos acceden simultáneamente a la memoria y una parte de los datos se devuelve desde las cachés del procesador.
Finalmente, si quieres conocer más al respecto puedes consultar el siguiente documento.