Aller au contenu

Mise en œuvre de Snort - Configuration et déploiement

1. Objectif du cours

Installer et configurer Snort pour détecter et alerter sur les intrusions réseau. Adapter et maintenir des règles de détection pertinentes pour un environnement métier spécifique.

2. Notions et définitions essentielles

  • IDS/NIDS : système d'analyse passive du trafic qui observe les paquets sans les modifier.
  • snort.conf : fichier central définissant variables réseau, préprocesseurs, règles et sorties.
  • HOME_NET / EXTERNAL_NET : variables décrivant respectivement le réseau interne et l'extérieur.
  • Préprocesseurs (stream5, http_inspect, frag3) : modules qui normalisent et enrichissent le trafic avant application des règles.
  • Ruleset / SID / action : ensemble de règles ; identifiant de règle ; actions possibles (alert, log, pass, drop).
  • DAQ : module d'acquisition de paquets (pcap, afpacket, netmap) adapté à l'interface et aux performances.

3. Fonctionnement et principes

  • Positionnement : placer les sondes après les pare-feu ou sur points critiques (passerelles Internet, inter-VLAN, serveurs sensibles) via TAP ou port miroir pour visibilité maximale sans impacter la production.
  • Capture passive : interface de capture en mode promiscuous et sans adresse IP pour éviter interférences et risques.
  • Pipeline de détection : capture → préprocesseurs (reconstruction sessions, inspection HTTP, gestion fragmentation) → moteur de règles → sorties/alertes.
  • Modes : sniffer (visualisation), packet logger (archivage paquets), NIDS (détection temps réel) ; possibilité de configurations hybrides.
  • Optimisation : dimensionnement (RAM/disque/CPU), ajustement des buffers OS, choix du DAQ et des règles actives pour équilibrer précision et performance.

4. Commandes et manipulations

(essentielles explicitement citées dans le PDF) - Validation de configuration et capture - snort -T -c /etc/snort/snort.conf : tester la syntaxe et l’intégrité de la configuration. - snort -v -i eth0 : mode sniffer pour vérifier que l’interface capture le trafic. - snort -A console -q -c snort.conf -i eth0 : exécution avec sortie console pour mesurer baseline. - tcpdump -i eth1 : vérification directe de la visibilité du trafic sur l’interface de capture. - Monitoring et diagnostics - kill -USR1 : demander à Snort ses statistiques (pertes, etc.) pour diagnostiquer goulots. - Optimisation DAQ / multithreading - option --daq-var fanout_type=hash (afpacket) : configuration pour répartir la capture sur threads/coeurs. - Sauvegarde / rollback - cp -r /etc/snort/rules /var/backups/snort/rules_$(date +%F_%Hh%M) : exemple de sauvegarde horodatée avant mise à jour. - Tests et rejouage - tcpreplay (options citées) : --topspeed, --multiplier pour tester résistance et comportement face à trafic rejoué. - nmap (options citées) : -sS -T4 -A / -T1 pour simuler scans de reconnaissance (agressifs ou furtifs). Si aucune manipulation supplémentaire n'est requise, exécutez d'abord des étapes de validation avant déploiement.

5. Sécurité et bonnes pratiques

  • Démarrer avec des paramètres conservateurs ; activer puis affiner préprocesseurs essentiels (stream5, http_inspect, frag3).
  • Documenter chaque modification (raison et date) pour faciliter maintenance et audits.
  • Tester toutes les règles et modifications en préproduction : en particulier tout passage en mode drop doit être éprouvé en environnement isolé.
  • Sauvegarder les règles et fichiers critiques avant mise à jour automatique (script de rollback recommandé).
  • Surveiller l’espace disque et configurer rotation/archivage des logs ; utiliser NTP pour synchroniser timestamps.
  • Isoler strictement les environnements de test lors de simulations d’attaque ; respecter les aspects légaux des outils d’exploitation.
  • Évaluer l’impact du mirroring sur les commutateurs anciens ; préférer TAP pour liens critiques si possible.

