Skip to main content
Blog
Blog

Kosmische straling, bitflips en het verborgen risico op schaal

Wanneer een kans van één op een miljoen toch niet zo zeldzaam blijkt te zijn. Hoe onze atmosfeer nullen en enen omzet en wat dat betekent voor beveiliging.

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

In 2013 was de competitieve Super Mario 64-speedrunner DOTA_Teabag bezig met Tick Tock Clock, een level dat berucht is omdat het zelfs de beste spelers genadeloos afstraft door een reeks lastige sprongen. Terwijl hij zijn weg zocht door het level, schoot Mario plotseling recht omhoog door de vloer, waarmee een heel gedeelte van het level werd overgeslagen en DOTA_Teabag kostbare seconden won.

Video over het Super Mario 64-bitflipincident

TTC Upwarp: Ceiling Warp vs Byte Change

De speedrunningcommunity, die al tientallen jaren Super Mario 64 speelt en tot op de bodem uitzoekt, stond versteld. Er werd een beloning uitgeloofd om de glitch te reproduceren; sommige speedrunners beweerden dat DOTA_Teabag de cartridge had "geschud" (een manier om een Nintendo 64-spel soms voorspelbaar te glitchen door de hoek van de gamecartridge licht te veranderen). Het mysterie werd opgelost toen YouTuber en gerenommeerd videogame-glitchjager pannenkoek12 ontdekte dat één enkele bit in het geheugen van de Nintendo 64 de oorzaak was. De bitflip vond plaats op 0xC5837800, het adres dat verantwoordelijk is voor Mario's verticale positie. De binaire waarde veranderde van 1100 0101 naar 1100 0100, en door buitengewoon geluk was dit precies de verandering die nodig was om Mario naar een hoger platform te teleporteren.

Wat veroorzaakte dit in de eerste plaats? Alle aanwijzingen wijzen op een kosmische-straling-bitflip: een willekeurige fout in computerchips, veroorzaakt door een hoogenergetisch deeltje uit de ruimte dat op precies het verkeerde moment een systeem raakt.

Wat is een kosmische-straling-bitflip?

Een kosmische-straling-bitflip (ook wel een "single-event upset" of SEU genoemd) treedt op wanneer een losgeslagen ioniserend deeltje van kosmische straling uit de ruimte een enkele geheugencel of transistor raakt en een binaire bit omzet van 0 naar 1, of van 1 naar 0. Deze bitflips kunnen een zachte fout veroorzaken die geen fysieke schade aan de hardware achterlaat, maar wel opgeslagen data in het geheugen of logica kan wijzigen, waardoor het gedrag van applicaties verandert of zelfs beveiligingsfuncties worden uitgeschakeld.

De Super Mario 64-speedrun is niet het enige gedocumenteerde geval waarbij een kosmische gebeurtenis gevolgen had op aarde. Tijdens de Belgische verkiezingen van 2003 ontving een onbekende kandidaat plotseling exact 4.096 extra stemmen op de elektronische stemmachines van het land, schijnbaar uit het niets. De fout werd alleen ontdekt omdat ze meer stemmen had ontvangen dan het aantal kiezers, wat wiskundig onmogelijk is.

Na onderzoek concludeerden onderzoekers dat een kosmische straal een enkele bit op positie 13 in het geheugen van de stemmachine had omgeklapt, waardoor de kandidaat 4.096 extra stemmen kreeg [1]. In binaire getallen verdubbelt elke bit de waarde, dus de bit op die positie werd berekend als 2^12 — ofwel precies 4.096.

Zeldzaam betekent niet onmogelijk, zeker niet op schaal

Kosmische-straling-bitflips zijn ongelooflijk zeldzaam per bit, maar ze zijn niet onmogelijk. In 1996 konden onderzoekers van IBM schatten dat een gemiddelde desktop met 256 megabyte RAM mogelijk één kosmisch-straling-geïnduceerde bitflip per maand kon ervaren. Spoel door naar vandaag, waar moderne systemen doorgaans draaien met 16 gigabyte RAM (62,5 keer meer dan in de studie!), en het risico schaalt dienovereenkomstig. Combineer dat met miljoenen kosmische stralen die elke seconde de aarde raken, en het is slechts een kwestie van tijd voordat er één de verkeerde bit op het verkeerde moment raakt. Onderzoekers aan de Vanderbilt University konden dit bevestigen en stelden in hun onderzoek dat een routerpark van een internetprovider met 25 gigabyte geheugen elke 17 uur een bitflip kan ervaren [2].

De kern van de zaak is dat een "één op een miljoen"-gebeurtenis dagelijks zal plaatsvinden als je dagelijks meer dan een miljoen dingen doet. Bij cside scannen we dagelijks ruwweg meer dan 10 miljoen scripts op kwaadaardig gedrag. Zelfs als een bitflipfout een kans van één op 100 miljoen heeft, betekent scannen op dat volume dat deze ogenschijnlijk onmogelijke kansen in werkelijkheid heel reëel zijn.

Hoewel geheugen van enterprise-kwaliteit door de adoptie van foutcorrigerend geheugen (ECC) mogelijk niet meer vatbaar is voor kosmische-straling-bitflips — ECC kan enkelbitsfouten vaak detecteren en corrigeren — is consumentenhardware doorgaans niet beschermd. Het is belangrijk te begrijpen dat 'zeldzaam' in een wereld waar miljoenen acties plaatsvinden simpelweg betekent dat het slechts een kwestie van tijd is.

Kosmische weerbaarheid en het omarmen van veerkracht

Gegeven dat kosmische bitflips een kwestie van statistiek zijn, hoe bouw je systemen die het onverwachte verwachten? Het antwoord ligt in het ontwerpen voor fouttolerantie. NASA-ruimtevaartuigen voeren kritieke berekeningen bijvoorbeeld drievoudig uit — meerdere processors voeren dezelfde operatie uit, en als één het er niet mee eens is door een losgeslagen bitflip, stemmen de andere twee het proces weg. Dichter bij huis kan ECC-geheugen een rol spelen bij het beschermen van routers, servers en cloudinfrastructuur tegen enkelbitsfouten (en soms zelfs tweebitsfouten detecteren!). Maar zoals alles heeft ECC-geheugen zijn eigen beperkingen. Het beschermt doorgaans niet het CPU-register, het GPU-geheugen of de netwerkbuffers. Zelfs in enterprise-omgevingen met ECC-geheugen kunnen meerbitsflips of fouten op logicniveau onopgemerkt blijven. Daarom is het essentieel om een gelaagde veerkrachtstrategie te hanteren. Bij cside passen we dezelfde filosofie toe op client-side beveiliging. Ook al is een misvormd script of een edge-case exploit individueel zeldzaam, het dagelijks scannen van miljoenen JavaScript-bestanden betekent dat ze in het geheel niet zeldzaam zijn.

Uiteindelijk herinneren kosmische-straling-bitflips ons eraan dat we op schaal met kansen te maken hebben — niet met zekerheden. Een kans van één op een miljoen wordt onvermijdelijk wanneer je systemen een miljard operaties tegelijk verwerken. Of je nu een database, een verkiezingssysteem of een client-side browserproxy bouwt, de les blijft dezelfde: plan voor alle mogelijkheden. Aan de client-side schaalt onvoorspelbaarheid met volume. Daarom moeten je systemen worden gebouwd vanuit de aanname dat niets immuun is voor falen, en ontworpen zijn om zelfs de meest onwaarschijnlijke, kosmische anomalieën te doorstaan.

Referenties:

[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.

Monitor en Beveilig Je Third-Party Scripts

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

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo