NetSafe - JF MOREAU
Accueil CV Contact
Informatique & Sécurité
CV - Contact -
.: Sommaire :.
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.
SNORT 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.
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 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
Je vous accorde que lorsque le trafic est un peu soutenu, il n'est pas facile de déchiffrer en "direct live" les informations affichées. La solution est dans le chapitre suivant ... le "log de paquet".
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 :
  • # snort -de -l ../log/snort commande qui affiche les en-têtes TCP/IP
    Commentaire : Un petit tour dans le répertoire log/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épertoire log/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 :
  • dans un fichier particulier
  • directement dans le syslog
  • être rajoutées aux messages système
  • dans une base de données
Vous trouverez dans le fichier de configuration de SNORT (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 :
  1. 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]
    

  2. 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]
    

  3. Donnez l'adresse de votre répertoire de règles :

    var RULE_PATH ../rules
    

  4. 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
    
    

  5. 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
    

  6. Incluez les fichiers de configuration :

    include classification.config
    include reference.config
    

  7. 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
    

Maintenant vous pouvez exécutez SNORT. Pour cela, dans une fenêtre de commande DOS, déplacez vous dans le répertoire 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 ...
XHTML valable 1.0! Dernière mise à jour : 07/03/2016
Ce document peut être redistribué sous GNU Free Documentation License. © Jean-François MOREAU 2017