Post on 04-Apr-2015
F. OLLIVEVersion 1 - 27-03-2000
Présentation : Franck OLLIVE
F. OLLIVEVersion 1 - 27-03-2000
• Système de détection d'intrusion réseau (NIDS)
Introduction
• Auteur : Martin Roesh (21.12.1998)
• Version actuelle 1.5.2
• Logiciel libre de droit
• Taille des sources faibles
• Portable sur plusieurs types de plateformes
• Installation et configuration simples
• Détection en temps réel et puissante
F. OLLIVEVersion 1 - 27-03-2000
• Détection au niveau des protocoles :
Fonctionnalités
– IP _ TCP _ UDP _ ICMP
• Détection d'activités anormales – Stealth scan _ Découverte d'empreinte d'OS – Code ICMP "invalide" _ . . .
• Détection des petits fragments
• Détection de dénis de service
• Détection de débordement de buffer
• . . .
• Pré-processeur HTTP (attaque CGI)
F. OLLIVEVersion 1 - 27-03-2000
X86 SPARC M68K/PPC ALPHA AUTRES
Linux
OpenBSD
FreeBSD
NetBSD
Solaris
SunOS 4.1.x
HP-UX
AIX
Irix
Tru64 MacOS Xserver
Processeur
O.S.
Source : www.clark.net
Portabilité
F. OLLIVEVersion 1 - 27-03-2000
• Obtention du logiciel
Procédure d'installation (1)
– http://www.clark.net/~roesch/security.html
F. OLLIVEVersion 1 - 27-03-2000
• CompilationProcédure d'installation (2)
– tar xzvf snort-1.5.2.tar.gz
– cd snort-1.5.2
– ./configure
– Vérifier que la librairie libpcap est présente
• Installation– mkdir /tmp/monrep
– cp snort /tmp/monrep
– strip /tmp/monrep/snort
– cp *.lib /tmp/monrep/
• ftp:/ftp.ee.lbl.gov/libpcap.tar.Z– make
F. OLLIVEVersion 1 - 27-03-2000
• Configuration
Procédure d'installation (3)– Visualisation du répertoire
• "preprocessor http_decode: 80 443 8080"
• "var MY_NET 193.51.138.0/24"
• Lancement avec la base standard– ./snort <-option>
– Modification du fichier de configuration
F. OLLIVEVersion 1 - 27-03-2000
Écriture de règles (1)• Langage de description simple et facile à utiliser
• Une règle doit être impérativement écrite sur une seule ligne
• La combinaison de règles est autorisée
• Possibilité de faire référence à des fichiers de règles séparés
• Variables de substitutions acceptées
F. OLLIVEVersion 1 - 27-03-2000
• Exemple de règle
Écriture de règles (2)
– Action de la règle
Alert tcp any any -> 192.16.1.0/24 any (flags:SF; msg:"Possi. SYN FIN scan";)
• En-tête de règle
– Le protocole• tcp• udp
Alert tcp any any -> 192.168.1.0/24 any
• alert
• log• pass
• icmp
F. OLLIVEVersion 1 - 27-03-2000
Écriture de règles (3)• En-tête de règle (suite)
– L'adresse source et destination
– Le port source et destination
• any• Adresse IP suivi de l'espace d'adressage
• Opérateur de négation "!"
– 193.51.138.0/24
– !193.51.138.0/24
• Pas de mécanisme par nom de domaine
• any• Port spécifique • Gamme de port avec ":"
– 1:1024• Opérateur de négation "!"
– !6000:6010
alert tcp any any -> 192.168.1.0/24 any
alert tcp any any -> 192.168.1.0/24 any
F. OLLIVEVersion 1 - 27-03-2000
Écriture de règles (4)
– Indique l'orientation du trafic auquel la règle s'applique
• Opérateur de direction
• Unidirectionnel "->" – log udp any any -> 194.78.45.0/24 any
– Cœur du moteur de détection d'intrusion
• Options de règles
• Bidirectionnel "<>" – log 193.51.138.0/24 any <> 194.78.45.0/24 any
(flags:SF; msg:"Possible SYN FIN scan";)
– Combinaison de règles séparées par ";"– Séparation du mot clé et de l'argument par ":"
F. OLLIVEVersion 1 - 27-03-2000
Écriture de règles (5)
– msg, logto, minfrag, ttl, id, dsize, content, offset, depth, flags, seq, ack, itype, idecode, nocase, session
• Options de règles (suite)
• "minfrag" fixe un seuil de taille minimum pour un paquet fragmenté.
• "content" permet de rechercher un contenu spécifique dans le payload.
– (content:"|0909090909090909|"; msg: SMTP exploit.";)
• Règles avancées– Variables de substitutions
• "var MY_NET 192.168.1.0/24"
F. OLLIVEVersion 1 - 27-03-2000
– http://www.whitehats.com– http://www.snort.rapidnet.com– http://www.xanadu.rem.cmu.edu– http://www.incident.org/snortdb– http://www.spyjurenet.com/linuxrc.org/projects/snort
Écriture de règles (6)
– Inclusion de fichiers de règles externes.• "include:<chemin et nom de fichier>"
• Règles avancées (suite)
• Ou trouver des règles
F. OLLIVEVersion 1 - 27-03-2000
• Implantation– Réalisation des tests sous redhat 6.2 et slackware 7
Test (1)
– Méthode d'analyse : • Je prends le maximum de règles, je regarde ce qui remonte
dans les logs et j'affine
– Machines utilisées :
• Pentium III - 500 MHz - DD 8 Go - 128 Mo RAM
– Débit théorique des lignes de test : • 10 Mb/s et 100 Mb/s (34 Mb/s)
• Pentium II - 120 MHz - DD 6 Go - 64 Mo RAM
• 486 DX2 66 - DD 820 Mo - 40 Mo RAM
– 860 règles
F. OLLIVEVersion 1 - 27-03-2000
– Schéma d'implantation
Test (2)
Snort
Net Ranger
Real Secure
Snort
Snort
Internet
PRESIDENCECAMPUS
DMZ
F.H. 34 Mb/s
100 Mb/s34 Mb/s
Real Secure
CISCO
Routeur ARPC
F. OLLIVEVersion 1 - 27-03-2000
• Enregitrement des logs
– L'enregistrement dans un répertoire s'effectue par adresse IP de machines sources et/ou destinations
Résultat (1)
– Le fichier alert (-d)
– Un fichier spécifique par attaque (logto)
– Un répertoire spécifique (-l)
– Le répertoire /var/log/snort (-s)
F. OLLIVEVersion 1 - 27-03-2000
• Les logs (suite)– Un fichier par type d'"attaque"
Résultat (2)
F. OLLIVEVersion 1 - 27-03-2000
• Les logs (suite)– Visualisation des fichiers de log
Résultat (3)
alert TCP any any -> $MY_NET any (msg:"NMAP TCP ping !"; flags: A; ack: 0;)
Règle :
date heure@IP source
port source@IP dest
port dest
protocole
drapeaux n°d'ordre d’acquittementen hexadécimal
n°d'ordre d'identificationdu paquet
temps de vie restant
n°séquenceen hexadécimal
type de service
F. OLLIVEVersion 1 - 27-03-2000
• Simplicité d'écriture des règles
Avantages
– Peu onéreux
– ...
• Logiciel libre
– Source et signatures accessibles
• Adaptation à un contexte spécifique• Installation simple et rapide• Taille de l'exécutable faible (420 Ko)• Portable, ...
• Ne fait pas tout, mais le fait correctement• N'engendre pas de ralentissement du trafic
• Nombre de règles conséquent
F. OLLIVEVersion 1 - 27-03-2000
• Pas d'interface graphique
Inconvénients
• Nécessite une veille technologique pour la mise à jour des règles
• Lecture des logs (snortlog, snortstat, logsurfer ...)
• Écriture des règles gourmandes en temps• Vérification de la véracité des règles• Pas de possibilité de mettre plusieurs adresses
IP dans la variable globale "MY_NET".
• Ne détecte pas tout
• Pas de description des vulnérabilités
• Pas d’édition de rapport
• Majuscule et minuscule
F. OLLIVEVersion 1 - 27-03-2000
• Mailing list
Références
– majordomo@bofh.kyrnet.kg
• Sites miroirs– ftp://the.wiretapped.net/pub/security/network-
intrusion-detection/snort – http://gd.tuwien.ac.at/infosys/security/snort
– ftp://gd.tuwien.ac.at/infosys/security/snort
– http://snort.safenetworks.com
– http://snort.whitehats.com
– http://www.centus.com/snort/security.html
F. OLLIVEVersion 1 - 27-03-2000
• La version 1.6 vient de sortir et la version 2 est en prévision
Le futur de Snort
• Prise en compte de nouveaux protocoles
• Gestion de la fragmentation
• . . .
– ARP – IGRP – OSPF – . . .
– Ré-assemblage
– Recouvrement
F. OLLIVEVersion 1 - 27-03-2000
• Snort est bien adapté pour un petit réseau ou pour des actions ciblées.
Conclusion (1)
• La version 2 devrait permettre à Snort d'entrer dans la cour des grands IDS.
• Pas de pression marketing => Ce que fait Snort est bien fait. (pré-processeur).
• Pour les réseaux plus important, la version testée (1.5.2) peut être utilisée comme appoint d’une version commerciale.
F. OLLIVEVersion 1 - 27-03-2000
Conclusion (2)
Snort en détection ponctuelle Snort sur un serveur
de production
Internet
Réseau sécurisé
DMZReal
Secure
– Real secure : un en entrée de réseau et un en interne
– Snort : sur certains serveurs de production et en utilisation ponctuelle sur des problèmes spécifiques
Real Secure
CISCO
Routeur ARPC
F. OLLIVEVersion 1 - 27-03-2000
• Http://www.hsc.fr/ressources/présentations/ids-free par Stéphane Aubert
Bibliographie
• Http://www.clarl.net/~roesch/security.html
Contacts• franck.ollive@univ-poitiers.fr
• christophe.quintard@univ-poitiers.fr