0% ont trouvé ce document utile (0 vote)
53 vues15 pages

Sécurité

Transféré par

lethiciationo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues15 pages

Sécurité

Transféré par

lethiciationo
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

I.

SNORT

1. Qu’est ce que SNORT?


SNORT est un open source du système de détection des intrusions de réseau. Il a capable d’analyser
le trafic sur le réseau en temps réel et des paquets circulant sur le réseau IP. Il peut exécuter l'analyse
de protocole, en cherchant et s’assortant le content et peut être employé pour détecter une variété
d'attaques, des tentatives comme des débordements d'amortisseur, des balayages de port de dérobée,
des attaques de CGI, des sondes de SMB, des tentative d’empreinte de OS, et beaucoup plus. SNORT
emploie une langue flexible de règles pour décrire le trafic qu'elle devrait se rassembler ou passer,
aussi bien qu'un moteur de détection qui utilise une architecture plug-in modulaire.

SNORT a des possibilités en temps réel d'alerter aussi bien, incorporant alertant des mécanismes pour
le système d’événement, un dossier indiqué par utilisateur, un socket de Unix, ou des messages de
WinPopup aux clients de Windows en utilisant la smbclient. SNORT a trois utilisations primaires. Il
peut être employé en tant qu'un renifleur de paquet comme tcpdump(1), un enregistreur de paquet
(utile pour le trafic de réseau corrigeant, etc…), ou comme plein système soufflé de détection
d'intrusion de réseau.

Les plates formes pour installer SNORT


Source : [Link]
La figure illustre un réseau avec SNORT :

Il y a deux postes pour mettre le SNORT : avant le par feu (externe) ou après
le par feu (interne).

 Système externe a pour but de détecter qui a tentative


d’attaquer à notre système.

 Système interne est le plus meilleur choix pour le système qui utilise «
DMZ »

2. Architecture du Snort

 Un noyau de base : (PacketDecoder) au démarrage, ce noyau charge un ensemble de


règles, Les compile, les optimise et les classe. Durant l’exécution,le rôle principal du
noyau est la capture des paquets.
 Une série de pré–processeurs: (Détection Engine) ces derniers améliorent les
possibilités de SNORT en matière d’analyse et de recomposition du trafic capturé.
Ils reçoivent les paquets directement capturés et décodés, les retravaillent
éventuellement puis les fournissent au moteur de recherche dessignatures pour les
comparer avec la base des signatures.
 Une série de « Detection plugins »: Ces analyses se composent principalement de
comparaison entre les différents champs des headers des protocoles (IP, ICMP,TCP
et UDP) par rapport à des valeurs précises.
 Une série de « output plugins »: permet de traiter cette intrusion de plusieurs
manières envoievers un fichier log, envoie d’un message d’alerte vers un serveur
syslog, stocker cette intrusiondans une base de données SQL.

3. Évaluations

3.1. Avantages

 SNORT est un logiciel libre (Open Source) et il est mis à jour


régulièrement sous la limite de GNU.
 SNORT adapte bien à plusieurs exploitations du système (Windows,
Linux, FreeBSD, Solaris…).
 Un outil pour analyser les attaques, le trafic sur le réseau.
 On peut définir des signatures pour détecter des tentatives, le
trafic du réseau.

 Il est disponible un ensemble des règles définies par plusieurs


organisations et par plusieurs personnes.
 Toutes données sont sauvegardées dans la base de données
(MYSQL, ORACLE, POSTGRESQL)

3.2. Inconvénients
En fait, C’est pas facile pour manipuler SNORT par ce qu’il y a beaucoup de
commandes pour exécuter. C’est ainsi qu’on a ajouté les autres outils pour
faciliter à gérer. Alors les étapes d’installation sont compliquées.

4. Modes de Fonctionnement de SNORT


Snort peut fonctionner sous trois modes :
 Le mode sniffer « hors ligne » qui se contente de lire les paquets qui circulent sur le
Réseau et de les afficher de manière continue à l’écran.
Il s’agit d’écouter le réseau, en tapant une ou plusieurs lignes de commandes qui indiqueront à
snort le type de résultat à afficher, en voici quelques-unes :
 La commande verbose affiche les en-têtes TCP/IP : snort –v .
