Vous êtes sur la page 1sur 21

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 Prévenir
I 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 :
I Durée de vie élevée
I Fonctionnement en continu avec arrêts planifiés
I Pour certains, contraintes de temps de réponse
Atouts :
I Architecture (souvent) bien définie
I Comportement cadré et limité
I Evolution lente (peu de modifications)

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


Architecture typique

Serveur Passerelle
Client
SCADA d’historique 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 SCADA


d’intrusion sécurité
IDS

I dispositif de sécurité issu I issu des systèmes industriels


des systèmes
d’information de gestion I collecte active de
l’information (monitoring)
I analyse le trafic réseau
I 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


I Connexion et déconnexion d’utilisateur
I Charges CPU
I 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
Serveur Passerelle
SCADA Client
d’historique vers Intranet
sécurité SCADA

Serveur
Serveur
SCADA
SCADA
sécurité

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
I Reprogrammation d’automate (StuXnet)
I Ordre d’arrêt
I Vulnérabilités connues (CVE)
I Conformité protocolaire
2 Violation de la matrice de flux
3 Violation de la politique de sécurité
I Utilisation de fonctions illicites
I Dépassement de seuils
I É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 ?

Serveur Passerelle
Client
d’historique vers Intranet
SCADA

SIEM S1
S3
SCADA sondes

Serveur
SCADA

S4 S2 S5

Automate 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é IDS
Atouts
I Collecte d’alarme, de I Système non intrusif
valeurs et d’évènements I Préexistence d’une
systèmes surveillance par des
I Analyse des évènements opérateurs
dans le temps I Trafic réseau exhaustif au
I Corrélation entre sources point de collecte
I Formation et I Mise à jour plus aisée et moins
appropriation accélérées risquée
(mêmes outils. . . )
Défauts
I Intrusif I Maintien à jour nécessaire
I Mise à jour délicate

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


Cas pratique

Serveur Passerelle
Client
d’historique vers Intranet
SCADA

Serveur
SCADA

S4 S2 S5

Automate Automate

S6

Consigne Information

actionneur 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 Code Données


fonction

Trans. Long. Prot.


Unité
ID ID

Réponse
Entête MBAP Code Données
fonction

Trans. Long. Prot.


Unité
ID ID

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 Code Données


fonction

Trans. Prot.
ID
Long.
ID
Unité 0x5A Non documentées

Réponse
Entête MBAP Code Données
fonction

Trans. Prot.
ID
Long.
ID
Unité 0x5A 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 Code Données


fonction

Trans. Prot.
ID
Long.
ID
Unité 0x06 Adresse Valeur

Réponse
Entête MBAP Code Données
fonction

Trans. Prot.
ID
Long.
ID
Unité 0x06 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 :
I Possibilité de contourner l’IDS
I Pas de vérification de la conformité
I 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 :
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


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


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 Définition étendue
I 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 %

40 %
Taux de perte

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
20mm

1 0 0

93mm
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 :


I SCADA sécurité
I 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

Vous aimerez peut-être aussi