Analyse des alertes Snort

CybersécuritéBeginner
Pratiquer maintenant

Introduction

Snort est un système de détection d'intrusion (IDS) open-source puissant qui surveille le trafic réseau en temps réel et le compare à un ensemble de règles prédéfinies. Lorsqu'une activité suspecte correspond à une règle, Snort génère une alerte. Savoir lire et interpréter ces alertes est une compétence fondamentale pour tout professionnel de la cybersécurité.

La génération d'une alerte n'est que le début du flux de travail défensif. Les analystes doivent encore déterminer si l'événement est significatif, ce qui s'est passé sur le réseau et si une action corrective est nécessaire. C'est pourquoi l'interprétation des alertes est tout aussi importante que la création des règles. Une pile de détection robuste est inutile si les opérateurs ne peuvent pas lire et trier ses résultats avec précision.

Dans ce laboratoire, vous apprendrez à interagir avec les alertes Snort. Vous démarrerez Snort avec une configuration personnalisée, générerez du trafic réseau pour déclencher des règles de détection spécifiques, puis analyserez les fichiers journaux résultants. Snort peut exporter des journaux sous différents formats ; nous nous concentrerons sur le journal fast (qui fournit un résumé rapide de l'événement sur une ligne) et le journal full (qui inclut des informations détaillées sur l'en-tête du paquet).

Déclencher plusieurs règles

Dans cette étape, vous allez démarrer le système de détection d'intrusion Snort et générer du trafic réseau pour déclencher les règles personnalisées qui ont été préconfigurées pour vous.

La création de trafic de test connu et sain est une habitude standard en ingénierie de détection. Si vous savez exactement quels paquets doivent déclencher quelles règles, vous disposez d'une base de référence claire pour valider que le pipeline de surveillance fonctionne de bout en bout.

L'environnement a été configuré avec deux règles Snort simples : l'une détectant le trafic ICMP (Ping) et l'autre le trafic HTTP (web) sur le port 80. Nous avons également créé un fichier de configuration personnalisé dans /etc/snort/custom.conf qui indique à Snort d'enregistrer les alertes dans deux formats différents : un journal « fast » et un journal « full ».

Tout d'abord, démarrez Snort en mode démon (arrière-plan) en utilisant le fichier de configuration personnalisé. L'indicateur -D indique à Snort de s'exécuter en arrière-plan, -c spécifie le fichier de configuration, -l définit le répertoire des journaux et -i eth0 indique à Snort d'écouter sur l'interface réseau par défaut.

sudo snort -c /etc/snort/custom.conf -l /var/log/snort -i eth0 -D

Vous devriez voir un message indiquant que Snort a été initialisé et lancé en tant que démon avec succès.

Ensuite, générez du trafic réseau pour déclencher les règles. Nous enverrons trois paquets ping ICMP vers un serveur DNS public (8.8.8.8) pour déclencher la règle ICMP.

ping -c 3 8.8.8.8

Maintenant, générez du trafic HTTP en utilisant la commande curl pour récupérer une page web. Cela déclenchera la règle HTTP. Nous utilisons > /dev/null pour éviter que la sortie HTML n'encombre votre terminal.

curl -s http://example.com > /dev/null

Enfin, attendez un instant que Snort traite les paquets et les écrive dans les fichiers journaux. Vous pouvez vérifier que les fichiers journaux ont été créés en listant le contenu du répertoire des journaux Snort.

sleep 2
ls -l /var/log/snort

Vous devriez voir fast_alert.log et full_alert.log dans la sortie, indiquant que Snort a détecté le trafic avec succès et généré les alertes.

total 8
-rw-r--r-- 1 root root  345 Sep 15 10:00 fast_alert.log
-rw-r--r-- 1 root root 1250 Sep 15 10:00 full_alert.log

Analyser le journal rapide (Fast Log)

Dans cette étape, vous allez examiner le fichier fast_alert.log. Le format d'alerte « fast » est conçu pour être concis et facilement lisible. Il enregistre les informations les plus critiques concernant une alerte sur une seule ligne, ce qui le rend idéal pour des revues rapides ou pour une analyse par des scripts automatisés.

C'est le format avec lequel de nombreux analystes interagissent en premier, car le tri commence généralement par une vue d'ensemble. Vous voulez savoir ce qui s'est déclenché, quand cela s'est produit et quels points de terminaison étaient impliqués avant de décider si des détails plus approfondis sur les paquets sont nécessaires.

Utilisez la commande cat pour afficher le contenu du fichier journal rapide.

cat /var/log/snort/fast_alert.log

Votre sortie ressemblera à ceci :

