Les chercheurs en sécurité mettent en garde contre les nombreuses vulnérabilités pouvant affecter les passerelles de routage. Ces petits appareils utilisés pour connecter des machines industrielles et des capteurs aux réseaux TCP/IP permettent de gérer leur automatisation et leur contrôle. Une nouvelle étude publiée cette semaine par Trend Micro et présentée lors de la conférence virtuelle sur la sécurité Black Hat USA (1er au 6 août) a mis en évidence la nouvelle menace que pouvaient représenter des attaques de traduction de protocole. Elle a aussi révélé la présence de 9 failles dans les passerelles de routage de différents fournisseurs. Les vulnérabilités identifiées peuvent donner lieu à différents scénarios d'attaque, qui vont de l'émission de commandes furtives susceptibles de saboter le processus opérationnel à l'obtention d'un accès non autorisé, en passant par le décryptage des bases de données de configuration, l'exposition d'informations sensibles et le plantage d'équipements critiques.

Des passerelles de routage, pour quoi faire ?

Dans les installations industrielles, différents types de machines, moteurs, capteurs et contrôleurs sont connectés entre eux. Beaucoup de ces composants, dont la durée de vie peut s’étaler sur de nombreuses années, ont été conçus à une époque où les réseaux de technologie opérationnelle (OT) étaient totalement séparés des réseaux informatiques et communiquaient entre eux par des câbles série, en utilisant des protocoles propriétaires ou spécialisés comme le protocole Modbus, introduit en 1979. Aujourd’hui, avec les progrès de l'Industrie 4.0, les réseaux OT et IT sont interconnectés à des fins de gestion, d'automatisation et de contrôle à distance. Les postes de travail d'ingénierie, les interfaces homme-machine (IHM) utilisées pour surveiller et contrôler les processus industriels font couramment partie des nouveaux actifs informatiques et ils communiquent par TCP/IP. 

Pour relier des équipements OT, comme les automates programmables (PLC), à des réseaux Ethernet, WiFi et mobiles, l'industrie utilise des dispositifs appelés passerelles de routage (Protocol Gateways) ou traducteurs de protocole (Protocol Translators). Ces passerelles reçoivent des paquets encapsulés dans un protocole pour les traduire dans un protocole différent ou en différentes couches physiques du même protocole, par exemple du protocole Modbus TCP (Ethernet) vers le protocole Modbus RTU (série). « Si la traduction des protocoles de routage par les passerelles échoue, la communication entre les systèmes de contrôle et les machines s'arrête », ont expliqué les chercheurs de Trend Micro dans leur rapport. « Les opérateurs perdent alors toute visibilité sur le système, et ils ne peuvent même plus dire si les machines ou les générateurs fonctionnent correctement. Une défaillance dans la traduction peut également empêcher l'opérateur d'émettre des commandes pour résoudre les problèmes ». Pour leurs travaux, les chercheurs de Trend Micro se sont concentrés sur les passerelles traduisant le protocole Modbus dans différentes versions du protocole, simplement parce que Modbus est l'un des protocoles les plus utilisés sur les réseaux OT. Ils ont laissé de côté les passerelles de routage pouvant traduire des protocoles complètement différents pour l’instant, mais ils prévoient de leur consacrer de futures recherches. Dans le cadre de cette étude, ils ont analysé les passerelles Nexcom NIO50, Schneider Link 150, Digi One IA, Red Lion DA10D et Moxa MGate 5105-MB-EIP.

Un problème de traduction

« Nous nous sommes intéressés à la mise en œuvre du processus de traduction de protocole et avons cherché dans quelles situations les passerelles pouvaient introduire des erreurs ayant un impact sur le dispositif avec lequel elles communiquaient, comme un PLC connecté à l'interface série », ont déclaré les chercheurs dans leur article. « C’est comme tester un traducteur de langue pour voir s’il traduit correctement des phrases et respecte bien les accords de temps, les accords entre le sujet et le verbe, et s’il place correctement les ponctuations ou s’il en oublie. Un bon traducteur corrigera la phrase si le contexte est suffisamment évident ou refusera de la traduire si le message n'est pas clair dans sa forme actuelle ». Pour savoir comment les passerelles de traduction traitaient les paquets présentant des anomalies, les chercheurs ont utilisé un fuzzer pour envoyer 5 078 paquets Modbus TCP invalides et 1 659 paquets Modbus RTU invalides. Les protocoles Modbus TCP et Modbus RTU doivent respecter des longueurs de paquets différentes, ce qui signifie que dans des conditions normales, la passerelle devrait supprimer les paquets présentant des anomalies.

