Détection dans les systèmes industriels: Suricata et le cas Modbus

Download Report

Transcript Détection dans les systèmes industriels: Suricata et le cas Modbus

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 : I

Défendre

I I

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 3 Disponibilité Confidentialité (optionnel)

Contraintes :

I I Durée de vie élevée Fonctionnement en continu avec arrêts planifiés I Pour certains, contraintes de temps de réponse

Atouts :

I I I 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é Intégrité Technologie Critique Standard Serveur SCADA Automate actionneur Automate Très critique Spécifique capteur actionneur capteur

Détection dans les systèmes industriels: Suricata et le cas Modbus

5/20

Supervision ≈ 1s Controle-commande ≈ 1ms Procédé industriel

Systèmes de détection

Système de détection d’intrusion

IDS

I dispositif de sécurité issu des systèmes d’information de gestion I analyse le trafic réseau

SCADA

sécurité I issu des systèmes industriels I collecte active de l’information (monitoring) I complément à la supervision du procédé industriel

Détection dans les systèmes industriels: Suricata et le cas Modbus

6/20

2 systèmes de détection : 2 philosophies

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 I I I Connexion et déconnexion d’utilisateur Charges CPU Compteurs (de trames...) 3 Incohérence des informations I 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é Client SCADA Serveur d’historique Passerelle vers Intranet Serveur SCADA sécurité 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 2 3 4 Détection d’évènements simples redoutés I I I I Reprogrammation d’automate (StuXnet) Ordre d’arrêt Vulnérabilités connues (CVE) Conformité protocolaire Violation de la matrice de flux Violation de la politique de sécurité I I I Utilisation de fonctions illicites Dépassement de seuils Écriture hors des zones autorisées 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 Passerelle vers Intranet SIEM SCADA sondes Automate S3 S4 Serveur SCADA S2 S6 S1 S5 Automate 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é Atouts IDS

I I I I Collecte d’alarme, de valeurs et d’évènements systèmes Analyse des évènements dans le temps I I Système non intrusif Préexistence d’une surveillance par des opérateurs Corrélation entre sources I Trafic réseau exhaustif au point de collecte Formation et appropriation accélérées (mêmes outils...) I

Défauts

Mise à jour plus aisée et moins risquée I I Intrusif Mise à jour délicate I Maintien à jour nécessaire

Détection dans les systèmes industriels: Suricata et le cas Modbus

11/20

SCADA sécurité pour détecter les conséquences IDS pour détecter les causes

Cas pratique

Client SCADA Serveur d’historique Passerelle vers Intranet Serveur SCADA S4 Automate Consigne S6 Information S2 actionneur S5 Automate capteur actionneur capteur

Détection dans les systèmes industriels: Suricata et le cas Modbus

12/20 Protocole :

Modbus

IDS :

Suricata

Que détecter ?

Avec quelles ressources ?

Protocole Modbus TCP/IP

Requête Entête MBAP Trans.

ID Long.

Prot.

ID Unité ADU Modbus Code fonction PDU Modbus Données Réponse Entête MBAP Trans.

ID Long.

Prot.

ID Unité Code fonction Données

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 Entête MBAP Trans.

ID Long.

Prot.

ID Unité ADU Modbus Code fonction 0x5A PDU Modbus Données

Non documentées

Réponse Entête MBAP Trans.

ID Long.

Prot.

ID Unité Code fonction 0x5A Données

Non documentées

Détection dans les systèmes industriels: Suricata et le cas Modbus

14/20

0x06 Adresse Valeur 0x06 Adresse Valeur

Exemple 2 : Écriture dans un registre

Fonction Write Single Register : Écriture dans un registre Requête Entête MBAP Trans.

ID Long.

Prot.

ID Unité ADU Modbus Code fonction 0x06 PDU Modbus Données Adresse Valeur Réponse Entête MBAP Trans.

ID Long.

Prot.

ID Unité Code fonction 0x06 Adresse Données Valeur

Détection dans les systèmes industriels: Suricata et le cas Modbus

15/20

0x5A

Non documentées

0x5A

Non documentées

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 :

I Possibilité de contourner l’IDS I I 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

alert modbus $MODBUS_CLIENT any -> $MODBUS_SERVER any (modbus.access: write holding, (modbus.function:

0x5A

; address 100, value >2000; msg:”Vitesse moteur trop élevée”; [...])

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 :

I Définition moins complexe et plus performante des règles I Vérification de la conformité du protocole

Détection dans les systèmes industriels: Suricata et le cas Modbus

17/20

alert tcp $MODBUS_CLIENT any -> $MODBUS_SERVER 502 (modbus.access: write holding, (content:”

|5A|

”; offset:7; depth:1; address 100, value >2000; msg:”Modbus TCP – Reserved function”; [...]) msg:”Vitesse moteur trop élevée”; [...]) I I Définition étendue Vérification du contenu

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 :

I Définition moins complexe et plus performante des règles I Vérification de la conformité du protocole I Définition étendue

Détection dans les systèmes industriels: Suricata et le cas Modbus

17/20

alert tcp $MODBUS_CLIENT any -> $MODBUS_SERVER 502 (modbus.access: write holding, (content:”

|5A| 0x5A

; address 100, value >2000; msg:”Vitesse moteur trop élevée”; [...]) I Vérification du contenu

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 :

I Définition moins complexe et plus performante des règles I Vérification de la conformité du protocole I I Définition étendue Vérification du contenu

Détection dans les systèmes industriels: Suricata et le cas Modbus

18/20

alert tcp $MODBUS_CLIENT any -> $MODBUS_SERVER 502 (content:”

|5A|

”; offset:7; depth:1; msg:”Modbus TCP – Reserved function”; [...])

Performance

Métrique de performance d’un IDS : taux de perte.

50 % 40 % 30 % 20 % 10 % 0 % 0 k 10 k 20 k Débit (pps) 30 k 40 k

100-2 00€

93mm 113mm Règles de conformité 100 règles avec alerte 100 règles sans alerte 20mm

Détection dans les systèmes industriels: Suricata et le cas Modbus

19/20

Conclusion

1 Deux méthodes de détection complémentaires : I I 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 :

I D’autres protocoles industriels (S7, EtherNet/IP...) I Quid de la sécurité des sondes IDS ?

Détection dans les systèmes industriels: Suricata et le cas Modbus

20/20