Semana de la seguridad 28: NetSpectre, ataque a canales de terceros a través de la red

Otra vez! Hace sólo dos semanas que hablamos sobre el nuevo ataque variantes Spectre utilizando el método de grabación especulativa. La noticia más importante de la semana pasada es nuevamente sobre la familia Spectre, y ahora es mucho más genial. Investigadores de la Universidad Técnica de Graz en Austria han encontrado una manera de recuperar datos de un canal de terceros de forma remota, de ahí el nombre del ataque.

Me gustaría decir que el ataque de NetSpectre no requiere la ejecución de ningún código en el sistema bajo ataque (a diferencia, por ejemplo, de un ataque basado en navegador en JavaScript), pero esto no es del todo cierto. En el contexto de NetSpectre, el "código" es el trabajo de rutina con otras computadoras a través de la red, que el atacante no controla directamente, pero puede afectarlo. La capacidad de detectar de forma remota las diferencias microscópicas entre los diferentes modos de funcionamiento del procesador es impresionante. Como es el caso con otros estudios de Spectre, el trabajo es (hasta ahora) teórico, y el nuevo ataque se caracteriza por una velocidad de extracción de datos increíblemente lenta: unidades de bits por minuto. Aquí se publica una revisión del nuevo ataque (en lenguaje humano), aunque aún es mejor leer el estudio original .


Antes de la publicación del estudio NetSpectre, el código JavaScript que normalmente se ejecutaba en un navegador generalmente se ofrecía como un ataque remoto indicativo en el motor de ejecución de código especulativo. Este método, según los autores del nuevo trabajo, proporcionó la posibilidad de una medición bastante precisa de los retrasos entre la solicitud y la recepción de datos. Como esto, en principio, ocurre en ataques del tipo Spectre (y ya hay muchos), la diferencia en el tiempo de respuesta nos permite reconstruir datos a los que el ejecutable no tiene acceso.

NetSpectre no requiere que un atacante ejecute directamente el código en el sistema de destino. En cambio, se usa el intercambio habitual de datos a través de la red, por ejemplo, descargando archivos del servidor atacado y transfiriendo paquetes de red individuales. Los investigadores crearon un diseño artificial a partir de un servidor vulnerable (en un ejemplo, era una computadora con un procesador Intel Core i5-6200U), en el software de red del cual había dos dispositivos. Los gadgets significan un cierto mecanismo que implementa ciertas propiedades que necesitamos, la parte del software de la vulnerabilidad. El "dispositivo de fuga" creó las condiciones para una solicitud especulativa de datos confidenciales más o menos estándar para ataques tipo Spectre al:


El término para el segundo dispositivo es un poco confuso. Naturalmente, el "gadget de transferencia" no es una vulnerabilidad que transfiere directamente los secretos de la memoria principal o el caché de la CPU al atacante, como ocurre en un ataque Heartbleed más simple (¡han pasado cuatro años, tienes que hacerlo!). El "gadget de transferencia" crea las condiciones en que un atacante puede analizar el retraso en la transmisión de datos a partir del cual se puede reconstruir la información necesaria.

Los investigadores han propuesto dos canales de fuga de datos de terceros para un ataque de NetSpectre. El primero repite casi por completo el mecanismo del Spectre original y utiliza el caché del procesador. El segundo no usa el caché en absoluto: en su lugar, se usa el bloque de cálculo de instrucciones del conjunto AVX2 . Dado que estas unidades se caracterizan por un alto consumo de energía, se apagan cuando no hay carga. Al recibir las instrucciones del conjunto, su inclusión se produce con un ligero retraso, que también se puede medir de forma remota. Este método es varias veces más rápido que las manipulaciones de caché "tradicionales": la reconstrucción de datos a través de la caché se realizó en una LAN gigabit a una velocidad de 4 bits por minuto, y con la ayuda de AVX2 ya era posible transferir 8 bytes por minuto.

¿Por qué tan lento? Puedes entender, por ejemplo, de esta imagen del estudio:


El ataque Specter original, realizado directamente en el sistema atacado, requiere medir el retraso en la respuesta del procesador a las instrucciones en el orden de milisegundos. También es bastante lento: el "robo de datos" es posible a velocidades de unos pocos kilobits por segundo. Cualquier cosa puede afectar el retraso en la transmisión de paquetes de red, por lo que NetSpectre se "congela", es decir, lleva a cabo un ataque exitoso, muchas veces seguidas para obtener el bit o byte requerido con alta confiabilidad de los valores promediados.

Así, se logra la exactitud razonable de ataque cuando cientos de miles y millones de mediciones. En cada uno de ellos, debe realizar una operación compleja, que incluye, por ejemplo, vaciar el caché descargando un archivo de 590 kilobytes de tamaño. Por cierto, los algoritmos de aprendizaje automático no se utilizaron en el procesamiento de datos: obviamente ayudarán a reducir la cantidad de mediciones necesarias para la reconstrucción precisa de datos. Cuando el atacante y la víctima no están en la misma red local, se necesitarán dichos algoritmos, de lo contrario se "transmitirá" un byte en 160 millones de mediciones (!) Durante 8 horas (3 horas utilizando el método AVX2).

Los investigadores llevaron a cabo el ataque con éxito utilizando computadoras y computadoras portátiles con procesadores Intel, dispositivos con procesadores centrales ARM Cortex A75, así como la Plataforma Google Cloud (entre dos máquinas virtuales). Una vez más, el ataque es completamente teórico. Para su implementación en condiciones reales, debe encontrar los "gadgets" apropiados en una versión específica del software (por ejemplo, el kernel de Linux) instalado en un servidor específico. Es necesario proporcionar condiciones para la interacción con el servidor, que no siempre son factibles. En particular, los investigadores indican directamente que cualquier medio de protección contra ataques DDoS prohibirá a un atacante casi instantáneamente, debido a la cantidad de solicitudes y la cantidad de datos transferidos. Incluso el modelo de procesador dentro de la línea es importante: para el Core i5 utilizado en el trabajo, con tres megabytes el caché funcionará, pero para algunos otros (con un tamaño de caché diferente), tal vez no.

¡Pero sigue siendo impresionante! Esto es abruptamente una especie de micrófonos "láser" que eliminan las vibraciones de las ventanas de la habitación. NetSpectre no introduce riesgos adicionales: Intel comentó sobre el hecho de que los métodos de mitigación de Spectre ya conocidos también funcionan para la encarnación de la red. Procederé de la velocidad de desarrollar nuevos métodos de ataque, y asumiré que los métodos más interesantes para robar datos a través de una ventana abierta aún están por venir. No importa cuánto cuestan mucho dinero para todos nosotros, en el contexto de una caída forzada de la productividad y la necesidad de costos de capital por parte de los proveedores.

Descargo de responsabilidad: las opiniones expresadas en este resumen pueden no coincidir siempre con la posición oficial de Kaspersky Lab. Los estimados editores generalmente recomiendan tratar cualquier opinión con escepticismo saludable.

Source: https://habr.com/ru/post/es418669/


All Articles