09/15-10:00:01.123456  [**] [1:1000001:1] ICMP Ping Detected [**] {ICMP} 192.168.1.10 -> 8.8.8.8
09/15-10:00:01.123456  [**] [1:1000001:1] ICMP Ping Detected [**] {ICMP} 8.8.8.8 -> 192.168.1.10
09/15-10:00:05.654321  [**] [1:1000002:1] HTTP Traffic Detected [**] {TCP} 192.168.1.10:45678 -> 93.184.216.34:80

Décomposons les composants d'une ligne d'alerte rapide :

  • Horodatage (Timestamp) : 09/15-10:00:01.123456 indique la date et l'heure exactes auxquelles le paquet a été capturé.
  • Générateur, SID et Révision : [1:1000001:1] représente l'ID du générateur (1 signifie qu'il s'agit d'une règle Snort standard), l'ID Snort (SID) qui identifie de manière unique la règle (1000001), et le numéro de révision de la règle (1).
  • Message : ICMP Ping Detected est le message lisible par l'humain défini dans la règle.
  • Protocole : {ICMP} ou {TCP} indique le protocole réseau utilisé.
  • Source et Destination : 192.168.1.10:45678 -> 93.184.216.34:80 montre l'adresse IP et le port source, une flèche indiquant la direction du trafic, ainsi que l'adresse IP et le port de destination.

En lisant ce journal, un analyste en sécurité peut rapidement déterminer qui attaque (IP source), quelle est la cible (IP et port de destination) et quel type d'attaque est suspecté (Message).

Inspecter les vidages complets de paquets

Bien que le journal rapide soit excellent pour un aperçu rapide, il manque des détails techniques approfondis nécessaires à une enquête approfondie. Dans cette étape, vous allez examiner le fichier full_alert.log.

Le journal complet répond à une question différente : non seulement « quelle alerte s'est déclenchée ? », mais « à quoi ressemblait réellement le paquet déclencheur ? ». Ce contexte plus approfondi aide les analystes à valider les alertes, à comprendre le comportement des protocoles et à enquêter sur d'éventuels faux positifs ou tentatives d'évasion.

Le format d'alerte « full » inclut les informations complètes de l'en-tête du paquet. Cela permet aux analystes d'inspecter des détails tels que le Time to Live (TTL), le Type of Service (TOS), la longueur du paquet et les drapeaux TCP, ce qui peut être crucial pour comprendre la nature d'une attaque ou identifier des faux positifs.

Comme le journal complet contient plusieurs lignes par alerte, il peut être assez long. Utilisez la commande head pour afficher les 30 premières lignes du fichier, ce qui vous montrera les détails des premières alertes.

head -n 30 /var/log/snort/full_alert.log

Votre sortie ressemblera à ceci :

[**] [1:1000001:1] ICMP Ping Detected [**]
09/15-10:00:01.123456 192.168.1.10 -> 8.8.8.8
ICMP TTL:64 TOS:0x0 ID:12345 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:15  Seq:1  ECHO
...
[**] [1:1000002:1] HTTP Traffic Detected [**]
09/15-10:00:05.654321 192.168.1.10:45678 -> 93.184.216.34:80
TCP TTL:64 TOS:0x0 ID:54321 IpLen:20 DgmLen:60 DF
******S* Seq: 0x1A2B3C4D  Ack: 0x0  Win: 0xFAF0  TcpLen: 40

Notez les détails supplémentaires fournis dans le journal complet :

  • Informations d'en-tête IP : TTL:64 (Time to Live), TOS:0x0 (Type of Service), ID:12345 (Identification IP) et DgmLen:84 (Longueur du datagramme).
  • Spécificités ICMP : Type:8 Code:0 indique une requête Echo ICMP (un ping standard).
  • Spécificités TCP : ******S* représente les drapeaux TCP définis dans le paquet (dans ce cas, le drapeau SYN est défini, indiquant le début d'une connexion). Il affiche également les numéros de séquence (Seq), les numéros d'accusé de réception (Ack) et la taille de la fenêtre (Win).

En analysant ces vidages complets de paquets, vous pouvez acquérir une compréhension beaucoup plus approfondie du trafic réseau qui a déclenché l'alerte IDS.

Résumé

Dans ce laboratoire, vous avez configuré et exécuté avec succès le système de détection d'intrusion Snort pour surveiller le trafic réseau. Vous avez appris à déclencher des règles de détection personnalisées en générant des types spécifiques de trafic réseau, tels que des pings ICMP et des requêtes HTTP. De plus, vous avez exploré les différences entre les journaux d'alertes fast et full de Snort, acquérant une expérience pratique dans la lecture et l'interprétation des informations critiques qu'ils contiennent, allant des adresses IP source et destination de base aux drapeaux détaillés des en-têtes de paquets. Ces compétences sont essentielles pour surveiller efficacement la sécurité du réseau et répondre aux menaces potentielles.