Le ver Stuxnet (suite)
Date : 11 Octobre 2010
Depuis la publication le mois dernier de notre premier article sur le ver Stuxnet, des découvertes importantes ont été faites à propos de ce ver. Nous les détaillons dans ce nouvel article.
Nota :
- Les éléments techniques décrits dans notre précédent article sont toujours valables. Ils n'ont pas été démentis par les nouvelles analyses. Nous ne les reprendrons pas ici.
- Les éléments présentés ici sont basés sur le rapport publié par Symantec sur le vers Stuxnet (cf [1]).
Les découvertes faites en septembre 2010 à propos de Stuxnet peuvent se résumer en deux points :
- Stuxnet aurait été conçu comme une "cyber-arme" visant une installation industrielle particulière. Ce fait est techniquement avéré et nous le détaillons ci-dessous. Par contre il est impossible de dire quel est exactement l'équipement industriel visé (on ne connait que son type).
- Plusieurs sources ont émis l'hypothèse que Stuxnet aurait été conçu par les services secrets Israéliens pour endommager des installations nucléaires en Iran. Cette hypothèse est invérifiable. Elle repose sur un seul élément tangible : Symantec indique (cf. [1]) que la grande majorité des infections se sont produites en Iran (60% des machines infectées). D'autres éléments ont aussi été avancés pour essayer de montrer que Stuxnet était lié à Israël (des dates et des chaines de caractères trouvés dans le code) mais aucune ne nous semble crédible.
Stuxnet est-il une cyber-arme ?
L'analyse technique publiée par Symantec fin septembre 2010 (cf. [1]) montre que Stuxnet est construit pour se propager de machines en machines à la recherche de PC connectés à des équipements industriels spécifiques appelés PLC (Programmable Logic Controllers).
- Le vecteur principal (et initial) d'infection serait la transmission du ver par clé USB. Lorsqu'une clé infectée est insérée dans un PC et que son contenu est visualisé avec l'explorateur Windows, alors l'infection se déclenche. Suivant les variantes, cette infection est déclenchée soit par un fichier "Autorun.inf" présent sur la clé (variante la plus ancienne de Stuxnet), soit en utilisant la vulnérabilité "LNK" de Windows (Bulletin MS10-046, avis CERT-IST/AV-2010.313) pour la variante trouvée en juin 2010.
- Une fois un PC infecté, Stuxnet peut ensuite se propager de PC en PC par divers vecteurs :
- Utilisation de la vulnérabilité "Print Spooler" de Windows (Bulletin MS10-061, avis CERT-IST/AV-2010.412),
- Utilisation de la vulnérabilité "Conficker" de Windows (Bulletin MS08-067, avis CERT-IST/AV-2008.460),
- Infection des machines proposant un partage disque (ou un partage administratif de type "C$") sur laquelle la machine infectée a le droit de déposer un fichier,
- Infection de toutes les machines équipées du logiciel WinCC de Siemens et utilisant la même base de données WinCC que la machine infectée.
- Infection des machines équipées du logiciel Step7 de Siemens sur lesquelles un projet S7P provenant de la machine infectée est ouvert.
Ces mécanismes de propagation peuvent avant tout permettre à Stuxnet de compromettre des machines "proches" de la machine initialement touchée, et il y a assez peu de chance que la propagation se fasse de façon massive sur Internet. Selon Symantec, 100 000 machines auraient été infectées (adresses IP distinctes), ce qui montre qu'en combinant tous les vecteurs, la propagation de Stuxnet a cependant été assez large.
Nota : On peut cependant atténuer ce jugement en rappelant que :
- F-Secure avait estimé à 9 millions le nombre de machines infectées par Conficker en 2009. La propagation de Stuxnet est donc bien plus faible que celle qu'avait connue Conficker.
- Il est possible que Stuxnet se propage silencieusement depuis déjà plusieurs mois.
Lorsque Stuxnet infecte une machine sur laquelle le logiciel Step7 de Siemens est installé, il examine les équipements industriels (PLC) connectés à cette machine. S'il trouve un équipement d'un modèle particulier (parmi une liste de 2 modèles codés en dur dans le malware) alors il modifie le code installé sur cet équipement et rend cette modification invisible aux utilisateurs légitimes. La nature exacte de cette modification n'est pas connue. Symantec précise dans son rapport que :
- Il faudrait disposer de l'équipement industriel visé par Stuxnet pour déterminer l'effet de cette modification,
- Le code que Stuxnet installe sur l'équipement industriel infecté interagit avec le bus industriel (Profibus) reliant cet équipement aux autres équipements de la plate-forme industrielle.
- Le type d'équipement visé par Stuxnet pourrait être une turbine, une pompe, une centrifugeuse, etc…
Globalement Stuxnet se comporte donc comme un « missile auto-guidé » qui rechercherait sa cible (un équipement industriel) puis perturberait son fonctionnement. On ne sait pas la nature de la "perturbation" : s'agit-il de détruire une installation, d'en diminuer les performances, etc…
Faut-il s'en inquiéter ?
Stuxnet est considéré comme le code malveillant le plus sophistiqué que l'on ait découvert à ce jour. Symantec indique que son développement aurait mobilisé de 5 à 10 développeurs pendants 6 mois. Il s'agit probablement d'une attaque ciblée visant une installation industrielle spécifique et il est probable que le propriétaire de l'installation visée ait déjà constaté les dégâts causés par Stuxnet. Au premier abord, ce constat pourrait être rassurant pour tous les autres sites industriels, puisqu'ils ne sont donc pas directement visés par l'attaque Stuxnet.
Malheureusement Stuxnet est inquiétant à plusieurs niveaux :- Tout d'abord il démontre la faisabilité d'une attaque visant les infrastructures industrielles et son pouvoir destructeur. Stuxnet servira sans aucun doute de modèle pour d'autres attaques.
- Si Stuxnet visait une cible unique, il a aussi infecté par "effet collatéral" près de 100 000 autres machines, dont la plupart n'ont sans doute rien à voir avec la cible visée. Le code de Stuxnet sera-t-il totalement indolore pour ces victimes ? Se peut-il que d'autres équipements industriels soient également affectés involontairement ? La réponse est malheureusement "oui". Le code de Stuxnet contient des dates limites, qui font qu'il arrêtera d'utiliser la vulnérabilité MS10-061 après le 01/06/2011 puis s'arrêtera d'infecter les systèmes après le 24/06/2012. Mais il peut continuer jusqu'à cette date à infecter de nouveaux systèmes.
Comment se protéger ?
Diagnostiquer les machines infectées par Stuxnet :
Si les fichiers suivants sont présents sur une machine Windows, alors cette machine a très probablement été infectée par Stuxnet. Ces fichiers sont visibles directement avec l'explorateur de fichiers de Windows (ils ne sont pas cachés par Stuxnet).
WINDOWS/system32/drivers/mrxcls.sys
WINDOWS/system32/drivers/mrxnet.sys
WINDOWS/inf/oem6C.PNF
WINDOWS/inf/oem7A.PNF
Si une machine infectée dispose des logiciels Siemens WinCC ou Step7, alors il est nécessaire de faire intervenir un expert pour s'assurer que les équipements industriels accédés depuis ce PC n'ont pas été altérés.
Protéger les machines Windows contre une nouvelle infection
Tout d'abord Microsoft a publié des correctifs pour les principaux vecteurs d'infection utilisés par Stuxnet :- MS08-067 : vulnérabilité "Windows Server" (utilisée par Conficker)
- MS10-046 : vulnérabilité "LNK"
- MS10-061 : vulnérabilité "Print Spooler"
Mais, même si ces correctifs ont été installés, il est également nécessaire de mettre en place des procédures strictes de contrôle pour bloquer les autres vecteurs d'infection utilisés par Stuxnet :
- Infection par clés USB (par exemple via les fichiers "autorun.ini"),
- Infection via des projets "Siemens Step7" provenant de machines déjà infectées ou infection via une base de données "Siemens WinCC" partagée,
- Infection via des partages réseaux Windows (ou des partages administratifs de type C$) accessibles en écriture.
Conclusion
Comme nous le disons dans cet article, Stuxnet est inquiétant :
- Tout d'abord, il montre que les systèmes industriels doivent se tenir prêt à faire face à des attaques informatiques, et que ces attaques peuvent être spécifiquement conçues pour toucher ces environnements.
- Ensuite, même s'il s'agissait d'une attaque ciblée, tous les sites qui utilisent les logiciels Siemens visés par Stuxnet sont en danger car ils pourraient être involontairement touchés par Stuxnet.
Pour plus d'information
[1] Rapport technique de Symantec sur le vers Stuxnet (50 pages) :
http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/w32_stuxnet_dossier.pdf