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.

S7comm (Siemens)

ot

Définition

S7comm est le protocole de communication propriétaire Siemens utilisé pour les échanges entre les automates S7 (S7-300, S7-400, S7-1200, S7-1500) et les outils de programmation (TIA Portal, STEP 7), les HMI, les superviseurs SCADA WinCC et les autres équipements Siemens. Opérant sur TCP/102 via les couches ISO-on-TCP (RFC 1006), S7comm est devenu un vecteur d'attaque stratégique du fait de l'omniprésence des automates Siemens dans les infrastructures critiques mondiales. Stuxnet (2010) a exploité S7comm pour communiquer avec les PLC S7-315 et S7-417 des centrifugeuses d'enrichissement d'uranium iraniennes de Natanz. Le malware utilisait une bibliothèque S7comm reverse-engineered pour lire les programmes ladder logic des automates, les modifier subtilement, et masquer les changements aux opérateurs utilisant STEP 7. La capacité de Stuxnet à interagir avec S7comm a révélé les risques inhérents à ce protocole propriétaire non documenté publiquement. S7comm n'intègre aucun mécanisme d'authentification dans ses versions anciennes (S7-300/400) : tout client réseau pouvant atteindre le port TCP/102 peut lire et écrire dans la mémoire de l'automate, télécharger et uploader des programmes, arrêter et démarrer le PLC. S7CommPlus (utilisé par S7-1200/1500) introduit des améliorations de sécurité incluant un challenge/response d'authentification et des mécanismes anti-replay, bien que des chercheurs aient aussi documenté des vulnérabilités dans ces versions améliorées. Les outils open-source disponibles pour interagir avec S7comm (Snap7, python-snap7, Metasploit modules) facilitent l'analyse de sécurité mais aussi les attaques sur les PLC Siemens non protégés.

Fonctionnement de S7comm

S7comm fonctionne sur la couche applicative ISO-on-TCP (RFC 1006) sur TCP/102. La connexion débute par un handshake COTP puis un établissement de session S7 (S7 Setup Communication). Les PDU S7 permettent des opérations Read/Write sur des zones mémoire spécifiques : Inputs (I/E), Outputs (Q/A), Flags (M), Data Blocks (DB), Timer (T), Counter (C). L'adressage utilise la notation Siemens : DB5.DBX2.0 (bit 0 du byte 2 du bloc de données 5). L'opération de téléchargement de programme (Download to PLC) est aussi supportée via S7comm, permettant la modification du programme ladder logic.

Contexte OT/ICS et Stuxnet

Stuxnet a marqué l'histoire de S7comm : il était le premier malware à implémenter une bibliothèque S7comm complète permettant la communication avec les PLC S7. Cette capacité lui permettait d'intercepter les communications entre STEP 7 et les PLC pour lire le programme ladder, y injecter des blocs de code malveillants (Organisation Block 35 pour le code cyclique, blocs fonctionnels FB pour la logique de sabotage), et répondre aux requêtes de lecture de STEP 7 avec le programme original non modifié - masquant ainsi l'altération. Cette technique de rootkit PLC reste l'une des plus sophistiquées jamais documentées.

Sécurité et mitigation

Protection des PLC S7 : activer la protection par mot de passe des blocs de programme (TIA Portal : Properties → Protection), mettre à niveau vers S7-1200/1500 avec S7CommPlus et activer l'authentification, déployer des OT Firewalls avec DPI S7comm pour restreindre les opérations autorisées (lecture seule depuis le SCADA, écriture uniquement depuis la station d'ingénierie), surveiller les tentatives de connexion S7comm depuis des sources non autorisées, et auditer régulièrement l'intégrité des programmes PLC (checksums, comparaison avec référentiel offline).

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis