C’est une démarche originale que des chercheurs ont eue pour démontrer les problèmes de sécurité des systèmes industriels. Habituellement, la plupart des scénarios d’attaque contre ces équipements se concentrent sur la compromission des automates programmables (PLC) pour altérer des processus physiques. L'une des façons d'exécuter un code malveillant sur un automate est de compromettre d'abord une station de travail que les automaticiens utilisent pour gérer et déployer des programmes sur ces PLC, mais cela peut aller dans les deux sens : un automate détourné peut également être utilisé pour compromettre les postes de travail, ce qui ouvre la voie à de puissantes attaques par déplacement latéral.

Dans un document publié récemment, des chercheurs de Claroty, spécialisée dans la cybersécurité des systèmes de contrôle industriel, ont élaboré un PoC nommé « Evil PLC attack » contre des logiciels de gestion de 7 fournisseurs : Rockwell Automation, Schneider Electric, GE, B&R, Xinje, OVARRO et Emerson. « L'attaque vise les automaticiens qui travaillent tous les jours sur les réseaux industriels, configurant et dépannant les PLC pour assurer la sécurité et la fiabilité des processus dans les industries critiques telles que l'énergie, la gestion de l’eau, l'industrie lourde, la fabrication et l'automobile, entre autres », expliquent les chercheurs.

Un stockage de métadonnées propice aux failles

Pour mémoire, un PLC est essentiellement un ordinateur intégré qui contrôle des machines, un processus physique ou une chaîne de production. Il dispose de son propre CPU et tourne avec un OS temps réel (RTOS) comprenant les modifications apportées par le fournisseur et un interpréteur de code. Les automaticiens contrôlent et programment les automates depuis des PC utilisant des logiciels spécialisés capables d'écrire le code logique, de le compiler dans un format que l'interprète de l'automate comprend, et de le déployer.

Outre le code compilé également connu sous le nom de logique ladder, les PLC stockent une copie complète du projet développé, y compris les métadonnées telles que les noms et les symboles des programmes, les fichiers de configuration du matériel et du réseau, les mappages de mémoire, les paramètres d'E/S, les déclarations de variables, les paramètres et le code source développé par les ingénieurs. Techniquement, l'automate n'a pas besoin de toutes ces informations supplémentaires pour fonctionner, mais elles sont stockées là pour que tout autre automaticien se connectant à l'automate puisse obtenir une copie complète du projet en cours d'exécution afin de pouvoir le déboguer ou le modifier.

Plusieurs fournisseurs concernés

Les logiciels de gestion ne se contentent pas d'envoyer des données aux automates, ils lisent et analysent également de nombreuses données en retour. Historiquement, l'analyse des données dans différents formats a été la source de nombreuses vulnérabilités de mémoire et ce cas ne fait pas exception. En fait, les chercheurs affirment que ce logiciel propriétaire n'a pas été conçu en partant du principe que les automates auxquels il se connecte et les données qu'il stocke peuvent être totalement fiables. Il lui manque donc de nombreux contrôles de sécurité pour l'analyse des données qu'une application moderne aurait.

Cela ne signifie pas qu'il est facile de trouver des vulnérabilités, car chaque fournisseur utilise son propre protocole de communication propriétaire pour écrire et lire les données de ses automates et les fichiers de projet sont stockés dans différents formats, dont certains sont également propriétaires. Les experts de Claroty ont dû procéder à de la rétro-ingénierie de ces protocoles et formats de fichiers pour chacun des logiciels de gestion des PLC analysés afin de comprendre ce qu'un pirate pourrait modifier sur l'automate et comment il pourrait le faire pour attaquer le poste de travail connecté.

Les vulnérabilités ont été découvertes dans :

-TwinSoft, le logiciel d'ingénierie utilisé pour la plateforme TBOX d'Ovarro

-Automation Studio utilisé pour le système X20 de B&R (ABB)

-EcoStruxure Control Expert (Unity Pro) utilisé pour les automates Modicon de Schneider Electric

-ToolBoxST utilisé par la plateforme MarkVIe de GE

-Connected Components Workbench (CCW) utilisé par l'automate Micro Control Systems de Rockwell Automation

-PAC Machine Edition utilisé par PACsystems d'Emerson

-L'outil de programmation XD PLC utilisé par XDPPro de Xinje.

Les vecteurs d’attaques sont multiples comme la traversée de répertoire (path trasversal), dépassement de tampon ou désérialisations non sécurisées. Ils entraînent tous une exécution de code arbitraire sur le PC de l’automaticien.

« Pour chaque cible/plateforme, nous avons essayé de comprendre l'ensemble du mécanisme de download/upload en procédant à la rétro-ingénierie du micrologiciel et du logiciel de la station de travail de l’automaticien », indiquent les chercheurs dans leur article. « Notre objectif était de trouver des divergences entre ce que l'automate utilise et ce que le poste de travail utilise. Si nous trouvions des incohérences, nous pourrions armer l'automate par le biais d'une procédure de téléchargement malveillante pour stocker un élément de données spécifiquement conçu qui n'affectera pas l'automate, mais qui, lorsqu'il sera analysé par la plateforme de gestion, déclenchera et exploitera une vulnérabilité. »

