Sécuriser une passerelle internet avec l'IDS Suricata
1. Introduction
1.1 Objectifs
Afin de protéger les accès aux différents éléments d'infrastructures informatiques de votre réseau, afin de compléter les mesures de défense en profondeur mises en place pour une connexion à distante au SI de votre réseau, par exemples, il est recommandé de mettre en place une sonde de détection d'intrusion.
Nous allons donc voir comment prévenir toute intrusion de type cyberattack en provenance de son SI nomadisme.
Pour cela, nous allons aborder la solution open-source [SELK] basée sur [SURICATA] (développée depuis 2008 par la fondation OISF) afin d'assurer ce rôle d'IDS/IPS en tant que sonde de détection/prévention d'intrusion.
Cet IDS (Intrustion Detection System) / IPS (Intrustion Protection System), à base de signatures, offre des possibilités intéressantes en termes d'analyse protocolaire et de suivi de l'activité réseau.
Préconisation de la solution SELKS 7
2.1 Présentation
[Suricata] est un IDS/IPS basé sur des signatures qui est distribué sous licence GPL v2. La première version stable de Suricata date de 2010. L'objectif de cette version était d'avoir un moteur d'IDS/IPS multithread supportant le langage de signatures de Snort [SNORT], ce qui permettait de conserver l'existant en termes de signatures.
Depuis 2010, le développement se focalise sur l'amélioration des performances et sur l'ajout de nouveaux protocoles. Le dernier en date est TLS avec un décodeur de négociations éponyme qui fournit au moteur de détection les informations sur les certificats échangés par les sessions. Il est ainsi possible de vérifier si les sessions TLS sont correctes (certificats signés par une autorité connue par exemple).
Suricata a différents modes de fonctionnement. S'il peut être configuré en tant que dispositif de prévention d'intrusion (IPS) en s'appuyant sur Netfilter ou ipfw (sous FreeBSD), il supporte aussi de nombreux modes de capture en mode IDS qui vont de pcap, le standard de facto, au support des cartes d'acquisitions.
Suricata est un moteur de détection et ne réalise donc que la capture, la détection et la création d'alertes ou de fichiers de journalisation. Tant la partie modification régulière du jeu de signatures que les interfaces de consultation des alertes sortent de son champ d'action. Une solution complète doit donc s'appuyer sur d'autres logiciels.
Le déploiement de la solution IDS/IPS [SELKS 7] , intégrant la solution Suricata avec la solution ELK de monitoring, a donc été retenu car présentant de nombreux avantages, dont certains sont les suivants :
-
SELKS 7 est un système de détection et de protection contre les intrusions, gratuit et à code source ouvert
-
SELKS 7 est une mise en œuvre clé en main du système Suricata de détection/protection contre les intrusions dans les réseaux (IDS/IPS), de surveillance de la sécurité des réseaux (NSM) et de détection des menaces
-
SELKS 7 peut être containérisé (sur [docker] ou [kubernetes]) sur tout système d'exploitation Linux ou Windows. Une fois installé, c'est une solution prête à l'emploi
-
Les [ISO de SELKS 7] sont également disponibles pour les environnements de type air gapped ou pour une installation bare metal ou VM.
SELKS 7 repose sur huit éléments clés :
-
S - Suricata IDPS/NSM -https://suricata.io/ (Prêt à utiliser Suricata)
-
E - Elasticsearch -https://www.elastic.co/products/elasticsearch (Moteur de recherche)
-
L - Logstash -https://www.elastic.co/products/logstash (Injection de journaux)
-
K - Kibana -https://www.elastic.co/products/kibana (Tableaux de bord personnalisés et exploration des événements)
-
S - Scirius -https://github.com/StamusNetworks/scirius (Gestion des ensembles de règles Suricata et interface de détection des menaces Suricata)
-
EveBox -https://evebox.org/
-
Arkime -https://arkime.com/ (Arkime, anciennement Moloch, est un outil de recherche et de capture de paquets indexés à grande échelle.)
-
CyberChef -https://github.com/gchq/CyberChef (EveBox est un outil de gestion d'alertes et d'événements basé sur le web pour les événements générés par Suricata.)
Scirius CE est l'application open-source de Stamus Networks qui
réunit tous ces composants. Scirius fournit l'interface web pour l'ensemble du système, vous donnant la possibilité de :
-
Gérer plusieurs ensembles de règles Suricata et sources de renseignements sur les menaces
-
télécharger et gérer des règles Suricata personnalisées et des fichiers de données IoC
-
Rechercher les menaces à l'aide de filtres prédéfinis et de vues contextuelles améliorées
-
Appliquer des seuils et des suppressions pour limiter la verbosité des alertes bruyantes
-
Affichez les statistiques de performance de Suricata et les informations sur l'activité des règles Suricata
-
Appliquez Kibana, EveBox et Cyberchef aux données NSM et d'alerte de Suricata.
Une solution commerciale de Scirius existe cependant, il s'agit de [Stamus Security Platform (SSP)] qui est la solution commerciale de détection et de réponse aux menaces basée sur le réseau de Stamus Networks. Bien qu'elle conserve une grande partie de l'aspect et de la convivialité de SELKS, SSP est un système complètement différent et nécessite une nouvelle installation logicielle.
2.2 Fonctionnalités attendues
Fonctionnalités à conserver |
---|
Administration IDS pour une sonde |
Gestion des jeux de règles IDS pour un jeu de règles |
Surveillance de base des menaces sur les événements IDS |
Analyse du trafic réseau en temps réel |
Détection des menaces basée sur les signatures et les listes |
IoC |
Détection de base des menaces |
Enrichissement des données et capture des événements en fonction des flux et des protocoles |
2.3 Architecture logique applicative
2.4 Architecture logique physique
La solution Suricata incluse dans Selks7 doit recevoir une copie de tous les paquets envoyés et reçus sur votre LAN.
Ceci est réalisé en connectant une carte LAN du NAS à un port du switch qui doit été configuré comme un port miroir.
Vous devez donc disposer d'un switch physique en entré de votre infrastructure, capable d'effectuer la mise en miroir du port où votre Firewall est connecté.
Dans le cas d'une installation de l'IDS Selks7 sur une machine physique, vous devez tirer un câble physique du port mirroré du switch physique vers la machine physique en question.
Dans le cas d'une installation de l'IDS sur une machine virtuelle incluse dans un cluster de hosts (Cluster nutanix, cluster vSphere, etc), vous devez alors tirer un câble physique du port mirroré du switch physique vers un des hosts du cluster d'entré de votre infrastructure qui est lui-même déjà raccroché au même switch d'entré. Ensuite associer ce port à la VM où est installé Selks7, ce qui fait apparaître le device du port que vous utiliserez dans la configuration de Suricata lors de son installation.
2.5 Gestion des règles
En plus d'une liste impressionnante de règles déjà existantes (36 000 règles, cf. [doc]), SURICATA permet d'[écrire ses propres règles]. [Le scripting Lua] peut être utilisé dans deux composants de Suricata. Le premier est [dans la sortie] et le second dans [les règles du moteur de détection].
Les deux fonctionnalités utilisent une liste de fonctions pour accéder aux données extraites par Suricata. Vous pouvez obtenir la liste des fonctions dans la page des fonctions Lua.
2.6 Installation
Les commandes ci-dessous permettent de configurer une installation de selks Non interactif en mode "air gapped":
-
en mode non interactif
-
installer tous les conteneurs (elasticsearch/suricata/ngingx/logstash/kibana/scirius/evebox/portainer) sans rien tirer d'internet
-
utiliser l'interface eth0 comme interface de surveillance (sniffing)
-
utiliser XXX GB de RAM pour Elasticsearch
-
démarrer l'installation (docker compose)
Installation maquette
installation pré-production/prodution
Pour les configurations de production, Elasticsearch peut être affecté à l'utilisation de 32/64 Go de RAM en attendant que l'hôte en dispose. Il est également recommandé de démarrer automatiquement les conteneurs au démarrage (au redémarrage de l'hôte) :
Pour plus d'information, consulter ce [lien] afin d'avoir les procédures de type Log rotation, clear data, Rulesets update, etc.
2.7 Version
Le tableau suivant énumère les différentes technologies impliquées dans ce projet :
Editeur Constructeur | Version | Commentaires |
---|---|---|
SURICATA | 6.0.6 La solution est une solution open-source compatible Linux : [liste des,versions] | |
SELKS7 | 7 | [[La solution est disponible sous docker et en ISO pour VM (https://www stamus-networks.com/selks)[Solution air gapped] OS supportés : [tout système d'exploitation moderne de type Linux ou Unix offre des performances similaires |
Nous recommandons d'installer Selks7 sur Debian ou en utilisant l'image ISO fournie par la solution SELKS7.
2.8 Fiche technique de Suricata
Les performances de Suricata ont été éprouvé et il a été relevé les points suivants :
-
Suricata fonctionne en architecture multithread
-
Suricata utilise en moyenne 3,8 Go de mémoire pour le filtrage d'un réseau à 10 Gbps
-
L'analyse des fichiers journaux de Suricata révéle que Suricata avait besoin de ressources informatiques plus importantes que les autres solutions (comme Snort) pour traiter le trafic réseau, en raison des trois étapes de détection qui y sont intégrées
-
Suricata a un taux de traitement élevé avec 82 223 paquets par seconde
-
Suricata possède une grande capacité à traiter 10 Gbps de vitesse réseau avec un taux de perte de paquets minimal
-
Le taux de détection positive réelle de Suricata est de 99 % pour chaque type de trafic malveillant détecté.
2.9 Recommandation de dimensionnement
L'occupation réelle du disque dépendra principalement du nombre de règles et de la quantité de trafic sur le réseau.
Maquette
DMZ | |
---|---|
selks 7 | 1 [Servers: 2 vcpu 9 GB RAM 10 GB HDD |
Production
DMZ | |
---|---|
selks 7 | 2 Servers : 4 vcpu 64 GB RAM 200 GB SSD |
Découvrez les derniers articles d'alter way
- kubevpn
- Kubernetes 1.32
- re:Invent 2024 : AWS mise tout sur l'IA pour son Cloud
- OVHcloud Summit 2024 : L’innovation au cœur d’un cloud souverain et performant
- Big Data & AI Paris 2024 : L'IA au cœur de toutes les transformations.
- Un retour vers l'open-source ? Vos outils DevOps préférés et leurs equivalents open-source.