Skip to main content
Blog
Blog

Inversiones de bits por rayos cósmicos y el riesgo oculto a escala

Cuando un evento con probabilidad de uno en un millón resulta no ser tan raro. Cómo nuestra atmósfera convierte ceros en unos y cómo eso puede afectar a la seguridad.

Aug 08, 2025 6 min read
blog-cover-cosmic-ray-bit-flips

En 2013, el speedrunner competitivo de Super Mario 64 DOTA_Teabag estaba recorriendo Tick Tock Clock, un nivel tristemente célebre por castigar incluso a los mejores jugadores debido a una secuencia de saltos especialmente exigente. En medio de la partida, Mario de repente salió disparado hacia arriba a través del suelo, saltándose una sección completa del nivel y ahorrándole a DOTA_Teabag unos valiosos segundos.

Vídeo del incidente de inversión de bits en Super Mario 64

TTC Upwarp: Ceiling Warp vs Byte Change

La comunidad de speedrunning, que llevaba décadas jugando y diseccionando Super Mario 64, quedó atónita. Se ofreció una recompensa para reproducir el glitch; algunos speedrunners afirmaron que DOTA_Teabag había "sacudido el cartucho" (una técnica para provocar glitches de forma predecible en juegos de Nintendo 64 modificando ligeramente el ángulo del cartucho). El misterio se resolvió cuando el youtuber y reconocido cazador de glitches pannenkoek12 (traducido como 'Pancake12') descubrió que un único bit en la memoria de la Nintendo 64 era el responsable. La inversión de bit ocurrió en 0xC5837800, la dirección de memoria encargada de la posición vertical de Mario. El cambio en binario fue de 1100 0101 a 1100 0100, y por una casualidad extraordinaria, era exactamente el cambio necesario para teletransportar a Mario a una plataforma superior.

¿Qué causó todo esto? Todo apunta a una inversión de bit por rayo cósmico: un error aleatorio en chips informáticos provocado por una partícula de alta energía procedente del espacio que, en un momento concreto, afecta a un sistema.

¿Qué es una inversión de bit por rayo cósmico?

Una inversión de bit por rayo cósmico (también conocida como "single-event upset" o SEU) ocurre cuando una partícula ionizante procedente de un rayo cósmico del espacio impacta en una celda de memoria o transistor individual, invirtiendo un bit binario de 0 a 1, o de 1 a 0. Estas inversiones de bits pueden provocar un error transitorio que no deja daño físico en el hardware, pero sí puede alterar datos almacenados en memoria o en la lógica del sistema, modificando el comportamiento de las aplicaciones o incluso desactivando funciones de seguridad.

La speedrun de Super Mario 64 no es el único caso documentado de un evento cósmico con efectos en la Tierra. Durante las elecciones belgas de 2003, una candidata desconocida recibió exactamente 4.096 votos extra de la nada en las máquinas de votación electrónica del país. El error solo se detectó porque recibió más votos que el número total de votantes, lo que era matemáticamente imposible.

Tras la investigación, los investigadores concluyeron que un rayo cósmico había invertido un único bit en la posición 13 de la memoria de la máquina de votación, otorgándole a la candidata 4.096 votos adicionales [1]. En binario, cada bit duplica el valor, por lo que el bit en esa posición equivale a 2^12, es decir, exactamente 4.096.

Raro no significa imposible, especialmente a escala

Las inversiones de bits por rayos cósmicos son increíblemente raras a nivel de bit individual, pero no son imposibles. En 1996, investigadores de IBM estimaron que un ordenador de escritorio típico con 256 megabytes de RAM podría experimentar una inversión de bit inducida por rayos cósmicos aproximadamente una vez al mes. Avanzando hasta hoy, donde los sistemas modernos suelen funcionar con 16 gigabytes de RAM (¡62,5 veces más que en el estudio!), el riesgo escala en consecuencia. Combinado con los millones de rayos cósmicos que impactan en la Tierra cada segundo, es solo cuestión de tiempo que uno golpee el bit equivocado en el momento equivocado. Investigadores de la Universidad de Vanderbilt pudieron confirmarlo, afirmando en su investigación que una granja de routers de un proveedor de servicios de internet con 25 gigabytes de memoria podría experimentar una inversión de bit cada 17 horas [2].

La conclusión clave es que un evento "de uno en un millón" ocurrirá a diario si se realizan más de un millón de operaciones al día. En cside, analizamos aproximadamente más de 10 millones de scripts cada 24 horas en busca de comportamientos maliciosos. Aunque una inversión de bit tenga una probabilidad de uno en cien millones, operar a ese volumen convierte esas probabilidades aparentemente imposibles en algo perfectamente posible.

Si bien la memoria de grado empresarial puede estar protegida frente a las inversiones de bits por rayos cósmicos mediante la adopción de memoria con corrección de errores (ECC), capaz de detectar y corregir errores de un solo bit, el hardware de consumo generalmente no cuenta con esa protección. Es importante entender que "raro" en un mundo donde se producen millones de operaciones significa que es solo cuestión de tiempo.

Endurecimiento cósmico y resiliencia como principio de diseño

Dado que las inversiones de bits cósmicos son una cuestión de estadística, ¿cómo se pueden construir sistemas que anticipen lo inesperado? La respuesta está en diseñar para la tolerancia a fallos. Por ejemplo, las naves espaciales de la NASA ejecutan los cálculos críticos por triplicado: varios procesadores realizan la misma operación y, si uno discrepa debido a una inversión de bit, los otros dos lo anulan por mayoría. En la Tierra, la memoria ECC puede desempeñar un papel importante en la protección de routers, servidores e infraestructura en la nube frente a errores de un solo bit (¡e incluso detectar errores de dos bits en algunos casos!). Pero como todo, la memoria ECC tiene sus propias limitaciones. Normalmente no protege los registros de la CPU, la memoria de la GPU ni los búferes de red. Incluso en entornos empresariales equipados con memoria ECC, las inversiones de múltiples bits o los fallos a nivel lógico pueden pasar desapercibidos. Por eso es fundamental contar con una estrategia de resiliencia por capas. En cside, aplicamos la misma filosofía a la seguridad del lado del cliente. Aunque un script malformado o un exploit en un caso límite puedan ser raros de forma individual, analizar millones de archivos JavaScript a diario significa que, en conjunto, no lo son en absoluto.

En definitiva, las inversiones de bits por rayos cósmicos nos recuerdan que, a escala, trabajamos con probabilidades, no con certezas. Un evento de uno en un millón se vuelve inevitable cuando los sistemas procesan mil millones de operaciones a la vez. Ya sea que estés construyendo una base de datos, un sistema de votación o un proxy de navegador del lado del cliente, la lección es siempre la misma: planifica para todas las posibilidades. En el lado del cliente, la imprevisibilidad escala con el volumen. Por eso, tus sistemas deben construirse asumiendo que nada es inmune al fallo, y diseñarse para resistir incluso las anomalías más improbables, de escala cósmica.

Referencias:

[1] https://web.archive.org/web/20070927185155/http://wiki.ael.be/index.php/ElectronicVotingRandomSpontaneousBitInversionExplained

[2] https://www.independent.co.uk/news/science/subatomic-particles-cosmic-rays-computers-change-elections-planes-autopilot-a7584616.html

Jack LaFond
Security Researcher

I'm a security engineer + security researcher at cside.

Monitorea y Asegura tus Scripts de Terceros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comienza gratis, o prueba Business con una prueba de 14 días.

Interfaz del panel de cside mostrando monitoreo de scripts y análisis de seguridad
Related Articles
Reservar una demo