Le mouvement latéral sur le réseau OT et IT

L'objectif le plus évident d'une telle attaque est le déplacement latéral à l'intérieur du réseau OT (operational technology) d'une entreprise afin d'obtenir la persistance. Les attaquants pourraient également compromettre un poste de travail qui n'a pas été isolé du réseau IT général et un employé pourrait sans le savoir déployer du code malveillant. Par exemple, le ver Stuxnet, qui a été utilisé pour détruire les centrifugeuses d'enrichissement de l'uranium de la centrale nucléaire iranienne de Natanz, aurait été déployé par un employé qui travaillait comme mécanicien pour une société tierce effectuant des travaux dans la centrale. Une fois déployé sur une machine à l'intérieur, le ver s'est frayé un chemin jusqu'aux automates contrôlant les centrifugeuses en utilisant une chaîne d'exploits de type zero day et des techniques sophistiquées.

Tous les attaquants ne disposent pas forcément d'exploits Windows de type "zero-day" pour créer des logiciels malveillants furtifs et sophistiqués comme Stuxnet. Ils doivent donc trouver un autre moyen de se propager dans le réseau une fois qu'ils ont réussi à infecter un seul poste de travail. Les automates peuvent également être compromis à distance, car nombre d'entre eux sont connectés à Internet via diverses interfaces de gestion à distance. Selon les analyses effectuées sur Shodan, des dizaines de milliers de dispositifs SCADA et d'automates sont connectés à Internet. En avril 2020, des attaquants ont réussi à accéder à distance à des systèmes utilisés pour contrôler le traitement de l'eau en Israël. En 2021, une attaque similaire a impacté l'installation de traitement des eaux d'Oldsmar en Floride.

« Nos recherches suggèrent que les attaquants pourraient se servir des automates tournés vers Internet comme point de pivot pour infiltrer l'ensemble du réseau OT », ont déclaré les chercheurs de Claroty. « au lieu de se connecter simplement aux automates exposés et de modifier la logique, les pirates pourraient armer ces automates et provoquer délibérément une défaillance qui attirerait un automaticien vers eux. L'ingénieur, en guise de méthode de diagnostic, effectuera une procédure de téléchargement qui compromettra sa machine. Les cybercriminels ont alors un pied dans le réseau OT ».

Extension de l'infection et honeypot

Le mouvement latéral par le biais d'une attaque d'automate malveillant peut même se produire dans plusieurs organisations, car de nombreuses entreprises font appel à des intégrateurs de systèmes tiers ou à des sous-traitants pour gérer leurs automates, en particulier ceux qui sont déployés sur des sites distants. Si les attaquants compromettent un tel automate dans un endroit moins sécurisé et savent qu'il est entretenu par un intégrateur de systèmes ou un sous-traitant, ils peuvent déclencher une défaillance de l'automate pour attirer l'ingénieur itinérant et compromettre son ordinateur. Cet ingénieur est susceptible de se connecter ensuite aux réseaux OT d'autres entreprises et de diffuser la charge utile malveillante.

D'un autre côté, le même vecteur d'attaque pourrait être retourné contre les pirates potentiels dans un scénario de type pot de miel  (honeypot) où les chercheurs ou les sociétés pourraient intentionnellement laisser un automate programmable armé exposé à l'Internet et voir si les attaquants le ciblent. Comme ils doivent utiliser le même logiciel de gestion pour interagir avec l'automate, leurs propres machines pourraient être exposées. « Cette méthode peut être utilisée pour détecter des attaques au stade précoce de recherche de faiblesses et pourrait également dissuader les attaquants de cibler des automates tournés vers l'internet puisqu'ils devront se protéger contre la cible qu'ils prévoyaient d'attaquer », ont déclaré les spécialistes de Claroty.

Des patchs et des mesures d’atténuation

Toutes les vulnérabilités découvertes par les chercheurs de Claroty ont été signalées aux fabricants concernés, qui ont publié des correctifs ou des instructions d'atténuation. Cependant, le déploiement de correctifs dans les réseaux OT peut être un processus lent. Les experts recommandent aux entreprises de déployer des mécanismes d'authentification des clients quand ils sont disponibles, de sorte que l'automate vérifie l'identité de chaque poste de travail gestionnaire qui s'y connecte et n'accepte les connexions que de systèmes spécifiques.

La segmentation et l'hygiène du réseau, où les différents segments du réseau qui n'ont pas besoin de se parler sont isolés, sont également très importantes. L'activation du chiffrement du trafic et de l'authentification à clé publique entre les automates et les stations de travail de gestion, lorsqu'ils sont disponibles, est également une bonne pratique, tout comme la surveillance générale du trafic réseau pour détecter les connexions suspectes.