Vous êtes sur la page 1sur 9

Evaluation de La Sécurite

Atelier N°1 : Mise En place et Configuration de Snort

Objectifs :
L’objectif de ce TP est de mettre en place un système de détection d’intrusion en se basant sur
le logiciel libre Snort. C’est un système de détection d'intrusion libre qui est capable d'effectuer
en temps réel des analyses de trafic et de logger les paquets sur un réseau IP. Il peut effectuer
des analyses de protocoles, recherche/correspondance de contenu et peut être utilisé pour
détecter une grande variété d'attaques.

Travail demandé :
Dans le cadre de ce TP, nous nous intéressons essentiellement aux aspects suivants :
- Comprendre et assimiler le rôle d’un système de détection d’intrusion dans la
sécurité des réseaux ;
- Installer du logiciel Snort et les logiciels requis ;
▪ Installation des pré-requis
▪ Installation de SNORT
▪ Configurations
▪ Configuration de mysql
▪ Configuration de Snort

- Effectuer les configurations nécessaires au bon fonctionnement de Snort ;


- Effectuer des tests avec Snort dans ses différents modes.
• Utilisation de SNORT comme un simple sniffer :
• Utilisation comme outil d'enregistrement de trafic réseau
• Utilisation de SNORT comme un IDS
- Apprendre à écrire de nouvelles règles personnalisées.

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Déroulement du TP :
Durant ce TP nous allons travailler avec deux machines, la première est pour configurer Snort
alors que la deuxième agira comme un client malveillant.

Comme le montre la maquette ci-dessus, nous allons utiliser une machine virtuelle (Machine 1)
sur laquelle nous allons mettre en place Snort ainsi que d’autres services qui sont nécessaire à
son bon fonctionnement. La deuxième machine (Machine 2) agira comme une machine du
réseau extérieur

Les deux machines vont communiquer via la passerelle de vmwar (@IP : 192.168.231.2)

Machine Type OS Fonction Services Adresse IP

Machine 1 Ubuntu Snort Apache, Mysql, 192.168.231.130/24


PHP, BASE 192.168.231.2

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Installation de Snort sur Ubuntu


Pré-requis
Il faut commencer par préparer le serveur en effectuant différentes mises à jour et installations,
de manière à pouvoir installer correctement l’application Snort.

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install build-essential checkinstall mysql-server libnet1-dev


libpcap0.8-dev libpcre3-dev libmysqlclient15-dev

Libprelude

L’installation de Libprelude est obligatoire pour pouvoir


enregistrer le serveur Snort auprès du serveur Prelude.
Ainsi, Snort est considéré comme une sonde de Prelude
et peut alors échanger avec ce dernier de manière
sécurisé.

Pour installer la librairie de Prelude, voir cette page : Libprelude

Prelude, ou Prelude-IDS (est un système de détection d’intrusion hybride) composé de


plusieurs plugins, sondes. Prelude a été conçu dans le but d’être modulaire, souple, et résistant
aux attaques. Sa modularité permet notamment de lui rajouter facilement de nouveaux types de
détecteurs d’intrusion, d’analyseurs de logs et d’une solution de corrélation, le tout au format
et à la norme IDMEF (Intrusion Detection Message Exchange Format), bien que de nombreux
autres formats de logs sont compatibles.
Le format IDMEF décrit une alerte de façon objet et exhaustive. Une alerte est le message qui
est émis depuis un analyseur, qui est une sonde en langage IDMEF, vers un collecteur. Le but
d’IDMEF est de proposer un standard permettant d’avoir une communication hétérogène quel
que soit l’environnement ou les capacités d’un analyseur donné. Ces alertes sont définies au
format XML, offrant une possibilité de validation de chaque message. En général, les
implémentations restent binaires, afin d’éviter les problèmes connus d’ajout d’information
inutiles en dehors d’XML lorsque l’on envoie un message sur le réseau.

