Sonde IDS durcie - Agence nationale de la sécurité des systèmes d

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