One (Thread) Can Keep a (PRNG) Secret, but not Two
Este artículo presenta el primer ataque criptanalítico que explota una condición de carrera en el PRNG del ID de fragmentación IPv6 del kernel XNU para predecir números de secuencia y permitir la suplantación de tráfico TCP y UDP fuera de la red, una vulnerabilidad ahora parcheada por Apple como CVE-2024-27823.
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
Imagina que estás enviando una carta grande e importante a un amigo. Debido a que la carta es demasiado grande para un solo sobre, la oficina de correos (la red) la divide en piezas más pequeñas, o fragmentos. Para asegurarse de que las piezas se vuelvan a unir en el orden correcto, cada pieza recibe un número de ticket único (llamado ID de Fragmento).
El documento que consultaste describe una forma ingeniosa en la que un hacker puede adivinar estos números de ticket por adelantado, lo que le permite reemplazar una pieza de tu carta por una falsa sin que tú o tu amigo se den cuenta.
Aquí está el desgido del ataque, explicado de forma sencilla:
1. La Máquina de Tickets Secreta (El PRNG)
Las computadoras de Apple (macOS e iOS) utilizan una "máquina de tickets" especial dentro de su cerebro (el kernel) para generar estos números de ticket aleatorios. Se supone que la máquina es impredecible, como lanzar un dado. Si los números son verdaderamente aleatorios, nadie puede adivinar el siguiente ticket.
Sin embargo, los investigadores encontraron un fallo en cómo funciona esta máquina cuando está ocupada.
2. El Problema de "Dos Personas, Una Máquina" (La Condición de Carrera)
Imagina un mostrador de tickets muy concurrido donde dos personas (dos hilos de ejecución de la computadora) intentan agarrar un ticket en el mismo milisegundo exacto.
- Normalmente: La máquina le da un ticket a la Persona A, y luego a la Persona B, uno diferente.
- El Error: Debido a que la máquina no es "segura para hilos" (no tiene un bloqueo para evitar que la gente agarre tickets al mismo tiempo), ambas personas podrían agarrar el mismo número inicial. Ambas ejecutan el cálculo, pero debido a que comenzaron con el mismo número y tomaron pasos ligeramente diferentes, terminan produciendo un patrón extraño.
El Patrón: Los investigadores descubrieron que, si provocas esta "carrera", la máquina produce una secuencia específica de números que se ve así: A, B, C, B.
Observa que B aparece dos veces, separado por C. Este "B-C-B" es la prueba irrefutable. Esto le dice al atacante: "¡Oye! ¡La máquina acaba de tener una condición de carrera! Ahora puedo ver cómo giran los engranjes internos de la máquina".
3. Descifrando el Código (Criptoanálisis)
Una vez que el atacante ve suficientes de estos patrones "B-C-B", puede realizar ingeniería inversa a la máquina.
- Piensa en la máquina como una caja fuerte de combinación. El patrón "B-C-B" le da al atacante una pista sobre la posición actual de los discos internos de la cerradura.
- Al recolectar suficientes de estas pistas, el atacante puede averiguar el estado interno completo de la máquina.
- Una vez que conoce el estado interno, puede predecir exactamente cuáles serán los próximos números de ticket.
4. El Intercambio (El Ataque)
Ahora que el atacante puede predecir los números de ticket, puede realizar un truco de "hombre en el medio" (man-in-the-middle), pero sin estar físicamente en medio.
- El Escenario: Estás enviando un archivo grande (como un respaldo de tu código) a un servidor. El archivo se divide en piezas.
- La Protección: La primera pieza del archivo contiene tu contraseña y firma (autenticación). El servidor revisa esta primera pieza para asegurarse de que eres quien dices ser.
- El Truco: El atacante espera a que llegue la primera pieza. Luego, utiliza su predicción para adivinar el número de ticket de la segunda pieza. Rápidamente envía una segunda pieza falsa con un mensaje malicioso (como un virus o un archivo modificado) que tiene el número de ticket correcto.
- El Resultado: El servidor recibe la primera pieza genuina (con la contraseña válida) y la segunda pieza falsa (con el virus). Las une, piensa que todo está bien y guarda el archivo infectado. El atacante evadió la verificación de seguridad porque la comprobación solo se realizó en la primera pieza.
Ejemplos del Mundo Real del Documento
Los investigadores probaron esto en dos cosas específicas:
- NFS (Sistema de Archivos de Red): Mostraron cómo un atacante podría cambiar un archivo que se está respaldando en un servidor. Por ejemplo, podrían inyectar un "Caballo de Troya" en un archivo de código estándar de la computadora. Cuando un desarrollador compile ese código más tarde, el virus se ejecutará.
- HTTP (Navegación Web): Mostraron cómo un atacante podría cambiar una solicitud web (como un inicio de sesión o el envío de un formulario) mientras viaja por la red.
Por qué esto es importante
- Es Nuevo: Es la primera vez que alguien utiliza una "condición de carrera" (un error de tiempo) para romper un generador de números aleatorios. Normalmente, las condiciones de carrera solo causan fallos en el sistema; aquí, se usaron para robar secretos.
- Es Práctico: El ataque funciona en dispositivos Apple reales (chips M1, M2, Macs Intel) ejecutando varias versiones de macOS e iOS.
- La Solución: Apple ya ha parcheado esto. Le asignaron el ID CVE-2024-27823. La solución consiste en hacer que la máquina de tickets sea "segura para hilos" (thread-safe), de modo que dos personas no puedan agarrar el número inicial al mismo tiempo.
En resumen: El documento muestra que si el generador de números aleatorios de una computadora se confunde por dos cosas sucediendo al mismo tiempo, un hacker puede usar esa confusión para predecir el futuro, intercambiar partes de tus datos y colar malware pasando por alto tus controles de seguridad.
¿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.