.: Sommaire :.
- Introduction
- Pré-requis
- Mode écoute
- Mode "Log de paquets"
- Mode détection d'instruction
- Voir aussi ...
Pour des raisons professionnelles, j'ai été amené a rechercher des utilitaires
qui permettent d'analyser le trafic circulant sur les réseaux.
Bien sur il en existe plusieurs, mais comme toujours, il est plus facile de tester ceux qui sont gratuits que les autres. En plus, quand vous constatez que les gratuits ont une bonne (voir excellente) réputation ... il n'y a pas a hésiter et tester l'heureux élu devient vite nécessaire.
Cette page a pour objectif (en toute modestie) de regrouper les informations qu'il m'a été donné de glaner et de traduire lors de la mise en place de ce superbe (mais complexe) outil qu'est S.N.O.R.T.
Bien sur il en existe plusieurs, mais comme toujours, il est plus facile de tester ceux qui sont gratuits que les autres. En plus, quand vous constatez que les gratuits ont une bonne (voir excellente) réputation ... il n'y a pas a hésiter et tester l'heureux élu devient vite nécessaire.
Cette page a pour objectif (en toute modestie) de regrouper les informations qu'il m'a été donné de glaner et de traduire lors de la mise en place de ce superbe (mais complexe) outil qu'est S.N.O.R.T.
S.N.O.R.T. est un outil multiple. Il peut être "simplement" un analyseur
réseau (comme Ethereal par exemple), mais, et surtout, il peut-être utilisé
comme outil de détection d'intrusion - NIDS (Network Intrusion Detection System
ou Système de Détection d'Intrusion Réseau en français).
Cette fonctionnalité est obtenue par la comparaison du trafic réseau analysé avec une base de données des attaques connues (l'équivalent des signatures pour les virus). Le cas échéant, il peut exécuter une action prédéfinie, qui peut aller de "simplement" de vous prévenir de l'intrusion, jusqu'à verrouiller le réseau pour éviter à l'intrus de faire plus de dommages.
L'avantage de SNORT par rapport aux autres logiciels c'est d'une part le fait qu'il soit libre et donc que le fonctionnement soit accessible au plus grand nombre et d'autre part sa modularité qui permet à tous de participer à l'augmentation du nombre de pré-processeurs, de règles et de modules de sortie disponibles. L'inconvénient est que pour trouver la ou les règles qui vous conviennent, il faut parfois y passer du temps. Cependant, lorsque l'on cherche à visualiser les trames qui circulent sur son réseau, il est souvent nécessaire d'y passer du temps, mais si l'effort est récompensé, cela vaut sûrement la peine.
Afin d'installer SNORT sous windows, vous devez obtenir les binaires suivants :
Une fois ces binaires rapatriés, l'étape suivante consiste à les installer sur la machine qui doit servir de sonde. Cette installation ne devrait pas poser de problèmes particuliers. Il est cependant conseillé d'installer d'abord WinPcap et ensuite SNORT.
Cette fonctionnalité est obtenue par la comparaison du trafic réseau analysé avec une base de données des attaques connues (l'équivalent des signatures pour les virus). Le cas échéant, il peut exécuter une action prédéfinie, qui peut aller de "simplement" de vous prévenir de l'intrusion, jusqu'à verrouiller le réseau pour éviter à l'intrus de faire plus de dommages.
L'avantage de SNORT par rapport aux autres logiciels c'est d'une part le fait qu'il soit libre et donc que le fonctionnement soit accessible au plus grand nombre et d'autre part sa modularité qui permet à tous de participer à l'augmentation du nombre de pré-processeurs, de règles et de modules de sortie disponibles. L'inconvénient est que pour trouver la ou les règles qui vous conviennent, il faut parfois y passer du temps. Cependant, lorsque l'on cherche à visualiser les trames qui circulent sur son réseau, il est souvent nécessaire d'y passer du temps, mais si l'effort est récompensé, cela vaut sûrement la peine.
Afin d'installer SNORT sous windows, vous devez obtenir les binaires suivants :
- WinPcap (actuellement, je vous conseille la version 4.0)
- Snort (bien sûr) vous trouverez la dernière version Windows ici.
Une fois ces binaires rapatriés, l'étape suivante consiste à les installer sur la machine qui doit servir de sonde. Cette installation ne devrait pas poser de problèmes particuliers. Il est cependant conseillé d'installer d'abord WinPcap et ensuite SNORT.
Maintenant vous devriez pouvoir tester le premier mode de fonctionnement
de SNORT. C'est à dire le mode écoute. Ce mode permet d'écouter le réseau
et de voir s'afficher à l'écran les paquets interceptés.
Pour cela, il faut que vous lanciez l'application
Voici quelques commandes simples :
Pour cela, il faut que vous lanciez l'application
snort.exe
.
Vous le trouverez dans le dossier bin
du répertoire
d'installation que vous avez choisi pour SNORT.
Le plus simple pour cela est de lancer une fenêtre DOS, de se déplacer dans
le répertoire bin
de SNORT et de lancer l'exécution de
l'application.Voici quelques commandes simples :
# snort -v
commande qui affiche les en-têtes TCP/IP
Commentaire : L'interface connectée à Internet est automatiquement détectée et scannée.
Rappel : Par contre, les résultats ne s'afficheront ... qu'en cas d'activité sur le réseau (hors Wi-Fi).# snort -vde
commande qui affiche les adresses IP et les en-têtes TCP/UDP/ICMP
Ce mode est similaire au précédent, à ceci près que les logs s'inscrivent
directement dans un fichier de log. Vous devez préciser le répertoire de
stockage des log sur la ligne de commande.
Cela donne par exemple :
Cela donne par exemple :
# snort -de -l ../log/snort
commande qui affiche les en-têtes TCP/IP
Commentaire : Un petit tour dans le répertoirelog/snort/
et vous verrez qu'il existe plusieurs répertoires. En fait il en existe un par adresse IP source.# snort -de -l ../log/snort -h 192.168.0.0/24
commande qui affiche les en-têtes TCP/IP d'une classe données
Commentaire : Le répertoirelog/snort/
ne contient plus que des répertoires correspondants aux adresses de la classe IP définie.
Attaquons maintenant la partie la plus intéressante de SNORT, l'utilisation
en mode détection d'intrusion (NIDS).
Ce mode nécessite, contrairement aux autres, l'utilisation d'un fichier de configuration. Ce fichier permet de définir les pré-processeurs, les règles et les modules de sortie utilisés par SNORT.
SNORT utilise en effet des règles pour détecter les intrusions. Le grand nombre de règles qui existent aujourd'hui (environ 1500) permettent de trouver celle(s) qui convient(nent) à votre cas, mais complexifie aussi le choix. Heureusement elles sont triées par catégories ce qui autorise tout de même une recherche sélective assez rapide.
Si vous ne trouvez pas la règle qui convient à l'activité particulière de votre réseau, il vous est possible de créer la vôtre.
Chaque règle se rajoute dans un fichier de configuration, vous pouvez donc soit utiliser celles qui existent déjà, soit en créer de nouvelles.
Les alertes elles peuvent être enregistrées soit :
Les fichiers
Commençons par mettre à jour le fichier
Ce mode nécessite, contrairement aux autres, l'utilisation d'un fichier de configuration. Ce fichier permet de définir les pré-processeurs, les règles et les modules de sortie utilisés par SNORT.
SNORT utilise en effet des règles pour détecter les intrusions. Le grand nombre de règles qui existent aujourd'hui (environ 1500) permettent de trouver celle(s) qui convient(nent) à votre cas, mais complexifie aussi le choix. Heureusement elles sont triées par catégories ce qui autorise tout de même une recherche sélective assez rapide.
Si vous ne trouvez pas la règle qui convient à l'activité particulière de votre réseau, il vous est possible de créer la vôtre.
Chaque règle se rajoute dans un fichier de configuration, vous pouvez donc soit utiliser celles qui existent déjà, soit en créer de nouvelles.
Les alertes elles peuvent être enregistrées soit :
- dans un fichier particulier
- directement dans le syslog
- être rajoutées aux messages système
- dans une base de données
snort.conf
)
dans le dossier etc
du répertoire d'installation que
vous avez choisi pour SNORT.Les fichiers
.rules
eux sont dans le répertoire rules
.
Le nom du fichier est, en général explicite. Par exemple,
ftp.rules
contient des règles spécifiques au FTP
et dos.rules
s'utilise pour les tentatives de DoS
(Denial Of Service ou Denie de Service en français).Commençons par mettre à jour le fichier
snort.conf
:- Définissez la classe d'adresse de votre réseau :
# Valeur pour un réseau en 192.168.0.x var HOME_NET 192.168.0.0/24 # Valeur par défaut #var HOME_NET any # Valeur pour deux réseaux utilisant chacun une classe d'adresse #var HOME_NET [10.0.0.0/24,192.168.0.0/24]
- Donnez l'adresse de votre/vos serveurs DNS :
Les valeurs données sont pour l'une celle du DNS de Wanadoo, pour l'autre celle de Free.
var DNS_SERVERS [193.252.19.3/32,212.27.32.5/32]
- Donnez l'adresse de votre répertoire de règles :
var RULE_PATH ../rules
- Choisissez les pré-processeurs que vous souhaitez utiliser :
# Module de détection du trafic preprocessor flow: stats_interval 0 hash 2 # Module de détection du trafic preprocessor http_inspect: global \ iis_unicode_map unicode.map 1252 preprocessor http_inspect_server: server default \ profile all ports { 80 8080 8180 } oversize_dir_length 500
- Choisissez le format d'alerte souhaité :
# alert_syslog: log d'alertes vers syslog # --------------------------------------- # Utilisez un ou plusieurs de ces arguments. # Sous Win32 : # - vous pouvez aussi spécifier un hôte et/ou un port particulier. # - l'hôte par défaut est '127.0.0.1', et le port est 514. # Sous Win32 les 3 formats suivants sont donc utilisables ... #output alert_syslog: LOG_AUTH LOG_ALERT #output alert_syslog: host=hostname, LOG_AUTH LOG_ALERT #output alert_syslog: host=hostname:port, LOG_AUTH LOG_ALERT # log_tcpdump: log des paquets au format binaire tcpdump # ------------------------------------------------------ # Le seul argument est le nom du fichier de sortie. # #output log_tcpdump: tcpdump.log # database: log dans une base de données # -------------------------------------- # Lisez le fichier README.database pour de plus amples informations au sujet # de la configuration et de l'utilisation de ce module. # #output database: log, mysql, user=snort password=test dbname=snort host=localhost #output database: alert, mysql, user=snort password=test dbname=snort host=localhost #output database: alert, postgresql, user=snort dbname=snort #output database: log, odbc, user=snort dbname=snort #output database: log, mssql, dbname=snort user=snort password=test #output database: log, oracle, dbname=snort user=snort password=test
- Incluez les fichiers de configuration :
include classification.config include reference.config
- Choisissez les règles que vous désirez utiliser :
Vous trouverez ci-après une configuration possible mais la votre reste à définir par vos soins en fonction du trafic supposé de votre réseau.
include $RULE_PATH/local.rules include $RULE_PATH/bad-traffic.rules include $RULE_PATH/exploit.rules include $RULE_PATH/scan.rules include $RULE_PATH/finger.rules include $RULE_PATH/ftp.rules include $RULE_PATH/telnet.rules include $RULE_PATH/rpc.rules include $RULE_PATH/rservices.rules include $RULE_PATH/dos.rules include $RULE_PATH/ddos.rules include $RULE_PATH/dns.rules include $RULE_PATH/tftp.rules include $RULE_PATH/web-cgi.rules #include $RULE_PATH/web-coldfusion.rules #include $RULE_PATH/web-iis.rules #include $RULE_PATH/web-frontpage.rules include $RULE_PATH/web-misc.rules include $RULE_PATH/web-client.rules include $RULE_PATH/web-php.rules #include $RULE_PATH/sql.rules #include $RULE_PATH/x11.rules include $RULE_PATH/icmp.rules include $RULE_PATH/netbios.rules include $RULE_PATH/misc.rules include $RULE_PATH/attack-responses.rules include $RULE_PATH/oracle.rules include $RULE_PATH/mysql.rules include $RULE_PATH/snmp.rules include $RULE_PATH/smtp.rules include $RULE_PATH/imap.rules include $RULE_PATH/pop2.rules include $RULE_PATH/pop3.rules include $RULE_PATH/nntp.rules include $RULE_PATH/other-ids.rules #include $RULE_PATH/web-attacks.rules #include $RULE_PATH/backdoor.rules #include $RULE_PATH/shellcode.rules #include $RULE_PATH/policy.rules #include $RULE_PATH/porn.rules #include $RULE_PATH/info.rules #include $RULE_PATH/icmp-info.rules include $RULE_PATH/virus.rules #include $RULE_PATH/chat.rules #include $RULE_PATH/multimedia.rules include $RULE_PATH/p2p.rules #include $RULE_PATH/experimental.rules
bin
du dossier
d'installation de SNORT et lancez la commande suivante :
# snort -A full -d -l ../log -c ../etc/snort.conf
Commentaire : Pensez à arrêter le processus lorsque vous n'en n'aurez plus besoin ...
Je me suis fortement inspiré de la page suivante :
www.trustonme.net. Faites y un tour, elle vous permettra peut-être
d'en apprendre un peu plus encore ...