Installation de Snort sous Windows 7
Transcription
Installation de Snort sous Windows 7
Installation de Snort sous Windows 7 Sommaire Introduction : ....................................................................................... 2 Les règles Snort : ................................................................................. 2 L’entête d’une règle Snort ............................................................... 2 Les options d’une règle Snort .......................................................... 3 Les alertes de Snort ............................................................................. 3 Exemple de règle Snort : .................................................................. 4 1. Téléchargement de l’installateur Snort et des règles ................. 5 2. Installation de Snort ....................................................................... 7 3. Configuration de Snort ................................................................ 12 a. Etape 1 : configuration des variables réseaux : ........................ 13 b. Etape 2 : configuration du décodeur : ....................................... 14 c. Etape 4: Configuration des bibliothèques chargées dynamiquement.................................................................................. 14 4. Test de Snort ................................................................................. 16 Liens utiles : ........................................................................................ 20 KHALID BOURICHE 1 Introduction : Snort est un outil de détection d’intrusion IDS (Intrusion Detection System) open source. Il effectue en temps réel des analyses de trafic et journalise (log) les paquets IP transitant sur son réseau. Snort est considéré comme l’un des meilleurs outils de détection d’intrusions sur le marché car il se base sur l’emploi des règles de sécurité qui sont maintenues à jour par une communauté très actives. Les modes de fonctionnement de Snort sont en nombre de trois : 1. sniffer de paquets 2. logger de paquets 3. système de détection/prévention d'intrusions Les règles Snort : 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. 1. L’entête d’une règle Snort L’entête d’une règle Snort est décomposé en différentes sections, son architecture est présentée comme suit : Action Protocole Adresse Port Direction Adresse Port Action: La partie action de la règle dit à Snort quoi faire quand il trouve un paquet qui correspond aux critères de la règle. Protocole: La partie protocole est utilisée pour appliquer la règle sur les paquets pour un protocole particulier seulement. Adresse: Les parties de l'adresse définissent des adresses de source et de destination. Port: En cas de protocole TCP ou UDP, les parties concernant les ports déterminent les ports source et destination d'un paquet sur lequel la règle est appliquée. En cas de protocoles de couche réseau comme IP et ICMP, les numéros de port sont sans signification. Direction: La partie de la direction de la règle détermine lesquels des adresses et des numéros de port sont utilisés comme source et lesquels sont utilisés comme destination. KHALID BOURICHE 2 2. Les options d’une règle Snort Les options d’une règle Snort se trouvent dans les parenthèses contenues dans la règle Snort. Toutes les options de règle de Snort sont séparées les unes des autres par un caractère point-virgule ";". Elles suivent généralement un format ayant un mot-clé dans la liste ( ACK, CLASSTYPE, CONTENT, OFFSET, DEPTH, CONTENT-LIST, DSIZE, FLAGS, FRAGBITS, ICMP_ID, ICMP_SEQ, ITYPE, ICODE, ID, IPOPTS, IP_PROTO, LOGTO, MSG, PRIORITY, REACT, REFERENCE, RESP, REV, RPC, SAMEIP, SEQ, FLOW, SESSION, SID, TAG, TOS, TTL, URICONTENT) suivie par argument. Les mots clés des options de règle sont séparés de leurs arguments avec un caractère deux points ":". Les alertes de Snort Quand un paquet répond aux critères d'une règle, alors Snort peut : soit journaliser l'entrée d'un fichier journal, soit envoyer une alerte. Snort a une variété de modes d'alerte, qui sont tous détaillés ci-dessous: Fast Mode (“-A fast”) – Ce mode rapporte Timestamp, Alerte message, les adresses IP source et destination, et les ports source et destination. Le paquet actuel n’est pas journalisé en utilisant ce mode. Full Mode (“-A full”) – Ce mode rapporte les mêmes informations que dans le mode rapide (Fast Mode), mais il comprend également l'en-tête du paquet. UNIX Socket Mode (“-A unsock”) – Ce mode permet à un administrateur système d’envoyer des alertes à d'autres programmes en utilisant un socket UNIX. Alerts to Syslog (“-s”) – Ce mode permet de stocker l'alerte dans le Syslog, qui est l'endroit où les événements au niveau du système sont enregistrées. SNMP Mode – Les alertes peuvent également être envoyées sous forme de messages SNMP, où les systèmes de gestion de réseau peuvent aider les administrateurs système à identifier et corriger le problème. KHALID BOURICHE 3 Exemple de règle Snort : log udp any any -> 10.11.12.0/24 1:1024 journalise le trafic udp provenant de tous les ports et à destination de port dans l'intervalle de 1 à 1024 du réseau 10.11.12.0/24 Important : il est très recommandé de maitriser les différents champs d’un PDU (Paquet) IP : L'entête IP KHALID BOURICHE 4 1. Téléchargement de l’installateur Snort et des règles Aller dans le site de Snort : www.snort.org et cliquer sur Get Started Etape 1 Trouvez le package approprié pour votre système d'exploitation : le téléchargez puis l’installez. Etape 2 Inscrivez-vous pour obtenir votre Oinkcode. Il est recommandé de vous inscrire afin de recevoir les dernières détections d’intrusion. Pour ceux qui ne peuvent s’inscrire, créer un compte sur Snort.org vous donnera toujours accès au registre utilisateur des paquets de règles. KHALID BOURICHE 5 Remarque : vous devez confimer votre compte à travers le liens se trouvant dans le message qui vous a été envoyé. Si jamais vous ne trouvez pas le message essayez de fouiller dans les spams Téléchargez les règles portant le même numéro de la vesion : snortrules-snapshot-2970.tar.gz KHALID BOURICHE 6 2. Installation de Snort Lancer l’installateur : Snort_2_9_7_0_Installer.exe et suivez votre installation Jusqu’à avoir la fenêtre suivante, cliquez ensuite sur Ok KHALID BOURICHE 7 On installe Winpcap après l’avoir téléchargé depuis : http://www.winpcap.org En explorant les répertoires d’installation de Snort, on remarque le répertoire rules est par défaut vide. KHALID BOURICHE 8 Nous allons remplir le répertoire C:\Snort\rules par le contenu des règles téléchargées dans le fichier : snortrules-snapshot-2970.tar.gz. Pour cela, décompressez ce fichier, puis copiez le contenu du répertoire rules dans C:\Snort\rules. De la même façon, nous devons mettre à jour le contenue du répertoire C:\Snort\preproc_rules par le contenue du répertoire preproc_rules du fichier décompressé. KHALID BOURICHE 9 Pour vérifier la version de Snort installé dans votre système. A l’invite de commande sur le répertoire \Snort\bin , tapez la commande : Snort -V Pour lister les interfaces disponibles, exécutez la commande : Snort -W KHALID BOURICHE 10 On remarque que le résultat de la commande : snort –W propose d’utiliser l’une des interface 1 ou 2 à surveiller. Car notre machine Windows 7 possède réellement deux interfaces : KHALID BOURICHE 11 3. Configuration de Snort Le répertoire \Snort\bin\etc contient les fichiers de configuration de Snort . Nous allons, dans un premier temps, s’intéresser au fichier : snort.conf . (éditons-le avec WordPad) Le fichier \Snort\bin\etc\snort.conf propose un exemple de configuration sur plusieurs étapes, nous allons paramétrer quelques paramètres pour surveiller notre LAN. KHALID BOURICHE 12 a. Etape 1 : configuration des variables réseaux : Les variables IP doivent être spécifier dans ‘ipvar’ au lieu de ‘var’, l’utilisation de ‘var’ est encore permis pour assurer la compatibilité descendante. Nous allons donc remplacer ‘ipvar’ par ‘var’, puis nous allons fournir les listes des adresses réseau à protéger ou un block CIDR: # Configurez les adresses de réseau que vous protégez var HOME_NET 10.11.12.0/24 # Configurez les adresses réseau externe. Laissez «any» dans les situations génériques. Dans notre cas on va remplacer « anay » par tous les réseaux autre que le réseau à protéger : « !$HOME_NET ». « ! » exprime la négation. var EXTERNAL_NET !$HOME_NET (Cette partie est sans changement) … # Dans l’environnement Windows, il est conseillé de mettre un chemin absolu vers vos fichiers de règles : var RULE_PATH c:\Snort\rules # var SO_RULE_PATH ../so_rules var PREPROC_RULE_PATH c:\Snort\preproc_rules # If you are using reputation preprocessor set these # Currently there is a bug with relative paths, they are relative to where snort is # not relative to snort.conf like the above variables # This is completely inconsistent with how other vars work, BUG 89986 # Set the absolute path appropriately #Si vous prévoyez de ne pas créer des listes blanches et des listes #noires, vous devez les désactiver dans votre fichier snort.conf #sinon vous aurez un message similaire au suivant : # [Snort-users] Warning: Can't find any whitelist/blacklist #entries. Reputation Preprocessor disabled #ceci est du au BUG 89986 # pour palier à ce problème, utilisez le chemin absolu comme suit : var WHITE_LIST_PATH c:\Snort\rules var BLACK_LIST_PATH c:\Snort\rules KHALID BOURICHE 13 b. Etape 2 : configuration du décodeur : Le décodage est l'un des premiers processus à travers lequel un paquet passe dans Snort. Le décodeur a la tâche de déterminer quels sont les protocoles sous-jacents qui sont utilisés dans le paquet (par exemple : Ethernet, IP, TCP, etc.) et enregistre ces données ainsi que l'emplacement des données utiles (payload) dans le paquet et la taille de ce payload pour une utilisation par les moteurs de préprocesseur et de détection. Dans cette étape nous allons se contenter de paramétrer le répertoire de journalisation : # Configure default log directory for snort to log to. For more information see snort -h command line options (-l) # config logdir: c:\Snort\Log c. Etape 4: Configuration dynamiquement des bibliothèques chargées Il s’agit dans cette étape de préciser le chemin absolu des bibliothèques : # path to dynamic preprocessor libraries dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor # path to base preprocessor engine dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll # path to dynamic rules libraries #dynamicdetection directory /usr/local/lib/snort_dynamicrules KHALID BOURICHE 14 Le fichier complet (snort.conf) de configuration est à télécharger sur le lien suivant : Snort.conf Créons maintenant les fichiers white.list et black.list dans le répertoire référencé dans le fichier de configuration : Soit donc : c:\Snort\rules\white.list et c:\Snort\rules\black.list Dans notre cas nous allons créer ces deux fichiers mais nous n’allons rien y mettre. c:\Snort\rules\white.list Faites la même opération pour le fichier : c:\Snort\rules\black.list KHALID BOURICHE 15 4. Test de Snort Exécutez ensuite la commande ci-après pour tester votre configuration : snort –i 2 –c c:\Snort\etc\snort.conf –A console -T Signification des options de la commande Snort : –i 2: il s’agit de la deuxième interface à surveiller (Dans notre cas, il s’agit de eth1) –c c:\Snort\etc\snort.conf : indique à Snort le chemin du fichier de configuration –A console : Indique à Snort d’ Envoyer des alertes "Fast-style" vers la console (écran). -T : Permet de tester votre nouvelle configuration avant de délivrer un rechargement, car une configuration incorrecte entraînera toujours une erreur fatale. KHALID BOURICHE 16 Créons maintenant des règles Snort qui permettent de surveiller notre réseau 10.11.12.0/24 contre les connexions employant la commande Ping (protocole ICMP) et celles employant le Web (protocole http) de port 80/TCP. Pour cela, nous allons utiliser la topologie simple suivante : L’adresse IPv4 de l’interface de Windows 7 est : 10.11.12.2/24 L’adresse IPv4 de l’interface de Windows Server 2008 est : 10.11.12.1/24 Pour cela, écrivons c:\Snort\rules\local : les deux lignes suivantes dans le fichier : La commande: snort –i 2 –c c:\Snort\etc\snort.conf –A console permet de capturer le trafic suivant : KHALID BOURICHE 17 KHALID BOURICHE 18 La commande: snort –c c:\Snort\etc\snort.conf –A console permet de journaliser le trafic suivant : KHALID BOURICHE 19 Liens utiles : http://www.inetdoc.net/pdf/Session2k8.analyse.rapport.pdf http://www.gatoux.com/SECTION2/p5.php KHALID BOURICHE 20