6

Click here to load reader

Tuto Snort- Config

Embed Size (px)

Citation preview

Page 1: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

Atelier IDS

Snort Outil de Détection d’intrusion

Introduction Les systèmes de détection d’intrusion ou IDS pour (Intrusion Detection System) sont

indispensables pour la sécurité du réseau, ils permettent (comme leur nom l’indique) de détecter les tentatives d’intrusions, et ceci en se basant sur une base de signatures des différentes attaques connues, donc leur fonctionnement est semblable à celui des anti-virus.

Snort Snort est un système de détection d'intrusions réseau en Open Source, capable d'effectuer

l'analyse du trafic en temps réel. On l'utilise en général pour détecter une variété d'attaques et de

Page 2: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

scans tels que des débordements de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB, des tentatives d'identification d'OS, et bien plus.

Snort permet d’analyser le trafic réseau, il peut être configuré pour fonctionner en plusieurs modes :

§ Le mode sniffer : dans ce mode, SNORT lit les paquets circulant sur le réseau et les affiche d’une façon continue sur l’écran

§ Le mode « packet logger » : dans ce mode SNORT journalise le trafic réseau dans des répertoires sur le disque

§ Le mode détecteur d’intrusion réseau (NIDS) : dans ce mode, SNORT analyse le trafic du réseau, compare ce trafic à des règles déjà définies par l’utilisateur et établi des actions à exécuter

§ Le mode Prévention des intrusions réseau (IPS) : c’est SNORT­inline.

Snort (l’architecture)

Figure 1: Architecture de Snort

L’architecture de SNORT est modulaire (Figure 1), elle est composée de :

• Un noyau de base : (Packet Decoder) au démarrage, ce noyau charge un ensemble de règles, compile,optimise et classe celles-ci. Durant l’exécution, le rôle principal du noyau est la capture de paquets.

• Une série de pré – processeurs : ceux-ci 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, éventuellement les retravaillent puis les fournissent au moteur de recherche de signatures.

Un ou plusieurs moteurs de détection (Detection Engine) applique une série d’analyses aux paquets, ces analyses se composent principalement de comparaisons de différents champs des headers des protocoles (IP, ICMP, TCP et UDP) par rapport à des valeurs précises.

Page 3: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

Après la détection d’intrusion, une série de « output plugins » permet de traiter cette intrusion de plusieurs manières : envoie vers un fichier log, envoie d’un message d’alerte vers un serveur syslog, stocker cette intrusion dans une base de données SQL.

Installation L’installation de Snort n’est pas d’une grande difficulté, toutefois avant l’installation de

SNORT, on doit installer :

• Libpcap : Librairie utilisée par Snort pour capturer les paquets • Gcc : indispensable pour compiler les sources de Snort • BASE :(Basic Analysis and Security Engine) (optionnel), sert à fournir une

représentation visuelle des données concernant les éventuelles intrusions. On peut décomposer l’installation en deux parties :

Installation de l’outil Snort Commandes Remarques

cd /usr/local/snort tar ­xvzf snort­ 2.3.3.tar.gz

Décompacte l’application

./configure Configuration Make Compilation make install Installation

Sinon aussi, on peut installer Snort sous forme de fichier rpm, la commande sera dans ce cas :

rpm ­i snort­2.3.3­2.i586.rpm

Installation des règles Snort Commandes Remarques

mkdir /etc/snort Création du répertoire contenant la configuration Snort

cp /usr/local/snort/snort.conf /etc/snort/snort.conf

Copie du fichier de config snort dans /etc/snort

cp snortrules.tar.gz /etc/snort Mise en place des règles dans le répertoire de configuration Snort

cd /etc/snort On se place dans le répertoire de configuration Snort

tar ­xvzf snortrules.tar.gz Décompactage des règles

Page 4: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

Pour un fonctionnement performant, on doit toujours mettre à jours les règles de Snort, pour cela il suffit de télécharger les mises à jours de l’Internet (voir www.snort.org ) et procéder à l’installation de ces règles comme expliqué ci-dessus.

Configuration et Lancement Les règles Snort sont placées dans le répertoire /etc/snort/rules.

Il faut éditer le fichier de configuration snort (/etc/snort/snort.conf) et spécifier le réseau sur lequel l'IDS travaille. Il faut pour cela modifier la variable HOME_NET :

var HOME_NET [192.168.0.0/24]

Dans le fichier de configuration de Snort (/etc/snort/snort.conf), il y a une série de ‘include’. Il s'agit des règles utilisées par Snort pour détecter d'éventuelles intrusions. Il y a des règles de telnet, ICMP, FTP, ..., On doit commenter les règles qu’on ne veut pas appliquer et enlever le commentaire des règles qui nous intéressent.

Snort est maintenant prêt à être lancé avec, par exemple, la commande:

snort ­D ­i eth0 ­l /var/log/snort ­c /etc/snort/snort.conf

Cette ligne de commande indique que Snort sera lancé en tant que daemon (-D), il regardera l'interface réseau eth0 (-i eth0), utilisera le répertoire /var/log/snort/ pour enregistrer les logs et le fichier de configuration /etc/snort/snort.conf.

Remarque : pour lancer Snort à chaque démarrage, il suffit de rajouter la ligne précédente à la fin du fichier /etc/init.d/rc.local.

Les options de la commande snort La commande snort possède plusieurs options, parmi ces options on peut citer :

Option Description ­v Liste tous les paquets reçus sur

la sortie standard. ­c fichier Active Snort en mode `Détection

d’intrusion` On donne en paramètre le fichier de configuration des règles de détection. Par défaut, les alertes sont mémorisées dans le fichier alert.

­D Active snort en mode démon. ­l répertoire Active le mode journalisation des

paquets et spécifie le répertoire où sont stockés les alertes et les paquets capturés. Par défaut,

Page 5: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

le répertoire /var/log/snort. ­i carte Spécifie la carte réseau. ­b Journalise les paquets au format

binaire tcpdump. ­r fichier Lit un fichier au format tcpdump. ­h réseau Spécifie le réseau local, par

exemple 192.168.1.0/24. ­n nb Traite nb paquets et s’arrête.

L’écriture des règles Snort Snort permet l’écriture de règles personnelles et utilise un langage simple et léger de

description de règles qui est flexible et assez puissant.

Les règles Snort sont divisées en deux sections logiques, l'entête de la règle et les options de la règle comme le montre la figure 2. L'entête de règle contient comme informations l'action de la règle, le protocole, les adresses IP source et destination et les masques réseau, et les ports source et destination. La section options de la règle contient les messages d'alerte et les informations sur les parties du paquet qui doivent être inspectées pour déterminer si l'action de la règle doit être acceptée.

Figure 2: Format de la règle Snor t

Voici un exemple de règle :

Alert tcp any any ­> 192.168.1.0/24 80 (flags :A ;content : “passwd”;msg:“detection de `passwd` “;)

Cette règle permet de générer un message d’alerte “détection de passwd” lorsque le trafic à destination d’une machine du réseau local 192.168.1.0/24 vers le port 80, contient la chaîne « passwd » (spécifié par l’utilisation du mot-clé « content »), et que le flag ACK du header TCP est activé (flags : A).

Tests Notre machine dont on a installé Snort est d’adresse IP 192.168.0.2 ;

A partir de la machine d’adresse 192.168.0.1, on essaye de scanner notre machine en utilisant la commande nmap avec l'option -sS qui permet de faire un scan de type SCAN FIN;

Page 6: Tuto Snort- Config

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e

I N S A T

S E C U R I N E T S Club de la sécurité informatique

I N S A T www.securinets.com

Tel : 20322191

nmap ­sF 192.168.0.2

On remarque que Snort détecte cette intrusion et enregistre dans un dossier portant l'adresse de la machine source de l'intrusion (192.168.0.1) les logs suivants : [**] ICMP PING NMAP [**] 04/23­23:27:37.895549 192.168.0.1 ­> 192.168.0.2 ICMP TTL:46 TOS:0x0 ID:9937 IpLen:20 DgmLen:28 Type:8 Code:0 ID:32676 Seq:23169 ECHO =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

[**] SCAN FIN [**] 04/23­23:27:49.202929 192.168.0.1:59321 ­> 192.168.0.2:1 TCP TTL:52 TOS:0x0 ID:38933 IpLen:20 DgmLen:40 *******F Seq: 0x26F2832B Ack: 0x0 Win: 0x400 TcpLen: 20 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=

[**] SCAN FIN [**] 04/23­23:27:41.248172 192.168.0.1:59321 ­> 192.168.0.2:10 TCP TTL:42 TOS:0x0 ID:4473 IpLen:20 DgmLen:40 *******F Seq: 0x26F2832B Ack: 0x0 Win: 0xC00 TcpLen: 20 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= +

Conclusion Outre la mise en place des pares feu et des systèmes d’authentification, il est de nos jours

nécessaire de mettre en place un système de détection d’intrusion.

Nous avons étudié le fonctionnement de ces systèmes en particulier nous avons pris comme exemple l’outil Open Source Snort qui est le plus réputé en terme d’efficacité et présente une souplesse en terme de personnalisation.

Pour une meilleure lisibilité dans la lecture des logs et les alertes; il existe plusieurs interfaces graphiques pour Snort les plus connues sont SnartSnort et ACID.

Aussi pour une meilleure gestion des logs, Snort peut être interfacé avec un SGBD (Système de Gestion de Base de Données) comme par exemple MySQL.