6. Points essentiels à retenir pour le TSSR

  • Bien positionner la sonde (TAP/port miroir) pour maximiser visibilité et minimiser impact.
  • snort.conf et HOME_NET sont fondamentaux : une mauvaise variable réseau fausse toute la détection.
  • Les préprocesseurs (stream5, http_inspect, frag3) sont indispensables pour gérer fragmentation et protocoles applicatifs.
  • Optimiser buffers système (net.core.rmem_max, net.core.netdev_max_backlog) et choisir DAQ adapté (afpacket/netmap) pour hauts débits.
  • Activer uniquement les règles pertinentes : la surcharge de règles dégrade CPU et génère faux positifs.
  • Automatiser les mises à jour via Oinkmaster mais valider et prévoir rollback.
  • Tester via simulations (Metasploit, tcpreplay, nmap) dans un labo isolé avant production.
  • Centraliser logs (syslog/unified2) pour corrélation SIEM et revue des alertes.
  • Mettre en place cycles de revue (quotidien/hebdo/mensuel) et audit de couverture (technique, sectoriel, temporel).
  • Documenter et versionner règles personnalisées ; privilégier indicateurs comportementaux aux signatures statiques.

7. Tableau récapitulatif

Élément Usage principal Avantage Limite
Port miroir Dupliquer trafic vers sonde Simple, coût faible Peut saturer commutateur, perte paquets
TAP réseau Copie matérielle du trafic Fiabilité, pas d’impact sur switch Coût matériel
DAQ pcap Compatibilité maximale Portable Moins performant à haut débit
DAQ afpacket Performance Linux, zero-copy Meilleure latence/CPU Nécessite compatibilité kernel
Mode sniffer Analyse/diagnostic Rapide pour vérifier capture Pas de détection par règles
Mode NIDS Détection temps réel Alerte/monitoring actif Consomme plus de ressources

8. Vérifications pratiques

  • Valider la capture : vérifier que l’interface voit le trafic (ex. observation via tcpdump ou mode sniffer).
  • Tester la configuration : exécuter un test de syntaxe de snort.conf avant lancement.
  • Vérifier la chaîne complète : générer un test simple (ping) et confirmer qu’une règle basique déclenche une alerte écrite dans la sortie prévue (fichier/syslog).
  • Contrôler pertes et performances : mesurer taux de perte sous charge représentative et consulter les statistiques Snort (signal USR1) et mesures iperf.
  • Valider la journalisation : s’assurer que les formats (fast/full/unified2) et la rotation fonctionnent et que le SIEM ingère correctement.
  • Tester règles personnalisées en labo isolé : rejouer traces pertinentes et exécuter scénarios d’attaque contrôlés pour vérifier pertinence et faux positifs.

9. Flashcards Anki

Quel est le rôle de HOME_NET :: Définir les plages d'adresses IP du réseau interne utilisées par Snort.
Que fait le préprocesseur stream5 :: Reconstitue les sessions TCP pour permettre la détection d'attaques multi-paquets.
Quel préprocesseur inspecte le trafic web pour attaques applicatives :: http_inspect.
Pourquoi configurer une interface de capture sans adresse IP :: Pour la surveillance passive et éviter interférences/perf.
Quel format de sortie facilite l'intégration avec des outils tiers :: unified2.
Quel outil est recommandé pour automatiser les mises à jour de règles :: Oinkmaster.
Donnez une valeur d'exemple pour net.core.rmem_max citée :: 134217728 (exemple de configuration).
Que permet tcpreplay dans les tests :: Rejouer du trafic capturé pour valider règles et performance.
Quelle différence majeure entre mode NIDS et packet logger :: NIDS analyse en temps réel et génère des alertes ; packet logger enregistre les paquets pour analyse ultérieure.
Pourquoi centraliser les logs Snort :: Pour corréler alertes entre sondes, faciliter analyse et intégration SIEM.