Skip to main content
Blog
Blog

Les inversions de bits par rayons cosmiques et le risque caché à grande échelle

Quand un événement rare survenant une fois sur un million s'avère finalement bien moins rare que prévu. Comment notre atmosphère transforme des zéros en uns, et ce que cela implique pour la sécurité.

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

En bref : les inversions de bits par rayons cosmiques

  • Les rayons cosmiques provoquent des single-event upsets (SEU) qui inversent des bits en mémoire au rythme d'environ un par gigaoctet et par mois au niveau de la mer. À l'échelle planétaire, ce n'est pas une curiosité rare.
  • Parmi les incidents célèbres d'inversion de bit, on trouve un électeur belge crédité à tort de 4 096 voix supplémentaires (2003), et le skip « Upwarp » du speedrun Super Mario 64, causé par un seul bit inversé. Les deux sont cohérents avec la probabilité d'un SEU par rayon cosmique compte tenu de la durée d'exposition.
  • À l'échelle des applications web, les inversions de bits par rayons cosmiques figurent parmi les petites causes résiduelles de bugs non reproductibles. La mémoire ECC, le stockage avec somme de contrôle et la gestion idempotente des requêtes sont les mesures d'atténuation pratiques.

En 2013, le speedrunner compétitif de Super Mario 64 DOTA_Teabag traversait Tick Tock Clock, un niveau réputé pour punir même les meilleurs joueurs en raison d'une séquence de sauts particulièrement exigeante. En pleine traversée, Mario fut soudainement propulsé verticalement à travers le sol, contournant une section entière du niveau et faisant gagner à DOTA_Teabag de précieuses secondes.

Vidéo de l'incident d'inversion de bit dans Super Mario 64

TTC Upwarp: Ceiling Warp vs Byte Change

La communauté des speedrunners, qui jouait et décortiquait Super Mario 64 depuis des décennies, fut stupéfaite. Une prime fut proposée pour reproduire le glitch ; certains speedrunners affirmèrent que DOTA_Teabag avait « secoué la cartouche » (une méthode permettant parfois de provoquer de façon prévisible un glitch sur un jeu Nintendo 64 en modifiant légèrement l'angle de la cartouche). Le mystère fut résolu lorsque le YouTuber et chasseur de glitches vidéoludiques réputé pannenkoek12 (traduit « Pancake12 ») découvrit qu'un seul bit dans la mémoire de la Nintendo 64 en était la cause. L'inversion de bit s'était produite à l'adresse 0xC5837800, responsable de la position verticale de Mario. Le changement en binaire allait de 1100 0101 à 1100 0100, et par une chance extraordinaire, c'était exactement le changement nécessaire pour propulser Mario sur une plateforme plus haute.

Qu'est-ce qui a bien pu causer cela ? Tout indique une inversion de bit par rayon cosmique, une erreur aléatoire dans les puces informatiques provoquée par une particule à haute énergie venue de l'espace, qui se trouve affecter un système précisément au mauvais moment.

Illustration d'une inversion de bit par rayon cosmique frappant une puce mémoire d'ordinateur

Qu'est-ce qu'une inversion de bit par rayon cosmique ?

Une inversion de bit par rayon cosmique (également appelée « single-event upset », ou SEU) se produit lorsqu'une particule ionisante errante issue d'un rayon cosmique venu de l'espace frappe une cellule mémoire ou un transistor unique, faisant basculer un bit binaire de 0 à 1, ou de 1 à 0. Ces inversions de bits peuvent provoquer une erreur logicielle qui ne laisse aucun dommage physique sur le matériel, mais qui peut altérer les données stockées en mémoire ou la logique, modifiant ainsi le comportement des applications, voire désactivant des fonctionnalités de sécurité.

Le speedrun de Super Mario 64 n'est pas le seul cas documenté d'un événement cosmique ayant des effets sur Terre. Lors des élections belges de 2003, une candidate inconnue reçut exactement 4 096 votes supplémentaires, apparemment surgis de nulle part, sur les machines à voter électroniques du pays. L'erreur ne fut détectée que parce qu'elle avait obtenu plus de votes que le nombre total d'électeurs, ce qui était mathématiquement impossible.

Après enquête, les chercheurs conclurent qu'un rayon cosmique avait inversé un seul bit à la position 13 dans la mémoire de la machine à voter, accordant à la candidate 4 096 votes supplémentaires [1]. En binaire, chaque bit double la valeur, de sorte que le bit à cette position correspondait à 2^12, soit exactement 4 096.

Rare ne veut pas dire impossible, surtout à grande échelle

Ces inversions de bits par rayons cosmiques sont extrêmement rares à l'échelle d'un bit individuel, mais elles ne sont pas impossibles. En 1996, des chercheurs d'IBM estimèrent qu'un ordinateur de bureau classique équipé de 256 mégaoctets de RAM pouvait subir une inversion de bit induite par un rayon cosmique une fois par mois. Aujourd'hui, les systèmes modernes fonctionnent couramment avec 16 gigaoctets de RAM (62,5 fois plus que dans l'étude !), et le risque évolue en conséquence. Ajoutez à cela les millions de rayons cosmiques qui frappent la Terre chaque seconde, et ce n'est qu'une question de temps avant que l'un d'eux ne touche le mauvais bit au mauvais moment. Des chercheurs de l'Université Vanderbilt l'ont confirmé : leurs travaux ont montré qu'une ferme de routeurs d'un fournisseur d'accès à Internet disposant de 25 gigaoctets de mémoire pourrait subir une inversion de bit jusqu'à toutes les 17 heures [2].