L’interface connectée au réseau est automatiquement détectée et scannée. Est-il utile
de préciser qu’il faut de l’activité sur le réseau pour avoir des résultats.
 La commande verbose dump, affiche les IP et les en-têtes TCP/UDP/ICMP :
snort –vde

 Le mode « packetlogger » qui enregistre les paquets sur le disque. Ce mode est en
Tout point similaire au précédent, à ceci près que les logs ne s’affichent plus à l’écran, mais
s’inscrivent directement dans un fichier de log. Le répertoire naturel de log de snort
étant
/var/log/snort/ . La seule modification par rapport à précédemment est le v, remplacé par l,
concrètement : snort -de -l /var/log/snort. En visitant le répertoire /var/log/snort/ on
constatera l’existence de plusieurs répertoires.
 Système d'alerte et de Log

Le système d’alerte et d’enregistrement des logs s’occupe de la génération des logs et des
alertes. Dépendant sur ce que le système de détection trouve à l'intérieur d'un paquet, le
paquet peut être archivé dans le fichier Log ou une alerte peut être générée. Ces logs sont
contenus dans des fichiers.

Dès que le système devient opérationnel, on pourra consulter les alertes générées directement
dans les fichiers ou bien utiliser une console de gestion. Il existe des applications qui
fournissent une console de gestion et qui permet la visualisation des alertes en mode
graphique. Les alertes dans ce cas sont stockées dans une base de données comme mysql
comme un titre exemple la base ACIDBASE.

 Le mode NIDS (Network Intrusion Détection System) : le plus complexe et le


Plus configurable, qui permet d’analyser le trafic sur le réseau en suivant des règles définies
par l’utilisateur et d’établir des actions à exécuter suivants les cas.
Snort utilise pour cela des règles pour détecter les intrusions. Il existe aujourd’hui
environ 1500 règles différentes, chacune s’adaptant à un cas particulier. On peut créer des
règles pour observer une activité particulière sur le réseau : pings, scans, faille dans un script,
tentative de prise de contrôle à distance. Les alertes peuvent être enregistrées dans un fichier
particulier ou directement dans le syslog ou encore dans une base de données. Chaque règle se
rajoute dans un fichier de configuration prévu à cet effet, on peut soit utiliser celles qui
existent déjà, soit en créer de nouvelles suivant les besoins. Le fichier de configuration de
snort est /etc/snort/[Link], les fichiers .rules contenus dans le répertoire /etc/snort/rules/
sont des fichiers contenant des règles pour un usage bien particulier. Le nom du fichier est, en
général explicite, ainsi, [Link] contient des règles spécifiques au ftp et [Link] s’utilise
pour les tentatives de DoS (Denial Of Ser-vice ou Denie de Service en français).

5. Les étapes d’installation et configuration Snort

Évidemment nous avons besoin de Snort, nous allons configurer Snort pour qu’il enregistre
les événements dans une base de données MySQL. Nous aurons besoin donc d’installer et
configurer le système de gestion de base de données MySQL.

Snort utilise la bibliothèque Libpcap pour capturer les paquets transitant sur le réseau, il faut
donc s’assurer qu’elle est bien installée. Nous aurons aussi besoin d’une console ou
application graphique qui va attaquer la base de données MySQL pour mieux visualiser les
alertes et autres informations (statistiques, graphes.).

Nous allons choisir BASE qui est une application développée en PHP, mieux c'est une
version améliorée de ACID nous aurons besoin donc d’installer PHP.

Nous aurons besoin d’installer aussi :

 La librairie de base de données ADODB. ADODB est une librairie PHP utilisée pour
Rendre l’accès aux bases de données indépendantes du système de gestion des bases
de données utilisé.

5.1. Installations des prés-requis


L’installation des prés-requis est souvent délicate. Car les prés-requis dépendent souvent aussi
d’autres paquets à installer.

Raison pour laquelle avant d’installer ces prés-requis nous allons faire une mise à jour
système pour s’assurer qu’on a au moins des outils de base pour démarrer.

Pour cela on ouvre un terminal et on se connecte en tant que root et on exécute les
commandes suivantes :

#apt-get update

#apt-get upgrade

Pour l’installation de certains prés-requis il est plus prudent de faire :

