Également connu sous le nom de TRITON ou HatMan, TRISIS est un type de malware qui cible les contrôleurs d’un Triconex Safety Instrumented System (SIS, système de sécurité actif Triconex) développé par Schneider Electric. Les auteurs des attaques récentes perpétrées par le biais de ce malware pourraient être différents groupes utilisant le même outil, dont l’usage a augmenté ces derniers temps.
Éléments clés
- Plusieurs entités ont été victimes de TRISIS.
- Quelque 18 000 systèmes de sécurité Triconex sont déployés dans le monde.
- Si de nombreuses entreprises utilisent des systèmes identiques, chaque implémentation de SIS est différente. Avant de pouvoir utiliser le malware pour compromettre le réseau industriel de manière pertinente, l’auteur de la menace doit comprendre l'environnement et les processus impliqués.
- Vu les ajustements nécessaires pour chaque attaque spécifique, il s’agit réellement d’un type d’attaque ciblée impossible à répéter telle quelle.
- Ce malware fonctionne uniquement si le keyswitch du Triconex SIS Controller est en mode « Programmation ». En mode « Run », il est interdit d’apporter des changements au programme.
- La mise en péril de la sécurité d'un SIS ne signifie pas que la sécurité du système est également mise à mal. Le safety engineering est une compétence très spécifique qui exige le respect de normes rigoureuses pour assurer la sécurité d'un processus.
Capacités de TRISIS
Sommaire
TRISIS peut être considéré comme une Stage 2 ICS attack capability (voir l’ICS killchain ci-dessous).
Ce malware cible des systèmes ICS spécifiques. Il se focalise clairement sur les réseaux industriels et ne concerne pas les environnements informatiques traditionnels.
Pour mettre en péril un réseau industriel, il faut d'abord toucher le réseau informatique de l'entreprise qui l'entoure et trouver un moyen d'entrer dans l'environnement industriel. En cas de détection de TRISIS, cela signifie qu'un pirate informatique est déjà parvenu à mettre en péril le réseau de l’entreprise.
Le malware en lui-même consiste en un script Python compilé avec py2exe, un compilateur accessible au public. Il est conçu de cette façon pour permettre à TRISIS de se déployer dans un environnement sans nécessiter l'installation préalable de Python (ce qui n'aurait souvent pas de sens dans un environnement industriel). L'objectif du script est de changer la logique d'un SIS cible.
Processus TRISIS
- Infection du réseau de l’entreprise (achèvement de la kill-chain classique).
- Développement – Identification du SIS cible, puis développement de la logique de remplacement et du loader en conséquence.
- Test – Vérification du bon fonctionnement du malware, probablement en le testant sur des appareils similaires et dans des conditions similaires (pas sur le réseau cible).
- Livraison – Transfert de TRISIS sur le SIS qui contient le module loader pour la nouvelle logique et les binaires de support qui fournissent la nouvelle logique.
- Installation – En gros, le logiciel malveillant se fait passer pour un logiciel Triconex afin d’analyser les logs SIS. Il identifie ensuite le bon emplacement de la mémoire à remplacer et y télécharge son propre code d'initialisation.
- Exécution de l'attaque ICS – TRISIS vérifie si l'étape précédente s’est déroulée avec succès. Si c'est le cas, il télécharge la nouvelle ladder logic dans le SIS.
Conclusion
Le logiciel malveillant TRISIS est un type d'outil extrêmement ciblé qui permet à un pirate informatique malveillant de remplacer totalement la ladder logic sur les périphériques affectés. Cela pourrait ensuite permettre au pirate en question de compromettre davantage l'environnement industriel.
Cependant, les connaissances requises pour mener ce genre d'attaques extrêmement ciblées ne sont pas négligeables. Chaque intrusion nécessite une planification, un développement et la fabrication d’un code spécifique. Toutes ces manipulations ne coulent pas de source, ce qui complique la mise à l'échelle et la propagation de cette attaque à d'autres environnements (y compris ceux qui utilisent des périphériques Triconex).
Limitation proactive des dommages
Dans le cas de TRISIS, Schneider Electric a fourni les recommandations suivantes pour les contrôleurs Triconex :
- Les systèmes de sécurité doivent toujours être déployés sur des réseaux isolés.
- Des contrôles physiques devraient être mis en place pour éviter qu’une personne non autorisée n’accède aux contrôleurs de sécurité, à l'équipement de sécurité périphérique ou au réseau de sécurité.
- Tous les contrôleurs doivent être hébergés dans des espaces verrouillés et ne jamais être laissés en mode Program.
- Tous les terminaux Tristation (logiciel de programmation Triconex) doivent être conservés dans des espaces verrouillés et ne doivent jamais être connectés à un réseau autre que le réseau de sécurité.
- Toutes les méthodes d'échange de données mobiles avec le réseau de sécurité isolé, comme les CD, les clés USB... doivent être scannées avant d'être utilisées dans les terminaux Tristation ou dans tout maillon de ce réseau.
- Les ordinateurs portables qui ont été connectés à un autre réseau que le réseau de sécurité ne devraient jamais être autorisés à se connecter au réseau de sécurité sans un assainissement adéquat. Un assainissement de qualité comprend la vérification des modifications apportées au système et non pas simplement l'exécution d'un logiciel antivirus (dans le cas de TRISIS, aucun fournisseur majeur d'anti-virus ne l'a détecté au moment de son utilisation).
- Les postes de conduite doivent être configurés afin d’afficher une alarme lorsque le keyswitch Tricon est en mode Program.