Détection dans les systèmes industriels: Suricata et le cas Modbus Conférence C&ESAR David DIALLO et Mathieu FEUILLET {mathieu.feuillet,david.diallo}@ssi.gouv.fr 25 novembre 2014 ANSSI ANSSI : Agence nationale de la sécurité des systèmes d’information Autorité nationale de cyberdéfense, services du premier ministre Trois missions principales : Défendre Prévenir Informer http://www.ssi.gouv.fr/ Détection dans les systèmes industriels: Suricata et le cas Modbus 2/20 Systèmes industriels Définition : système d’information ayant des actions physiques. Constat : mêmes vulnérabilités et de plus en plus visés. Détection dans les systèmes industriels: Suricata et le cas Modbus 3/20 Spécificités des systèmes industriels Besoins de sécurité : 1 Intégrité 2 Disponibilité 3 Confidentialité (optionnel) Contraintes : Durée de vie élevée Fonctionnement en continu avec arrêts planifiés Pour certains, contraintes de temps de réponse Atouts : Architecture (souvent) bien définie Comportement cadré et limité Evolution lente (peu de modifications) Détection dans les systèmes industriels: Suricata et le cas Modbus 4/20 Architecture typique Client SCADA Serveur d’historique Passerelle vers Intranet Disponibilité Technologie Intégrité Critique Standard Serveur SCADA Automate Automate Très critique Spécifique actionneur capteur actionneur capteur Détection dans les systèmes industriels: Suricata et le cas Modbus 5/20 Systèmes de détection Système de détection d’intrusion IDS dispositif de sécurité issu des systèmes d’information de gestion analyse le trafic réseau SCADA sécurité issu des systèmes industriels collecte active de l’information (monitoring) complément à la supervision du procédé industriel Détection dans les systèmes industriels: Suricata et le cas Modbus 6/20 SCADA sécurité : Que détecter ? Détection par ordre d’importance 1 Sortie de bornes du procédé industriel 2 Suivi et collecte des informations système Connexion et déconnexion d’utilisateur Charges CPU Compteurs (de trames. . . ) 3 Incohérence des informations Corrélation entre sources Détection dans les systèmes industriels: Suricata et le cas Modbus 7/20 SCADA sécurité : Où détecter ? Client SCADA sécurité Serveur SCADA sécurité Client SCADA Serveur d’historique Passerelle vers Intranet Serveur SCADA Automate Automate Passerelle protocolaire sécurisée actionneur capteur actionneur capteur Détection dans les systèmes industriels: Suricata et le cas Modbus 8/20 IDS : Que détecter ? Détection en fonction de la maturité 1 Détection d’évènements simples redoutés Reprogrammation d’automate (StuXnet) Ordre d’arrêt Vulnérabilités connues (CVE) Conformité protocolaire 2 3 Violation de la matrice de flux Violation de la politique de sécurité Utilisation de fonctions illicites Dépassement de seuils Écriture hors des zones autorisées 4 Détection en liste blanche Détection dans les systèmes industriels: Suricata et le cas Modbus 9/20 IDS : Où détecter ? Client SCADA Serveur d’historique SIEM SCADA sondes S3 Passerelle vers Intranet S1 Serveur SCADA S4 S2 Automate S5 Automate S6 actionneur capteur actionneur capteur Détection dans les systèmes industriels: Suricata et le cas Modbus 10/20 SCADA sécurité vs IDS SCADA sécurité Collecte d’alarme, de valeurs et d’évènements systèmes Analyse des évènements dans le temps Corrélation entre sources Atouts IDS Système non intrusif Préexistence d’une surveillance par des opérateurs Trafic réseau exhaustif au point de collecte Formation et Mise à jour plus aisée et moins appropriation accélérées risquée (mêmes outils. . . ) Défauts Maintien à jour nécessaire Intrusif Mise à jour délicate Détection dans les systèmes industriels: Suricata et le cas Modbus 11/20 Cas pratique Client SCADA Serveur d’historique Passerelle vers Intranet Serveur SCADA S4 S2 Automate S5 Automate S6 Consigne actionneur Information capteur actionneur capteur Détection dans les systèmes industriels: Suricata et le cas Modbus 12/20 Protocole Modbus TCP/IP Requête ADU Modbus PDU Modbus Entête MBAP Trans. ID Long. Prot. ID Code fonction Données Code fonction Données Unité Réponse Entête MBAP Trans. ID Long. Prot. ID Unité Détection dans les systèmes industriels: Suricata et le cas Modbus 13/20 Exemple 1 : Extension Modbus UMAS Extension Modbus UMAS : Fonction réservée Schneider Electric Requête ADU Modbus PDU Modbus Entête MBAP Trans. ID Long. Prot. ID Code fonction Unité 0x5A Données Non documentées Réponse Entête MBAP Trans. ID Long. Prot. ID Code fonction Unité 0x5A Données Non documentées Détection dans les systèmes industriels: Suricata et le cas Modbus 14/20 Exemple 2 : Écriture dans un registre Fonction Write Single Register : Écriture dans un registre Requête ADU Modbus PDU Modbus Entête MBAP Trans. ID Long. Prot. ID Code fonction Unité 0x06 Données Adresse Valeur Réponse Entête MBAP Trans. ID Long. Prot. ID Code fonction Unité 0x06 Données Adresse Valeur Détection dans les systèmes industriels: Suricata et le cas Modbus 15/20 Suricata : Détection de motif Exemple 1 : Protocole Modbus UMAS alert tcp $MODBUS_CLIENT any -> $MODBUS_SERVER 502 (content:”|5A|”; offset:7; depth:1; msg:”Modbus TCP – Modbus UMAS Protocol”; [...]) Limitations : Possibilité de contourner l’IDS Pas de vérification de la conformité Complexité d’implémentation des règles plus précises Détection dans les systèmes industriels: Suricata et le cas Modbus 16/20 Contribution Suricata : Préprocesseur Modbus Exemple 1 : Protocole Modbus UMAS alert modbus $MODBUS_CLIENT any -> $MODBUS_SERVER any (modbus.function: 0x5A; msg:”Modbus TCP – Modbus UMAS Protocol”; [...]) Avantages : Définition moins complexe et plus performante des règles Vérification de la conformité du protocole Détection dans les systèmes industriels: Suricata et le cas Modbus 17/20 Contribution Suricata : Préprocesseur Modbus Exemple 1 : Protocole Modbus UMAS alert modbus $MODBUS_CLIENT any -> $MODBUS_SERVER any (modbus.function: reserved; msg:”Modbus TCP – Reserved function”; [...]) Avantages : Définition moins complexe et plus performante des règles Vérification de la conformité du protocole Définition étendue Détection dans les systèmes industriels: Suricata et le cas Modbus 17/20 Contribution Suricata : Préprocesseur Modbus Exemple 2 : Écriture dans un registre alert modbus $MODBUS_CLIENT any -> $MODBUS_SERVER any (modbus.access: write holding, address 100, value >2000; msg:”Vitesse moteur trop élevée”; [...]) Avantages : Définition moins complexe et plus performante des règles Vérification de la conformité du protocole Définition étendue Vérification du contenu Détection dans les systèmes industriels: Suricata et le cas Modbus 18/20 Performance Métrique de performance d’un IDS : taux de perte. 50 % Taux de perte 40 % Règles de conformité 30 % 100 règles avec alerte 100 règles sans alerte 20 % 10 % 0% 0k 10 k 20 k 30 k 40 k Débit (pps) 0€ -20 0 0 1 93mm 20mm 113mm Détection dans les systèmes industriels: Suricata et le cas Modbus 19/20 Conclusion 1 Deux méthodes de détection complémentaires : SCADA sécurité IDS 2 Passivité de l’IDS adaptée aux anciens systèmes 3 Code disponible Suricata V2.1 beta3 https://github.com/inliniac/suricata/ Perspectives : D’autres protocoles industriels (S7, EtherNet/IP. . . ) Quid de la sécurité des sondes IDS ? Détection dans les systèmes industriels: Suricata et le cas Modbus 20/20
© Copyright 2024 Paperzz