#apt-get install nom_paquet


Ainsi le paquet et ses dépendances seront installés.

Il se trouve que la plus part des prés-requis à installer sont contenus dans d'autres paquets.

l 'installation des dépendances :

#apt-get update

#apt-get upgrade

Pour snort :

#apt-get install libpcap* #apt-get

install libprelude* Pour mysql :

#apt-get install mysql

#apt-get install phpmyadmin

#apt-get install libmysqlclient15-dev

#apt-get install libpcre3*

#apt-get install libnet1* #apt-

get install libssl-dev Pour

BASE :

#apt-get install adodb*

#apt-get install php5*

#apt-get install apache2*

#apt-get install libapache-mod-php #apt-

get install php-pear

#apt-get install php5-cli


#apt-get install libphp-adodb #apt-

get install php5-gd

Ici nous présentons l’installation des outils essentiels : snort et base.

Installation de snort
Pour l’installation de snort, nous exécutons la commande suivante :

apt-get install snort

Installation de snort-mysql
Après la compilation il nous faut installer le daemon : snort-mysql . Nous allons
installer snort-mysql en ligne de commande :

apt-getinstall snort-mysql

DES IMAGES QUI DOIVENT ETRE ICI

5.2. Configuration de snort


Nous allons découvrir snort ainsi que ses fichiers de configuration

Snort comporte plusieurs fichiers de configuration. Les plus importants sont :


/etc/snort/[Link] (fichier de configuration principal) et les fichiers .rules se trouvant
dans le répertoire /etc/snort/rules/ .

Le fichier [Link] indique à snort dans quel environnement il évolue et quelques


paramètres :

 Le réseau dans lequel il se trouve.


 Le réseau à surveiller.
 La liste des serveurs se trouvant dans le réseau où snort est déployé ainsi que leur
port d’écoute.
Quant aux fichiers .rules ils contiennent des règles prés-définies. Ces règles déterminent la
réaction de snort quand il est lancé. Il existe un fichier appelé [Link] qui permet à
l’administrateur réseau de définir ses propres règles.

5.3. Les règles Snort

Les règles de SNORT sont composées de deux parties distinctes : le header et les optionsLe
header permet de spécifier le type d’alerte à générer (alert, log et pass)et d’indiquer les
champs de base nécessaires au filtrage : le protocole ainsique les adresses IP et ports sources
et destination.
Les options, spécifiées entre parenthèses, permettent d’affiner l’analyse,en décomposant la
signature en différentes valeurs à observer parmi certainsChamps du header ou parmi les
données.

Action de la règle: alert, log, pass

Protocole: tcp, udp, icmp


Adresses source et destination: src, dest, any

Port src / dest: any, nb port, plage de ports avec p1:pn

Opérateur de direction: ->unidirectionnel, ou <->bidirectionnel

Syntaxe des options :


– combinaison de règles avec le séparateur « ; »
– séparation des mots clefs et des arguments avec « : »
– mots clefs : msg, logon, minfrag, ttl, id, dsize, content, offset, depth,
flags,seq, ack, itype, idecode, nocase, session

Ce schéma ci-dessous récapitule le fonctionnement de snort :


Fichier de configuration Snort

Pour la configuration de snort, nous allons éditer le fichier [Link] (/etc/snort/[Link]) .


Nous avons uniquement modifié la première partie du fichier qui concerne les variables
réseau. Voici les modifications que nous avons apportées dans ce fichier :
 var HOME_NET any/* indique l'adresse de l’interface réseau qui écoute le trafic .
La valeur par défaut est any . On peut personnaliser en mettant l'adresse ip de l'interface ou du
réseau à protéger. */
 var EXTERNAL_NET any/* indique le(s) réseau(x) externe(x) à « écouter » * . La
valeur par défaut est any , ce qui signifie que le trafic venant de n’ importe quel réseau
est analysé . Pour exclure le réseau à protéger on met !HOME_NET à la place de any. On
peut aussi préciser les réseaux en mettant : [adresse réseau1, adresse réseau2 …..]. */

 var RULE_PATH /etc/snort/rules /ici on précise le répertoire où se trouvent les


fichiers .rules . */

 output database :alert,mysql,user=snort password=pqsserdbname=snort


