Iran : La Cyber attaque a déjà commencé

C'est encore une histoire de virus informatique, de ver ou de cheval de troie. C'est même tout cela à la fois et pire encore car ce virus, nom de code Stuxnet, en a toutes les "qualités" avec un potentiel de destruction assez effrayant.

C'est encore une histoire de virus informatique, de ver ou de cheval de troie. C'est même tout cela à la fois et pire encore car ce virus, nom de code Stuxnet, en a toutes les "qualités" avec un potentiel de destruction assez effrayant.

Le virus Stuxnet a été découvert récemment (mi juin 2010) mais il a fallut plusieurs mois pour en comprendre les subtilités.

 

Le résultat est proprement impressionnant, voire effarant.

 

Il infecte toutes les plateformes Windows rien de bien nouveau vous allez me dire mais il le fait avec un arsenal de moyens jamais vu:

Il exploite quatre vulnérabilités dites 0-day . Une vulnérabilité 0-day est une faille de sécurité dans Windows (ou MacOS, Linux, ...) qui n'est pas connue et donc non corrigée. Pour le hacker (pirate) qui en trouve une c'est comme une perle rare, un bijou. S'il l'utilise pour écrire un virus, il est quasiment certain que son virus va se propager rapidement et efficacement. En effet il faudra un certain temps pour repérer le virus, comprendre comment il marche et identifier la faille de Windows. Il faudra ensuite attendre que Microsoft écrive une correction pour boucher ce trou de sécurité et que cette correction soit appliquée sur les PC cibles potentiels (on pourrait faire un sondage : Qui maintient son PC à jour avec Windows Update ?). De même il faut un certain temps avant que les fournisseurs d'anti-virus mettent à jour leur base de détection et trouve un moyen de l'éliminer.

Les concepteurs de Stuxnet on donc grillé 4 cartouches en OR massif d'un seul coup! C'est pas le style du hacker de base.


Ce virus est très gros (un demi méga octet de code) mais tous ses modules sont authentifiés par des certificats numériques garantis par Verisign comme s'il s'agissait de code légitime des sociétés "Realtek Semiconductor Corp." (cartes Ethernet, Audio, Wifi,...) ou "JMicron Technology Corp." (controleurs disque, sata, ...). Autant vous dire qu'il y a de fortes chances que vous exécutez du vrai code légitime de ces sociétés dans votre PC tout simplement parce qu'il contient une de leur nombreuses puces électroniques. Ces deux sociétés étant sur la même technopole de Taiwan (Hsinchu Science Park), on peut soupçonner un vol physique des certificats numériques (bien que des botnet comme Zeus cherchent à se procurer des certificats numériques même si leur cible est plutôt bancaire).

Là aussi, une débauche de moyens sophistiqués et difficiles à obtenir, rien que pour passer inaperçu!

 

Le code est gros, complexe et extrêmement sophistiqué. Il fait aussi appel aux techniques de programmation les plus subtiles. Cela a manifestement été développé comme un projet informatique avec plusieurs équipes à l'œuvre. Il y a plusieurs modules, pas toujours compilés avec les mêmes outils ni au même moment et tous extrêmement structurés.

Là encore, un vrai travail d'équipe structuré comme un projet et réalisé par des programmeurs pointus !

 