IDMEF offre aussi un vocabulaire précis, qu’il est courant d’utiliser dans le domaine de la
détection d’intrusions. Par exemple, une classification correspond au nom d’une alerte, un
impact celui d’un niveau d’attaque.

L’intérêt de Prelude est de pouvoir centraliser les alertes dans sa base de données et de les
normaliser au format IDMEF, puis visualisable dans une interface web.

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Prelude peut intégrer :

▪ Un NIDS (Network Intrusion Detection System, par exemple Snort)


▪ Un HIDS (Host Intrusion Detection System, par exemple Ossec)
▪ Une interface web (module Prelude : Prelude-Prewikka)
L’application Prelude est disponible uniquement sous Linux, bien qu’il ait une offre payante
(support, fonctionnalités supplémentaires, …), le logiciel est gratuit.

Installation
On commence l’installation de snort par les commandes suivantes :
$ sudo cd /tmp

$ sudo wget http://dl.snort.org/snort-current/snort-2.8.4.1.tar.gz

$ sudo tar --zxf snort-2.8.4.1.tar.gz

$ sudo cd snort-2.8.4.1

$ sudo ./configure --with-mysql --enable-dynamicplugin --prefix=/usr/local/snort --


enable-prelude

$ sudo make

$ sudo make install

$ sudo mkdir /etc/snort

$ sudo mkdir /var/log/snort

$ sudo mkdir /etc/snort/rules_backup

$ sudo mkdir /etc/snort/packages

