TroutTrout
Back to Blog
ModbusEncryption tunnelsOT security

Sécuriser les réseaux Modbus TCP : au-delà des règles de pare-feu de base

Trout Team9 min read

Modbus TCP ne dispose d'aucune authentification, d'aucun chiffrement et d'aucune gestion de session. Une règle de pare-feu bloquant le port 502 depuis Internet est un point de départ, pas une stratégie de sécurité. Quiconque peut atteindre un équipement à l'écoute sur le port 502 peut lire n'importe quel registre et écrire n'importe quelle bobine, car le protocole considère chaque pair comme fiable. Cet article couvre ce qui vient après les règles de pare-feu de base : les tunnels de chiffrement, une segmentation qui suit le procédé plutôt que le sous-réseau, l'inspection en profondeur, le contrôle des codes de fonction et la surveillance qui relie le tout, autant de mesures répondant aux lacunes fondamentales de conception de Modbus TCP.

Comprendre les vulnérabilités de Modbus TCP

Modbus est un protocole de type requête-réponse qui transporte un identifiant d'unité, un code de fonction et une charge utile de données. La variante TCP encapsule cela dans un court en-tête MBAP (Modbus Application Protocol) et l'envoie sur le port 502. Publié en 1979 pour des liaisons série, le mappage TCP a hérité d'un modèle de confiance pertinent sur un câble point à point, mais inadapté à un réseau routé. La spécification MODBUS/TCP Security de la Modbus Organization elle-même indique explicitement que le protocole de base ne fournit aucun service de sécurité et que la confidentialité, l'intégrité et l'authentification doivent être ajoutées par-dessus. Il en résulte plusieurs faiblesses structurelles :

  • Absence d'authentification : Modbus TCP ne comprend aucun mécanisme d'authentification. Tout hôte capable d'ouvrir une session TCP vers le port 502 peut émettre le code de fonction 6 (écriture d'un registre) ou 16 (écriture de plusieurs registres) et modifier une consigne, sans qu'aucun justificatif ne soit jamais demandé.
  • Absence de chiffrement : Les données transmises via Modbus TCP ne sont pas chiffrées. Les valeurs de registres, les états des bobines et les commandes qui les modifient circulent en clair, si bien que quiconque dispose d'une sonde ou d'un port miroir peut lire l'état du procédé et reconstituer les commandes.
  • Absence de protection de l'intégrité : Il n'existe aucune signature des messages. Un attaquant en position d'intercepteur peut altérer une valeur en transit, sans que le destinataire puisse détecter la manipulation.
  • Attaques par rejeu : Sans gestion de session ni nonce, une requête d'écriture capturée peut être renvoyée à l'identique. Un attaquant qui enregistre une commande légitime d'ouverture de vanne peut la rejouer plus tard sans même comprendre la charge utile.

Les recommandations américaines considèrent ces points comme inhérents : le NIST SP 800-82 Rév. 3, Guide to Operational Technology Security, souligne que de nombreux protocoles OT ont été conçus pour la fiabilité et le déterminisme plutôt que pour la sécurité, et préconise des contrôles compensatoires aux niveaux réseau et hôte plutôt que d'attendre du protocole qu'il se défende lui-même.

Mesures de sécurité avancées pour Modbus TCP

Une segmentation qui suit le procédé

