Détection d Intrusions par Diversification de COTS et Diagnostic d Anomalies Frédéric Majorczyk Ayda Saidane Éric Totel Ludovic Mé prénom.nom@supelec.fr Supélec, Rennes, France DADDi 18/11/2005 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 1/18
Plan 1 Détection d Intrusions par Diversification de COTS Diversification de COTS 2 Tests et résultats Limites 3 Modélisation du système Diagnostic par Comparaison des Flux Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 2/18
Diversification de COTS Détection d Anomalies Nécessité de construire un modèle de comportement. Ce modèle peut être : Incorrect faux negatifs. Incomplet faux positifs. Principe de notre Approche Pas de définition explicite d un modèle. Comparaison du comportement de plusieurs logiciels (chacun représentant un modèle implicite). Méthode issue de la sûreté de fonctionnement : la diversification fonctionnelle. Extension à l utilisation de COTS. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 3/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Masking Mechanism Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Rules for Masking Mechanism Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Rules for Masking Mechanism Service IDS Alert COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Service Proxy COTS Service 2 COTS Server 2 Service IDS COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Diversification de COTS COTS Service 1 COTS Server 1 Firewall Masking Mechanism Service Proxy COTS Service 2 COTS Server 2 Rules for Masking Mechanism Service IDS Alert COTS Service 3 COTS Server 3 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 4/18
Taxonomie des Différences Détectée Diversification de COTS COTS 1 Specification COTS 1 Outputs Common Specification Output Differences Design Faults COTS 2 Outputs COTS 2 Specification Comparisons Diversification de COTS : une différence en sortie peut être due : l activation d une faute dans un des COTS. ou une différence de spécification entre les COTS. Specification Differences FALSE POSITIVES Vulnerabilities ALERTS Classic Design Faults FALSE POSITIVES Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 5/18
Architecture Appliquée au web Tests et résultats Limites IIS Windows 2000 Firewall Masking Mechanism HTTP Proxy Apache MacOS X Rules for Masking Mechanism HTTP IDS thttpd Alert Linux Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 6/18
Test et Résultats Tests et résultats Limites Description du Test Serveurs configurés de manière homogène. Copie des pages du serveur web de Supélec (Rennes). trafic composé de 800 000 requêtes provenant de logs sur un mois. 36 règles définies pour masquer les différences de spécification. Résultats Nombre total de différences : 35276 Nombre de différences masquées : 99,62% (35145) Nombre d alertes : 0,37% (131) Nombre de vrais positifs : 102 Nombre de faux positifs : 29 Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 7/18
Problèmes du Web Dynamique Inconvénients de l approche Tests et résultats Limites Possibilité de faux positifs : si des informations propres à chaque serveur sont envoyés à l utilisateur (ex : la date, le nom du serveur,... ). Nécessité d avoir une sémantique des données envoyées paraît très difficile. Non-diversification des applications exécutées par le serveur (scripts CGI, PHP,... ). Pas envisageable de développer les mêmes applications plusieurs fois de manière différente. Ni d utiliser des COTS pour ces applications (forums... ). Non-diversification Fautes communes aux différents versions Faux négatifs Notamment pour toutes les attaques de type injection de code pour les langages interprétés (PHP, SQL, Perl,... ). Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 8/18
Tests et résultats Limites Solution Possible au Problème de l Injection de Code Diversification de l interpréteur Solution proposée dans Countering Code-Injection Attacks with Instruction-Set Randomization (Gaurav S. Kc, Angelos D. Keromytis, Vassilis Prevelakis). Prévenir les attaques en changeant le langage en ajoutant derrière chaque opérateur, chaque fonction, chaque élément du langage un certain nombre de chiffres aléatoires. Modification de l interpréteur en conséquence. L opérateur = devient =4898603, SELECT devient SELECT4898603 Diversification artificielle des programmes. L injection est toujours possible dans chaque version mais pas simultanément. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 9/18
Modélisation du système Diagnostic par Comparaison des Flux Qu est-ce que le diagnostic d anomalies/d intrusions? Difficulté à définir ce que c est Notion assez floue, peu d articles évoquent le sujet ( Backtracking intrusions, Samuel T. King, Peter M. Chen) Parfois le terme diagnostic d intrusions est employé pour analyse forensique. pour la détection d intrusions par diversification de COTS Expliquer la cause de la différence détectée (lecture d un fichier sur un serveur et pas sur les autres). Infirmer ou confirmer la détection (éliminer des faux positifs, se passer des règles?) Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 10/18
Diagnostic Classique Modélisation du système Diagnostic par Comparaison des Flux Modélisation du Système Modélisation du bon fonctionnement des composants du système. A partir d observations, déduire les composants qui ne sont pas dans un état de fonctionnement normal. Modélisation des Pannes Ajout d un modèle de panne pour les composants. Un diagnostic est alors un ensemble de composants défectueux et leur mode d anormalité Diagnostic Explicatif Utilisation de graphes causaux (+ relations incertaines, probabilités sur les arcs). Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 11/18
Application à notre Cas Modélisation du système Diagnostic par Comparaison des Flux Modélisation du système Trouver un composant défectueux c est trouver le serveur attaqué. Possible théoriquement puisqu une attaque ne doit affecter qu un seul serveur. Pratiquement, c est plus complexe car en cas d attaques, tous les serveurs ont des comportements différents. Finalement, on a peu de composants : 3 serveurs modélisation plus fine des serveurs. Plus intéressant si on prend en compte plusieurs proxys. Modélisation des pannes et diagnostic explicatif Nécessité de modéliser les attaques et les vulnérabilités. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 12/18
Graphes de Flux Modélisation du système Diagnostic par Comparaison des Flux Méthodes d analyse d intrusions issues de Backtracking Intrusions. Log des appels systèmes. Construction du graphe de flux d informations entre certains objets du système. Filtrage du graphe pour analyse par l administrateur. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 13/18
Graphes de Flux (2) Modélisation du système Diagnostic par Comparaison des Flux Détails du Modèle 3 types d objets : processus, fichiers et des noms de fichier. La distinction fichiers - noms de fichier permet notamment de suivre un fichier en cas de renommage et permet également de traiter les pipes par exemple. Les mécanismes d IPC peuvent être considérés comme des fichiers mais ne sont pas pris en compte pour l instant dans leurs travaux. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 14/18
Modélisation du système Diagnostic par Comparaison des Flux Graphes de Flux pour la Diversification de COTS Comparaison de graphes de flux Construction du graphe de flux sur chaque serveur en cas de détection d une anomalie. Graphes de flux plus simples car on ne surveille qu une application (processus et ses fils). Comparaison des graphes et évaluation d une distance. Techniques d isomorphisme de graphes. Besoin d un apprentissage? Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 15/18
Construction de graphes de flux Modélisation du système Diagnostic par Comparaison des Flux Modèle 2 types d objets : fichiers et processus. Un objet : Type Identificateur AppelCréation NomObjet DateCréation DateDestruction des informations propres Un flux : Type ObjetSource ObjetDestination Date Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 16/18
Analyse des appels sous windows Modélisation du système Diagnostic par Comparaison des Flux Création d objets WSAConnect (Id_socket..) / connect Création d un objet socket WSAAccept(Id_sock_source)-Id_sock_destination Création d un objet socket Flux d informations WSASend(Id_sock) /send /sendto Flux d informations Processus -> Fichier (ici une socket) WSARecv(Id_sock) /recv /recvfrom Flux d informations Fichier (ici une socket) -> Processus. ReadFile(Id_fich) / ReadFileW / ReadFileAo Flux d informations Fichier -> Processus. WriteFile(Id_fich) / WriteFileW / WriteFileAo Flux d informations Processus -> Fichier. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 17/18
Modélisation du système Diagnostic par Comparaison des Flux Analyse des appels sous windows/linux/macos/freebsd Interception L interception se fait grâce à Détours/strace/ktrace ou strace/ktrace ou strace. Précision à la millième de secondes. On peut associer les appels systèmes à une requête grâce aux identificateurs de threads (sous Windows). Analyse des traces Filtrer les appels correspondants à la requête ayant généré l alerte. Analyser ces appels en enregistrant les opérations : création d objets et création de flux. Génération du graphe. Frédéric Majorczyk, Ayda Saidane, Éric Totel, Ludovic Mé Détection d Intrusions par Diversification - Diagnostic 18/18