Mais que fait donc ce virus. Comme tout bon ver il cherche à se reproduire à travers le réseau internet par des méthodes sophistiquées (RPC, faille dans le partage d'imprimantes, ...) sur le réseau local. Il collecte aussi des informations sur le réseau (adresse IP, autres ordinateurs, matériels connectés, ...) et les envoient sur internet. Par contre, sur le PC, il ne fait rien d'autre, ne cherche pas de mot de passe, de référence bancaires. Bref totalement discret et sans danger.

 

La nouveauté est que ce virus s'attaque aux automates de contrôle industriels programmables ! Du jamais vu jusqu'à ce jour.

 

C'est quoi un "automate de contrôle industriel programmable". C'est un calculateur enfoui dans un équipement industriel qui fait de l'acquisition et du monitoring de données, prend certaines décision en local et effectue une remontée d'information vers un système plus centralisé. Un exemple simpliste. Dans votre voiture, si elle est récente, vous avez probablement un système d'anti-blocage des roue au freinage (ABS). C'est un petit calculateur qui mesure la vitesse de rotation des roues et dose la pression du liquide de frein pour éviter le blocage de ces dernières. Il cause bien sur avec un calculateur plus centralisé qui lui communique la consigne de freinage, la vitesse, etc .... En cas d'incident, le calculateur ABS informe aussi le calculateur central ce qui peut déclencher l'affichage du redoutable voyant rouge sur le tableau de bord où l'arrêt automatique et imposé de la voiture!

 

L'ABS est un truc simpliste mais imaginez le nombre de petits calculateurs qu'il y a pour faire fonctionner en toute sécurité un système comme un métro automatique, le long des voies, dans les rames, et tout cela relié vers des centres de supervision.

 

Ces systèmes sont souvent dénommés SCADA (Supervisory Control And Data Acquisition) et il y en a des millions. Dès que vous avez une usine un peu évoluée avec une chaine, des robots, ils sont là. Idem dans les haut-fourneaux, les laminoirs, les cimenteries, les raffineries, les centrales thermiques ou nucléaires. Certains de ces systèmes s'étendent sur des milliers des kilomètres. Pensez aux réseaux ferroviaires, à la distribution d'énergie électrique, aux oléoducs et gazoducs .... Pour l'automate programmable individuel, le terme PLC (Programmable Logic Controller) est aussi fréquemment utilisé.

 

Lorsqu'ils sortent de leurs limites, cela peut faire mal, exemple les pannes géantes d'électricité, par effet d'avalanche de tous ces automates répartis ou quelques grosses catastrophes industrielles.

 

Le géant industriel allemand Siemens est un des leaders mondiaux de ces systèmes (peut être le leader). Il a conçu un ensemble de calculateurs de terrain très robustes et assez génériques pour être employés dans des domaines industriels très divers. Comment programme t-on ces calculateurs ? On se pointe avec un PC portable, on le branche sur le calculateur via une sonde USB et il n'y a plus qu'a faire le travail (programmation, maintenance, vérification, ....).

 

C'est là où l'on retrouve Stuxnet.

Sur le PC, il ne dérange absolument pas. Tout au pire il utilise une peu de votre bande passante internet pour se propager mais surtout pour remonter les informations sur son voisinage réseau (banal) mais surtout sur tous les équipements SCADA/PLC auquel il a été connecté (modèle, numéro de série, nature du code, ....). Un petit bijou d'espionnage.

 

Mais il y a plus grave encore.

 

Stuxnet modifie le code de l'automate SCADA/PLC des matériels Siemens, et ce de façon très subtile car au final, après la modification effectuée, il reste indétectable par les moyens classiques des outils logiciels Siemens. Il s'insère en tête du code opérationnel mais ne modifie pas son fonctionnement, du moins jusqu'à quand .... Car c'est le comportement typique du cheval de Troie ou de la Time Bomb. La méthode d'infection du PLC est bien décrite dans cet article. Attention, c'est compliqué.

 

Il y a un précédent historique. Je cite Symantec, une des compagnies spécialisées dans la lutte contre les virus (Norton):

"By writing code to the PLC, Stuxnet can potentially control or alter how the system operates. A previous historic example includes a reported case of stolen code that impacted a pipeline. Code was secretly “Trojanized” to function properly and only some time after installation instruct the host system to increase the pipeline's pressure beyond its capacity. This resulted in a three kiloton explosion, about 1/5 the size of the Hiroshima bomb."

Je pense qu'ils évoquent l'accident du pipeline sibérien "Urengoy - Surgut - Chelyabinsk" en 1982 qui relèverait d'un sabotage organisé par la CIA d'après ce qu'a écrit Thomas C. Reed (ex membre du National Security Council USA) en 2004 dans son livre "At the Abyss". Pour faire bref, les soviétiques construisaient un immense pipeline en Sibérie mais avaient besoin d'équipements de type SCADA, technologie qu'ils ne possédaient pas. Le KGB aurait cherché à se procurer cette technologie (plans, matériels et logiciels) en espionnant une société canadienne. Repérés par le contre espionnage, la CIA a préféré leur faire passer des plans plausibles mais légèrement erronés ainsi qu'un logiciel agrémenté d'un cheval de Troie (le code qui dors des mois ou des années avant de se déclencher). Le cheval de Troie aurait semé une telle zizanie dans le fonctionnement des pompes que le pipeline aurait explosé.

 

Cette histoire est contestée mais ce n'est pas le plus important car l'explosion à bien eu lieu et a même été confondue un temps avec une explosion nucléaire par le Norad (système d'alerte américain), estimée entre 3 et 12 kilotonnes de TNT, de la classe Hiroshima.

Autre explosion en Sibérie, en 1989: La catastrophe ferroviaire d'Ufa où les étincelles d'un train font exploser un pipeline qui fuyait. Là aussi environ 10 kilotonnes, comparable à Hiroshima.

 

Tout cela pour dire que les risques industriels ne sont pas négligeables mais je pense que tout le monde en était déjà conscient (Bhopal, Seveso, Tchernobyl, ...).

 

Ce qui est nouveau c'est d'apprendre qu'un virus a été spécialement conçu pour s'attaquer à des automates industriels dont le rôle premier est d'éviter de tels drames. Comme ces automates industriels ont un pouvoir de régulation sur les objets qu'ils contrôlent, il ont le même pouvoir de dérégulation et sont donc tout à fait capable de provoquer une catastrophe. Il est très facile d'arriver à faire que toutes les rames d'un métro automatique s'écrabouillent les unes dans les autres.

 

Donc Stuxnet est manifestement conçu avec le potentiel de semer le chaos voire de provoquer des destructions importantes.

 

Mais que cible donc Struxnet. La carte des répartitions des infections connues est éloquente:

http://www.mediapart.fr/files/stuxnet.jpg

 

C'est manifestement l'Iran qui est visé.

 

Vu la sophistication des moyens mis autour du développement d'un tel virus, le soupçon de l'action d'une agence étatique étrangère semble naturel et évidemment, comme le dit l'Iran, on pense tout de suite à Israël ou aux États Unis d'Amérique.

 

Ce n'est peut être qu'un message adressé à l'Iran, du genre, "vous voyez bien, on peut tout casser chez vous". En effet, à ma connaissance, il n'y a pas eu de catastrophe provoquée par Stuxnet. Néanmoins, avec au moins 30000 PC infectés et le doute sur tous leurs automates industriels, nettoyer cette infection va prendre du temps et coûter cher au pays car cela va imposer l'arrêt temporaire de chaînes industrielles complètes.

 

Je n'ai aucune sympathie pour le régime moyenâgeux des Mollahs. J'espère que la jeunesse iranienne arrivera à retrouver une voie plus libre et plus prometteuse car l'Iran, un des berceaux de la culture mondiale, ne doit pas être réduit à cette caricature.

 

Le but de ce billet n'était pas spécialement d'évoquer le conflit larvé de l'Iran contre beaucoup de pays occidentaux mais de porter l'attention sur une menace particulièrement vicieuse qui peut toucher tout le monde.

 

Nos systèmes industriels sont de plus en plus complexes et de plus en plus automatisés et donc aussi fragiles. Notre société l'est aussi. Coupons l'électricité en France une semaine et l'on verra l'étendue du bazar!

 

L'émergence de virus, ciblant des structures industrielles (au sens très large), probablement conçus et réalisés par des services comme une arme d'espionnage, de guerre ou de déstabilisation est une nouveauté, du moins dans l'espace public.

 

Un précédent plutôt inquiétant.

 

PS.

Pour en savoir plus sur Stuxnet, vous pouvez lire "Stuxnet Under the Microscope"

 

Le Club est l'espace de libre expression des abonnés de Mediapart. Ses contenus n'engagent pas la rédaction.