Un événement « une fois sur un million » se produira quotidiennement si l'on effectue plus d'un million d'opérations par jour. Chez cside, nous analysons environ plus de 10 millions de scripts toutes les 24 heures à la recherche de comportements malveillants. Même si une inversion de bit a une probabilité d'une chance sur 100 millions, analyser à un tel volume signifie que ces probabilités a priori impossibles sont, en réalité, tout à fait possibles.

Bien que la mémoire de qualité professionnelle ne soit peut-être plus exposée aux inversions de bits par rayons cosmiques grâce à l'adoption de mémoires à correction d'erreurs (ECC), capables de détecter et souvent de corriger les erreurs sur un seul bit, le matériel grand public n'est généralement pas protégé. Dans un monde où des millions d'actions se produisent, « rare » signifie simplement que ce n'est qu'une question de temps.

Durcissement cosmique et adoption de la résilience

Étant donné que les inversions de bits cosmiques relèvent des statistiques, comment concevoir des systèmes capables d'anticiper l'inattendu ? La réponse réside dans l'ingénierie de la tolérance aux pannes. Par exemple, les engins spatiaux de la NASA exécutent les calculs critiques en triple exemplaire : plusieurs processeurs effectuent la même opération, et si l'un d'eux produit un résultat différent en raison d'une inversion de bit parasite, les deux autres l'emportent par vote majoritaire. Sur Terre, la mémoire ECC peut contribuer à protéger les routeurs, les serveurs et l'infrastructure cloud contre les erreurs sur un seul bit (et même parfois détecter des erreurs sur deux bits !). Mais comme tout, la mémoire ECC a ses propres limites. Elle ne protège généralement pas le registre du CPU, la mémoire GPU ou les tampons réseau. Même dans des environnements professionnels équipés de mémoire ECC, des inversions multi-bits ou des défauts au niveau logique peuvent passer inaperçus. C'est pourquoi une stratégie de résilience en couches est essentielle. Chez cside, nous appliquons la même philosophie à la sécurité côté client. Même si un script malformé ou un exploit en cas limite peut être rare pris individuellement, analyser des millions de fichiers JavaScript chaque jour signifie qu'ils ne sont pas rares dans l'ensemble.

À grande échelle, les inversions de bits par rayons cosmiques relèvent de la probabilité, non de la certitude. Un événement d'une chance sur un million devient inévitable dès lors qu'un système exécute des milliards d'opérations, que ce système soit une base de données, une machine à voter ou un navigateur côté client. Côté client, l'imprévisibilité croît avec le volume ; les systèmes de sécurité doivent donc partir du principe que quelque chose finira par échouer, et être conçus pour le détecter quand cela se produit.

Références :

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

Surveillez et sécurisez vos scripts tiers

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

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

Interface du tableau de bord cside affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration