Des chercheurs découvrent un malware de sabotage industriel qui a précédé Stuxnet de 5 ans

Lucas Morel

Ciblant les opérations arithmétiques à virgule flottante de haute précision dans les logiciels de modélisation technique, Fast16 pourrait désormais être le premier cadre de cyber-sabotage connu lié à l’État.

Conçu pour paralyser le programme d’enrichissement nucléaire iranien, le ver Stuxnet de 2010 a créé un précédent en matière de cybersécurité puisque c’est la première fois qu’un pays intensifie ses activités de l’espionnage stratégique au sabotage dans le cyberespace. Aujourd’hui, une nouvelle découverte suggère que de telles opérations battaient leur plein des années avant que Stuxnet ne soit révélé.

Les chercheurs de SentinelOne ont repéré des échantillons d’un framework de malware actif en 2005 et ciblé un logiciel de modélisation technique en corrompant les opérations arithmétiques à virgule flottante de haute précision.

Un composant du framework, un pilote de noyau appelé fast16.sysest brièvement mentionné dans la fuite de documents de Shadow Brokers en 2017 couvrant les exploits et les outils utilisés par les cyber-équipes de la National Security Agency des États-Unis.

« Cette attaque de 2005 est un signe avant-coureur d’opérations de sabotage ciblant des charges de travail de calcul de haute précision ultra coûteuses d’importance nationale, comme les charges de travail avancées en matière de physique, de cryptographie et de recherche nucléaire », ont déclaré les chercheurs de SentinelOne dans leur rapport.

La structure des logiciels malveillants utilise diverses techniques considérées comme très avancées pour les logiciels malveillants de cette époque. Une copie a été téléchargée sur le moteur d’analyse en ligne VirusTotal il y a près de dix ans, mais est restée indétectable jusqu’à ce que les chercheurs se lancent à la recherche de logiciels malveillants intégrant une machine virtuelle Lua.

Le malware utilise plus de 100 règles pour identifier les charges de travail exactes qu’il doit saboter. Bien que les chercheurs ne sachent pas exactement quelles étaient ces charges de travail, sur la base de ces règles, ils ont réduit la liste des applications ciblées à trois programmes d’ingénierie, dont l’un apparaît dans des rapports sur le programme nucléaire iranien et un autre largement utilisé en Chine pour la construction et la conception structurelle.

Chasser les logiciels malveillants compatibles Lua

Lua est un langage de programmation né au début des années 1990 et très populaire dans le développement de jeux et de systèmes embarqués. Son principal attrait est qu’il peut être intégré dans des applications C et C++ existantes en tant que moteur de script.

Lua est utilisé dans les logiciels malveillants modernes pour fournir un moyen de masquer et de fournir des charges utiles sous la forme de scripts qui sont chargés et exécutés par la machine virtuelle Lua intégrée à l’intérieur du chargeur principal. L’un des premiers acteurs malveillants à utiliser cette technique est l’Equation Group, un groupe APT largement associé à l’équipe Tailored Access Operations (TAO) de la NSA.

« Nous voulions déterminer si ce style de développement provenait d’une source partagée, nous avons donc décidé de retracer la première utilisation sophistiquée d’un moteur Lua intégré dans un malware Windows », ont déclaré les chercheurs.

Cela a conduit à la découverte d’un fichier appelé svcmgmt.exeun exécutable malveillant de l’ère Windows 2000/XP, créé à l’origine en 2005. Le fichier est un binaire de service modulaire qui utilise le bytecode Lua crypté pour la majeure partie de sa logique et comprend deux charges utiles : un fichier appelé ConnotifyDLL et on a appelé fast16.sys.

En outre, svcmgmt.exe peut exécuter des charges utiles Lua supplémentaires appelées wormlets qui sont utilisées pour la propagation vers d’autres systèmes. Par exemple, l’un des vers identifiés, appelé SCM, tente de copier le logiciel malveillant sur des partages réseau, puis de l’exécuter en tant que service distant. Cela fait svcmgmt.exe le premier ver Lua documenté.

Un rootkit inhabituel qui corrompt les calculs en virgule flottante

Le fast16.sys La charge utile est encore plus intéressante car elle est chargée en tant que pilote de système de fichiers du noyau qui peut intercepter et modifier le code exécutable lorsqu’il est lu à partir du disque. Les composants malveillants qui s’installent eux-mêmes en tant que pilotes du noyau sont appelés rootkits car ils offrent les privilèges les plus élevés possibles sur le système.

À l’ère de Windows XP, lorsque les pilotes système ne nécessitaient pas l’installation de signatures numériques fiables, les rootkits étaient courants et étaient utilisés pour masquer les composants et l’activité du programme malveillant. Cependant, fast16.sys a un but très précis.

Le conducteur surveille l’exécution de .exe fichiers compilés avec le compilateur Intel C/C++, injecte des sections supplémentaires dans leurs en-têtes, puis applique un ensemble complexe de 101 règles de correspondance et de remplacement de modèles de bytecode.

Alors que certaines logiques ciblent des instructions x86 typiques dans le but de détourner le flux d’exécution, un bloc injecté se révèle très inhabituel pour les opérations de logiciels malveillants : une séquence complexe d’instructions d’unités à virgule flottante (FPU) dédiées à l’arithmétique de précision et à la mise à l’échelle des valeurs dans les tableaux internes.

Lorsque les chercheurs ont pris ces règles de correspondance de modèles et les ont comparées à un vaste corpus de logiciels légitimes de cette époque, seuls 10 fichiers correspondaient. Tous étaient des outils de calcul utilisés dans des domaines tels que le génie civil, la physique et la simulation de processus physiques.

« Le patch FPU dans fast16.sys a été écrit pour corrompre ces routines de manière contrôlée, produisant des résultats alternatifs », ont déclaré les chercheurs. « Cela passe rapidement16 du domaine des outils d’espionnage génériques à la catégorie du sabotage stratégique. En introduisant des erreurs petites mais systématiques dans les calculs du monde physique, ce cadre pourrait saper ou ralentir les programmes de recherche scientifique, dégrader les systèmes techniques au fil du temps ou même contribuer à des dommages catastrophiques.

De plus, en raison de sa capacité à infecter d’autres systèmes sur le réseau, il est probable qu’un plus grand nombre de postes de travail et de serveurs d’ingénierie dans un environnement auraient été compromis. Par conséquent, les tentatives de vérification du calcul en exécutant la même simulation sur plusieurs systèmes auraient pu renvoyer les mêmes faux résultats.

La simulation d’ingénierie ciblée

SentinelOne a identifié trois logiciels contenant du code correspondant au moteur de correctifs. L’une d’entre elles, LS-DYNA version 970, est une suite logicielle de simulation technique qui utilise des calculs de haute précision pour déterminer le comportement des matériaux dans des conditions extrêmes, telles que des impacts à grande vitesse, des accidents, des explosions, la formation de métaux, etc.

Le logiciel a été utilisé dans de nombreuses industries, notamment l’automobile, l’aérospatiale, la défense et l’industrie manufacturière, mais il est également mentionné dans des rapports publics concernant les tests effectués par l’Iran sur des ogives nucléaires dans le cadre de son programme AMAD de développement d’armes nucléaires.

Une autre cible probable identifiée, connue sous le nom de Practical Structural Design and Construction Software (PKPM), est une suite de CAO largement utilisée dans le génie civil et la conception de bâtiments en Chine. Le logiciel peut simuler la conception du cisaillement du béton pour les poutres et les colonnes, fournissant ainsi une analyse sismique, éolienne et de charge pour les immeubles de grande hauteur.

La troisième cible potentielle qui correspondait aux règles, Modelo Hidrodinâmico (MOHID), est un système de modélisation de l’eau open source développé à l’Instituto Superior Técnico de Lisbonne, au Portugal. Le logiciel couvre l’hydrodynamique, la simulation de la qualité de l’eau, le transport des sédiments, la modélisation des marées noires et le suivi des particules lagrangiennes.

Conséquences

Les chercheurs de SentinelOne n’ont pas pu dire avec certitude quels flux de travail de ces trois programmes possibles étaient spécifiquement ciblés par le logiciel malveillant, mais l’implication est claire : des sabotages industriels stratégiques utilisant des logiciels malveillants étaient effectués par des acteurs étatiques il y a 20 ans déjà, avant que Stuxnet ne soit utilisé pour endommager les centrifugeuses d’enrichissement d’uranium de la centrale nucléaire iranienne de Natanz en injectant du code malveillant dans des contrôleurs logiques programmables.

« Si je devais deviner, je pense que l’objectif était la simulation de la physique des matériaux spécifiques, et l’implant était destiné à modifier leurs courbes caractéristiques (par exemple contrainte-déformation) », a publié sur LinkedIn le chercheur indépendant Ruben Santamarta, qui a également analysé le code de patch fast16 FPU. « Par exemple, cela ferait croire aux ingénieurs que quelque chose est plus résistant que prévu, alors qu’en réalité, cela tomberait en panne plus tôt que prévu… comme dans Stuxnet. »

Santamarta, qui a mené des recherches sur les attaques de validation contre des dispositifs et des logiciels liés au nucléaire, a déclaré que trouver dans la nature quelque chose potentiellement capable de provoquer des pannes physiques en sabotant la phase de conception représente un changement de paradigme.

« Le fait est que cela s’est produit il y a 20 ans, il serait donc intéressant de revenir sur certains échecs de certains pays au fil des ans, de regarder l’écran pendant un moment et de réfléchir aux possibilités », a-t-il posté.

Logiciel malveillantSécuritéInfrastructure critiqueMenaces persistantes avancées