Au cours de leurs tests, les chercheurs ont observé que la passerelle NIO50 de Nexcom ne filtrait pas correctement les paquets Modbus TCP de longueur incorrecte et les transmettait la plupart du temps comme des protocoles Modbus RTU. Cette erreur leur a donné l'idée de vérifier s'il était possible de créer un paquet Modbus TCP invalide selon la spécification, mais qui deviendrait valide s'il était ensuite transmis aveuglément par la passerelle comme paquet Modbus RTU. En effet, ils ont trouvé plusieurs moyens de créer un paquet Modbus TCP avec des commandes de lecture que tout pare-feu situé entre la passerelle et l'émetteur afin de protéger les systèmes de contrôle industriels (ICS) considèrerait comme inoffensives, mais qui, lorsqu'elles atteindraient la passerelle NIO50, seraient transmises en tant que Modbus RTU et auraient une signification complètement différente pour l’Automate Programmable Industriel (API) ou Programmable Logic Controller (PLC) situé derrière ce pare-feu. Le dispositif de test comprenait un automate contrôlant un moteur, un thermomètre et un tachymètre.

Une attaque sournoise

« Avec une seule commande, un attaquant peut désactiver les capteurs essentiels pour surveiller les performances et la sécurité du moteur (température et tachymètre), tout en maintenant le moteur en marche », ont déclaré les chercheurs. « Si les ingénieurs présents sur le terrain et les opérateurs ne le remarquent pas, le moteur peut continuer à fonctionner en dehors des contraintes de sécurité établies, mais ce dysfonctionnement ne sera pas visible ou ne déclenchera pas d'alarme si les capteurs (thermomètre et tachymètre) ont été désactivés ».

Le NIO50 de Nexcom est une passerelle en temps réel où les paquets sont traduits à la volée au fur et à mesure qu'ils arrivent. Cependant, certaines passerelles fonctionnent de manière asynchrone et enregistrent des paquets du même type ou ayant la même destination afin de les envoyer ensemble pour des raisons de performance. Également connues sous le nom de stations de données, elles utilisent un tableau de correspondance I/O configurable par l'utilisateur. Les passerelles Red Lion DA10D et Moxa MGate 5105-MB-EIP font partie de cette catégorie. « Les tables de cartographie I/O peuvent être une source cruciale d'informations pendant la phase de développement et de paramétrage de l'attaque et peuvent fournir à un attaquant l'information qu’il recherche pour stopper l'installation », ont déclaré les chercheurs. « En outre, toute modification non autorisée de la table de correspondance I/O altère le fonctionnement de l’interface homme-machine (IHM), des automates programmables et des dispositifs connectés à la station de données ».

Passerelle Moxa MGate vulnérable

En général, les stations de données servent à protéger ces informations, mais les chercheurs de Trend Micro ont trouvé plusieurs failles qui permettraient à des attaquants d'accéder ou de décrypter la base de données. Plus précisément, la  présentait une vulnérabilité pouvant permettre la divulgation d'informations par le biais de commandes propriétaires, une faille pouvant permettre de réutiliser des identifiants via des commandes propriétaires et un problème de shell racine post-authentification pouvant permettre aux attaquants d’exercer un contrôle important et durable sur le dispositif. La passerelle Red Lion présentait quant à elle un problème de fuite de mémoire arbitraire et la condition d’un déni de service Modbus.

En fait, les chercheurs ont découvert que toutes les passerelles de routage en temps réel testées étaient exposées à un déni de service si elles devaient traiter un flot de paquets toutes les demies secondes. Les appareils sont restés sous tension, mais poussés à la limite de leurs ressources, ils ne parvenaient plus à effectuer correctement leur travail de traduction. Par ailleurs, les chercheurs ont pu forcer le redémarrage de la station Red Lion DA10D en lui envoyant des paquets TCP Modbus spécialement conçus. Ils ont également découvert des problèmes d'authentification et d'autres failles dans les interfaces de contrôle basées sur le cloud des produits NIO50 et DA10D.

Mise à jour nécessaire

Toutes les failles identifiées au cours de la recherche ont été remontées aux fournisseurs concernés. Certaines ont été corrigées, mais d'autres resteront en l’état ou ne seront pas corrigées parce que le produit est en fin de vie. C'est notamment le cas de toutes les failles affectant la passerelle NIO50. « Ces recherches ont pour but de sensibiliser le public », a déclaré Marco Balduzzi, chercheur principal chez Trend Micro, lors de son intervention à Black Hat. « Il est évident que ces appareils ne devraient pas être exposés à Internet, mais ils sont souvent exposés au réseau de contrôle. Et si une machine du réseau de contrôle est compromise, ces passerelles peuvent être attaquées. Or, il est très difficile de déboguer de telles attaques, car souvent, ces appareils ne conservent pas les logs et ne manifestent aucun problème physique. L'appareil fait une erreur de traduction et transmet cette erreur à l'automate et il est vraiment difficile de les déboguer ».