Vous êtes sur la page 1sur 14

SNORT sous

Linux
LASFAR Salim
Snort est un outil IDS (Introduction Detection System)
open source crit par Martin Roesch.
La socit SourceFire dont a fait partie Roesch, a
continu le dveloppement de Snort puis a t rachete
par le gant isralien CheckPoint en 2005.

LP-R2SI:
Administration des
rseaux et scurit
sous Linux.

Encadr Par : Mr M.EL KIRAM

SNORT
Introduction:
Devant la complexit croissante des rseaux qui a devenu de plus en plus
gigantesque et tendue, on se trouvera devant le dfi de se contribuer la
recherche des solutions rpondant la question suivante :
Comment protger mon rseau contre les pirates et les malware ?
Dans le cadre de ce projet, nous nous intressons concevoir et
implmenter un systme de dtection d'Intrusion :
Les systmes de dtection dintrusion ou IDS (Intrusion Detection System)
sont indispensables pour la scurit du rseau, ils permettent (comme leur
nom lindique) de dtecter les tentatives dintrusions, et ceci en se basant
sur une base de signatures des diffrentes attaques connues, donc leur
fonctionnement est semblable celui des antivirus.
Principalement, nous distinguons trois grandes familles distinctes dIDS :
NIDS: forms par les dtecteurs dintrusion rseau, ces derniers observent
et analysent le trafic rseau, cherchent des indicateurs dattaques et
envoient des alertes.
HIDS: form par les dtecteurs dintrusion bass sur lhte, ces derniers
analysent et contrlent uniquement lactivit et les informations de lhte
sur lequel est install le HIDS et assurent ainsi seulement la scurit de
lhte en question.
IDS hybrides: qui utilisent les NIDS et HIDS pour avoir des alertes plus
pertinentes.
Dans ce qui suit, nous allons commencer par donner une prsentation
gnrale des IDS, ensuite nous allons prsenter SNORT qui est un logiciel
open source situ dans la premire famille des IDS, puis leur installation,
configuration et fonctionnalits sous la plateforme UBUNTU 8.10 qui est
une distribution Gnu/Linux rcente, sponsorise par la socit Canonical
Ltd dont le fondateur est le multimillionnaire Mark Shuttleworth.
Ubuntu Linux est rsolument oriente au grand public, base sur Debian
(une distribution particulirement robuste qui a ft ses quinze ans le 16
aot
2008). Enfin, nous allons terminer par donner une conclusion et des
perspectives pour ce travail.

NIDS (IDS rseau) :


Prsentation des NIDS :

Un NIDS se dcompose en trois grandes parties : La capture, les signatures


et les alertes.

Historique du SNORT :
Cest en 1998 que Martin Roesch dcide de publier un logiciel de sa
conception, dvelopp autour du milieu Open Source : un programme quil
appellera finalement Snort, ce qui correspond au verbe ainsi qu
lonomatope anglaise du reniflement (sniffing, qui est dailleurs un
principe informatique bien connu dans le domaine de ltude approfondie
des paquets rseau).
Au commencement, il trouvait son systme de dtection antiintrusion
plutt lger compar aux logiciels disponibles au march lpoque.
Aujourdhui, ce modeste personnage commence seulement tmoigner de
lenvergure des fonctionnalits proposes par Snort, et se met en parler
comme lune des technologies anti intrusions les plus rpandues dans le
monde. Depuis toutes ces annes, le projet Snort a beaucoup mri, et a
volu vers un concept plutt riche, ce qui la ainsi fait devenir un outil
standard pour la scurit systme et la dtection dintrusions. Des
innovations rcentes dans les rgles de comportement, ainsi que dans les
fonctions de perception, ont permis de rendre la dtection des processus
plus flexible et plus pointue, ce qui fait dsormais de Snort un champion
poids lourd de la scurit dans ce domaine. . .

Prsentation du Snort :
Snort est un systme de dtection d'intrusions rseau en ' Open Source ',
capable d'effectuer l'analyse du trafic en temps rel. On l'utilise en gnral

pour dtecter une varit d'attaques et de scans tels que des dbordements
de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB,
des tentatives d'identification d'OS grce lanalyse des signatures et des
rponses caractristiques (fingerprinting), et beaucoup dautres choses
encore.
Il peut fonctionner selon trois modes principaux : il peut tre utilis
comme un simple sniffer de paquets, comme un logger de trafic rseaux (ce
qui est fort utile pour dboguer un rseau par exemple puisque ce mode
denregistrement des activits rpertorie toutes les interactions entre les
machines dun mme rseau), ou comme un vritable systme complet de
prvention contre les attaques et les intrusions de tout genre.
C'est un trs puissant outil, il est connu comme un des meilleurs IDS sur le
march, mme quand il est compar des IDS commerciaux.
De nombreuses personnes dans la cette communaut trs active partagent
15 leurs rgles de scurit, ce qui est trs utile si on n'est pas un expert de
la scurit et si on veut des rgles jour.
- mode sniffer:

Snort va lire le trafic rseau et le


montrer l'cran.

- mode packet logger: Snort va enregistrer le trafic rseau


sur un fichier.
- mode IDS:

le trafic rseau correspondant


aux rgles de scurit sera enregistr.
(mode utilis dans notre tutorial)

- mode IPS:

aussi connu sous le nom de snortinline (IPS= IntrusionPrevention


System)

Architecture du Snort :

Positionnement de SNORT dans le rseau :

Les rgles de SNORT :


Les rgles de SNORT sont composes de deux parties distinctes : le header
et les options.
Le header permet de spcifier le type dalerte gnrer (alert, log et pass)
et dindiquer les champs de base ncessaires au filtrage : le protocole ainsi
que les adresses IP et ports sources et destination.
Les options, spcifies entre parenthses, permettent daffiner lanalyse, en
dcomposant la signature en diffrentes valeurs observer parmi certains
champs du header ou parmi les donnes.

Exemple de rgle :

Alert tcp any any -> 192.168.1.0/24 80 (flags :A ;\content : passwd; msg:
detection de `passwd ;)
Cette rgle permet de gnrer un message dalerte detection de passwd
lorsque le trafic destination dune machine du rseau local 192.168.1.0/24
vers le port 80, contient la chane passwd (spcifi par lutilisation du
mot-cl content ), et que le flag ACK du header TCP est activ (flags :
A).
Action de la rgle : 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
Oprateur de direction : >
unidirectionnel, ou <>
bidirectionnel
Syntaxe des options :
combinaison de rgles avec le sparateur ;
sparation des mots clefs et des arguments avec :
mots clefs : msg, logto, minfrag, ttl, id, dsize, content, offset, depth, flags,
seq, ack, itype, idecode, nocase, session
Installation:
Apt-get install snort snort-rules-default
Au cours de linstallation o choisi le rseau utiliser si snort est configur
pour utiliser plusieurs interfaces :

Le fichier de configuration :

/etc/snort/snort.conf
Il contient le chemin de la base de donnes des rgles quon va utiliss

/etc/snort/rules
Cest la base de donnes des alertes que snort utilise :

Configuration :

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

$ sudo vim /etc/snort/snort.conf


Dans le fichier snort.conf, voici les paramtres de base indiquer pour le
bon fonctionnement de Snort :
Dclaration des interfaces dcoute :

var HOME_NET any


var EXTERNAL_NET any
Ensuite, il est important dindiquer le rpertoire contenant les rgles :

var RULE_PATH /etc/snort/rules


Test de la configuration de Snort :
Cration dune rgle locale de test :
Editer le fichier salim.rules, ou bien le crer sil nexiste pas.

$ sudo vim /etc/snort/rules/salim.rules

Puis y ajouter ces lignes de test, qui servent envoyer des alertes
lorsque Snort sniffe et dtecte :
- des pings sur le rseau
- lutilisation du protocole TCP

Aprs il faut ajouter le chemin du salim.rules sur le fichier de


configuration de snort :

Lancement de Snort
Dmarrage de Snort:

root@salim:/etc/snort# /etc/init.d/snort start


root@salim:/etc/snort# Snort c snort.conf A console i eth0

Lancement du test de la rgle salim.rules :


Test ping :

Test TCP avec le protocole http :

Vrification :

Pour la vrification de la prsence des alertes gnres, normalement,


aprs le test dans le fichier de logs :

$ sudo vim /var/log/snort/alert

Optimisation :
Classification et Rfrence :
Pour un meilleur fonctionnement de Snort, il faut inclure deux fichiers
supplmentaires dans snort.conf. Ces derniers permettent la gestion des
priorits des alertes (niveaux, classification, etc), et lusage des rfrences
dans les rgles de Snort, daprs notre installation, ces fichiers se trouvent
dans /etc/snort.

include classification.config
include reference.config

Dclaration de serveurs :
Afin de prciser les diffrents serveurs prsents sur le rseau
que Snort surveille, il faut diter dans le fichiersnort.conf, les diffrentes
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]

Activation/Dsactivation d'une rgle :


Toujours dans le fichier de configuration de Snort, il est possible de
dactiver ou bien de dsactiver les rgles. Il suffit pour cela,
respectivement de dcommenter ou de commenter une rgle.

...
include $RULE_PATH/other-ids.rules
# include $RULE_PATH/web-attacks.rules
...