Snort

Snort

Vous avez surement entendu parler des IDS (Intrusion Detection System) et IPS (Intrusion Protection System) qui prennent de plus en plus d’importance. Les IDS et IPS permettent de détecter des comportements suspects ou anormales sur le système d’information. Ces technologies permettent d’être pro-actif sur les intrusions de votre réseau. Nous allons mettre en place dans ce tutoriel un IDS open-source nommé Snort.

 

Généralité

IPS, IDS quels différences?

IPS et IDS sont très semblables, néanmoins un paramètre les distingue au niveau du blocage des intrusions. Un IDS va uniquement détecter une intrusion, à vous ensuite de gérer celle-ci. Un IPS va, contrairement à l’IDS, pouvoir bloquer directement les intrusions dynamiquement.

 

Type IDS

Ils existent à ce jour trois types d’IDS:

  • NIDS: (Network Intrusion Detection System) Il capture tout le trafic du réseau (sniffer) en temps réel. Il se base sur des règles qui lui ont été définies pour pouvoir détecter des comportements suspects. Il sert à détecter un comportement anormal sur le réseau.
  • HIDS: (Host Intrusion Detection System) sert à détecter un comportement anormal sur une machine. Il collecte les informations qui lui sont envoyées par les équipements. Il utilise les signatures ou le comportement. Un agent est installé sur chacune des machines. Un HIDS va ensuite envoyer les informations au HIDS qui va analyser les signatures et les comportements.
  • IDS hybride qui permet de détecter les intrusions sur les hôtes et sur le réseau.

 

Fiabilité

Ces technologies ne sont pas à fiables à 100%, elles peuvent générer des faux positifs c’est-à-dire qu’elles vont produire une alerte alors qu’il n’y a pas d’intrusion. Par exemple, un utilisateur de votre réseau n’a jamais téléchargé beaucoup de document puis un jour il télécharge plusieurs Gb, l’outil va alors générer une alerte alors qu’il n’y a pas de risque. Autre souci, les faux négatifs, on a bel et bien une intrusion sur notre réseau mais l’outil n’a généré aucune alerte.

 

CNIL

Si vous devez mettre en place un IDS/IPS dans votre entreprise, il ne faut pas que vous oubliiez que ceux-ci aspirent tout le trafic. Compte tenu de cela toutes les données, y compris personnelles de vos utilisateurs vont être analysées par l’IDS/IPS. Vous devez donc faire une déclaration à la CNIL.

 

Mise en place d’un IDS: Snort

Installation

Nous allons maintenant passer à l’installation de Snort, lors de ce tutoriel je vais installer celui-ci sur Ubuntu v16.04 que vous pouvez télécharger en cliquant ici. Sachez que Snort peut fonctionner dans 3 modes différents:

  • Sniffer: permet d’observer les paquets reçus
  • Log de paquet: pour archiver les logs du réseau
  • IDS: génération d’alerte en fonction des comportements du réseau

Commencez par mettre à jour votre système, ouvrez un terminal et tapez les deux commandes suivantes:

sudo apt-get update
sudo apt-get upgrade

 

Une fois le système mis à jour, nous allons installer Snort, pour cela tapez la commande suivante:

sudo apt-get install snort

 

Vous allez arriver sur l’assistant de configuration de Snort, faites « Entrer » sur la fenêtre de présentation. Vous devez ensuite renseigner l’interface sur laquelle l’outil écoutera le réseau, sélectionnez l’interface reliée à votre réseau local. Si vous ne connaissait pas le nom de votre interface, ouvrez un second terminal et entrez la commande « ifconfig » vous obtiendrait le nom de votre/vos interface(s).

 

Vous allez ensuite devoir renseigner la plage IP de votre réseau au format CIDR:

 

L’outil va vous demander une seconde fois l’interface à écouter, renseignez ce champ à nouveau. Patientez quelques secondes pour que l’installation se termine.

 

Configuration

Comme je vous l’ai expliqué un peu plus haut, nous allons devoir configurer les règles pour lesquelles notre outil devra émettre une alerte. Deux choix s’offrent à vous, soit définir les règles vous-même ou télécharger des règles sur le site de Snort afin d’être protégé contre les menaces connues. Vous pouvez bien entendu combiner les deux.

 

