Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

Structured Text (ST) - Langage PLC

ot

Définition

Structured Text (ST) est l'un des cinq langages de programmation d'automates industriels (PLC) définis par la norme IEC 61131-3. Il s'agit du langage de plus haut niveau de la norme, avec une syntaxe inspirée du Pascal, permettant l'écriture d'algorithmes complexes, de calculs mathématiques, de structures de données, et de logiques de contrôle avancées dans un format textuel lisible. Structured Text est particulièrement adapté aux calculs d'ingénierie complexes (algorithmes de régulation avancée, optimisation de processus, calculs de compensation) qui sont difficiles à exprimer en Ladder Logic ou en Function Block Diagram. La syntaxe Structured Text inclut des structures de contrôle familières aux programmeurs : IF/THEN/ELSE, CASE/OF, FOR/TO/DO, WHILE/DO, REPEAT/UNTIL, les opérateurs arithmétiques et logiques standards, les appels de fonctions et de blocs fonctionnels, et les types de données structurés (tableaux, structures, pointeurs dans certaines implémentations). Cette expressivité facilite l'implémentation d'algorithmes complexes comme des filtres Kalman pour le brassage de signaux, des optimiseurs MPC (Model Predictive Control), ou des algorithmes de diagnostic d'équipements. Du point de vue de la cybersécurité, le code Structured Text dans un PLC constitue une cible potentielle d'attaque : un attaquant capable de modifier le programme ST d'un PLC peut altérer subtilement la logique de contrôle (modification de constantes, de conditions, d'algorithmes) d'une manière difficile à détecter visuellement dans la liste de code. Stuxnet a utilisé cette approche en modifiant subtilement le code Step 7 (ST/FBD équivalent pour S7) des PLC Siemens S7-315 pour altérer les consignes de fréquence envoyées aux variateurs. La validation du code ST sur les PLC est une pratique recommandée en cybersécurité OT : comparer périodiquement le code ST en mémoire du PLC avec la version de référence (golden image) pour détecter des modifications non autorisées.

Fonctionnement du Structured Text dans les PLC

Un exemple de code Structured Text pour un algorithme de régulation de pH dans un système de traitement de l'eau : (1) Lecture de la mesure pH depuis l'entrée analogique, (2) Calcul de l'erreur (SetPoint - MesuredValue), (3) Algorithme PID avec windup protection, (4) Calcul de la quantité de réactif à injecter (acide ou base selon signe de l'erreur), (5) Saturation de la commande (0-100%), (6) Sortie vers le variateur de vitesse de la pompe doseuse. Ce code ST est compilé par l'IDE du fabricant (Siemens TIA Portal, Rockwell Studio 5000, Schneider EcoStruxure Machine Expert) en bytecode exécutable par le processeur du PLC. La version compilée et la source ST sont stockées dans le PLC et peuvent être uploadées pour audit.

Contexte OT/ICS et intégrité du code PLC

La vérification de l'intégrité du code Structured Text sur les PLC est une pratique de cybersécurité OT recommandée mais rarement implémentée systématiquement : peu d'organisations font des "golden image comparisons" régulières de leur code PLC. Des outils spécialisés (Nozomi Networks Guardian, Dragos Platform, et des outils d'audit de code PLC comme les solutions de Claroty) peuvent automatiser la détection de changements non autorisés dans les programmes PLC, y compris le code ST. IEC 62443-3-3 recommande la mise en œuvre de contrôles d'intégrité sur les logiciels de contrôle (SR 3.4 - Software and Information Integrity).

Sécurité et mitigation

Protection du code Structured Text : utiliser des signatures numériques sur les programmes PLC lorsque supporté par l'environnement de développement (Siemens TIA Portal V17+ supporte la signature de blocs de code), maintenir une baseline documentée et signée du code PLC de référence, comparer périodiquement (mensuel ou trimestriel) le code en mémoire des PLC critiques avec la baseline, restreindre l'accès aux outils de programmation PLC (Siemens TIA Portal, Rockwell Studio 5000) aux seuls ingénieurs autorisés (comptes nominatifs, MFA), et inclure la revue des modifications de code PLC dans les processus de gestion du changement (MOC - Management of Change).

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis