Tambouille nucléaire
L’usine de Natanz produisait de l’uranium faiblement enrichi, le combustible radioactif dont dépendent la plupart des réacteurs nucléaires du monde. Pour obtenir ce matériau contenant 3 à 5% d’uranium 235 (235U), elle utilisait la méthode de l’ultracentrifugation. Ce procédé commence par l’extraction de minerai d’uranium dans des mines. Ces cailloux d’apparence parfois banale, parfois douteuse contiennent plus de roches sans intérêt que d’uranium naturel. Ils subissent donc un traitement chimique au terme duquel les molécules radioactives sont isolées sous la forme d’une poudre jaune vif appelée yellowcake. Une nouvelle réaction chimique permettra de convertir le yellowcake en hexafluorure d’uranium (UF6), une substance aux propriétés physiques arrangeantes : il suffit en effet de légers changements de température et de pression pour la faire passer d’un état à l’autre.
L’UF6 est la matière première de la méthode d’ultracentrifugation. Transformé en gaz, ce produit hautement toxique et radioactif est injecté dans des cylindres de métal sous vide, les centrifugeuses, qui vont l’entraîner dans une rotation effrénée : plusieurs dizaine de milliers de tours par minute, aux limites et parfois au-delà de la vitesse du son. Sous l’effet de la force centrifuge, les différentes molécules qui composent l’hexafluorure d’uranium vont alors se séparer selon leur masse : l’uranium 235 tant recherché se concentre au cœur de la machine tandis que les molécules de moindre intérêt, plus lourdes, migrent vers les parois. Au terme du cycle de production, ces vapeurs respectivement désignées comme « enrichies » et « appauvries » en uranium sont extraites de la centrifugeuse.
« Malheureusement pour les spécialistes du nucléaire locaux et heureusement pour les développeurs de Stuxnet, ce procédé souffrait de nombreuses faiblesses »
Pour obtenir de l’uranium suffisamment enrichi dans des délais intéressants, l’usine de Natanz utilisait un système de cascade : ses quelques 5 000 centrifugeuses étaient organisées en chaînes de quinze machines interconnectées par des valves. L’UF6 était injecté dans la centrifugeuse numéro dix, qui envoyait son gaz enrichi vers la machine suivante et son gaz appauvri vers la machine précédente, et ainsi de suite. Une extrémité de la chaîne rejetait donc un composé aux concentrations d’uranium 235 satisfaisantes, tandis que l’autre extrémité recrachait un composé fortement appauvri. L’usine produisait ainsi 350 kilogrammes de combustible à 3,5% de 235U par mois. Malheureusement pour les spécialistes du nucléaire locaux et heureusement pour les développeurs de Stuxnet, ce procédé souffrait de nombreuses faiblesses.
De bric et de broc
Premier problème : les centrifugeuses de Natanz étaient peu fiables. Ces machines connues sous le nom de IR-1 avaient été conçues par imitation des plans de la P-1, un modèle de centrifugeuse fourni illégalement au Pakistan par le trafiquant international de matériel nucléaire Abdul Qadeer Khan. Les P-1 étaient elles-mêmes basées sur un vieux modèle de centrifugeuse allemand réputé pour sa fragilité. Signalons en passant que le Pakistan a fourni des informations critiques sur la production d’uranium faiblement enrichi à l’aide de cascades de centrifugeuses P-1 à la Corée du Nord.
Deuxième problème : les ingénieurs locaux maîtrisaient mal les centrifugeuses. Au début du programme nucléaire iranien, des techniciens ont installé plusieurs de ces machines délicates sans porter de gants. Les grappes de microbes déposées par leur peau sur le métal ont suffi à déséquilibrer les IR-1 au point de causer leur destruction. En 2006, le responsable de l’Organisation de l’énergie atomique iranienne de l’époque a déclaré au cours d’un entretien télévisé : « Quand nous disons qu’une machine est détruite, nous voulons dire qu’elle est réduite en poudre. » Dans sa confession, Abdul Qadeer Khan lui-même indique : « Le fait que les Iraniens n’aient pas obtenu le moindre progrès en quinze ans montre la complexité et la profondeur de l’expertise technique requise pour maîtriser cette technologie. »
« En 2007, il aurait fallu déployer de formidables efforts d’analyse pour comprendre Stuxnet »
Troisième problème, sans doute le plus important : en dépit de la sensibilité de leur mission, les machines et les hommes dont dépendait l’usine de Natanz souffraient de carences gravissimes dans le domaine de la cybersécurité. Selon le groupe Langner, l’équipe informatique locale ne conduisait jamais de tests de sécurité sur les installations et suivait même les découvertes sur Stuxnet dans la presse internationale. De plus, les deux « charges actives » du malware, les portions de code sur lesquelles reposent ses fonctions offensives, visaient des machines jusqu’alors jamais conçues pour repousser une attaque informatique : des automates programmables industriels, ces ordinateurs chargés de commander des processus industriels comme des chaînes d’assemblage ou d’emballage de colis. Toutefois, ces béances ne gâchent en rien les prouesses du virus.
Mise en jambe
Stuxnet a connu deux itérations consécutives, une « primitive » et une « mature » : la première faisait augmenter la pression dans les centrifugeuses, la seconde agissait sur la vitesse de leurs rotors. Le développement de la version « originale » ou 0.5 du virus aurait commencé aux alentours de 2005, l’année de naissance de YouTube. Deux ans plus tard, un internaute non-identifié a téléversé un extrait de son code dans une base de données antivirus. En dépit de la clarté de cette confession, aucune entreprise de cybersécurité n’avait alors remarqué le potentiel de nuisance du malware : Stuxnet était tout bonnement trop novateur pour être compris. « En 2007, il aurait fallu déployer de formidables efforts d’analyse pour comprendre Stuxnet, explique Ralph Langner dans son article To Kill A Centrifuge, et il aurait fallu le chercher spécifiquement, ce que personne ne pouvait imaginer en ce temps-là. »
Les chercheurs ignorent encore la date du premier déploiement de Stuxnet 0.5 sur l’usine de Natanz : certains rapports indiquent 2009, d’autres 2007 ou 2005. Quoi qu’il en soit, le virus n’a pu pénétrer les installations iraniennes que par voie humaine. Comme tous les systèmes sensibles, le résau informatique de Natanz n’était pas connecté à Internet, une mesure de sécurité connue sous le nom de air gap. Il a donc été introduit dans les systèmes de l’usine par le biais de matériel vérolé, peut-être par connexion d’une clé USB ou d’un ordinateur portable de contractuel, voire par des composants électroniques assemblés dans une usine tierce, ce qui prouve cruellement le manque de vigilance des responsables de Natanz de l’époque.
Une photo devant la caméra
En dépit de son élégance, ce mode d’attaque n’est pas l’aspect le plus remarquable de Stuxnet 0.5. Pour contrôler l’ultracentrifugation de l’hexafluorure d’uranium depuis leurs ordinateurs, les ingénieurs iraniens devaient disposer de données précises et en temps réel sur le processus : vitesse, pression, état des valves… Ces informations étaient relevées par des capteurs disséminés dans les cascades de centrifugeuses puis « traduites » et affichées sur des écrans de contrôle par un autre genre de programme informatique essentiel aux processus industriels : les systèmes de contrôle et d’acquisition de données ou SCADA. Laissé sain, le SCADA de Natanz aurait immédiatement détecté et signalé l’augmentation de pression dans les centrifugeuses. L’attaque aurait été tuée dans l’œuf et peut-être même découverte. Pour empêcher cela, Stuxnet 0.5 se devait de vampiriser le SCADA.
« Manifestement, les maîtres de Stuxnet 0.5 ont préféré la douceur au coup d’éclat »
La première version du malware pouvait rester « dormante » dans les ordinateur de contrôle pendant des jours car elle ne déclenchait son attaque que dans des conditions précises. Mais quand celles-ci étaient réunies, il ne demandait pas la clôture immédiate des valves : d’abord, il enregistrait les données saines des capteurs industriels pendant une vingtaine de secondes avant d’ordonner au SCADA de passer cette boucle en continu sur les écrans de contrôle. Stuxnet 0.5 pouvait alors manipuler la pression dans les centrifugeuses sans que le personnel ni les logiciels d’alarme de l’usine ne remarquent quoi que ce soit. Quelqu’un, quelque part, aurait alors pu ordonner au virus de faire grimper la pression dans les centrifugeuses au-delà de 100 millibars. Dans de telles conditions, l’UF6 se solidifie. Plusieurs milliers de machines auraient été pulvérisées en un instant. Ce n’est pas arrivé.
Manifestement, les maîtres de Stuxnet 0.5 ont préféré la douceur au coup d’éclat. Pendant des mois, leur création a entraîné des pannes précoces mais pas suspectes en manipulant la pression des centrifugeuses avec délicatesse. Pour certains observateurs, les pirates ont même pris grand soin de ne pas causer de rupture catastrophique des machines afin de ne pas éveiller les soupçons dans l’usine de Natanz. Néanmoins, des rapports de l’Agence internationale de l’énergie atomique et de l’Institute for Science and International Security indiquent que cette approche subtile n’a pas causé de dégâts considérables : le taux de panne de 20% et la consommation excessive d’hexafluorure d’uranium relevés dans l’usine iranienne entre 2007 et 2009 pourraient provenir du virus comme de l’incompétence du personnel.
Stuxnet 2 : Electric Boogaloo
Cette absence de résultats clairs a peut-être entraîné le développement d’une deuxième incarnation de Stuxnet, beaucoup plus « blockbusteresque » mais autrement moins élégante que la première. Cette version dite « 1.x » a pu être identifiée comme la descendante de la version 0.5 du virus car elle contenait la charge active de son ancêtre. Cependant, elle disposait aussi d’une charge active flambant neuve et donc d’un nouveau mode d’attaque. Cette fois, Stuxnet allait s’en prendre à la partie la plus sensible des centrifugeuses : leur rotor.
La première version du virus ne disposait pas de portion de code lui permettant de se reproduire et donc d’infecter des terminaux avec lesquels le matériel vérolé n’avait pas été en contact direct. De plus, Stuxnet 0.5 déployait ses capacités offensives uniquement lorsqu’il était ouvert par un logiciel d’ingénierie précis. La virulence de son descendant jure avec cette approche quasi-chirurgicale : Stuxnet 1.x avait en effet été conçu pour se loger dans tous les systèmes Windows de l’usine de Natanz sans discrimination.
Discrétion zéro
Pour mener cette mission d’infection générale efficacement, le malware utilisait pas moins de quatre failles zero-day dans le système d’exploitation de Microsoft. Dans le monde de la cybersécurité, ces vulnérabilités encore jamais exploitées sont aussi rares et dangereuses que précieuses pour les individus malintentionnés. La « consommation » simultanée de quatre d’entre elles par un même virus semblait indécente comme un milliardaire qui brûle de grosses coupures. De plus, pour mieux tromper la vigilance de Windows, Stuxnet 1.x disposait d’une autre arme rare et coûteuse : deux certificats de sécurité électroniques, qui lui permettait de se faire passer pour un logiciel honnête. Au délicat Stuxnet 0.5 succédait un genre de semi-remorque bardé de néons. Manifestement, la nouvelle incarnation du malware avait été développé par des individus dotés de moyens extrêmement importants.
« Certaines des failles dont le virus a profité font toujours le bonheur des hackers dix ans plus tard »
Une fois logé dans un ordinateur en charge du contrôle des centrifugeuses, Stuxnet 1.x attendait des conditions précises pour jouer avec la vitesse des rotors. Dans un premier temps, le virus poussait les moteurs à presque 85 000 tours par minute, environ 30% de plus que leur cadence de fonctionnement normal. Bizarrement, cela ne semble pas avoir satisfait ses créateurs : en 2009, un mois après cette première tentative, ils ont déployé nouvelle version du virus qui ralentissait la rotation des centrifugeuses. Sous une certaine vitesse, les rotors endommagent la machine en se mettant à vibrer. Et cette fois, le malware faisait bien moins d’efforts pour dissimuler ses traces. Au lieu de contraindre le SCAPA à présenter des informations faussées mais mouvantes, il suspendait l’exécution de leur code originel pour afficher des vitesses de rotations figées. Un bref examen des données aurait suffi à dévoiler le pot-aux-roses. Pourtant, les ingénieurs iraniens n’ont rien vu.
L’instant Spoutnik
Au moins de juin 2010, quelques mois après le lancement de Stuxnet 1.x, une entreprise de cyber-sécurité biélorusse a dévoilé l’existence du virus au reste du monde. Des hordes de spécialistes et de journalistes s’étaient alors lancés dans l’enquête. En dépit de leurs efforts, deux grandes inconnues demeurent. Un : dans quel mesure le programme nucléaire iranien a-t-il souffert du malware ? Des informations de l’époque indiquent que 20% de centrifugeuses iraniennes ont été détruites, mais sans grande conviction. Deux : qui a bien pu développer une telle arme ? Pour la Russie et le New York Times, Stuxnet est le fruit d’une collaboration entre hackers états-uniens et israéliens. Divers indices tendent appuie cette théorie respectueuse des antagonismes géopolitiques : le code du virus comporte des références bibliques en hébreu et un général israélien a revendiqué la responsabilité de l’attaque peu avant son départ à la retraite. Aujourd’hui, cette hypothèse reste en vogue mais le doute demeure.
Une chose est sûre, cependant : par sa virulence, la deuxième itération de Stuxnet a vite échappé au contrôle de ses maîtres pour infecter des centaines de milliers de machines dans plus d’une centaine de pays. Cependant, le virus étant conçu pour attaquer un logiciel industriel bien précis, les dégâts internationaux semblent avoir été limités. Sa simple existence a néanmoins jeté une lumière crue sur la vulnérabilité des systèmes industriels, apparemment sans grand effets sur la réalité : certaines des failles dont le virus a profité font toujours le bonheur des hackers dix ans plus tard. Mais là n’est pas l’aspect le plus effrayant de Stuxnet.
Pour bon nombres d’experts, la version 1.x du malware était excessivement voyante car ses créateurs souhaitaient qu’il soit découvert. Soudain, le monde tremblerait en prenant conscience de la possibilité, mais aussi de la puissance des armes cyber-physiques. De nombreuses armées se sont dotées de départements ouvertement dédiés à la guerre électronique depuis. Selon toute vraisemblance, elles développent de nouvelles armes en ce moment même. Telle est la terrible ironie de Stuxnet selon Ralph Langner : en œuvrant contre la prolifération nucléaire, le virus a inauguré l’ère de la prolifération des cyber-armes.
VICE France est sur Twitter, Instagram, Facebook et sur Flipboard.
VICE Belgique est sur Instagram et Facebook.