La plateforme ICSForge est désormais publiée sous licence GPLv3 — un outil open-source pour valider la couverture des moyens de cybersécurité des systèmes de contrôle industriel (ICS). La plateforme génère un trafic industriel réaliste et des fichiers PCAP, et associe chaque scénario à la matrice MITRE ATT&CK for ICS v18. La couverture annoncée est de 68 techniques sur 83, soit 82 %.
Dans la version 0.62 sont pris en charge dix protocoles industriels : Modbus/TCP, DNP3, IEC-104 (IEC 60870-5-104), S7comm, OPC UA, EtherNet/IP, BACnet/IP, MQTT, IEC 61850 GOOSE et PROFINET DCP. Pour chaque protocole, de 5 à 36 variantes de trafic sont implémentées, soit au total 536 scénarios unitaires et 11 chaînes d'attaque multi-étapes prêtes à l'emploi.
Comment cela fonctionne
La plateforme est construite autour de deux composants qui interagissent — un émetteur et un récepteur. L'émetteur génère le trafic et insère dans chaque paquet un marqueur de corrélation. Le récepteur, déployé dans le segment testé, recherche ce marqueur et renvoie un accusé. Si l'accusé arrive, le paquet a bien atteint son destinataire sur le câble. Si le système de surveillance déployé dans le même segment a réagi au trafic, la détection fonctionne. On obtient ainsi une chaîne sans ambiguïté : exécuté → livré → détecté. Pour les cas où la simple présence du marqueur fausserait la propreté de l'expérience, un mode furtif est prévu — sur le câble sont générées des trames octet par octet réalistes, sans aucune trace d'ICSForge.
Qu'est-ce que MITRE ATT&CK for ICS
MITRE ATT&CK for ICS est une base de connaissances ouverte, maintenue depuis 2020 par MITRE, une corporation américaine à but non lucratif. C'est un catalogue structuré des techniques qu'utilise un adversaire lors d'attaques contre les systèmes de contrôle industriel, fondé sur l'étude d'incidents réels dans l'énergie, le pétrole et le gaz, l'eau et l'industrie manufacturière. MITRE ATT&CK for ICS est une base de connaissances ouverte, maintenue depuis 2020 par MITRE, une corporation américaine à but non lucratif. C'est un catalogue structuré des techniques qu'utilise un adversaire lors d'attaques contre les systèmes de contrôle industriel, fondé sur l'étude d'incidents réels dans l'énergie, le pétrole et le gaz, l'eau et l'industrie manufacturière.
La base est divisée en 12 tactiques — catégories d'objectifs poursuivis par l'attaquant : obtenir l'accès initial (Initial Access), s'installer durablement (Persistence), échapper à la détection (Evasion), entraver les protections (Inhibit Response Function), peser sur le procédé (Impair Process Control), etc. À l'intérieur de chaque tactique se trouvent des techniques précises décrivant comment l'atteindre : par exemple, T0855 « Unauthorized Command Message » — commande de consigne ou de contrôle non autorisée, T0832 « Manipulation of View » — falsification des données affichées à l'opérateur. À ce jour, la matrice décrit 83 techniques uniques.
Pour le secteur, la matrice est devenue le langage standard pour décrire les menaces et évaluer la posture de sécurité. Les sondes passives modernes (NSM), les pare-feux ICS et les systèmes SIEM étiquettent leurs règles de détection avec les identifiants des techniques ATT&CK — cela permet de comparer les produits et de bâtir un programme de protection sur une grille de coordonnées claire. ICSForge utilise la même grille de l'autre côté : pour chaque technique reproductible au niveau réseau, la plateforme propose un ou plusieurs scénarios prêts à l'emploi.
Sur 83 techniques, 68 sont implémentées dans la plateforme. Les 15 restantes sont des techniques qui exigent un accès physique ou ne laissent pas de trace observable au niveau réseau : les auteurs les classent honnêtement comme « non implémentables au niveau réseau » et fournissent une justification pour chacune dans un fichier de configuration ouvert. Une telle transparence est rare parmi les outils de cette catégorie.
Chaînes d'attaque prêtes à l'emploi
En plus des techniques unitaires, ICSForge contient 11 scénarios multi-étapes modélisant des attaques publiquement connues. Parmi elles — Industroyer2 (combinaison d'IEC-104 et S7comm), des chaînes de type TRITON (visant les systèmes instrumentés de sécurité), Stuxnet (manipulation du programme d'un automate Siemens), un scénario inspiré de l'incident d'Oldsmar (modification de consignes de traitement de l'eau), ainsi que la « chaîne complète ICS Kill Chain » — de la reconnaissance à l'impact.
Qu'est-ce qu'Industroyer
Industroyer (également connu sous le nom de CrashOverride) est le premier logiciel malveillant publiquement connu conçu spécifiquement pour attaquer des installations électriques. Il a été utilisé en décembre 2016 lors de la coupure partielle de courant dans le nord de Kiev, et prenait en charge les protocoles IEC 60870-5-101, IEC 60870-5-104, IEC 61850 et OPC DA — autrement dit l'ensemble qui est habituellement utilisé dans l'automatisation des postes électriques. Industroyer2 est une variante découverte en avril 2022 lors d'une tentative d'attaque contre le système électrique ukrainien : elle contenait des configurations en dur pour un objet précis et opérait exclusivement sur IEC-104. Reproduire le trafic réseau caractéristique de ces attaques dans un environnement contrôlé est une tâche standard de l'évaluation de la maturité d'un SOC, et ICSForge fournit pour cela un outil qui n'exige ni échantillons réels de logiciel malveillant, ni accès à ceux-ci.
Fonctionnalités complémentaires et sûreté
Outre la génération du trafic, ICSForge produit automatiquement des règles de détection pour les systèmes Suricata et Sigma sur trois niveaux — depuis des règles de laboratoire détectant le marqueur propre à la plateforme jusqu'à des règles sémantiques destinées à un usage industriel, qui se déclenchent sur des codes de fonction et des services applicatifs précis.
Pour éviter tout déclenchement accidentel sur un réseau de production, l'envoi est par défaut autorisé uniquement vers des adresses RFC 1918, loopback et TEST-NET ; l'accès aux adresses publiques est bloqué. L'authentification dans l'interface web est obligatoire, les mots de passe sont stockés via scrypt et la transmission des accusés est protégée par un jeton dédié. Les auteurs insistent explicitement : ICSForge n'exploite pas de vulnérabilités, ne modifie pas l'état des équipements réels et ne modélise aucun impact physique sur le procédé technologique — c'est un outil pour évaluer la qualité de la détection, pas pour attaquer.
La plateforme est écrite en Python 3.10+, prend en charge le déploiement depuis le code source et via Docker Compose ; la ligne de commande dispose d'une parité totale avec l'interface web.
Le dépôt du projet est disponible ici.