Règles manuelles

Pour définir des règles manuellement, éditez le fichier « local.rules » avec la commande suivante:

sudo nano /etc/snort/rules/local.rules

 

A la fin du fichier, ajoutez la ligne suivante:

alert icmp any any -> $HOME_NET any (msg:"Tentative connexion ICMP"; sid:00001; rev:1;)

 

Grâce à cette commande, Snort va générer à chaque requête ICMP (echo et reply) une alerte. Nous avons appliqué cette alerte, de tous les hôtes vers tous les hôtes (any any), msg est le message qui sera affiché dans l’alerte, sid est un identifiant qui doit être unique.

Nous allons vérifier que notre alerte fonctionne bien. Lancez l’outil Snort avec la commande suivante (pensez à adapter le nom de l’interface si elle est différente de eth0):

snort -A console -i eth0 -u snort -c /etc/snort/snort.conf

 

Lancez un ping a partir de n’importe quelle machine de votre réseau, comme expliqué précédemment Snort est un sniffer réseau, il va aspirer l’ensemble du trafic de votre réseau. Vous devriez voir l’alerte que nous venons de créer apparaître:

 

Appuyez sur Ctrl + C pour stopper Snort. L’ensemble des alertes/logs de l’outil sont stockés dans /var/log/snort. Pour accéder à un fichier de log, exécutez la commande suivante:

snort -r /var/log/snort/snort.log.XXXXXX

 

Règles Snort

Pour utiliser les règles présentes sur le site de Snort, cliquez ici. Téléchargez le fichier correspondant à la version installée. Décompressez le fichier avec la commande suivante en remplaçant XXX par le nom du fichier:

sudo tar zxvf XXX

 

Allez dans le dossier décompressé et déplacez ensuite le fichier « community.rules« dans le répertoire contenant les règles de Snort:

cd DOSSIER_DECOMP

sudo mv community-rules /etc/snort/rules

 

Si vous éditez le fichier, vous remarquerez que l’ensemble est commenté. Bien entendu, vous devez décommenter uniquement les règles dont vous utilisez le protocole. (Inutile de générer des alertes sur le protocole POP si vous ne l’utilisez pas par exemple)

Nous allons maintenant indiquer à l’outil qu’il doit prendre en compte le fichier « community.rules » pour générer des alertes. Nous n’avions pas eu à faire cette opération pour la création de l’alerte du précédant point, car celle-ci était déjà présente dans le fichier de configuration par défaut. Utilisez la commande suivante:

sudo nano /etc/snort/snort.conf

 

Ajoutez la ligne suivante au fichier

include $RULE_PATH/community.rules

 

Sauvegardez et quittez. Le fichier contenant ces règles sera désormais pris en compte par Snort.

 

Snort en tâche de fond

Vous pouvez lancer Snort en tâche de fond (service) pour cela nous allons créer un script de démarrage. Créez le fichier suivant:

sudo nano /lib/systemd/system/snort.service

 

Dans ce fichier, entrez ce texte (n’oubliez pas d’adapter le nom de l’interface à votre cas):

[Unit]
Description=Lancer Snort NIDS
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i eth0

[Install]
WantedBy=multi-user.target

 

Sauvegardez le fichier et redémarrez systemctl qui est l’outil de gestion des services:

sudo systemctl daemon-reload

 

Démarrez le service Snort que vous venez de créer

sudo systemctl start snort

 

Vérifiez le statut du service:

sudo systemctl status snort

 

Grâce à ce tutoriel vous êtes maintenant capable de mettre en place un IDS sur votre réseau et de personnaliser les paramètres de détection d’intrusion.

À propos de l’auteur

Vincent Krahenbuhl administrator

Passionné d’informatique, ma motivation et ma curiosité m’ont permis de réaliser des études en alternance tout d’abord en tant que technicien informatique au sein du groupe Edscha puis ensuite administrateur réseau au sein de FM Logistic. Fort de ces expériences dans deux entreprises internationales, j’exerce aujourd’hui le rôle d’ingénieur système et réseau au sein de FM Logistic.

Laisser un commentaire