Sonde IDS durcie Pierre Chifflier Arnaud Fontaine {pierre.chifflier,arnaud.fontaine}@ssi.gouv.fr 25 novembre 2014 Supervision de sécurité Caractéristiques d’un réseau de supervision de sécurité ANSSI ◮ Collecte d’informations depuis tous les éléments ◮ Basé sur des Intrusion Detection System ◮ Nombreux décodeurs protocolaires ◮ Centralisation et analyse Sonde IDS durcie 2/33 IDS : Où détecter ? Client SCADA Historian SIEM SCADA sondes S3 Passerelle vers Intranet S1 Serveur SCADA S4 S2 Automate S5 Automate S6 actionneur ANSSI capteur actionneur Sonde IDS durcie capteur 3/33 IDS : vu de l’attaquant Client SCADA Historian Passerelle vers Intranet SIEM SCADA sondes Serveur SCADA Automate actionneur ANSSI Automate capteur actionneur Sonde IDS durcie capteur 4/33 Supervision de sécurité IDS pour l’attaquant ◮ Éléments identiques ◮ Connectés à tous les éléments importants ◮ Nombreux décodeurs protocolaires ◮ Écrits pour la performance ◮ Exposés au trafic réseau ⇒ Cible de choix ! ANSSI Sonde IDS durcie 5/33 Architecture système sécurisée ANSSI ◮ Architecture générique ◮ Protection de la sonde ◮ Protection du réseau de supervision ◮ Cloisonnement des rôles ◮ Limitation et suppression de privilèges Sonde IDS durcie 6/33 Définition des rôles ANSSI 1 IDS 2 Administrateur de l’IDS 3 Audit 4 Administrateur système 5 Système Sonde IDS durcie 7/33 Sonde : état initial sonde Réseau de supervision IDS Réseau surveillé socle eth0 ANSSI Sonde IDS durcie 9/33 Cloisonnement réseau ◮ Séparation des réseaux ◮ ◮ ◮ ◮ ANSSI Supervision Réseau surveillé Administration Utilisation d’un ou plusieurs canaux IPsec Sonde IDS durcie 10/33 Sonde : état initial sonde Réseau de supervision IDS Réseau surveillé socle eth0 ANSSI Sonde IDS durcie 11/33 Étape 1 : séparation des réseaux sonde Réseau de supervision Réseau surveillé IDS socle eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 11/33 Protections Système Durcissement du socle et du noyau ANSSI ◮ Réduction des droits administrateur ◮ Suppression des fonctions inutiles ◮ Rendre immuable la sonde ◮ Empêche/complique l’exécution de code ◮ ... ◮ Note : complique la mise à jour Sonde IDS durcie 12/33 Protections Système Patch grsec/PaX ◮ Espace d’adressage aléatoire ◮ Pages mémoire en lecture seule ◮ W⊕X Restrictions ◮ ◮ ◮ ◮ ◮ ANSSI visibilité interdiction du debug ... Points de montage en lecture seule (irréversible) Sonde IDS durcie 13/33 Étape 1 : séparation des réseaux sonde Réseau de supervision Réseau surveillé IDS socle eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 14/33 Étape 2 : durcissement du socle sonde Réseau de supervision Réseau surveillé IDS socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 14/33 Cloisonnement Principes ANSSI ◮ Isolation des IDS entre eux ◮ Isolation des IDS et du socle ◮ Suppression de l’accès au matériel Sonde IDS durcie 15/33 Cloisonnement Mise en œuvre ANSSI ◮ Utilisation des LinuX Containers (LXC) ◮ Réduction des privilèges ◮ Duplication des flux réseau par un bridge Sonde IDS durcie 16/33 Conteneurs IDS ANSSI ◮ Système en lecture seule ◮ Configuration figée ◮ Extension du principe W ⊕ X aux fichiers Sonde IDS durcie 17/33 Étape 2 : durcissement du socle sonde Réseau de supervision Réseau surveillé IDS socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 18/33 Étape 3 : cloisonnement des IDS sonde IDS1 Réseau de supervision IDS2 in1 in2 IDS3 in3 Réseau surveillé socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 18/33 Journalisation ANSSI ◮ Émission des alertes par les IDS ◮ Interdiction des modifications par l’IDS ◮ Rôle administrateur IDS : pas d’accès aux journaux ◮ Intégrité des journaux ◮ Centralisation des alertes, envoi vers le réseau de supervision Sonde IDS durcie 19/33 Isolation des données / (root) conteneurs IDS1 binds usr Logs logs-ids1 RO data RW logs-ids1 logs-ids1 sock ◮ sock Utilisation de la virtualisation ◮ ◮ ANSSI sock Partage de la racine Répertoires spécifiques par conteneurs Sonde IDS durcie ◮ Diodes logicielles ◮ ◮ ◮ socket Unix tube nommé (FIFO) point de (re-)montage 20/33 Étape 3 : cloisonnement des IDS sonde IDS1 Réseau de supervision IDS2 in1 in2 IDS3 in3 Réseau surveillé socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 21/33 Étape 4 : cloisonnement des journaux sonde m Réseau de supervision collect send IDS1 IDS2 in1 in2 IDS3 in3 Réseau surveillé socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 21/33 Isolation Réseau TAP physique ANSSI TAP logique ◮ Diode ◮ Diode, si le socle est intègre ◮ Coût additionnel ◮ Pas de coût (e) ◮ Interface unique ◮ Duplication possible Sonde IDS durcie 22/33 Étape 4 : cloisonnement des journaux sonde m Réseau de supervision collect send IDS1 IDS2 in1 in2 IDS3 in3 Réseau surveillé socle durci eth0 (ipsec) ANSSI eth1 Sonde IDS durcie 23/33 Sonde durcie sonde m Réseau de supervision collect send IDS1 IDS2 in1 in2 IDS3 in3 Réseau surveillé socle durci eth0 (ipsec) ANSSI eth1 TAP Sonde IDS durcie 23/33 Mises à jour BIOS bootloader OS - early ◮ Zone de confiance (sans interactions) ◮ Verrouillage du système ◮ Modifications du socle interdites Update ? RO Apply lock RW OS - normal Conteneurs Runtime ANSSI Sonde IDS durcie 24/33 Le cas des systèmes industriels ◮ Fortes contraintes ◮ ◮ ◮ ◮ ANSSI Protocoles peu analysés Très sensibles à la latence Nombreux points de collecte Contraintes physiques (espace) et mécaniques ◮ Équipements traditionnels inadaptés ◮ Faible trafic réseau Sonde IDS durcie 25/33 IDS pour systèmes industriels Challenge ANSSI ◮ Construire une sonde basée sur l’architecture proposée ◮ Utiliser un matériel peu encombrant ◮ Réduire le coût ◮ Conserver des performances acceptables Sonde IDS durcie 26/33 Preuve de concept Base commune ◮ Boîtier Mirabox ◮ ◮ ◮ SoC ARM (Armada 370), mono-cœur à 1,2 GHz 1 Go de RAM, 2 interfaces Gbit Debian unstable ◮ ◮ Noyau Linux 3.16.3 Suricata 2.0 Sonde durcie ANSSI ◮ Patch grsecurity du noyau, toutes protections activées ◮ TAP logique (bridge + interface réseau virtuelle) ◮ 1 LXC contenant l’IDS ◮ 1 LXC pour collecter les alertes Sonde IDS durcie 27/33 Protocole expérimental Configuration de l’IDS ◮ Règles Modbus ◮ ◮ Génération d’une alerte par transaction Modbus Alertes fastlog ◮ tube nommé (FIFO) dans le cas de la sonde durcie Mesure des performances ◮ 200 000 paquets de trafic réel d’un système industriel ◮ ◮ ANSSI 100 000 transactions Modbus Rejeu de la capture à différents débits Sonde IDS durcie 28/33 Résultats (sonde témoin) 250000 Paquets traités Paquets perdus Alertes 200000 150000 100000 50000 20000 ANSSI 40000 60000 80000 Débit (paquets/sec.) Sonde IDS durcie 100000 29/33 Résultats (sonde durcie) 250000 Paquets traités Paquets perdus Alertes 200000 150000 100000 50000 20000 ANSSI 40000 60000 80000 Débit (paquets/sec.) Sonde IDS durcie 100000 30/33 Résultats 250000 Sonde témoin Sonde durcie Paquets traités 200000 150000 100000 50000 0 ANSSI 10000 20000 30000 Débit (paquets/sec.) Sonde IDS durcie 40000 50000 31/33 Analyse des résultats Sonde témoin vs sonde durcie ◮ Débit maximum sans perte ◮ ◮ ◮ sonde témoin : 32 500 paquets/sec. sonde durcie : 21 500 paquets/sec. Impact global du durcissement : environ 33 % Impact relatif de chaque mesure ANSSI ◮ TAP logique : environ 60 % ◮ Diode de collecte (FIFO) : environ 15 % ◮ grsecurity/PaX : environ 13 % ◮ Virtualisation LXC : environ 12 % Sonde IDS durcie 32/33 Conclusion ◮ Architecture « de référence » ◮ ◮ ◮ ◮ Preuve de concept fonctionnelle ◮ Performances acceptables ◮ ◮ ◮ ◮ ◮ Contexte défavorable Borne supérieure sur l’impact du durcissement Points d’amélioration ◮ ANSSI Défense en profondeur Protections à l’état de l’art Réutilisation encouragée Intégrité du démarrage Tester avec d’autres IDS Quid de la qualité des IDS ? Sonde IDS durcie 33/33
© Copyright 2024 Paperzz