host=localhost ./* ici on indique à snort qu 'il faut enregistrer les événements dans une
base de donnée mysql avec les paramètres ci-dessus */ .

Avant de configurer MySQL, nous allons créer une règle très simple dans [Link]
(/etc/snort/rules/[Link]). Les règles de snort sont très analogues avec les ACL
(Access-List Control) au niveau de la syntaxe et du fonctionnement.
#vim /etc/snort/rules/[Link]
alerttcp any any - > any any (msg : « test »; sid:1000001;)
/* tout trafic TCP venant de n’importe où vers n’importe quel destinataire entraine une alert
avec comme titre “test” */ .

Configuration de MySQL
Nous allons configurer MySQL pour stocker les alertes et autres événements générés par
snort. Pour cela on se connecte à la base de données MySQL en tant que root :

/#mysql -u root -p

Enter password :

On crée la base de données nommée snort avec la

commande : mysql>create database snort;

Query OK, 1 row affected (0.04 sec)


On crée l’utilisateur snort et on lui attribue des privilèges ainsi que ses paramètres de
connexion :

mysql>grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to


snort@localhost;

mysql>SET PASSWORD FOR snort@localhost=PASSWORD('[mot_de_passe]');

mysql>flush privileges; /* pour charger les privilèges *./

On peut vérifier tout ceci en faisant :

mysql> use mysql;

mysql>select user,password,host from user where user='snort'.

#mysql -u root -p

Enter password: /* on saisit le mot de passe de root pour mysql */

mysql> use snort;

mysql>show tables;

Installation/Configuration de BASE
BASE est un utilitaire graphique, écrit en php , qui va nous permettre de visualiser à temps
réel les alertes et autres informations que snort va «enregistrer » dans la base de donnée
MySQL .

Voila l’url de la base ACID : [Link] et on suit les instructions suivantes :

DES IMAGES QUI SONT ICI


Utilisation de snort

Dans cette partie nous allons tester snort, puisque tout le nécessaire a été installé. nous ne
pourrons faire des tests permettant de simuler à 100% les actions des hackers. Nous allons
limiter nos tests aux services ou application de base tels que : l’interdiction de pings , de
telnet
, du [Link] notre machine censée être la cible (en même temps elle joue le rôle de sensor).
Pour les rés ultats que nous allons observer, en réalité tout se passe comme si un inconnu a
réussi à traverser le firewall pour faire des pings continus, telnet, ssh ,web …

3.4.2. Modes de fonctionnement

snort peut fonctionner en plusieurs modes :

 Mode sniffer : il écoute le trafic et capture les paquets. Quelques informations


Contenues dans les paquets sont affichées. Il est lancé en ligne de commande avec l 'option -
v (snort -v) . D'autres options sont possible en faisant man snort .

 Mode packetlogger : il est similaire au précédent sauf qu ' ici les résultats sont
envoyés dans des logs (/var/log/snort) . Toujours en ligne de commandes : snort -de -
l
/var/log/snort .

 Mode NIDS : en mods nids snort est lancé avec la commande :


snort -u snort -c /etc/snort/[Link] . Il analyse les paquets et les soumet aux règles se
trouvant dans /etc/snort/rules/ . C'est ce mode qui nous intéresse et qui fera l’objet de tests
.

Maintenant que [Link] est bien configuré, nous allons créer nos propres règles dans le

/etc/snort/rules/[Link]. Nous allons interdire les pings , le web, le ssh,le ftp vers notre sensor
qui en même temps joue le rôle de serveur cible .

Voici les règles :

alerticmp any any -> $HOME_NET any (msg:"alert-ICMP";sid:1000003;)

alerttcp any any -> $HOME_NET 80 (msg:"alert-HTTP";sid:1000004;)


alerttcp any any -> $HOME_NET 21 (msg:"alert-FTP";sid:1000006;)

alerttcp any any -> $HOME_NET 22 (msg:"alert-SSH";sid:1000007;)


alerttcp any any -> $HOME_NET 23 (msg:"alert-TELNET";sid:30000;)

.Pour les tests voici les opérations que nous avons effectuées :

Puis nous ouvrons un navigateur et on saisit l 'url pour se conecter au serveur web et ftp :

Vous aimerez peut-être aussi