La segmentation est le contrôle au meilleur effet de levier pour Modbus, mais seulement lorsque les zones correspondent au procédé plutôt qu'à la commodité. Le modèle de Purdue et l'approche par zones et conduits de la norme IEC 62443 fournissent le vocabulaire : regrouper dans une zone les équipements qui doivent communiquer entre eux, et faire transiter tout le trafic inter-zones par un conduit contrôlé où la politique peut être appliquée.

  • Création de zones sécurisées : Séparez la zone de contrôle (automates, RTU, les équipements qui pilotent réellement le procédé) de la zone de supervision (IHM, historiens, stations d'ingénierie). Une IHM compromise ne devrait pas pouvoir atteindre un automate, sauf par un chemin que vous pouvez observer et gouverner.
  • Conduits en refus par défaut : Un conduit entre zones doit partir d'un refus par défaut et n'autoriser que la source, la destination et le port précis qu'exige un flux de données documenté. Les pratiques recommandées de la CISA pour la défense en profondeur des systèmes de contrôle industriel décrivent la superposition de la segmentation, du contrôle d'accès et de la surveillance afin qu'aucune défaillance unique n'expose le procédé.
  • Accès lié à l'identité : Au-delà de l'IP et du port, restreignez qui peut atteindre un équipement. Un ingénieur en maintenance a besoin d'un chemin à durée limitée vers un automate précis, et non d'un accès permanent à toute la zone de contrôle.

Inspection en profondeur et contrôle des codes de fonction

Comme Modbus ne dispose d'aucune authentification propre, le point d'application le plus utile est celui qui comprend le protocole lui-même. Une passerelle ou un mandataire qui analyse l'en-tête MBAP et le code de fonction peut appliquer une politique au niveau pertinent : non seulement « l'hôte A peut-il parler à l'hôte B sur le port 502 », mais « l'hôte A peut-il émettre une écriture vers la plage de registres X sur l'équipement B ».

  • Liste d'autorisation des codes de fonction : Un historien n'a jamais besoin que de codes de fonction de lecture (1 à 4). Aucune raison légitime ne justifie qu'il émette une écriture. Autoriser les lectures et refuser les écritures au niveau du conduit bloque toute une catégorie d'attaques, même si l'historien est compromis.
  • Restriction des registres et des bobines : Liez les autorisations à des plages d'adresses, de sorte qu'un équipement autorisé à ajuster une consigne ne puisse atteindre des registres critiques pour la sûreté qu'il n'a aucune raison de manipuler.
  • Limites de débit et de forme : Le trafic Modbus d'un procédé en régime établi est très régulier. Des plafonds sur le débit des requêtes et le rejet des en-têtes MBAP malformés détectent tôt le balayage, le fuzzing et les inondations.

Encapsulation TLS et tunnels de chiffrement

Modbus ne transporte aucun chiffrement propre : la confidentialité et l'intégrité doivent donc être ajoutées par la couche de transport sous-jacente. La spécification MODBUS/TCP Security de la Modbus Organization définit précisément cela : le tramage Modbus transporté dans une session TLS sur le port 802, avec des certificats X.509 authentifiant les deux extrémités. Lorsque le Modbus/TLS natif n'est pas disponible sur des équipements anciens, encapsulez le trafic de manière externe.

  • Modbus/TLS natif : Lorsque les équipements le prennent en charge, TLS offre en une seule étape l'authentification mutuelle par certificats ainsi que le chiffrement et l'intégrité, comblant ensemble l'absence d'authentification et de chiffrement.
  • Passerelles TLS ou VPN : Pour les équipements qui ne parlent que le Modbus en clair, terminez un tunnel TLS ou VPN sur une passerelle placée devant l'équipement, afin que le trafic traversant des segments non fiables soit chiffré, à l'image du HTTPS pour le trafic web.
  • Hygiène des certificats : Le chiffrement ne vaut que par la gestion des clés. Renouvelez les certificats, attribuez-les par équipement et révoquez-les sans délai lors de la mise hors service d'un équipement.

Surveillance et détection sensible au protocole

Le chiffrement et la segmentation réduisent l'exposition ; la surveillance vous prévient lorsque quelque chose passe au travers. Un système de détection d'intrusion qui comprend Modbus transforme des paquets bruts en alertes pertinentes pour le procédé.

  • Détection d'anomalies protocolaires : Configurez la détection pour reconnaître les codes de fonction inhabituels, les écritures émanant d'équipements censés ne faire que de la lecture, et les commandes visant des registres hors de leur plage normale.
  • Référentiels de trafic : Le trafic OT en régime établi est prévisible. Établissez le référentiel de l'ensemble normal de tuples source-destination-code de fonction, puis alertez sur toute nouveauté, souvent le premier signe de reconnaissance ou de déplacement latéral.
  • Collecte passive : Utilisez une capture par port miroir ou par sonde, de sorte que la surveillance n'ajoute jamais de charge ni de latence au réseau de contrôle lui-même.

Conformité et alignement sur les normes

Les contrôles ci-dessus ne sont pas arbitraires. Chacun correspond à une norme qu'un régulateur ou un auditeur reconnaîtra, ce qui les rend plus faciles à justifier et à budgéter.

  • IEC 62443 : Le modèle par zones et conduits ainsi que les niveaux de sécurité offrent une manière structurée de justifier où placer la segmentation et quels contrôles appliquer.
  • NIST SP 800-82 Rév. 3 : Fournit les recommandations de contrôle spécifiques à l'OT, qui correspondent directement aux mesures ci-dessus.
  • CMMC et NIST SP 800-171 : Pour les sous-traitants de la défense, ces cadres régissent la protection des informations non classifiées contrôlées (CUI) dans les systèmes non fédéraux, applicables aux environnements Modbus TCP.
  • Directive NIS2 : Les entités essentielles et importantes de l'UE relèvent de NIS2, qui relève le niveau d'exigence en matière de sécurité des réseaux et des systèmes d'information ainsi que de notification des incidents.

Étapes pratiques pour renforcer la sécurité de Modbus TCP

  1. Inventorier chaque émetteur Modbus : Vous ne pouvez ni segmenter ni surveiller ce que vous n'avez pas cartographié. Dressez la liste de chaque équipement qui parle Modbus et des flux entre eux.
  2. Segmenter autour du procédé : Placez les automates et les systèmes de supervision dans des zones distinctes, avec des conduits en refus par défaut entre elles.
  3. Appliquer une politique de codes de fonction : Mettez en liste d'autorisation les codes de fonction et les plages de registres dont chaque flux a réellement besoin, et refusez le reste.
  4. Ajouter du chiffrement là où le trafic franchit des frontières de confiance : Utilisez le Modbus/TLS natif lorsque c'est possible, sinon des passerelles TLS ou VPN.
  5. Déployer une surveillance sensible au protocole : Établissez le référentiel du trafic normal et alertez sur les codes de fonction et les écritures anormaux.
  6. S'aligner sur les normes : Associez chaque contrôle aux exigences IEC 62443, NIST SP 800-82, CMMC, NIST SP 800-171 et NIS2.

Conclusion

Sécuriser les réseaux Modbus TCP va au-delà des règles de pare-feu de base. Segmentez autour du procédé pour qu'une IHM compromise ne puisse atteindre un automate. Appliquez les codes de fonction et les plages de registres au niveau du conduit, car un protocole sans authentification a besoin d'un point d'application qui le comprend. Encapsulez le trafic dans des tunnels TLS ou VPN pour apporter le chiffrement qui fait défaut à Modbus. Établissez le référentiel du trafic normal et surveillez les écritures anormales. Associez chaque mesure aux exigences IEC 62443, NIST SP 800-82, CMMC, NIST 800-171 et NIS2. Commencez par inventorier chaque équipement qui parle Modbus sur votre réseau, les résultats vous indiqueront où concentrer vos efforts en priorité.