Unity Pro, qui tourne sur les PC utilisés par les ingénieurs, comprend un simulateur qui sert à tester le code avant de le déployer vers des contrôleurs logiques programmables (PLC). Ce hardware spécialisé permet de surveiller et de contrôler des processus mécaniques – vitesse de rotation de moteurs, ouverture et fermeture de soupapes, etc. – à l'intérieur des usines, des centrales électriques, des raffineries de gaz, des équipements collectifs et autres installations industrielles.
Les chercheurs de l'entreprise de cybersécurité industrielle Indegy ont découvert que des attaquants non authentifiés pouvaient exécuter du code malveillant sur les ordinateurs Windows où est installé le simulateur d’Unity Pro. Ce code pourrait être exécuté avec des privilèges de débogage, pour finalement accorder à des pirates un contrôle total sur le système. Dans la mesure où Unity Pro est souvent installé sur les postes de travail d'ingénierie, la prise de contrôle du système permettrait aux attaquants de reprogrammer les contrôleurs logiques programmables en production et de perturber des processus critiques.
Les privilèges de débogage Windows en question
En outre, les pirates pourraient également avoir accès à la propriété intellectuelle mise en œuvre dans l’usine, par exemple des secrets de fabrication des produits, en exploitant les données des programmes qui font tourner les automates. Selon les chercheurs d’Indegy, le service réseau ouvert par le simulateur PLC d’Unity Pro sur les postes de travail, écoute sur un port TCP spécifique et permet aux ordinateurs distants d'envoyer au simulateur un code de commande emballé dans un format propriétaire. Tout ordinateur capable de communiquer avec le poste de travail d'ingénierie sur le réseau peut envoyer au simulateur PLC d’Unity Pro des fichiers .apx qu’il exécutera sans authentification. Le simulateur prend en charge les formats binaires pour différents automates Schneider Electric, y compris ceux qui utilisent l'architecture x86. Les chercheurs d’Indegy ont constaté qu’il était possible de créer un fichier .apx contenant des instructions x86 malveillantes que le logiciel Unity Pro exécutera comme un processus fils.
« Le problème, c’est que ce processus fonctionne avec des privilèges de débogage sur Windows, et il est donc possible de demander tout ce que l’on veut à la machine », a expliqué Mille Gandelsman, CTO d’Indegy. « Il n'y a pas de sandbox ni de code d'isolement, il est donc très facile de détourner le processus », a-t-il ajouté. En raison de leurs privilèges, le CTO d’Indegy a surnommé ces postes de travail d'ingénierie de joyaux de la couronne des réseaux de contrôle industriel. Même si des pare-feu séparent les automates du reste du réseau, les postes de travail d'ingénierie seront toujours en liste blanche et ils pourront communiquer avec eux parce que c’est justement leur rôle.
La portée de l'attaque limitée
Selon un avis de sécurité émis par Schneider Electric à ce propos, il existe quand même au moins un facteur limitant : l'attaque ne fonctionnera que s'il n'y a pas d'autre application en cours d'exécution à l'intérieur du simulateur ou si cette application n’est pas protégée par un mot passe. De fait, la dernière version 11.1 d’Unity Pro livrée récemment ne permettra pas de mettre en route le simulateur sans application associée. Cependant, « il appartient à l'utilisateur de sélectionner l'application par défaut d’Unity Pro qui sera lancée par le simulateur et de protéger cette application par un mot de passe », a précisé l’entreprise dans son avis de sécurité. Schneider Electric n'a pas immédiatement répondu à une demande de commentaire de nos confrères d’IDG NS.
Il y a également un autre facteur limitant : l’attaquant potentiel doit d’abord avoir accès à un ordinateur du réseau capable de communiquer avec la station de travail d'ingénierie exécutant Unity Pro. Cet accès peut être obtenu de différentes façons, notamment en menant des attaques à l’aide d’un malware, en exploitant d'autres vulnérabilités ou même en profitant d’une complicité malveillante au sein de l’entreprise. Quoi qu’il en soit, cette vulnérabilité met en évidence l'importance d’une segmentation du réseau proprement dit, laquelle permet d’isoler les actifs de contrôle industriel, et notamment les postes de travail d'ingénierie, du réseau informatique général de l’entreprise.
La fragilité montrée amène à se poser une simple question : pourquoi le réseau externe (l'internet) est-il connecté au réseau interne de l'entreprise ?
Signaler un abusEt que l'on ne réponde pas que c'est uniquement pour permettre la maintenance à distance des systèmes électriques de l'entreprise. Car alors il ne faut pas pleurer, car quand on laisse des portes disponibles, quelqu'un trouvera toujours le moyen d'en faire usage.
Donc le seul moyen viable est soit d'avoir un réseau privé-interne-externe déconnecté des autres (et bien isolé), soit de ne pas connecté son propre réseau interne sur les usages sensibles aux autres réseaux potentiellement connectables sur l'extérieur.
Toutes les procédures de sécurité peuvent etre dévoyée, toujours.
Donc à Schneider Electric de penser un peu pour changer.
Une solution est d'utiliser des passerelles de sécurité unidirectionnelles dédiées aux système de contrôle-commande, comme celles de Waterfall Security et qui au contrario des pare-feu ne laisseront passer aucune attaque venant de l'extérieur.
Signaler un abus