Structure interne d un IDS vcars 2003 Laurent Oudot oudot@rstack.org http://www.rstack.org/oudot vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 1
Bibliographie Intrusion Detection Systems, article de Rebecca Bace & Peter Mell Network Intrusion Detection, an Analyst s Handbook, livre de Stephen Northcutt & Judy Novak Implementing Intrusion Detection Systems, livre de Tim Crothers Revue MISC numéro 3, Dossier spécial : «IDS, La détection d intrusions», juillet 2002 Incident Response, livre de Kenneth R.van Wyk & Richard Forno Architecture expérimentale pour la détection d intrusions dans un système informatique, étude de Philippe Biondi [http://www.cartel-info.fr/pbiondi/ids.pdf] Honeypots, Tracking Hackers, livre de Lance Spitzner Honeyd - Virtual Honeypots, présentation de Niels Provos [http://www.rstack.org/oudot/rmll/] vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 2
Plan de la présentation Introduction et rappels Détection d intrusions au niveau des réseaux Détection d intrusions au niveau système (et applicatif) Exploitation des systèmes de surveillance Particularité : les pots à miel Le futur : vers la prévention d intrusions? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 3
Introduction et rappels vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 4
La notion d intrusions Qu entend-on ici par «intrusions»? «Utilisation d un système informatique à des fins autres que celles prévues, généralement dues à l acquisition de privilèges de façon illégitime» (*) Tentative [attaque] ou réussite [intrusion] ayant pour objectif de compromettre sur un système ou sur un réseau : la confidentialité, l intégrité, la disponibilité et l imputabilité. (*) P.Biondi («Architecture expérimentale pour la détection d intrusions dans un système informatique») vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 5
Définition : la détection d intrusions Qu entend-on ici par «détection d intrusions»? La détection d intrusions est l activité correspondant à : 1) la surveillance des événements au niveau des systèmes, des applications et des réseaux collection d informations sur l utilisation d un système d information 2) l analyse de ces événements à la recherche de «signes» d intrusions Les Systèmes de Détection d Intrusion (Intrusion Detection Systems : IDS) sont des produits ou du matériel qui automatisent les processus de surveillance et d analyse. vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 6
Champ d action des IDS Extranet DMZ Accès sans-fil Internet avant le pare-feu Intranet (stagiaires, sous-traitants ) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 7
CIDF CIDF: Common Intrusion Detection Framework Enregistrement D-BOX (stockage) Surveillé A-BOX (analyse) E-BOX (générateur d évènements) Interactions Contre-Mesure C-BOX (response) Environnement extérieur vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 8
Point sur les types d analyse Signatures et comportements vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 9
Types d analyses Deux approches principales dites «par signatures» ou «comportementale» La technique «par signatures» permet de rechercher des formes d évènements caractérisant une attaque Ex: Milliers de NOP + data et «/bin/sh» vers un serveur HTTP La technique «comportementale» permet de rechercher des évènements liés à des activités anormales Ex: la secrétaire se met à utiliser des outils de gestion réseau vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 10
Analyse par signatures Avantages «Censés» être très puissants pour reconnaître une attaque sans générer trop de fausses alarmes (faux positifs) Capables de diagnostiquer rapidement l utilisation d une technique d attaque ou d un outil d attaque spécifiques Possibilité d aider les administrateurs systèmes (moyennant leur niveau d expertise) à traquer un problème de sécurité en initiant des procédures de gestions d incidents... Inconvénients Impossibilité de détecter des attaques non connues (!) => update Problèmes d évasions (=> systèmes avec états, etc) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 11
Analyse comportementale Recherche d anomalies comportementales sur le réseau ou les machines Construction de profils définissant le comportement normal d utilisateurs, de machines, de réseaux (apprentissage) Seuils de détection statiques ou heuristiques (ex: nombre de tentatives de connexions erronées, %CPU utilisé par un processus ) Mesures statistiques, règles, réseaux de neurones, algorithmes génétiques, modèles de systèmes immunitaires... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 12
Analyse comportementale Avantages : La détection d anomalies permet de détecter un comportement non usuel et ainsi offrent la possibilité de trouver des symptômes d une attaque sans en connaître les détails Peut permettre de produire de l information qui peut être utilisée pour définir des signatures utilisables pour les systèmes à signatures Inconvénients : Produit une quantité énorme de fausses alertes à cause du caractère imprévisible des utilisateurs et des réseaux (ruptures ) Demande une intense phase d apprentissage pour caractériser la normalité des comportements vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 13
Systèmes de détection d intrusions Détection d intrusions au niveau des réseaux NIDS : Network based Intrusion Detection System Détection d intrusions au niveau système (et applicatif) HIDS : Host based Intrusion Detection System Exploitation des systèmes de surveillance Particularité : les pots de miel Honeypots Le futur : vers la prévention d intrusions IPS : Intrusion Prevention Systems vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 14
Détection d intrusion au niveau réseau NIDS vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 15
Fonctionnement Définition : système de détection d intrusions basé sur l analyse temps réel (sauf shadow) de flux au niveau réseau Principe : constitué d une fonctionnalité type sniffer capturant les trames et d une autre jouant le rôle d analyseur «Comparaison» : Anti-virus analysant un système de fichiers Réseau paquets Interception et tampon pour les paquets paquets Moteur d analyse Alertes Base de signatures Soussystèmes... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 16
Remarques Protection apportée : capable de surveiller le brin réseau sur lequel il se trouve connecté (donc protéger ainsi plusieurs machines) Déploiement classique : installation courante de plusieurs NIDS sur des segments réseaux disjoints afin de protéger chacun de ces derniers remontée des alertes sur un point central jouant le rôle de console d administration des alertes Robustesse : ces sondes de détection (sensors) sont facilement sécurisées voire même invisibles Boîtiers TAP (Test Access Port) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 17
De l analyse classique assez simple... vers une analyse avec état et interprétation des protocoles vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 18
Analyse sans état (1) Le pattern matching «simple» Concept : Appliquer un masque sur chaque paquet Exemple : signature = «winnt» dans trame HTTP ngrep -q -x "winnt» T 192.168.2.182:4239 -> 192.168.1.201:80 [AP] 47 45 54 20 2f 63 2f 77 69 6e 6e 74 2f 73 79 73 GET /c/winnt/sys 74 65 6d 33 32 2f 63 6d 64 2e 65 78 65 3f 2f 63 tem32/cmd.exe?/c 2b 64 69 72 20 48 54 54 50 2f 31 2e 30 0d 0a 48 +dir HTTP/1.0..H 6f 73 74 3a 20 77 77 77 0d 0a 43 6f 6e 6e 6e 65 ost: www..connne 63 74 69 6f 6e 3a 20 63 6c 6f 73 65 0d 0a 0d 0a ction: close... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 19
Analyse sans état (2) Problème : évasions simples (ex: fragmentation, TCP_MSS ) Paquet 1: "GET /c/win" Paquet 2: "nt/system32/cmd.exe?/c+dir" nt/system32/cmd.exe?/c+dir Attaquant GET /c/win NIDS signatures winnt Pile IP Cible GET /c/winnt/system32/cmd.exe?/c+dir Serveur HTTP Ré-assemblage vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 20
Analyse avec états Pattern matching évolué Concept : Appliquer un masque sur des flux de paquets associés Sessions TCP Fragments IP Implique de se comporter comme les machines «cibles» Interpréter de la même manière ce qui est reçu Problèmes : gourmand en ressources (suivi des sessions!) évasions possibles Exemple : Bombardement Nécessite des algorithmes puissants Exemple : Translation de «cmd.exe» dans flux HTTP GET /c/winnt/system32/cmd.ex%65?/c+dir Nécessite l interprétation des flux vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 21
Analyse avec états et décodage Pattern matching évolué associé à des systèmes de décodage de protocoles HTTP, RPC, TELNET, FTP Problèmes Limite : attaques inconnues (non recensées) Nécessite des analyses à base d IA Limite : l interprétation finale de ce qui est envoyé complexe Exemple d évasion (recherche de «vcars» dans session telnet) $ stty erase X $./voxcarixs $ stty erase ^? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 22
Cas d exemple : prelude-nids vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 23
Réassemblage IP & TCP Exemple : prelude-nids Plugins de détection [détection d'attaque]. Utilisent les données transmises par le cœur de prelude-nids, et génèrent éventuellement une alerte. Indiquent au cœur de prelude-nids les paquets intéressant (exemple : activation que lors de paquet TCP). Ex: ARP Spoofing, Shellcode polymorphic, port scan Plugins de protocole [protocoles de haut niveau] Utilisés au dessus de udp/tcp, ils essaient de décoder un flux, afin d'en extraire des informations importantes. Normalisation et décodage pour contrer des problèmes de pattern matching (UTF-8 Unicode, FTP/Telnet, RCP) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 24
Exemple : prelude-nids Analyse basée sur des algorithmes à base d arbres binaires : une seule alerte par paquet Objectif : minimiser l ensemble des tests à effectuer afin de déterminer quelles règles correspondent au paquet Inutile de vérifier si un paquet UDP vers port 514 contient «GET /scripts/../../winnt...» sensé être dans TCP vers 80 Structure choisie : arborescente on associe chaque test à un nœud de l arbre une réponse positive à ce test dirige vers le fils une réponse négative dirige vers le frère [voir code signature_engine_process_packet( racine, paquet) ] vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 25
Exemple : prelude-nids L arbre représente le OU de toutes les signatures Chaque nœud contient notamment : une variable symbolisant le test placé sur ce nœud un pointeur sur la fonction de test du paquet une liste de fonctions de callback (règles venant d être réussies) un fils et un frère Difficultés rencontrées : création de l arbre (règles à ordonner, pertes de mémoire ) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 26
Exemple : prelude-nids Moteur d analyse des paquets (simplifié) Si node->match_packet(packet, node->var.set) < 0 Alors node=node->brother Sinon node=node->child Si node est une feuille && règle match_packet ok Alors appel de fonction permettant d émettre alerte Exemple (idée générale de fonctionnement) : UDP? oui non TCP? oui Sport=53? non Dport=2049? oui SYN? oui non vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 27
Factorisation et moteurs de signatures Exemple de problème (vieille version de snort [2001]) Système basé sur les en-têtes (IP sources, Ports sources, IP destinations, Ports destinations) Les règles de signature avec la même en-tête sont regroupées On teste chaque paquet à chaque en-tête, et en cas de correspondance, on y teste toutes les règles associées de manière séquentielle. => Duplication, tests en double ou inutiles... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 28
Exemple : prelude-nids Décapsulation et analyse dans prelude-nids «Découpage» de la trame et «Stockage» des éléments nécessaires pour sousroutines (code : SliceAndStoreEtherPkt()...) Validations et gestion des streams Détection ANALYSE_SIMPLIFIEE(TRAME){ Si Ethernet Alors Validation Ethernet Si IP Alors Validation IP Si TCP Alors Validation TCP Validation Plugin DATA Signatures au niveau TCP Si UDP Alors Signatures au niveau IP Si ARP Alors RELEASE de la TRAME } vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 29
Analyse heuristique Problème des systèmes classiques : les systèmes de signatures ne peuvent trouver ce qui n est pas déjà référencé Solution possible : analyse heuristique Outils :??? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 30
Avantages des NIDS Avec seulement quelques NIDS bien positionnés on peut surveiller de très grands réseaux Chaque brin réseau à surveiller doit posséder son NIDS Déployer un NIDS a un faible impact sur un réseau existant en effet un NIDS est un équipement passif écoutant le trafic sur son câble sans interférer avec le réseau Les machines avec un NIDS sont facilement très blindées Invisibles aux attaquants (pas besoin d avoir une adresse sur le réseau, pas besoin de parler sur le réseau [sauf si CM]) Une seule tâche à effectuer : regarder le trafic et le traiter vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 31
Inconvénients des NIDS Problèmes de charges réseau / CPU nécessaire (trop de paquets ) Une attaque peut donc ne pas être détectée! Le mythe du zéro paquet de perdu Les solutions basées sur le hardware sont plus rapides (mais plus chères) Les réseaux switchés modernes gênent le fonctionnement : Le réseau est subdivisé en plusieurs segments (un par machine) Liens directs pour du trafic inter-hosts d un même switch Pas de support de port-monitoring sur certains switches Même avec le support du port-monitoring, le switch peut difficilement envoyer tout le trafic sur un seul port (+ perte d information : tag 802.1q...) On risque alors de ne devoir surveiller qu un seul brin vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 32
Inconvénients des NIDS Impossible d analyser le trafic chiffré (VPN, IPSEC, HTTPS, SSH ) Impossible ou difficile de dire qu une attaque a effectivement marché l initiation de l attaque est détectée, investigation manuelle sur le système nécessaire (!) Limites : problèmes liés aux paquets «mal-formés» et aux signatures instabilités techniques d évasions faux-positifs Exemple : recherche de «../..» => GET /intranet/2003/../../pics/vcars2003.png base de signatures toujours incomplètes et à mettre à jour vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 33
NIDS Quelques outils «opensource» intéressants NIDS Snort Bro Prelude-nids http://www.snort.org http://www.icir.org/vern/bro-info.html http://www.prelude-ids.org Shadow http://www.nswc.navy.mil/issec/cid/ (??) Autres Arpwatch Ettercap Tester la fiabilité des NIDS snot isic idswakeup fragroute whisker http://www-nrg.ee.lbl.gov/ http://ettercap.sourceforge.net vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 34
Détection d intrusion au niveau des systèmes Systèmes, applications, logs, audits trail... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 35
HIDS : Host-based IDS Définition : système de détection d intrusions basé sur l analyse d informations provenant de systèmes Principe : utilisation de «l audit trail» (kernel) et des logs systèmes Protection : capable surveiller une machine (protection locale) ou plusieurs en cas de déport des alertes vers un point central Déploiement : installation courante de plusieurs HIDS sur des machines sensibles afin de protéger chacune d entre elles ; remontée des alertes sur un point central jouant le rôle de console d administration des alertes Robustesse : ces sondes de détection (sensors) sont plus difficiles à protéger à cause des impacts de compromissions locales vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 36
Avantages des HIDS La capacité des HIDS à traiter des évènements locaux permet de voir certaines attaques qu un NIDS ne peut pas voir (noms des users et des fichiers, processus ) Les HIDS peuvent souvent fonctionner en environnement avec un trafic réseau chiffré (ex: attaques dans flux ssh) Les HIDS ne sont pas affectés par l utilisation de réseaux switchés Les HIDS utilisant les «audit trails» peuvent aider à détecter des chevaux de Troie ou d autres problèmes d intégrité (inconsistances pendant l exécution d un processus) [utilisation complexe] vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 37
Inconvénients des HIDS Difficultés d administration : informations à configurer et à manager pour chaque machine surveillée Risques énormes en cas de compromission locale (logs ) Difficultés pour voir des problèmes réseaux ayant trait à plusieurs machines (scans larges ) [travail local seulement] Certaines attaques type dénis de service peuvent gêner le fonctionnement d un HIDS (ils ne sont pas invisibles) L utilisation de «l audit trail» implique un traitement colossal de données (!) [problèmes de stockage ] [CPU du surveillant = CPU du surveillé] => performances vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 38
HIDS spécial : Application-based IDS Sous-classe des HIDS analysant les traces issues non pas du système mais des applications (ex: /var/log/apache/access.log) Avantages : Surveille l interaction utilisateur/application/données Environnement chiffré possible (points d entrées applicatifs) Inconvénients : Encore plus vulnérable qu un HIDS (logs moins protégés que ceux issus du système directement) Difficultés de voir un cheval de Troie ou une attaque cachant des choses à l application (mode utilisateur) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 39
Exemple de traçabilité bas-niveau Objectif : savoir qui a lancé quoi et quand? Exemple brut «simplifié» sous Linux : Modifications du noyau, exemple : int do_execve( ) dans fs/exec.c printk(kern_info "Suivi execution: [%s] execute avec le pid [%d] (args=%d, evars=%d) uid=%d euid=%d\n", filename, current->pid, bprm.argc, bprm.envc, current->uid, current->euid); Traces obtenues au niveau syslog Nov 22 00:56:54 localhost kernel: Suivi execution: [/usr/lib/gcc-lib/i386- linux/2.95.4/cpp0] execute avec le pid [12526] (args=40, evars=29) uid=0 euid=0 Nov 22 00:56:54 localhost kernel: Suivi execution: [/usr/lib/gcc-lib/i386- linux/2.95.4/cc1] execute avec le pid [12527] (args=11, evars=29) uid=0 euid=0 vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 40
Exemple d analyse de logs May 8 03:22:45 rstack.org sshd[31178]: Did not receive identification string from 62.16.70.9. May 8 08:34:50 rstack.org sshd[31463]: Bad protocol version identification '?ô?ý^f' from 14.251.50.xxx May 8 09:06:40 rstack.org sshd[31475]: Bad protocol version identification '^V^C^A' from 19.213.32.xxx May 8 09:06:40 rstack.org sshd[31476]: Bad protocol version identification '^V^C' from 19.213.32.xxx May 8 09:06:40 rstack.org sshd[31477]: Bad protocol version identification '\200.^A' from 19.213.32.xxx May 8 09:06:41 rstack.org sshd[31478]: Bad protocol version identification 'GET / HTTP/1.0' from 19.213.32.xxx May 8 09:08:19 rstack.org sshd[31479]: Connection closed by 19.213.32.xxx May 8 09:08:20 rstack.org sshd[31480]: Connection closed by 19.213.32.xxx May 8 09:08:21 rstack.org sshd[31481]: Connection closed by 19.213.32.xxx May 8 09:08:22 rstack.org sshd[31482]: Connection closed by 19.213.32.xxx May 8 09:09:51 rstack.org sshd[31483]: Did not receive identification string from 19.213.32.xxx. May 8 09:13:31 rstack.org sshd[31487]: Bad protocol version identification '`' from 19.213.32.xxx May 8 09:13:31 rstack.org sshd[31488]: Bad protocol version identification '`/bin/id` #' from 19.213.32.xxx May 8 09:13:31 rstack.org sshd[31489]: Bad protocol version identification '`/usr/bin/id` #' from 19.213.32.xxx May 8 09:14:17 rstack.org sshd[31490]: Connection closed by 19.213.32.xxx May 8 09:14:18 rstack.org sshd[31491]: Connection closed by 19.213.32.xxx May 8 09:29:43 rstack.org sshd[31495]: Did not receive identification string from 19.213.32.xxx. May 8 09:29:43 rstack.org sshd[31496]: Did not receive identification string from 19.213.32.xxx. May 8 09:30:04 rstack.org sshd[31497]: Did not receive identification string from 19.213.32.xxx. May 8 20:55:43 rstack.org sshd[31776]: Could not reverse map address 20.39.220.xxx. May 8 20:55:49 rstack.org sshd[31776]: Failed password for ROOT from 20.39.220.xxx port 2348 May 8 20:56:16 rstack.org last message repeated 2 times May 8 20:56:17 rstack.org sshd[31776]: Connection closed by 20.39.220.xxx vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 41
Exemple : fonctionnement de prelude-lml lml vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 42
Quelques types d outils Usuellement on utilise des outils du type : analyse de traces systèmes et applicatives swatch, logchecker, prelude-lml protection/surveillance au niveau noyau un même exécutable plante trop de fois contrôle d intégrité Tripwire, AIDE, md5sum analyse de la sécurité locale vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 43
Exploitation des systèmes de surveillance Métier difficile et souvent ignoré vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 44
Exploitation des IDS Vision centralisée des problèmes de sécurité Visualisation simplifiée Outils d analyse agrégation corrélation statistiques analyses spécifiques Moyens d alerter Rapports synthétiques Veille technologique, documentation... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 45
Centralisation : capteurs / managers vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 46
Exemple de centralisation avec prelude-ids vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 47
Surveillance des alertes vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 48
Type d attaques recensées vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 49
Provenance des attaques vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 50
Outils de statistiques «Internet saturé» «Apparition du ver» «Combat et reprise» «Normal» vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 51
Normalisations des alertes Problèmes : gérer les multiples formats utilisés NT, Cisco, Unices, IIS, Apache... Objectifs : permettre l interopérabilité entre différents outils de sécurité Solution de l IETF : IDMEF Intrusion Detection Message Exchange Format basé sur XML fournit un descriptif de messages échangés par des IDS <Alert>...</Alert> <Hearbeat>... </Hearbeat> <CorrelationAlert>...</CorrelationAlert> vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 52
Outils complémentaires à l exploitation Analyse de vulnérabilités Exemple : Nessus et Prelude-IDS Nessus : «Machine vcars sous OpenBSD : telle vulnérabilité Apache» Prelude-nids : «Attaque détectée vers vcars : type agression pour IIS» Corrélation des deux informations Conclusion : ne pas traiter en priorité Extension : base de connaissance du système d information (pas que les vulnérabilités) à comparer avec les alertes remontées vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 53
Honeypots Un autre moyen de surveillance vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 54
Honeypots Pots à miels : «Honeypots» «A honeypot is an information system resource whose value lies in unauthorized or illicit use of that resource», Lance Spitzner => Énorme intérêt pour les activités type détection d intrusion!? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 55
Pourquoi? Toute interaction avec le honeypot traduit une activité malveillante ou anormale Réduction colossale du nombre de faux positifs!! Perte de temps pour le pirate bien occupé Attaque d un système qui n est pas en production Découverte de nouvelles vulnérabilités Utile par rapport aux problèmes de signatures Protection du reste du système fait gagner du temps aux défenseurs pour la réponse Champ de recherche, aspect ludique Nouveau, champ de recherche énorme, «blagues» aux pirates vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 56
Types de Honeypots Peu d interaction : quelques services simulés sans accès à un vrai système Beaucoup d interaction : représente un (vrai) système d exploitation complet Physique : le honeypot est le système réel tournant sur la machine qui l héberge Facile à faire, mais beaucoup de surveillance! Virtuel : aucun système physique ne correspond au Honeypot (pas de machine sacrifiée) Plus difficile à créer pour avoir l air réel, mais moins de risques vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 57
Problèmes Légalité : Peut poser un problème dans certains pays (UK) Que se passe-t-il si le pirate rentre comme «prévu» sur le honeypot et se met à attaquer ailleurs? Expertise et temps Création : Ce n est pas un jouet (enfin un peu quand même) le «blindage» est important et difficile Maintenance : Suivant le type mis en place, l analyse des attaques et la surveillance peut être un boulot à part entière Psychologie/Criminologie : Pourquoi énerver plus le pirate affamé? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 58
Leurrer le pirate Pas évident face à un bon niveau Au niveau du réseau Empreintes réseaux (xprobe, nmap, etc) Topologie réseau (paradis perdu?) Activité réseau (rien..?) Au niveau du système Empreinte (exemple : mémoire, cpuinfo, bios, ide ) Activité (jamais personne..?) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 59
Leurrer le pirate (exemple) Exemple avec Honeyd (faible interaction) create template set template personality "Windows 2000 Professional, Build 2128" add template tcp port 80 "sh scripts/web.sh" set template uid 65534 gid 65534 add template tcp port 4662 open add template tcp port 21 open add template tcp port 137 open add template udp port 137 open set template default tcp action reset bind 10.0.0.1 template set 10.0.0.1 uptime 1234567 create default set default default tcp action block set default default udp action block set default default icmp action block vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 60
Surveiller le pirate (!) honeyd[8348]: Connection request: (81.49.89.102:3679-10.0.0.1:80) honeyd[8348]: Connection established: (81.49.89.102:3679-10.0.0.1:80) <-> sh scripts/web.sh honeyd[8348]: Connection dropped with reset: (81.49.89.102:3679-10.0.0.1:80) honeyd[8348]: Connection request: (81.49.89.102:3692-10.0.0.1:80) honeyd[8348]: Connection established: (81.49.89.102:3692-10.0.0.1:80) <-> sh scripts/web.sh honeyd[8348]: Connection dropped with reset: (81.49.89.102:3692-10.0.0.1:80) honeyd[8348]: Connection request: (81.49.89.102:3700-10.0.0.1:80) honeyd[8348]: Connection established: (81.49.89.102:3700-10.0.0.1:80) <-> sh scripts/web.sh honeyd[8348]: Connection dropped with reset: (81.49.89.102:3700-10.0.0.1:80) honeyd[8348]: Connection request: (81.49.89.102:3761-10.0.0.1:80) honeyd[8348]: Expiring TCP (81.49.89.102:3761-10.0.0.1:80) (0x80bfc70) in state 3 honeyd[8348]: UDP Connection: (67.68.97.72:1031-10.0.0.1:137) honeyd[8348]: Connection established: (67.68.97.72:1031-10.0.0.1:137) honeyd[8348]: UDP Connection: (213.1.37.74:1028-10.0.0.1:137) honeyd[8348]: Connection established: (213.1.37.74:1028-10.0.0.1:137) honeyd[8348]: UDP Connection: (218.2.19.141:1550-10.0.0.1:137) honeyd[8348]: Connection established: (218.2.19.141:1550-10.0.0.1:137) honeyd[8348]: UDP Connection: (200.33.188.66:1025-10.0.0.1:137) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 61
Contrôle de l attaquant Entrée autorisée Sortie interdite ou limitée Interdite => le pirate ne peut pas faire partir de paquets n appartenant à aucune session Padded Cell Filtrage stateful (ESTABLISHED) et NAT Environnement assez protégé : sandbox (systrace) Limité => le pirate a droit à certains types de trafic ou à un certain nombre de paquets Autoriser les requêtes DNS Autoriser 3 paquets TCP en sortie par attaquant par heure vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 62
Systèmes de prévention d intrusions Mieux vaux prévenir... vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 63
Le concept d «IPS» IPS : Intrusion Prevention System Evolution du concept d IDS vers le concept de IPS Marketing? Technique? Certains IDS peuvent contrer une attaque suite à une détection : contre-mesures Ralentir, Reset TCP, ICMP unreachable, Coupure, ACL... Risques en cas de faux positifs Plutôt que de détecter et ensuite agir, ne peut-on peut pas : détecter et donc interdire => prévenir? IPS vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 64
Rappel : exemple de contre-mesure Extrait de IDS Active Response Mechanisms: Countermeasure Subsytem for Prelude IDS, Krzysztof Zaraska (Libre Software Meeting 2002 / Security Topic) vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 65
IPS, fonctionnement IPS : attaque détectée => attaque gérée Interdiction Requête rejetée Requête ignorée Flux associé à la requête ralenti Re-direction invisible vers un honeypot (déception) Exemples basés sur snort : Snort-inline (processus, espace utilisateur) libpcap remplacée par un contact direct avec le noyau linux (QUEUE) les trames sont demandées à la pile IP la pile IP attend la réponse de snort-inline pour agir sur le paquet Bait and switch : honeypot et/ou production vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 66
Conclusion pour ou contre? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 67
Conclusion générale Les IDS sont complexes Les IDS sont coûteux (temps et/ou argent) Les IDS ne sont pas parfaits En général, les IDS sont installés puis sont rarement utilisés (en tout cas pas régulièrement) Pourtant, pourquoi les IDS? Ce sont des «gadgets» qui peuvent parfois sauver un système d information ou même comprendre ce qui s est passé Futur prometteur, technologie encore jeune vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 68
Questions? vcars 2003-21 mai, Autrans - Oudot Laurent : "Structure interne d'un IDS" Page 69