Les IDS Philippe Sèvre le 10/01/2009
Introduction IDS : Intrusion Détection System (Système de détection d’Intrusion) Ce sont des logiciels permettant de mettre en évidences les intrusions dans les systèmes Il existe actuellement deux types d’IDS : Les HIDS (Host based IDS) Les NIDS (Network IDS)
Les HIDS Ils sont installés sur une machine et vont permettre de vérifier l’intégrité des fichiers systèmes (binaire, fichiers de configuration, etc) Il calculent des sommes md5 des fichiers sensibles et stockent le résultat dans un fichier crypté. Périodiquement, on lance un nouveau calcul d’intégrité ce qui permet de détecter les changement survenus dans les fichiers
HIDS – Suite On devrait installer un HIDS sur chaque serveur exposé (en particulier ceux qui se trouvent dans la DMZ) C'est le seul procédé sûr permettant de mettre en évidence une intrusion Quelques exemples d’HIDS : Tripwire (http://tripwire.org) : versions Linux et Windows Aide (http://www.cs.tut.fi/~rammer/aide.html) OSSEC
Installation de Tripwire Installer le paquetage tripwire Lancer /etc/tripwire/twinstall.sh Donner les passphrases Editer le fichier /etc/tripwire/twpol.txt pour l’adapter aux besoins Lancer tripwire –init pour générer la base Lancer tripwire –check pour vérifier Pour obtenir un rapport texte : twprint –m r –twrfile /var/lib/tripwire/report/nomdureport.twr
Les fichiers de configuration tripwire :Permet de créer la base, de vérifier l'intégrité du système, mettre à jour la base. twadmin : Permet de créer les clés (du site et local), de créer les fichiers tw.pol et tw.cfg à partir de leur version texte. Permet de signer des fichiers. twprint : Permet de générer le rapport ou la base en texte clair. twcfg.txt : Fichier de configuration de tripwire. Inchangé Il se transforme une fois crypté en tw.cfg. twpol.txt : Fichier contenant les règles de police à appliquer. Attention aux modifications.Se transforme en tw.pol une fois crypté twinstall.sh : script qui crée les clés si elles n'existent pas, et qui crypte les deux fichiers précédents. A réutiliser à chaque modification de l'un d'eux.
Tripwire - Suite En case de mise à jour des règles (pol) : modifier la version en claire de ce fichier twpol.txt, puis recréer le fichier crypté avec la commande : twadmin --create-polfile -S site.key /etc/tripwire/twpol.txt. Puis regénérer la base : supprimer l’ancienne, puis tripwire --init. Mise à jour de la base Pour mettre à jour votre base de données après des modifications et à partir du rapport d'intégrité, utiliser la commande : tripwire --update --twrfile /var/lib/tripwire/report/nomdurapport.twr . S'ouvre alors le rapport dans l'éditeur vi. Cocher les cases pour accepter la mise à jour ou ne pas l'accepter. Sauvegardez et quittez vi avec :x on vous demande alors la passphrase. Une fois cela fait, les fichiers acceptés ne seront plus dans les rapports.
Les NIDS Ils consistent à analyser les paquets entrant sur une interface et à détecter en temps réel des motifs répertoriés dans une base (+ de 1200 pour Snort) Utilisés en général pour détecter une variété d'attaques et de scans tels que des débordements de tampons, des scans de ports furtifs, des attaques CGI, des scans SMB, des tentatives d'identification d'OS, des DOS, attaques applicatives (SQL injection, …) et d’autres ….
Les NIDS – Suite Nécessitent beaucoup de puissance (Attention sur les liens à 100 Mb/s ou Gigabit) Doivent être placés sur le port d’entrée Un NIDS doit être branché sur un HUB après le routeur ou bien sur un port SPAN (Switch Port Analysis) pour pouvoir récupérer tous les paquets Génèrent un gros (ou très gros) volume de log Produisent également des faux positifs (fausses alertes) Importance des bases de signatures ...
Les NIDS – suite - 2 Détection active : en cas de détection d'alerte, on met en oeuvre des règles de protection (filtrage pare-feu iptables, TCP wrapper) : IPS (Intrusion Prevention System) Ces actions sont délicates à mettre en oeuvre .. Ou passive
Les NIDS - Quelques exemples Snort : très utilisé Prelude : architecture modulaire
SNORT Cf http://www.snort.org Snort utilise un fichier téléchargeable de règles mises à jour une permanence pour détecter les attaques (+ de 2700 à ce jour) Snort peut utiliser mysql ou postgresql pour stocker les logs ACID est un add-on permettant d’obtenir des statistiques depuis une interface Web
SNORT – Installation Installer le paquetage : Et éventuellement les paquetages mysql et Acid Récupérer sur le site de snort le dernier fichier de règles (.tar.gz) et le décompacter dans le répertoire /etc/snort/rules En cas d’utilisation de base de données lancer le script create_mysql dans /usr/share/doc/snortxxx Éditer le fichier snort.conf
Snort – Paramétrage Éditer snort pour adapter : var HOME_NET [172.16.0.0/16] Changer éventuellement la redirection des logs pour envoyer dans mysql : #output database:log,mysql,user=root password=test dbname=SNORT host=localhost Décommenter et modifier cette ligne par : output database:log,mysql,user=user_snort password=snort_pwd dbname=snort host=localhost
SNORT utilisation Snort peut fonctionner en renifleur simple : snort –v En NIDS, simplement taper service snort start Ou peut alors aller examiner les logs après avoir lancé un scan avec nmap ou nessus