$ sudo cp /tmp/snort-2.8.4.1/etc/*.conf* /etc/snort

$ sudo cp /tmp/snort-2.8.4.1/etc/*.map /etc/snort

Utilisateur et groupe
Pour l’administration de l’application Snort, il faut créer un utilisateur d’administration et un
groupe (cette étape peut être optionnelle) :

$ sudo groupadd snort

$ sudo useradd –g snort –d /usr/local/snort –m snort

$ sudo chown –R snort /var/log/snort

$ sudo chgrp –R snort /var/log/snort

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Règles Snort
Ajout des règles Snort:

$ sudo cd /tmp

$ sudo wget http://dl.snort.org/sub-rules/snortrules-snapshot-2.8_s.tar.gz

$ sudo tar –zxf snortrules-snapshot-2.8_s.tar.gz

$ sudo mv snortrules-snapshot-2.8/rules/* /etc/snort/rules

Règles Emerging
Ajout des règles Emerging (optionnel) :

$ sudo cd /etc/snort

$ sudo wget http://emergingthreats.net/rules/emerging.rules.tar.gz

$ sudo tar –zxf emerging.rules.tar.gz

MySQL
Création de la base de données
Pour le stockage des alertes de Snort, et pour une visualisation plus claire que dans un fichier
de logs, il est possible de créer une base de données (tout en conservant la sortie en logs) :

$ sudo mysql –u root –p

> create database snort;

Création d’un utilisateur


Ajout d’un utilisateur pour administrer la base de données:

> grant all on snort.* to snort@localhost;

> set password for snort@localhost=password(‘manager’);

> flush privileges;

> exit

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Construction de la base de données


Création des tables et différentes propriétés de la base de données, grâce à un script fourni dans
le paquet d’installation de Snort :

$ sudo cd /tmp/snort-2.8.4.1/schemas

$ sudo mysql –u snort –p < create_mysql snort

Vérification
Et enfin, pour vérifier que la base de données a bien été construite :

$ sudo mysql –u snort –p snort

> show tables;

> exit

Configuration
Pour configurer Snort, il faut éditer le fichier snort.conf.

$ sudo vim /etc/snort/snort.conf

Configuration de base
Dans le fichier snort.conf, voici les paramètres de base à indiquer pour le bon fonctionnement
de Snort :

Déclaration des interfaces d’écoute :

var HOME_NET any

var EXTERNAL_NET any

Ensuite, il est important d’indiquer le répertoire contenant les règles :

var RULE_PATH /etc/snort/rules

Définition de la base de données Snort :

output database: log, mysql, user=snort password=manager dbname=snort


host=localhost

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Activation de l’envoi d’alertes vers Prelude:

$ sudo vim /etc/snort/snort.conf

Pour relayer les alertes de snort vers le serveur Prelude, il faut également ajouter cette ligne :

output alert_prelude: profile=snort

Puis, il est important pour la communication entre Snort et Prelude de configurer la librairie de
Prelude. Pour cela, il faut préciser l’adresse du serveur Prelude dans le fichier client.conf dans
le repertoire /usr/local/etc/prelude/default.

$ sudo vim /usr/local/etc/prelude/default/client.conf

server-addr = 192.168.1.200

Test de la configuration de Snort


Création d’une règle locale de test
Editer le fichier local.rules, ou bien le créer s’il n’existe pas.
$ sudo vim /etc/snort/rules/local.rules

Puis y ajouter cette ligne de test, qui sert à envoyer des alertes lorsque Snort sniffe et détecte
des pings sur le réseau :
alert icmp any any -> any any (msg:"test ICMP";sid:10000001;)

Lancement de Snort
Démarrage de Snort:
$ sudo /usr/local/snort/bin/snort -c /etc/snort/snort.conf

Test
Lancement du test de la règle local.rules :
$ sudo ping x.x.x.x

Vérification
Puis vérification de la présence des alertes générées, normalement, après le test, dans la base de
données, et dans le fichier de logs :
$ sudo vim /var/log/snort/alert

et/ou

$ sudo mysql –u snort –p –D snort –e “select count(*) from event”

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Optimisation
Classification et Référence
Pour un meilleur fonctionnement de Snort, il faut inclure deux fichiers supplémentaires
dans snort.conf. Ces derniers permettent la gestion des priorités des alertes (niveaux,
classification, …etc), et l’usage des références dans les règles de Snort, d’après notre
installation, ces fichiers se trouvent dans /etc/snort.
include classification.config

include reference.config

Déclaration de serveurs
Afin de préciser les différents serveurs présents sur le réseau que Snort surveille, il faut éditer
dans le fichier snort.conf, les différentes variables disponibles telles que :

...

# List of DNS servers on your network

var DNS_SERVERS $HOME_NET

# List of SMTP servers on your network

var SMTP_SERVERS $HOME_NET

# List of web servers on your network

var HTTP_SERVERS $HOME_NET

# List of sql servers on your network

var SQL_SERVERS $HOME_NET

# List of telnet servers on your network

var TELNET_SERVERS $HOME_NET

# List of snmp servers on your network

var SNMP_SERVERS $HOME_NET

Voici un exemple :

var HTTP_SERVERS [192.168.1.10,192.168.1.20,192.168.1.30]

Soulef Hlel 2020 - 2021


Evaluation de La Sécurite

Activation/Désactivation d'une règle


Toujours dans le fichier de configuration de Snort, il est possible de d’activer ou bien de
désactiver les règles. Il suffit pour cela, respectivement de décommenter ou de commenter une
règle.

...

include $RULE_PATH/other-ids.rules

# include $RULE_PATH/web-attacks.rules

...

Utilisation
Administration de Snort
Commande snort
Snort ne possède qu’une seule commande, snort, cette dernière regroupe toutes les options
nécessaires pour le fonctionnement de l’application.
Usage :

/usr/local/snort/bin/snort [-options] <filter options>

Pour plus d’informations sur les options de la commande :


/usr/local/snort/bin/snort --h

Démarrage de Snort
Pour démarrer Snort, il faut entrer cette commande :

$ sudo /usr/local/snort/bin/snort -c /etc/snort/snort.conf

La visualisation des alertes se fait dans le fichier alert :

$ sudo vim /var/log/snort/alert

Soulef Hlel 2020 - 2021

Vous aimerez peut-être aussi