Préparation

Ce TP est réalisé entièrement sous Netkit dans le lab fourni sur la page Celene du cours pour le TP attaque : labexploit.tar.gz.

L'ensemble des manipulations est à réaliser à l'intérieur du lab comme suit :

  • alice, la gentille victime, va déployer snort pour détecter les tentatives d'intrusion ;
  • oscar, l'utilisateur malveillant, générera de telles attaques.

Avant de lancer le lab, augmenter la mémoire d'alice en ajoutant à lab.conf la ligne suivante :

alice[mem]=512

1. Introduction à Snort

Un détecteur d'intrusion réseau (NIDS) écoute et analyse le trafic réseau en temps-réel, émet des alertes et journalise les paquets suspects détectés. Les systèmes de protection contre l'intrusion (IPS) permettent en outre de réagir aux attaques en allant jusqu'à interrompre le trafic. Nous allons utiliser Snort, un IDS qui fonctionne à partir d'une base de signatures (appelées règles) qui décrivent des conditions de déclenchement (un peu comme pour un pare-feu). Pour être efficace, un tel système doit être alimenté par une base de signatures d'attaques qui soit à jour et bien dimensionnée. Nous nous concentrons ici sur le principe de fonctionnement de l'outil et l'écriture de règles, en utilisant Snort en mode alerte.

Netkit déploie la version 2.7.0 de snort (la version actuelle est 2.9.6). La documentation est située dans le répertoire /usr/share/doc/snort-doc/. Récupérer le manuel snort_manual.pdf et la FAQ faq.pdf.

Lancer snort à l'aide de la commande suivante :

alice# snort -c /etc/snort/snort.conf -A console

Une fois le message --== Initialization Complete ==-- affiché, snort est actif, journalise dans /var/log/snort et affiche un résumé des alertes sur la console.

Depuis oscar effectuer un scan des ports d'alice à l'aide de nmap :

oscar# nmap alice

Qu'observe-t-on chez alice ?

Depuis oscar reproduire l'attaque contre le service telnetd :

oscar# ./paf 10.0.0.1 23 3

Qu'observe-t-on chez alice ?

Parcourir le manuel de Snort, lire en particulier le début de la section 1 Snort Overview et de la section 3 Writing Snort Rules (en français on pourra lire L'écriture des règles Snort mais attention c'est incomplet et partiellement obsolète) puis retrouver dans /etc/snort/gen-msg.map et /etc/snort/rules/ les messages générés ci-dessous et éventuellement les règles associées.

À l'aide de la commande telnet, en se connectant comme guest sur alice, générer un faux-positif : une alerte de snort qui n'a pas lieu d'être.

Parcourir le manuel de snort (man snort) et observer le résultat de snort --help.

2. Écriture de règles Snort

À l'aide de scapy et du TP précédent, écrire et tester des règles snort pour chacun des scénarios suivants. On écrira les règles dans un fichiers tpsecu.rules et on lancera snort avec la commande :

alice# snort -c tpsecu.rules -A console
  • détecter un ping avec un TTL de 255 ;
  • détecter quand les adresses IP source et destination d'un paquet sont les même ;
  • détecter une attaque DOS de type UDP chargen utilisant les ports echo et/ou chargen ;
  • détecter des messages TCP contenant à la fois les drapeaux SYN et FIN ;
  • détecter une connexion telnet en tant que root sur une machine du réseau local ;
  • détecter une connexion telnet en tant que root sur une machine du réseau local après une tentative de connexion ssh ;
  • détecter une connexion HTTPS au site accounts.google.com ;
  • détecter l'attaque CVE-2011-4862 contre le démon telnetd ;
  • détecter quand un utilisateur utilise le protocole Bittorrent ;
  • détecter quand un utilisateur initie une connexion Skype.

Une fois terminé, envoyer le contenu du fichier de règles par mail à Nicolas.Ollinger@univ-orleans.fr avec comme sujet [secu] snort et en écrivant les règles directement dans le corps du message, sans autre texte.

3. Le Grand Bazar : middleboxes everywhere

Ces TPs ont été l'occasion de découvrir différentes middleboxes qui ont leur place dans un réseau d'entreprise moderne : switch gérant les VLANs, pare-feux, VPNs, IDS. Il est temps de mettre en œuvre l'ensemble de ces composants au sein d'un même réseau. Voici un scénario qu'il s'agit de déployer à l'aide de Netkit.

Déployer un réseau d'entreprise constitué d'un routeur rt à deux pattes relié d'une part à un switch vde côté entreprise et à un réseau extérieur. Sur le switch interne sont connectés alice un poste du parc utilisateur et www un serveur web à mettre en DMZ. Sur le réseau extérieur sont connectés oscar qui servira d'utilisateur malveillant et bob un utilisateur itinérant de l'entreprise avec un accès VPN de type roadwarrior. Sur rt est déployé un pare-feu, un serveur VPN et un système de détection d'intrusion.

4. Pour aller plus loin

Il vous reste un peu de temps ? Vous voulez en savoir davantage sur les vulnérabilités des applications web ?

Dernière modification le 27 March 2015