Suricata est un moteur de détection de menaces réseau open-source, haute performance et mature. Il peut agir comme un Système de Détection d\'Intrusion (IDS), un Système de Prévention d\'Intrusion (IPS), et un outil de surveillance de la sécurité réseau (NSM). Il a été conçu pour être multi-thread, ce qui lui permet de tirer pleinement parti des processeurs multi-cœurs modernes.
Pourquoi utiliser Suricata ?
- Haute Performance : Conçu pour le multi-threading, il peut inspecter un trafic réseau à très haut débit.
- Détection Avancée : Peut non seulement utiliser des règles basées sur les signatures (comme Snort), mais aussi analyser les protocoles et extraire des fichiers pour une analyse plus approfondie.
- Écosystème Moderne : Sortie des logs au format EVE JSON, un format structuré facile à intégrer avec des outils comme une stack ELK (Elasticsearch, Logstash, Kibana) ou Splunk.
- Gestion de règles simple : Intègre un outil, `suricata-update`, pour faciliter la mise à jour des ensembles de règles.
Prérequis
- Un serveur Linux (Ubuntu/Debian est utilisé dans ce guide).
- Accès root ou privilèges sudo.
- Une interface réseau dédiée à l\'écoute du trafic (monitoring).
Installation
L\'Open Information Security Foundation (OISF), qui développe Suricata, maintient un dépôt PPA pour Ubuntu, ce qui rend l\'installation très simple.
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install -y suricata
Configuration de base
Le fichier de configuration principal est /etc/suricata/suricata.yaml. C\'est un fichier YAML, donc l\'indentation est très importante.
sudo nano /etc/suricata/suricata.yaml
Étape 1 : Définir les variables réseau
La section la plus importante à configurer est `vars`. Elle définit vos réseaux.
vars:
# Votre réseau local
HOME_NET: "[192.168.1.0/24, 10.0.0.0/8]"
# Tout ce qui n'est pas votre réseau local
EXTERNAL_NET: "!$HOME_NET"
Étape 2 : Choisir l\'interface d\'écoute
Dans la section `af-packet`, spécifiez sur quelle interface Suricata doit écouter le trafic.
af-packet:
- interface: eth1 # Remplacez par votre interface de monitoring
threads: auto
cluster-type: cluster_flow
cluster-id: 99
defrag: yes
use-mmap: yes
Gestion des règles
Suricata est livré avec un outil simple pour gérer les ensembles de règles.
# Met à jour la liste des sources de règles et télécharge les règles activées
sudo suricata-update
Par défaut, il utilise l\'ensemble "ET Open", qui est un excellent point de départ. Vous pouvez lister les sources disponibles avec `sudo suricata-update list-sources` et en activer d\'autres si vous le souhaitez.
Lancer et tester Suricata
Étape 1 : Tester la configuration
# Le flag -T vérifie la configuration et la validité des règles
sudo suricata -T -c /etc/suricata/suricata.yaml -v
Étape 2 : Lancer le service
sudo systemctl start suricata
Vérifiez qu\'il est bien démarré :
sudo systemctl status suricata
Étape 3 : Examiner les logs
Suricata génère plusieurs logs dans /var/log/suricata/. Le plus important est `eve.json`.
sudo tail -f /var/log/suricata/eve.json
Ce fichier contient tous les types d\'événements (alertes, métadonnées sur le trafic HTTP, DNS, TLS, etc.) dans un format structuré.
Pour générer une alerte de test, vous pouvez utiliser cette commande depuis une autre machine :
curl -A "BlackSun" http://IP_DU_SERVEUR_SURICATA
Vous devriez voir une alerte se déclencher dans `eve.json` car la règle "ET MALWARE BlackSun" est activée par défaut.
Pour une visualisation simple des alertes, vous pouvez installer EVE-Box, une interface web légère qui lit directement le fichier `eve.json` et vous présente une boîte de réception d\'alertes.
Passer en mode IPS (Prévention)
Pour que Suricata bloque activement le trafic, il doit être placé "en ligne" (inline) sur le réseau et utiliser le mode de capture NFQUEUE.
- Modifiez
/etc/suricata/suricata.yamlpour changer le mode de capture. - Utilisez
iptablespour rediriger le trafic vers la file d\'attente de Suricata :sudo iptables -I FORWARD -j NFQUEUE - Démarrez Suricata en mode NFQUEUE :
sudo suricata -c /etc/suricata/suricata.yaml -q 0
C\'est une configuration avancée qui peut interrompre votre trafic réseau si elle est mal faite.
La plus grande partie du travail avec un IDS/IPS consiste à affiner les règles : désactiver celles qui génèrent trop de faux positifs dans votre environnement, et potentiellement en créer de nouvelles. Cela demande du temps et de l\'expérience.
Conclusion
Suricata est un IDS/IPS de nouvelle génération, conçu pour les réseaux modernes à haut débit. Sa facilité d\'installation et de gestion des règles en fait un excellent choix pour quiconque souhaite obtenir une visibilité approfondie sur son trafic réseau. Couplé à une stack de visualisation comme ELK, il devient une sonde de sécurité réseau extrêmement puissante, vous permettant de détecter, d\'analyser et de répondre aux menaces en temps réel.