Remote-Timer-as-a-Service: Efficient Microarchitectural Leakage in the Cloud with Remote Timers
Este artículo demuestra que las contramedidas existentes de Cloudflare Workers contra los ataques Spectre, incluyendo el Aislamiento Dinámico de Procesos (DyPrIs), son insuficientes contra la filtración microarquitectónica remota, ya que los autores explotaron con éxito temporizadores remotos y técnicas de amplificación para exfiltrar un token JWT a velocidades significativamente mayores, lo que impulsó a Cloudflare a implementar aislamiento de memoria asistido por hardware y sandboxing de V8 para mitigar la vulnerabilidad.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
En el panorama digital moderno, una gran cantidad de nuestra actividad en línea no ocurre en distantes centros de datos centralizados, sino en servidores ubicados mucho más cerca de nosotros. Este enfoque, conocido como computación de borde (edge computing), permite que los sitios web y las aplicaciones respondan casi instantáneamente al procesar los datos cerca de su origen. Para hacer posible esta velocidad, empresas como Cloudflare ejecutan miles de programas de clientes diferentes en la misma computadora física al mismo tiempo. Lo hacen compartiendo un único entorno de software grande, en lugar de dar a cada cliente su propia computadora aislada. Este diseño es increíblemente eficiente, pero crea una vulnerabilidad única. Si un programa puede espiar la memoria de otro, podría robar información sensible como contraseñas o claves secretas. Durante años, los expertos en seguridad han temido un tipo específico de truco llamado ataque Spectre, donde un programa utiliza retrasos diminutos e invisibles en cómo una computadora procesa la información para adivinar qué datos tiene otro programa.
Investigadores de Cloudflare y la Universidad de Edimburgo demostraron recientemente que este riesgo teórico es un peligro práctico y muy real. Demostraron que, incluso con las estrictas reglas de seguridad que Cloudflare había implementado para detener tales trucos, un programa malicioso aún podría escuchar el tiempo de los eventos a través de internet para robar secretos. El equipo demostró que, mediante el uso de una combinación ingeniosa de técnicas, un atacante podía medir el tiempo con la suficiente precisión para eludir las defensas del sistema. Lograron extraer exitosamente un token digital secreto de un programa víctima que se ejecutaba en la misma máquina, haciéndolo cientos de veces más rápido que cualquier intento previo. Este descubrimiento obligó a la empresa a reformar su arquitectura de seguridad, pasando de advertencias basadas en software a barreras reforzadas por hardware para proteger a sus usuarios.
La historia comienza con cómo se construyen estas computadoras de borde. Para manejar millones de solicitudes cada segundo, Cloudflare ejecuta muchos scripts de clientes diferentes dentro de un único proceso, que es un contenedor grande que alberga todos los programas activos. Esto es diferente de los sistemas más antiguos donde cada programa corría en su propia caja separada. Aunque este enfoque compartido hace que todo funcione más rápido, significa que si un script encuentra la manera de leer la memoria de su vecino, puede ver todo lo que ese vecino está haciendo. Para prevenir esto, Cloudflare había introducido varias medidas de seguridad. Congelaron los relojes que los programas podían leer, impidiendo que midieran el tiempo con precisión. También eliminaron la capacidad de que los programas compartieran memoria o ejecutaran múltiples hilos a la vez. Además, instalaron un sistema de vigilancia llamado Aislamiento de Procesos Dinámico, que monitorea cómo se comporta un script. Si un script comienza a actuar de manera sospechosa, como intentar medir el tiempo con demasiada frecuencia, el sistema lo expulsa del proceso compartido y lo coloca en su propia caja aislada.
Los investigadores se propusieron probar si estas defensas eran realmente suficientes. Comenzaron abordando el problema del tiempo. Dado que el sistema congelaba los relojes durante el trabajo normal, los atacantes necesitaban una forma de medir el tiempo desde el exterior. Descubrieron que podían usar una característica llamada WebSockets, que permite a un programa mantener una conexión duradera con un servidor. Al enviar mensajes de ida y vuelta a través de esta conexión, podían crear un temporizador remoto que funcionaba incluso mientras el programa principal estaba ocupado. Probaron esto en el entorno de producción real, no solo en un laboratorio, y descubrieron que podían medir el tiempo con una resolución de aproximadamente un milisegundo. Aunque esto pueda sonar lento, era suficiente para iniciar el ataque.
El siguiente desafío era hacer que la señal fuera lo suficientemente fuerte como para escucharse sobre el ruido de la internet congestionada. Un solo bit de información secreta podría causar un retraso de solo unos pocos nanosegundos, lo cual es demasiado pequeño para medirlo con su temporizador remoto. El equipo utilizó una técnica llamada amplificación. Imagine intentar escuchar un susurro en una habitación ruidosa; usted podría pedirle a la persona que susurre lo mismo una y otra vez, o podría usar un dispositivo que haga que el sonido haga eco. Los investigadores construyeron un artefacto que repetía el diminuto retraso miles de veces, acumulando el efecto hasta que el retraso total creciera a unos pocos milisegundos. Esto hizo que la diferencia entre una respuesta de "sí" y una de "no" fuera lo suficientemente grande como para ser detectada por su temporizador remoto, incluso con el jitter y el ruido de una red del mundo real.
Con un temporizador confiable y una forma de amplificar la señal, el equipo se centró en el robo real de datos. Necesitaban una forma de engañar a la computadora para que revelara un secreto sin que la computadora se diera cuenta de que estaba sucediendo. Utilizaron un método llamado ejecución especulativa, donde la computadora adivina qué debe hacer a continuación y comienza a trabajar en ello antes de estar segura de que es correcto. Si la suposición es errónea, la computadora usualmente desecha el trabajo. Sin embargo, los investigadores descubrieron una forma de hacer que la computadora dejara un rastro de ese trabajo en su caché, un área de memoria pequeña y rápida. Al organizar cuidadosamente su código, podían forzar a la computadora a suponer que debía leer una pieza específica de datos secretos. Aunque la computadora luego se diera cuenta de que se había equivocado y detuviera la acción, el acto de leer los datos dejaba una marca en la caché que tardaba más en accederse después. Al medir cuánto tiempo tomaba acceder a ese punto, podían saber si los datos secretos habían sido leídos.
Los investigadores combinaron estos elementos en una cadena de ataque completa. Primero, utilizaron una característica especial del sistema de Cloudflare llamada Objetos Durables para mantener su script malicioso ejecutándose durante horas sin ser detenido, eludiendo los límites de tiempo habituales. Esto les permitió permanecer en el mismo proceso compartido que su víctima. Luego, utilizaron sus artefactos de temporizador remoto y de amplificación para filtrar la dirección de memoria de los datos de la víctima. Una vez que supieron dónde estaban los datos, utilizaron un segundo artefacto para leer el secreto real, que en su prueba fue un token digital utilizado para la autenticación. Repitieron este proceso bit a bit, reconstruyendo el secreto completo.
Los resultados fueron impactantes. En el entorno de producción real, el equipo pudo robar datos a una tasa de hasta 12 bits por segundo. Este es un aumento masivo sobre los intentos previos, que lograban apenas unos 120 bits por hora. El ataque fue preciso, identificando correctamente los bits secretos más del 99 por ciento de las veces. Crucialmente, el ataque tuvo éxito al evadir el sistema de vigilancia. Los investigadores descubrieron que la forma en que usaron el temporizador remoto y la conexión de larga duración confundió al sistema de detección. El sistema observaba con qué frecuencia el script accedía a ciertos contadores internos para decidir si era malicioso, pero la sincronización de su ataque hizo que esos contadores parecieran normales. Debido a que el script nunca terminaba su tarea mientras estaba en ejecución, el sistema nunca tuvo la oportunidad de aislarlo antes de que se robara la información.
Este descubrimiento puso de relieve una falla fundamental en confiar únicamente en el software para detener trucos a nivel de hardware. Las medidas de seguridad que Cloudflare tenía implementadas, como congelar los relojes y monitorear el comportamiento, no fueron suficientes para detener a un atacante decidido con las herramientas adecuadas. En respuesta a esta demostración, Cloudflare implementó una serie de nuevas defensas. Introdujeron un sandbox que limita cómo los programas pueden acceder a la memoria, colocando efectivamente una cerca alrededor de los datos para que, incluso si un programa intenta mirar fuera de su propia área, no pueda alcanzar los secretos del vecino. También mejoraron sus métodos de detección para buscar los patrones específicos del ataque en lugar de solo comportamientos generales. Finalmente, y quizás lo más importante, desplegaron un sistema de aislamiento basado en hardware. Este sistema utiliza las propias capacidades físicas de la computadora para encerrar los datos de cada cliente en una habitación separada, asegurando que incluso si un programa intenta entrar, el hardware mismo bloqueará el intento.
El trabajo sirve como un poderoso recordatorio de que, en el mundo de la computación de alta velocidad, la eficiencia y la seguridad suelen estar en tensión. Al empujar los límites de qué tan rápidos y flexibles pueden ser estos sistemas, nuevas vulnerabilidades aparecen inevitablemente. Los investigadores no solo encontraron un error; demostraron que toda la estrategia de proteger sistemas compartidos con verificaciones de software era insuficiente contra ataques modernos y sofisticados. La solución requirió un cambio hacia límites reforzados por hardware, demostrando que, a veces, la única forma de mantener seguros los secretos es construir muros que el software no pueda escalar. Este estudio confirma que, si bien la computación de borde ofrece una velocidad y conveniencia increíbles, demanda un nivel superior de seguridad física para proteger la vasta cantidad de datos sensibles que fluyen a través de ella cada segundo.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.