Modélisation et classification automatique des informations de sécurité
Transcription
Modélisation et classification automatique des informations de sécurité
Numéro d’ordre 2009-ISAL-XXXX Année 2009 Thèse MODÉLISATION ET CLASSIFICATION AUTOMATIQUE DES INFORMATIONS DE SÉCURITÉ présentée devant L’Institut National des Sciences Appliquées de Lyon pour obtenir le grade de docteur Ecole doctorale : Informatique et Information pour la Société soumis le 4 Décembre 2008 Par Fatiha Benali Soutenue le 13 janvier 2009 devant la Commission d’examen Jury Debar Hervé Expert Rapporteur France Télécom R&D Maknavicius-Laurent Professeur des Universités Maryline Institut National des Télécommunications - Paris De La Higuera Colin Professeur des Universités Rapporteur Jean Monnet Université - Saint-Etienne State Radu Directeur de recherche INRIA INRIA-Lorraine Ubéda Stéphane Professeur des Universités INSA de Lyon (Directeur de thèse) Legrand Véronique Chercheur Exaprotect R&D Villeurbanne Cette thèse a été préparée au Centre d’Innovation en Télécommunications et Intégration de Services (CITI), INSA de Lyon - INRIA Rhône-Alpes et au sein de l’équipe R&D Exaprotect à Villeurbanne. Table des matières I Description du problème 7 1 Détection d’intrusions 1.1 Introduction 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.1 IDS expérimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.2 Les IDS commerciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.1.3 Modèle de détection d’intrusions . . . . . . . . . . . . . . . . . . . . . . . 14 1.1.4 Coopération entre IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2 L’état actuel des infrastructures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 L’état actuel des produits de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 Problématique 21 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2 Caractéristiques du système surveillé . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3 Problèmes engendrés par la coopération : de la syntaxe à la sémantique. . . . . . 23 2.4 Syntaxe des informations de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.1 II Modèle IDMEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Modélisation des informations de sécurité 3 État de l’art sur la modélisation des informations de sécurité 29 35 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2 Modélisation des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2.1 Classification par listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.2 Les taxonomies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.3 Les ontologies sur les attaques . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2.4 Les langages d’attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3 Modélisation des vulnérabilités . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4 Les caractéristiques des catégories des informations de sécurité . . . . . . . . . . 42 iii 3.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4 Proposition d’une modélisation 45 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Source de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3 Niveau d’abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.1 L’intention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.2 Le mouvement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.3.3 Les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4 Le modèle conceptuel 4.5 Ontologie des informations de sécurité . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 4.7 III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5.1 La démarche de l’attaquant . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.5.2 Intention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.5.3 Movement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.5.4 Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.5.5 Gain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Expérimentations effectuées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.6.1 Expérience n˚1 : Classification des informations de sécurité . . . . . . . . 60 4.6.2 Expérience n˚2 : Application de l’ontologie aux processus de traitement . 66 4.6.3 Conclusion sur les expériences . . . . . . . . . . . . . . . . . . . . . . . . . 70 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Classification automatique des informations de sécurité 4.7.1 73 Processus de catégorisation de texte . . . . . . . . . . . . . . . . . . . . . 76 5 Indexation et réduction d’attributs 79 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2 Représentation du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.3 Réduction d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.4 5.3.1 Sélection d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.3.2 Extraction d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Analyse du corpus des informations de sécurité . . . . . . . . . . . . . . . . . . . 85 5.4.1 Format des messages bruts . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.4.2 Étude de la fréquence des mots dans un corpus : la loi de Zipf . . . . . . . 85 5.4.3 Taille du vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.5 Comparaison des méthodes de réduction et discussion . . . . . . . . . . . . . . . 88 5.6 Module d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.6.1 Étiquetage morphosyntaxique des messages . . . . . . . . . . . . . . . . . 90 5.6.2 Normalisation des termes (analyse morphologique) . . . . . . . . . . . . . 91 5.6.3 Reconnaissance des concepts . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.6.4 Reconnaissance de la nature des fichiers . . . . . . . . . . . . . . . . . . . 96 5.6.5 Extraction des mots avec leurs équivalents par la traduction basée sur l’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.7 5.8 5.6.6 Traitement des mots qui n’ont pas de sens . . . . . . . . . . . . . . . . . . 99 5.6.7 Architecture du module d’extraction . . . . . . . . . . . . . . . . . . . . . 101 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.7.1 Application de la méthode gain d’information . . . . . . . . . . . . . . . . 102 5.7.2 Application de la méthode LSI . . . . . . . . . . . . . . . . . . . . . . . . 102 5.7.3 Résultat d’application du module d’extraction 5.7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Conclusion . . . . . . . . . . . . . . . 105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6 Algorithmes d’apprentissage appliqués à la CT 109 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.2 Approches de construction de système de classification . . . . . . . . . . . . . . . 110 6.2.1 Classifieurs probabilistes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.2.2 L’arbre de décision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.3 Règle de décision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.4 Rocchio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.5 Réseaux de neurones (RN) . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.6 Support Vector Machine (SVM) . . . . . . . . . . . . . . . . . . . . . . . 112 6.2.7 Classification par vote (voted classification) . . . . . . . . . . . . . . . . . 112 6.2.8 K plus proche voisin (k-PPV) . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.2.9 Modèle de régression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.3 Évaluation des classifieurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.5 Application de quelques approches de CT à la classification des messages de sécurité116 6.6 IV 6.5.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.5.2 Le bayésien naïf (BN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 6.5.3 k plus proche voisin (k-PPV) . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.5.4 SVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.6.1 Choix des paramètres des classifieurs et la méthode de réduction . . . . . 124 6.6.2 Méthodes de classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.6.3 Combinaison de classifieurs . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Conclusion et perspectives 7 Conclusions et perspectives 141 143 7.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 7.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 A Modélisation des Informations de sécurité 147 A.1 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature . . . . . . 147 A.1.1 Spécification des mouvements avec chaque type d’intention . . . . . . . . 149 A.1.2 Spécification des cibles avec le langage OWL . . . . . . . . . . . . . . . . 149 A.1.3 Détail de la figure 4.5 sur la modélisation des cibles. . . . . . . . . . . . . 164 B Indexation et réduction d’attributs 169 B.1 Exemple de comparaison du vocabulaire de deux produits . . . . . . . . . . . . . 169 B.2 Module d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 B.2.1 Les étiquettes utilisées dans le programme de Brill . . . . . . . . . . . . . 171 B.2.2 Exemple d’extensions de fichiers exécutables . . . . . . . . . . . . . . . . . 172 B.2.3 Quelques résultats du module d’extraction . . . . . . . . . . . . . . . . . . 172 Bibliographie 175 Liste de publications 185 B.2.4 A paraître dans les journaux . . . . . . . . . . . . . . . . . . . . . . . . . 185 B.2.5 Brevet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 B.2.6 Conférences & Workshops Internationaux . . . . . . . . . . . . . . . . . . 185 B.2.7 Workshop National . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Liste des tableaux 4.1 Cibles réseau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2 Les Gains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3 Les types de produits utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.1 Différentes approches utilisées pour la sélection d’attributs. La définition de chaque approche est évoquée dans 5.3.1. . . . . . . . . . . . . . . . . . . . . . . . 83 5.2 Un échantillon de mots apparaissant une seule fois dans le corpus de Cisco. Les mots en gras sont des mots informatifs, par exemple land représente un type d’attaque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5.3 Statistiques sur les corpus des produits de surveillance. . . . . . . . . . . . . . . . . . 87 5.4 Comparaison des méthodes de réduction d’attributs. . . . . . . . . . . . . . . . . 90 5.5 Un exemple d’application de l’étiqueteur de Brill. . . . . . . . . . . . . . . . . . . 91 5.6 Exemple d’étiquettes associées aux mots avec l’étiqueteur de Brill. Les étiquettes indiquent la fonction syntaxique de chaque mot. Plus de détails sur les étiquettes attribuées aux mots illustrés dans le tableau B.3 . . . . . . . . . . . . . . . . . . 91 5.7 Exemple de messages lemmatisés. . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.8 Exemple de fichiers présents dans des messages de sécurité. Les fichiers sont représentés en caractère gras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.9 Classification des fichiers selon les extensions. . . . . . . . . . . . . . . . . . . . . 97 5.10 Un échantillon de 20 messages de sécurité provenant de produits différents. Les termes sont représentés par tous les mots qui apparaissent dans les messages bruts à l’exception des articles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.11 Résultat du module d’extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 6.1 Résultats identiques pour l’exécution de vote1 et vote2 pour le classifieur k-PPV. 126 6.2 Résultats d’extraction des valeurs des concepts, prenant comme corpus de test le corpus d’apprentissage pour déterminer la valeur du k. . . . . . . . . . . . . . 127 6.3 Pré-traitement du corpus par l’application du module d’extraction. . . . . . . . . 128 6.4 Résultat d’extraction des valeurs des concepts avec l’utilisation du module d’extraction comme méthode de réduction. . . . . . . . . . . . . . . . . . . . . . . . . 128 6.5 Résultat d’extraction des valeurs des concepts avec l’utilisation de gain d’information comme méthode de réduction. . . . . . . . . . . . . . . . . . . . . . . . . 129 vii 6.6 Résultat d’extraction des valeurs des concepts avec l’utilisation de LSI comme méthode de réduction et BN comme classifieur. . . . . . . . . . . . . . . . . . . . 129 6.7 Résultat d’extraction des valeurs des concepts avec l’utilisation de LSI comme méthode de réduction et k-PPV comme classifieur. . . . . . . . . . . . . . . . . . 130 6.8 Comparaison entre les performances des classifieurs. . . . . . . . . . . . . . . . . 131 6.9 Un petit échantillon des résultats d’application de SVM basée sur un modèle de régression. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 6.10 Produits impliqués dans l’expérience. . . . . . . . . . . . . . . . . . . . . . . . . . 135 6.11 Comparaison des performances de classification pour les différents classifieurs. . . 135 6.12 Comparaison des résultats des classifieurs . . . . . . . . . . . . . . . . . . . . . . 138 6.13 Relation entre deux classifieurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.14 Performance de k-PPV et BN sur la classification du corpus McAfee. . . . . . . . 139 6.15 Collaboration entre classifier le classifier k-PPV et le classifier BN. . . . . . . . . 139 A.1 Liste de termes de Cohen [62]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 B.1 Comparaison du vocabulaire brut du pare-feux Cisco et du pare-feux Checkpoint. Le texte en bleu représente le vocabulaire commun entre les deux produits. Le texte en rouge représente le vocabulaire utilisé que par Checkpoint et Le texte en noir représente le vocabulaire utilisé que par Cisco. . . . . . . . . . . . . . . . 170 B.2 Comparaison du vocabulaire brut du pare-feux Cisco et du pare-feux Checkpoint, suite du tableau refcomparaisonsonde . . . . . . . . . . . . . . . . . . . . . . . . 171 B.3 Etiquettes associées aux mots par le tagger de Brill . . . . . . . . . . . . . . . . . 171 B.4 Un échantillon d’extensions de fichiers exécutables . . . . . . . . . . . . . . . . . 172 B.5 Exemple de règles générées par le module d’extraction. . . . . . . . . . . . . . . . 172 B.6 Exemple de règles de généralisation. . . . . . . . . . . . . . . . . . . . . . . . . . 172 Table des figures 1 Impacts des attaques reportés par Clarke et Zeichner dans le magazine Bank Systems & Technology [26]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 Relation entre la sophistication des attaques et la connaissance des attaquants reportée par Philippe Evard et Eric Filiol dans le magazine Multi-sytem & Internet Security Cookbook (MISC) [49]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1 Modèle général proposé par IDWG (Intrusion Detection Working Group) . . . . 14 1.2 Architecture d’un IDS (figure reprise de [7] avec modification). . . . . . . . . . . 15 1.3 Architecture d’une vision globale . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1 Le modèle de données IDMEF : (1) avec la description de l’événement portée dans l’événement brut (2) enrichi par une sémantique. . . . . . . . . . . . . . . . 25 2.2 Système de détection d’intrusion dans le contexte des grandes infrastructures. . . 28 4.1 Source de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2 Sémantique générale d’une information de sécurité . . . . . . . . . . . . . . . . . 50 4.3 Démarche d’un attaquant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.4 Démarche d’un attaquant décrite par les intentions. 4.5 Ontologie des cibles. Un zoom de chaque partie de la figure est illustré sur l’an- . . . . . . . . . . . . . . . . 53 nexe A.1.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.6 La cible ”web”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.7 Distribution des événements de sécurité sur les catégories . . . . . . . . . . . . . 63 4.8 Distribution des Intentions sur les mouvements . . . . . . . . . . . . . . . . . . . 64 4.9 Distribution des Intentions sur le mouvement Vulnerability . . . . . . . . . . . . 65 4.10 Contexte de l’expérience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.11 Distribution des événements sur les catégories par journée d’activité. . . . . . . . 67 4.12 Distribution des événements sur les natures de mouvement par journée d’activité. 69 4.13 Un graphe d’événements sur l’utilisation du SI. . . . . . . . . . . . . . . . . . . . 71 4.14 CT appliquée à la classification des informations de sécurité. . . . . . . . . . . . 77 5.1 Une partie de mots vides en anglais [50]. 5.2 Loi de Zips et le corpus des informations de sécurité. . . . . . . . . . . . . . . . . 86 ix . . . . . . . . . . . . . . . . . . . . . . 81 5.3 Comparaison des méthodes de sélection d’attributs. Les figures sont reprises des travaux de Yang et Pedersen [136]. Les nouveaux attributs ont été utilisés pour définir le nouvel espace vectoriel pour deux systèmes de classification ; le KNN qui est l’algorithme des k plus proches voisins et LLSF qui est Linear Least Squares Fit mapping [134]. . . . . 89 5.4 Types de relations sémantiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.5 Processus d’extraction des attributs d’un message de sécurité. . . . . . . . . . . . 102 5.6 La projection des termes et des documents dans les deux nouveaux axes. . . . . . 107 6.1 Utilisation de la mesure macro-moyenne par les cinq classifieurs, et influence de l’efficacité des classifieurs par la distribution des catégories dans le corpus de test [135]. kNN, NN et NB représentent respectivement k-PPV, RN et BN sur les figures a et b. 6.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Exemple de deux catégories linéairement séparables. L’hyperplan de décision est la ligne continue. La marge est la distance entre deux lignes pointillées. Une ligne de décision avec une petite marge sur (a) et une ligne de décision avec une grande marge sur (b). Les points de données entourés par un carrées sombres (rouges) représentent les vecteurs à support. . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.3 6.4 Processus de catégorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Distribution des catégories de chaque concept dans le corpus d’apprentissage. . . . . . 125 6.5 Résultat du classifieur BN pour le cas 0 et le cas 1 représentant respectivement, dans le calcul des probabilités, la valeur des occurrences des termes qui n’appartiennent pas à une catégorie égale à 0 et à 0.1. . . . . . . . . . . . . . . . . . . . 126 6.6 Comparaison entre les méthodes de réduction de la taille de l’espace vectoriel du corpus. Pour le module d’extraction, la taille des descripteurs est égale à 364. Pour la méthode IG, la taille des attributs retenue pour représenter un message pour l’extraction des valeurs respectives de Intention, Movement, MovementType, Target et Gain est respectivement 20, 200, 100 20 et 40. Pour LSI, la taille de descripteur est égale à 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6.7 Comparaison des performances des différents algorithmes de classification. . . . . . . . 132 6.8 Distribution des catégories de concepts dans le corpus d’apprentissage. . . . . . . . . . 134 6.9 Comparaison des performances des différents algorithmes de classification. . . . . . . . 136 6.10 Relation entre la fonction de classification réelle et les fonctions de classification automatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 A.1 Taxonomie d’Howard et Longstaff [59]. . . . . . . . . . . . . . . . . . . . . . . . . 148 A.2 Ontologie développée dans [119]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 A.3 Movement et MovementType de l’intention Authentication. . . . . . . . . . . . . . 149 A.4 Movement et MovementType de l’intention System. . . . . . . . . . . . . . . . . . 149 A.5 Movement et MovementType de l’intention Rights. . . . . . . . . . . . . . . . . . 150 A.6 Partie (1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 A.7 Partie (2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 A.8 Partie (3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Préambule Initialement, Internet fût conçu comme le vecteur de communication d’une communauté de chercheurs travaillant dans un contexte de confiance et ne se souciant pas des utilisateurs malveillants. En conséquence, il était inutile de prévoir dans leurs équipements des fonctions dédiées à la sécurité, seule la connectivité des réseaux était assurée pour le besoin de la communication. Aujourd’hui, aucune entreprise, aucun organisme ne peut se permettre de rester non connecté ; le nombre de réseaux reliés à Internet ne cesse de croître mais les mêmes mécanismes sont toujours utilisés. Il devient donc facile pour un attaquant d’exploiter l’ouverture des réseaux dans un but malveillant. La sécurité est donc tout naturellement devenue un enjeu majeur, aussi bien pour l’économie que pour le fonctionnement de nos sociétés humaines. Fig. 1 – Impacts des attaques reportés par Clarke et Zeichner dans le magazine Bank Systems & Technology [26]. Clarke et Zeichner dans [26] reportent qu’il y avait 21000 incidents de virus en 2000. Trois ans seulement après, ce nombre a été multiplié par six ! En 2002, le coût mondial de vers et virus a été estimé à 45 milliards de dollars, tandis qu’en août 2003 il était estimé à 180 milliards. On estime que le coût annuel augmente de 300% par an. Entre 1998 et 2003, vingt-sept millions d’Américains ont été victimes de vol d’identité, mais un tiers de ce chiffre ont été victimes rien que pour l’année 2004. Les entreprises aux États-Unis ont dépensé de 2 à 3% de leur budget IT sur la sécurité en 1999, contre environ 8 à 12% en 2004. Les patchs qui corrigent les vulnérabilités des logiciels commerciaux les plus ciblés par les pirates ont été publiés à un taux de 10 par mois. En 2002, ils ont atteint le taux d’une dizaine par semaine. Et en 2003, les vers 1 2 qui avaient l’habitude de mettre plusieurs jours pour voyager au sein des systèmes, se diffusent aujourd’hui sur plus de 300000 systèmes sur les cinq continents en moins de 15 minutes (figure 1). Fig. 2 – Relation entre la sophistication des attaques et la connaissance des attaquants reportée par Philippe Evard et Eric Filiol dans le magazine Multi-sytem & Internet Security Cookbook (MISC) [49]. Les attaques sont en augmentation à la fois en nombre, en sévérité, en sophistication et en impact. Les attaques peuvent générer de sérieux problèmes telles que la perte de revenu, de propriété intellectuelle ainsi qu’une perturbation des opérations critiques au sein d’un organisme. En effet, Internet permet maintenant à chacun d’accéder à une masse d’informations sur les attaques informatiques, sur les failles des systèmes et même de trouver les outils et scripts prêts à mener des attaques sophistiquées sans avoir autant de grandes connaissances sur le sujet. Si un bon niveau initial de connaissances techniques est nécessaire, ce niveau de connaissances décroît rapidement avec le temps, au fur et à mesure que les outils sont mis sur le marché. La figure 2 [49] illustre la relation entre la sophistication des attaques et la connaissance des attaquants. Le système d’information (SI) d’une entreprise ou d’un organisme est devenu capital et possède une très grande valeur ; la sécurité de ce système est devenue un enjeu stratégique important. Les utilisateurs et les administrateurs des réseaux informatiques ont compris cela et sont conscients qu’il faut se protéger. Les administrateurs de sécurité prennent des dispositions pour empêcher les intrusions, via des mécanismes d’authentification qui permettent aux utilisateurs du système de prouver leur identité, de contrôles d’accès qui permettent de mettre les droits aux utilisateurs sur les ressources, de pare-feux pour filtrer les flux et la recherche de 3 vulnérabilités connues qu’un intrus pourrait essayer d’exploiter. Ces mécanismes de prévention seuls ont montré qu’ils ne sont pas suffisants pour fournir le niveau de sécurité adéquat. Les expériences montrent qu’il est difficile d’empêcher et de prévenir bon nombre de types d’attaques très différentes. Naturellement, aucun mécanisme ne peut identifier un intrus avant que cet intrus n’initie une interaction avec le système. Contre ce danger bien réel, les efforts actuels dans le domaine de la sécurité se focalisent sur la détection d’intrusions. Le concept d’intrusion est défini par toute action non légalement autorisée effectuée par un utilisateur d’un système d’information. L’intrus peut être externe comme il peut être un utilisateur interne qui tente de dépasser ses privilèges. Les systèmes de détection d’intrusions (Intrusion detection System ou IDS) ont une vision locale de ce qui se déroule dans toute l’infrastructure ; ils ne peuvent pas capturer les étapes logiques ou les stratégies d’attaques derrière ces attaques. Les approches de détection d’intrusions actuelles sont fondées sur le constat que la plupart des intrusions ne sont pas isolées, mais sont reliées entre elles, constituant différentes étapes d’une attaque complexe. L’approche dominante pour la détection d’intrusions se base sur la corrélation des informations contenues dans les fichiers journaux générés par les produits de sécurité déployés dans un SI. Avec le développement rapide des infrastructures, l’énorme quantité de données générées rend leur traitement de moins en moins avantageux notamment du fait que ces informations sont générés par des sources hétérogènes. De plus, il n’existe pas de standard pour représenter ces informations. Il devient donc difficile d’analyser les fichiers journaux et de réaliser la corrélation même pour les petits réseaux. L’apport de notre travail s’inscrit dans le cadre de la modélisation des informations de sécurité dans le but d’analyser la sécurité du SI de tout comportement qui peut mettre en danger sa sécurité. Cette thèse aborde le domaine de recherche en détection d’intrusions sur trois axes. La première contribution, comme elle est décrite dans la partie I, propose une architecture pour un système de détection d’intrusions basée sur la vision globale de ce qui arrive dans un SI. La partie I est organisée comme suit. Dans le chapitre 1, nous passons en revue les travaux de recherches qui ont marqué l’évolution des systèmes de détection d’intrusions. Nous focalisons notre étude sur les différentes architectures proposées dans la littérature, en particulier sur les sources de données impliquées dans les mécanismes de détection. Nous proposons ensuite une architecture pour un système de détection d’intrusions. Dans cette architecture, les mécanismes d’évaluation de la sécurité d’un SI (comme la corrélation) se basent sur les données contenues dans les fichiers journaux des produits de sécurité et les fichiers journaux des ressources jugées critiques dans un SI. Cette architecture offre de nombreux avantages que nous détaillons. Le chapitre 2 s’attache à analyser les principaux problèmes auxquels nous serons confrontés lors de la mise en application de cette architecture. En effet, les données générées par cette architecture ne sont pas homogènes : elles n’ont pas la même syntaxe ni la même description de la sémantique. Nous arrivons à la conclusion que la représentation de ces données doit être homogène. Nous adoptons le format Intrusion Detection Message exchange Format (IDMEF) pour la représentation de la syntaxe d’un événement généré dans ce type d’architecture et nous cernons le problème sur la modélisation de la description de l’événement à l’intérieur du format IDMEF. La deuxième et principale contribution de la thèse, comme détaillée dans la partie II, est 4 une modélisation de la connaissance sur les activités qui ont eu lieu dans un SI, et qui sont utiles pour les mécanismes de gestion des informations de sécurité, permettant la distinction entre les différents comportements qui se produisent au sein du système surveillé. Cette partie est organisée comme suit. Tout d’abord, dans le chapitre 3, nous dressons un état de l’art des travaux de recherches qui portent sur la modélisation des attaques et des vulnérabilités. Ces travaux définissent des catégories d’attaques et de vulnérabilités puis organisent les informations de sécurité dans ces catégories. Nous passons en revue les caractéristiques qui doivent exister dans les catégories décrivant les informations de sécurité. Nous dressons ensuite les contraintes à respecter lors de la réalisation d’une modélisation pour les informations de sécurité grâce d’une part, à l’étude de l’état de l’art et d’autre part, à notre expérience acquise en travaillant sur de vrai système au sein d’Exaprotect, entreprise dans laquelle cette thèse c’est déroulée. A la différence des travaux cités dans l’état de l’art, dans le chapitre 4, nous présentons notre modélisation pour la description de la sémantique des informations générées dans les fichiers journaux des produits de sécurité et dans les fichiers journaux des ressources critiques d’un SI. Ces informations pouvant décrire des activités dangereuses ou non. Nous avons effectué une abstraction de l’hétérogénéité des sources de données par la modélisation des informations de sécurité via le concept d’action observée. Nous classons les informations comme étant représentatives d’un type particulier d’activité réalisée au sien du SI à l’aide d’une ontologie que nous appelons Ontology for Intrusion Detection (OID). Nous travaillons à l’aide de la théorie de l’action du domaine de la philosophie pour définir les concepts d’une action. Le rapprochement entre la théorie de l’action et les évènements de sécurité nous a permis de définir contologie basée sur quatre concepts : l’intention de l’utilisateur, le mouvement effectué, la cible de l’action effectuée et le gain représentant le résultat de l’action effectuée. Nous présentons en détail les différents concepts, nous spécifions le vocabulaire de chaque concept et les règles qui gèrent l’utilisation de ce vocabulaire. Nous détaillerons ensuite les résultats d’expériences menées d’une part, pour l’application de l’ontologie sur un corpus d’événements contenus dans des fichiers journaux de certains produits de sécurité, et d’autre part, pour la validation de la solution, à l’aide d’un cas d’utilisation réelle, à travers la corrélation d’événements générés dans une infrastructure d’une entreprise. Le processus de classification des événements dans les catégories de l’ontologie est réalisé manuellement par des experts en sécurité. Les expériences nous montrent que le nombre d’événements à analyser par un expert ou à fournir à un processus de gestion d’informations de sécurité diminue et que ces derniers sont applicables et efficaces sur des données homogènes. La troisième contribution de la thèse, comme elle est exposée dans la partie III, est une approche pour la classification automatique des informations de sécurité dans les catégories de l’OID. Nous adoptons dans notre travail les techniques de catégorisation automatique de texte (CT) aux problèmes de classification automatique des informations de sécurité. La classification de texte se base sur les machines d’apprentissage. Nous utilisons un corpus qui a été classifié manuellement par les experts afin d’appliquer la CT. Cette partie est structurée comme suit. Dans le chapitre 5, nous effectuons le traitement des informations de sécurité dans le but de les mettre dans un format manipulable par les algorithmes d’apprentissage. Tout d’abord, nous survolons les travaux de recherche permettant la réduction des attributs représentant un corpus de texte. Nous effectuons une analyse du langage des produits de sécurité et des mécanismes 5 de surveillance utilisés. Nous proposons un module pour l’extraction d’un vecteur représentatif d’un message de sécurité tout en gardant la sémantique portée dans l’événement. Ensuite, nous mettons en application le module d’extraction et certaines méthodes de la littérature dans le but de réduire la taille du corpus d’information de sécurité. Dans le chapitre 6, nous évoquons les travaux de recherches sur les approches d’apprentissage utilisées dans le domaine de la CT. Nous détaillons quelques approches que nous adopterons pour la classification des informations de sécurité. Nous présentons les séries d’expériences sur différents corpus de sécurité. Les expériences sont menées pour : adapter une méthode de réduction des attributs d’un corpus d’informations de sécurité, effectuer le choix sur le bon classifieur et enfin faire collaborer différents classifieurs dans le but de produire une classification unique à partir des résultats des différents classifieurs. La collaboration entre classifieurs permet de présenter à l’analyste un sous ensemble de messages de sécurité classés avec un maximum de vraissemblance. Finalement, nous concluons dans le chapitre 7 par une réflexion sur des extensions à apporter à la modélisation ainsi que des axes de recherche pour continuer ce travail. Les annexes comprennent quelques compléments techniques : exemple de vocabulaire utilisé par les produits de sécurité ou encore des détails sur les méthodes utilisées. 6 Première partie Description du problème 7 9 La détection d’intrusions a été étudiée en recherche depuis le début des années 1980 et l’intérêt pour le problème n’a cessé de croître depuis. En 1990, des Intrusion Detection System (IDS) commerciaux commencent à émerger. Un certain nombre de prototypes de recherche existent également, dont certains se sont transformés en produits commerciaux. Le but de la détection d’intrusions par l’analyse des fichiers journaux est de déterminer à quel moment un système a été violé, comment cette attaque s’est produite ou mieux, de détecter la violation du système pendant l’attaque ! Plusieurs survols [5, 41, 82] sur les systèmes de détection d’intrusions ont été publiés ; Ludovic Mé et Cédric Michel dans [83] ont collecté plus de 600 références sur la détection d’intrusions datées de 1980 à 2001. Le chapitre 1 s’articule autour d’un état de l’art sur l’évolution des systèmes de détection d’intrusions et en déduit une architecture générique d’un système de détection d’intrusions. L’étude de l’état de l’art focalise sur la nature des données qui sont impliquées dans les différents systèmes de détection d’intrusions développés dans la littérature. L’architecture proposée se base sur l’interopérabilité des produits de sécurité (IDS, IPS, pare-feu, antivirus, VPN, etc.), des mécanismes de prévention, des équipements de connectivité (routeur, switch, etc.), des fichiers journaux des services (mail, web, ftp, etc.), des applications ou des systèmes d’exploitation. Cette architecture permet d’une part d’alimenter le moteur de corrélation avec toute l’information nécessaire pour la détection des intrusions contre le SI, et d’autre part, elle permet de donner à l’administrateur de sécurité une vision globale de la sécurité du SI. En effet, le besoin de l’administrateur de sécurité a changé. Actuellement, les administrateurs de sécurité désirent connaître les activités des utilisateurs autorisés à accéder au SI en plus des activités menées par les attaquants afin de pouvoir contrôler tout abus d’utilisation du SI. Dans le chapitre 2, nous exposons tout d’abord les caractéristiques d’un système de détection d’intrusions au moyen de l’architecture que nous avons proposée. Nous décrivons les problèmes qui surgissent avec une telle architecture, permettant ainsi d’identifier les conditions nécessaires à l’interopérabilité entre les différents mécanismes de surveillances dans un SI. La vie et l’efficacité d’une telle architecture est conditionnée par une modélisation homogène de données remontées par les mécanismes de surveillances. Nous interprétons l’homogénéité des données dans notre travail par une représentation commune de la syntaxe et de la sémantique des informations de sécurité. Nous adoptons le format IDMEF pour la représentation de la syntaxe. La mise en correspondance d’un événement brut dans le format IDMEF reprend le message textuel qui décrit le fait porté par l’événement et l’incorpore dans la classe classification text du format IDMEF. Nous réduisons le problème à la modélisation de la sémantique de la description portée dans l’événement à l’intérieur du format IDMEF dans la classe classification text. 10 1 Détection d’intrusions 1.1 Introduction Le concept de détection d’intrusions est né avec les travaux de James Anderson en 1980 [96]. Il a apporté l’idée que les traces d’audit contiennent des informations vitales pour la détection de l’utilisation abusive du système. La trace d’audit, aussi appelée fichier journal, est un fichier contenant un ensemble d’enregistrements sur les activités surveillées ainsi que les dates de leurs manifestations. Anderson a fourni les bases pour la conception et pour le développement d’un système de détection d’intrusions, comme il a étendu l’idée à la détection de violations de la politique de sécurité. Dans ce chapitre, nous allons exposer l’évolution des travaux menés dans le domaine de la détection d’intrusions. Nous allons évoquer les approches utilisées par les travaux de recherches ainsi que les approches utilisées dans le milieu industriel. Nous nous intéressons notamment à l’évolution des architectures des différents systèmes de détection d’intrusions afin de justifier l’architecture dont nous nous basons dans ce manuscrit. 1.1.1 IDS expérimentaux L’idée de l’analyse du fichier journal à la recherche d’indices d’intrusion a été reprise plus tard par Dorothy Denning et Peter Denning. Ils ont réalisé le premier modèle de détection d’intrusions appelé Intrusion Detection Expert System (IDES) [43] dans le cadre d’un projet gouvernemental au SRI International1 . Le but du projet a consisté à analyser les fichiers de trace d’audit d’activités d’utilisateurs sur un serveur du gouvernement américain pour créer des 1 http ://www.sri.com/ 11 12 Introduction profils. Le modèle utilise des techniques statistiques pour caractériser un comportement anormal et des règles pour détecter les violations prédéfinies de la sécurité du système. IDES représente le premier prototype d’un IDS. Tout en se basant sur ces travaux, Dorothy a publié dans [46] un modèle de détection d’intrusions indépendant de n’importe quel système surveillé, de n’importe quelles applications installées, ou vulnérabilités du système surveillé, et de n’importe quels intrusion. Denning a présenté l’idée que les intrusions dans un système informatique peuvent être détectées à travers la construction de modèles de comportements des utilisateurs du système par le système de détection d’intrusions, et que tout comportement déviant du modèle construit est considéré comme une anomalie et donc un indice d’éventuelles intrusions. L’auteur a présenté plusieurs modèles basés sur les chaînes de Markov, les statistiques et les séries temporelles. Son article a organisé l’information nécessaire pour le développement des systèmes de détection d’intrusions ; il est à la base de la plupart des travaux sur les IDS qui l’ont suivi. Haystack[113] représente une variante de ce type de modèle. MIDAS [87] représente le premier IDS qui surveille un système opérationnel connecté à Internet. Il a donné un apeçu des menaces qui peuvent provenir d’Internet et il a apporté une démonstration du besoin de présence d’un mécanisme assurant une forte identification et authentification dans le système. L’utilisation de la connaissance de l’expert a été évoqué par TRW Defense Systems Group dans [53] (sect. 3.4). Ce dernier a développé un IDS pour le gouvernement des États-Unis en utilisant la technologie des systèmes experts. Les règles ont été écrites avec l’aide des experts de sécurité et peuvent de façon dynamique être mises à jour. A la différence des modèles cités ci-dessus, Discovery [131] surveille les fichiers journaux d’une application. En effet, il a été conçu pour la détection d’intrusions en ligne sur une base de données d’un système de crédit. En particulier, le système analyse les fichiers journaux de la base de données à la recherche de requêtes non autorisées. Ce système utilise des méthodes statistiques pour la création de profils et d’un système expert pour effectuer la détection d’intrusions. On voit apparaître une nouvelle approche pour modéliser le comportement des utilisateurs dans Hyperview [40] ; cette approche se base sur les réseaux de neurones. L’auteur conclut dans son travail que l’approche consistant en la construction d’un modèle d’utilisateur par les réseaux de neurones doit être une approche complémentaire à l’approche qui construit un modèle statistique d’utilisateur. Advanced Security audit-trail Analysis on uniX (ASAX) [56] est un IDS basé sur des règles pour détecter les intrusions. La particularité de cet IDS est qu’un langage de description de règles, appelé RUSSEL, a été créé. Dans ce modèle, les enregistrements des fichiers journaux sont transformés dans un format canonique puis évalués avec les règles décrites par le dit langage. State Transition Analysis Tool for UNIX (USTAT) [63] apporte une nouvelle approche pour représenter une intrusion. Une intrusion est identifiée par une séquence de changement d’état qui mène le système attaqué d’un état initial vers un état compromis. Kumar et Spafford généralisent cette idée en modélisant les intrusions par les réseaux de Pétri dans leur protocole appelé Intrusion Detection In Our Time (IDIOT) [72]. Les systèmes que nous avons évoqué ci-dessus sont dédiés à la détection d’intrusions sur un Détection d’intrusions 13 seul hôte : ce sont des HIDS (Host-besed IDS). En effet, l’analyse se porte sur les traces d’audit générées par le système d’exploitation ou par les applications, ce qui pousse les administrateurs de sécurité à déployer plusieurs HIDS afin de détecter les intrusions mais ce déploiement rend la tâche des administrateurs de sécurité complexe. A partir de 1990, on voit apparaître des modèles d’IDS qui se basent sur l’analyse du trafic des réseaux. Ces systèmes ont été nommés NIDS (Network-based IDS). Ils sont munis d’une configuration spéciale de leurs interfaces réseau (mode promiscuité) afin de pouvoir écouter et capturer le trafic réseau. La librairie libpcap2 est souvent utilisée dans ce but. Ces outils sont positionnés dans des endroits stratégiques du réseau observé. Network Security Monitor (NSM) [57], développé à l’université de Californie, représente le premier système qui analyse le trafic réseau. NSM écoute passivement tout le trafic réseau, analyse ce dernier et détecte les comportements intrusifs. Un NIDS peut surveiller un réseau d’hôtes hétérogènes (ayant différents systèmes d’exploitation) sans avoir besoin de convertir la multitude de formats de fichiers journaux dans un format uniforme. Les NIDS ont des perspectives différentes par rapport aux HIDS. Ils élargissent le champ de détection d’intrusions, de l’analyse de ce qui se passe sur l’hôte aux infrastructures de communication (le réseau et ses protocoles). Air Force Cryptologic Support Center (AFCSC) a développé en 1994 le système Automated Security Incident Measurement (ASIM) pour surveiller le trafic réseau sur le réseau de l’armée de l’air des États-Unis. ASIM représente la première solution de détection d’intrusions réseau combinant à la fois une solution matérielle et logicielle. 1.1.2 Les IDS commerciaux Le développement des IDS est passé des laboratoires de recherche à l’industrie au début de l’année 1990. La compagnie Haystack Labs est la première à avoir édité un IDS commercial notamment avec leur ligne appelée Stalker. Science Applications International Corporation (SAIC)SAIC a développé un HIDS commercial appelé Computer Misuse Detection System (CMDS). Les concepteurs d’ASIM ont créé l’entreprise Wheel Group en 1994 et ont édité NetRanger. En 1998, Cisco Systems reconnaît l’importance de l’IDSn rachète Wheel Group et commercialise à la fois les HIDS et les NIDS. Internet Security Systems (ISS) rachète Network Ice, reconnue pour ses développements dans la détection à haut débit et lance l’IDS RealSecure. ISS a fourni la solution d’un IDS hybride (à la fois HIDS et NIDS) en 2006 avant d’être racheté par IBM. Actuellement, il existe plusieurs éditeurs comme ISS qui continue à développer leur produit de sécurité, Symantec qui est un éditeur important dans le domaine de la sécurité, Cisco Systems et McAfee / Network Associates. L’approche utilisée par un IDS commercial est souvent difficile à connaître. Les algorithmes utilisés, les fichiers de données, etc. . . des les produits commerciaux sont propres à l’éditeur du produit. L’information disponible auprès d’eux est en général plus orientée vers le marketing que vers la technique utilisée. 2 http ://www-nrg.ee.lbl.gov/ 14 Introduction 1.1.3 Modèle de détection d’intrusions Sur la figure 1.1, nous reprenons le modèle général de détection d’intrusions défini par l’IDWG (Intrusion Detection Working Group) qui est un groupe de travail de l’IETF. Ce modèle est composé des éléments suivants : – Source de données : un dispositif qui génère de l’information sur les activités des entités du système d’information comme un analyseur réseau ou un système d’audit. – Capteur : un mécanisme de filtrage et de formatage de l’information brute provenant d’une source de données ; il génère des événements. – Événement : un message émis par un capteur. C’est l’unité élémentaire utilisée pour représenter une étape d’un scénario d’attaque connu. Ces événements sont parfois appelés événements d’audit, ou données d’audit. – Analyseur : un mécanisme d’analyse des événements à la recherche de traces d’intrusions. – Alerte : un message émis par un analyseur s’il trouve des traces d’intrusion. – Sonde : un ensemble constitué d’un capteur et d’un analyseur. – Manager : un composant permettant à l’administrateur du système de configurer les différents éléments (capteur, analyseur) et de gérer les alertes reçues. Fig. 1.1 – Modèle général proposé par IDWG (Intrusion Detection Working Group) En se basant sur une synthèse des différents travaux de recherche évoqués dans la section 1.1.1, nous présentons sur la figure 1.2 un modèle général d’architecture pour la détection d’intrusions (plus détaillé que celui de la figure 1.1). Les tâches majeures d’un IDS sont : 1. La collecte de données sur les activités surveillées. Le processus de collecte de données s’occupe des types d’informations à recueillir, comment et quand les collecter. Le choix des procédures de collecte de données peut être affecté par le type d’algorithme de détection utilisé et le type de système dans lequel la détection sera effectuée. Les deux principales sources de données sont les données sur le trafic réseau (généralement les données sont lues directement sur certains supports Ethernet) et le fichier journal de l’hôte. Les fichiers journaux de l’hôte peuvent inclure les fichiers journaux du noyau du système d’exploitation, des applications, des équipements réseau, etc. Ces données (appelées aussi événements) contiennent la plupart des informations pertinentes nécessaires pour la détection d’intrusions. Toutefois, l’information fournie peut être encore renforcée par Détection d’intrusions 15 d’autres informations comme la configuration du système surveillé. En réalité, les événements prennent une variété de formats représentant les différents événements qui peuvent engendrer les événements enregistrés. Cette phase peut inclure le processus de filtrage et de formatage des données brutes afin de les préparer à l’étape de détection. 2. La détection par le moteur d’analyse à la recherche de traces d’intrusions. Ce moteur implante l’algorithme de détection. L’algorithme peut être différent d’un travail de recherche à un autre ou d’un produit à un autre et prend ses décisions sur la base d’une politique de détection. Cette base contient les informations au sujet de la détection des intrusions, certaines données étant stockées a priori dans la base (comme les signatures d’intrusions). Parfois des seuils sur certaines mesures sont calculés par le système comme des informations sur la description des comportements normaux ou des anomalies. Chaque modèle décrit sa propre politique de détection. Les informations sur les événements classés comme une intrusion ou comme une anomalie sont appelées alertes et sont envoyées à l’unité de réponse, chaque modèle décrivant ses propres alertes. 3. La réponse : l’unité de réponse décide comment répondre aux différents événements à l’aide de règles préprogrammées dans la base de la politique de réponse. Parmi les réponses possibles, l’envoi d’une notification à l’administrateur est souvent la plus utilisée. Les alertes remontées par ces systèmes peuvent aider l’administrateur de sécurité à comprendre les parties des systèmes qui sont attaquées. Avec ces informations, l’administrateur peut empêcher des éventuelles intrusions en corrigeant des vulnérabilités, installant des correctifs et supprimant tout programme qui peut être installé par l’attaquant pour faciliter les accès futurs au système. L’analyse des intrusions peut également permettre à un administrateur de fixer les problèmes de sécurité qui ont permis aux intrusions de se produire. Fig. 1.2 – Architecture d’un IDS (figure reprise de [7] avec modification). Les activités des utilisateurs et du réseau évoluent au fur et à mesure dans le temps. Parallèlement, les intrusions évoluent aussi. Si la base de la politique de détection ainsi que la base des informations sur l’état du système ne sont pas mises à jour, le modèle de détection peut générer des faux-positifs (tout un lot d’alertes non désirées car ne correspondant pas réellement à des intrusions) ou des faux-négatifs (des alertes manquantes car la présence d’intrusions n’a pas été détectées par le modèle de détection). 16 Introduction Les HIDS ont une vue limitée par leur nature et le NIDS n’est pas capable de voir tout le trafic. En effet, chaque IDS est installé indépendamment sur un hôte ou sur un segment de réseau. Il est dédié à surveiller son périmètre pour détecter les intrusions. Chaque décision prise est basée uniquement sur le traitement des informations collectées sur son propre noeud, car il n’existe pas de coopération entre les noeuds du réseau. Par conséquent, aucune information n’est échangée et les noeuds d’un même réseau n’ont aucune information sur la situation des autres noeuds du réseau. Un problème sérieux rencontré lors de ce déploiement est le nombre considérable de faux-positifs et de faux-négatifs. Chaque alerte remontée par le moteur de décision requiert une investigation de la part de l’expert. Le grand nombre de faux-positifs coûte cependant beaucoup de temps en investigation, risquant de détourner l’attention des vrais alertes. En outre, le nombre de faux positifs pourrait devenir si grand que les administrateurs de sécurité risquent de simplement ignorer toutes les alertes. Cette architecture où chaque système de détection fonctionne seul, sans communiquer ses informations sur les menaces détectées, ne passe absolument pas à l’échelle dès lors que les systèmes sont de taille moyenne ou de grande taille ! 1.1.4 Coopération entre IDS Les administrateurs de sécurité ont commencé à multiplier le nombre d’IDS déployés afin de pouvoir couvrir toute l’organisation. Ce déploiement a généré d’autres problèmes : il devient impossible pour l’administrateur de gérer manuellement le nombre d’alertes générées par ce type d’architecture (une architecture où chaque produit travaille seul dans son coin) ainsi que le nombre de faux-positifs et de faux-négatifs. Pour remédier à ces problèmes, de nouvelles techniques de détection d’intrusions ont été développées. Ces techniques proposent la coopération entre les différents IDS déployés au sein d’une organisation. L’idée principale derrière la coopération est la fusion de données provenant de multiples IDS afin d’exploiter le pouvoir de raisonnement par inférence sur ces données et de pouvoir par la suite diminuer le nombre de faux-positifs et ainsi augmenter la détection d’intrusions potentielles. Cette coopération a donné naissance à la détection d’intrusions par agrégation et corrélation de toutes les alertes générées dans une infrastructure. L’agrégation permet de regrouper les alertes suivant des critères de similarité définis par l’algorithme d’agrégation. La corrélation [31, 42, 88, 97, 106, 121] permet de découvrir des liens entre les alertes afin de construire les scénarios d’attaques, les liens peuvent être implicites ou explicites et définis par l’algorithme de corrélation. Plusieurs travaux de recherche existent sur ces deux techniques. Généralement, les travaux de recherche se focalisent sur la corrélation car l’agrégation peut être considérée comme une sorte de corrélation. Les algorithmes utilisés sont inspirés des techniques utilisées dans le moteur d’analyse du modèle de base de la détection d’intrusions évoqué dans les sections précédentes. Avec l’évolution du domaine de l’intelligence artificielle et notamment des techniques d’apprentissage, les algorithmes de corrélation sont devenus un domaine d’application important de l’intelligence artificielle. La coopération se fait suivant deux types d’analyses : centralisée ou distribuée. Les systèmes Détection d’intrusions 17 de détection d’intrusions centralisées, comme DIDS [114], CSM [127] et MIRADOR (Mécanismes de détection d’Intrusions et de Réaction aux Attaques en DOmaine militaiRe) [18], sont caractérisés par la collecte des alertes générées par les IDS déployés dans une organisation, et d’un traitement centralisé de ces alertes. Généralement, un module est installé sur chaque noeud où l’IDS est installé, ce module envoie les alertes détectées à un module central. Ce dernier effectue l’agrégation et la corrélation des alertes reçues puis remonte à l’administrateur les scénarios d’attaques détectées contre l’infrastructure. Dans les systèmes de détection d’intrusions distribués (appelé aussi hiérarchiques), le traitement des informations générées par les IDS est distribué sur plusieurs hôtes afin de répartir la charge de calcul. Les résultats d’analyse de chaque hôte sont envoyés à un hôte central. Ce dernier va effectuer l’agrégation et la corrélation sur les données reçues afin de détecter les intrusions. Comme systèmes de détection hiérarchiques, nous pouvons citer GrIDS [117], Event Monitoring Enabling Responses to Anomalous Live Disturbances (EMERALD) [100], NetSTAT [124] et AAFID [55]. La corrélation des alertes est donc devenue une solution prometteuse pour la détection d’intrusions, les travaux de recherche se focalisent actuellement sur l’amélioration des techniques utilisées pour la corrélation. Nous sommes maintenant devant une nouvelle génération de détection d’intrusions où de nouveaux défis apparaissent : – La gestion du volume de données et le passage à l’échelle des algorithmes de détection d’intrusions. – L’augmentation de la performance du modèle de détection (la capacité à identifier autant de comportements intrusifs que possible, c’est à dire diminuer les faux-négatifs). – La diminution des faux-positifs en augmentant la précision du modèle. – La détection des intrusions en cours et non uniquement post mortem. – La réaction en temps réel pour éviter une intrusion, ou pour limiter des dommages potentiels. 1.2 L’état actuel des infrastructures Actuellement, les SI des organisations (organismes ou entreprises) sont en constante évolution et disposent de multiples noeuds exécutant de multiples systèmes d’exploitation liés à des moyens de connectivité comme les routeurs et les switchs. Ces organisations déploient plusieurs IDS vu qu’un seul IDS ne peut pas détecter toutes les intrusions dans une grande organisation. Elles disposent d’une ligne de défense constituée de plusieurs pare-feu, d’antivirus, de VPN, de scanners de mails, de scanners de vulnérabilité, de mécanismes d’authentification et de vérification des identités des utilisateurs du SI ainsi qu’une politique d’utilisation des ressources du SI. Elles offrent des services à leurs utilisateurs comme le service de messagerie électronique, le service web et le service de transfert de fichier. Les services, les ressources ainsi que les équipements déployés peuvent être des cibles pour les intrus. Parallèlement, les intrusions sophistiquées ne se concentrent plus sur un seul hôte pour effectuer leurs attaques. Elles s’introduisent en différents points de l’infrastructure tentant de 18 L’état actuel des infrastructures déguiser leurs activités en les distribuant à travers plusieurs hôtes. Si chaque action effectuée par l’attaquant est analysée seule, elle paraît innocente, mais dans leur globalité, elles constituent une attaque. Les alertes et les événements remontés par ces dispositifs représentent des indices qui montrent qu’un problème de sécurité est apparu. Nous pouvons voir un moteur de corrélation comme un système qui consomme des données pour produire des alertes sur l’activité des intrus dans le système surveillé. La qualité des alertes produites ne dépend pas seulement du mécanisme implanté au niveau du moteur de corrélation mais dépend aussi des données consommées. Si les données consommées ne reflètent pas toute l’activité qui a eu lieu dans un système d’information, le résultat de la corrélation ne reflètera qu’une vue partielle de la réalité. Afin d’élargir cette vue, nous proposons de prendre comme données à analyser les alertes produites par les IDS déployés ainsi que les fichiers journaux des services installés (comme le service de messagerie, service FTP, service web, de VPN), les fichiers journaux des systèmes d’exploitation utilisés, les fichiers journaux des IDS, des pare-feu, des antivirus et les fichiers journaux des équipements de connectivité (routeur, switch, ..). Il est ainsi possible, en utilisant les informations contenues dans plusieurs fichiers journaux, d’obtenir une vision plus globale d’une intrusion. Avec cette architecture, nous redéfinissons le concept de la détection d’intrusions. La détection d’intrusions dans ce contexte consiste à surveiller un système d’information de toute action non légalement autorisée à effectuer par un utilisateur du système. L’intrus peut être externe comme il peut être un utilisateur interne qui tente de dépasser ses privilèges. L’idée apportée par cette définition est la prise en compte de tous les dispositifs afin d’avoir une vision globale de la sécurité du SI. Cette architecture peut être représentée par le même schéma que la figure 1.1 en multipliant les sources de données. Elle s’organise autour d’un manager et de plusieurs agents, le manager étant installé sur un ordinateur dédié, et les agents sur les systèmes ou les dispositifs pour lesquels des événements doivent être surveillés. Ces agents collectent les fichiers journaux de chaque dispositif et les envoient au manager pour les stocker dans une base de données commune. Le manager dispose d’un moteur de corrélation ; ce moteur traite les événements reçus suivant des algorithmes qui dépendent de la stratégie implémentée. Une fois que les alertes sont traitées, elles sont affichées sur une console unique. Cette architecture offre une vision globale et augmente seulement la complexité du problème mais ne change pas le problème fondamentalement. En effet ce qui augmente la complexité est l’hétérogénéité des entités impliquées dans la surveillance. Certes, la corrélation des fichiers journaux reste une solution pour cette architecture afin de détecter les intrusions mais elle ne peut pas être effectuée et être efficace sur les fichiers journaux dans leurs états bruts. Le pré-traitement de ces fichiers est une tâche indispensable pour tout algorithme de corrélation car ces algorithmes nécessitent une représentation uniforme des données hétérogènes. Détection d’intrusions 19 Fig. 1.3 – Architecture d’une vision globale 1.3 L’état actuel des produits de sécurité Une grande infrastructure génère un nombre important d’alertes et d’événements de sécurité. Le besoin actuel des entreprises pour sécuriser au mieux leurs SI a poussé plusieurs éditeurs à développer de nouvelles stratégies. Ces stratégies se basent sur le management des événements remontés par tous les dispositifs déployés au sein d’une infrastructure. Le but est de présenter une vue synthétique de la sécurité du SI, remonter les attaques de haut niveau (résultat de la corrélation des événements), centraliser le traitement, créer des rapports personnalisés et de connaître l’état de chaque produit et du système surveillé en n’accédant qu’à une seule console de gestion. L’administrateur de sécurité voulant également connaître les activités des utilisateurs légitimes du SI, il existe des produits qui vont jusqu’à la construction de scénarios d’utilisation du SI. Par exemple les heures de connexion et de déconnexion des utilisateurs et les ressources qui ont été utilisées par l’utilisateur légitime dans une période donnée font parties de ce type de scénarios. La traçabilité d’un utilisateur complète les pièces manquantes pour la construction d’un scénario d’attaque comme elle peut aider l’administrateur de sécurité à changer sa stratégie ou à mettre des restrictions sur les activités des utilisateurs afin d’éviter des dommages considérables. Ces systèmes sont connus dans le marché sous le nom de SIM (Security Information Management) ou SEM (Security Event Management). Comme exemple de ces produits nous citons : le produit SMS3 (Security Management System) de l’entreprise française Exaprotect, ArcSight 4 , NSM5 (Intelletactics Network Security Manager) et SIMS 6 (CiscoWorks Security Information Management Solution) 3 http ://www.exaprotect.com ://www.arcsight.com 5 http ://www.intellitactics.com/products/nsm_overview.html 6 http ://www.cisco.com/en/US/products/sw/cscowork/ps5209/index.html 4 http 20 Conclusion 1.4 Conclusion Afin de détecter les intrusions, certaines sources d’informations qui peuvent contenir des traces d’intrusions doivent être surveillées et une certaine analyse sur ces informations doit être effectuée. Les sources de données à impliquer dans les mécanismes de détection d’intrusions ont évolué en même temps que les systèmes de détection d’intrusions. Un SI peut être vu comme un puzzle. Un IDS ne représente qu’une pièce du puzzle car il offre une vue partielle des activités intrusives dans un SI. La coopération entre produits de sécurité pour la détection d’intrusions a élargit cette vue, toutefois il manque encore des pièces pour compléter le puzzle. Dans ce chapitre, nous avons donc proposé une architecture d’un système de détection d’intrusions basée sur la vision globale du SI. La vision globale est réalisée par la coopération des différents mécanismes déployés dans les surveillances du SI. Ceci est réalisé par l’analyse des informations remontées dans les fichiers journaux des ressources jugées critiques par l’administrateur de sécurité comme les produits de sécurité, les équipements de connectivité, les systèmes d’exploitation, les applications et les services. 2 Problématique 2.1 Introduction Les organisations sont contraintes de déployer séparément des produits et des logiciels de technologies différentes s’adressant à chaque nouveau type de menace. De même, la communauté scientifique travaillant sur la détection d’intrusions a développé une variété de techniques pour la détection d’activités malicieuses de façon indépendante, les techniques ayant été appliquées à des sources de données variées (fichiers journaux d’audit, fichiers journaux des systèmes d’exploitation, fichiers journaux des applications, fichiers journaux du trafic réseau, etc.). Ces projets ont été mis en oeuvre séparément, pour leurs méthodes de collecte, leurs méthodes d’analyse et leurs méthodes de réponse. En général, leurs techniques ont été créées dans un cadre spécifique aux objectifs de leurs projets, les efforts fournis ayant été concentrés sur le réglage de leurs modèles. Les alertes et les événements remontés par de tels systèmes ne sont exploitables que dans le contexte pour lesquels ils ont été construits. Parallèlement, les éditeurs de produits annexes (matériels ou logiciels) qui ne font pas, à proprement parlé, de la détection d’intrusion mais qui font tout de même partie de l’arsenal d’outils de sécurité, évoluent également avec leurs techniques propriétaires, ne générant des traces exploitables que dans le cadre de l’usage de l’outil concerné. Les fichiers journaux sont les ressources les plus fondamentales pour tout expert en sécurité. Le fait que les sources de données soient différentes est significatif car elles promettent la découverte de plusieurs vues, la robustesse contre les intrusions, l’extensibilité et notamment l’interopérabilité. 21 22 Caractéristiques du système surveillé Nous avons évoqué dans le chapitre précédent que l’interopérabilité entre les produits déployés pour la surveillance du SI est absolument nécessaire. Elle fournit une couverture complémentaire pour la détection d’intrusion, une intrusion impliquant toujours plusieurs hôtes. Ces informations de sécurité générées ont de nombreux intérêt pour : – Le moteur de corrélation afin de détecter les scénarios d’attaques et les scénarios d’usage du SI, – L’administrateur de sécurité afin de générer des rapports sur les activités qui ont eu lieu dans le SI. Par exemple le nombre de connexions par jour, l’activité d’un compte utilisateur dans le SI. Il peut même aller jusqu’à l’évaluation du SI avec des métriques qui lui semblent importantes dans son contexte de travail, – L’investigation légale et le diagnostic qui permettent aux experts (voire aux services judiciaires d’un état) de conduire des investigations complexes à la recherche de preuves informatiques dans le grand volume d’événements et d’alertes, ainsi qu’à l’expert de sécurité de rechercher la cause d’un incident de sécurité et de corriger les failles du SI. – La prise de contre-mesure qui permet de déclencher des mécanismes automatiques capables de réagir quand des intrusions se produisent. – La prévision qui permet à un administrateur de changer sa politique de sécurité dans un SI. 2.2 Caractéristiques du système surveillé Comme nous avons vu les avantages d’un système qui fait coopérer tous les produits déployés pour la surveillance, nous cherchons à déterminer ce qui lui manque afin qu’il soit efficace. Pour ce faire, nous devons d’abord l’analyser en détail afin d’en connaître ses caractéristiques. Ce système se distingue par : – La diversité de source de données : la collecte de données est un élément important dans le processus de détection d’intrusion. Les données collectées à analyser pour la détection d’intrusion sont de deux types : – Alerte : un message émis par un analyseur remonté par les sondes de sécurité comme les IDS, les pare-feu, les antivirus. – Événement : un message émis par un mécanisme d’audit sur une ressource surveillée (comme un serveur web) ou sur un équipement (comme un routeur). La présence d’un analyseur au sein d’un équipement génère des alertes à la suite d’une analyse ; l’analyseur peut agréger plusieurs événements pour ne remonter qu’une seule alerte. Le niveau de détail exprimé dans une alerte n’est pas le même que pour un événement. Une alerte est un message de haut niveau et l’événement est un message de bas niveau. – La multitude de fournisseur de produits : les produits déployés proviennent de plusieurs fournisseurs. Chaque fournisseur de produit de sécurité implémente ses propres méthodes d’analyse et conçoit sa propre base de signatures ou de description de profils. Les produits peuvent avoir des fonctions différentes (comme la détection d’intrusion par un IDS et le filtrage de flux par un pare-feu) et peuvent provenir du même constructeur Problématique 23 ou de constructeurs différents. Ils peuvent aussi avoir les mêmes fonctions et provenir de constructeurs différents, comme le déploiement d’un pare-feu Cisco et d’un pare-feu Checkpoint. Parallèlement, les autres dispositifs qui remontent des événements peuvent provenir aussi d’éditeurs différents. Par exemple, dans la même organisation, il peut exister plusieurs systèmes d’exploitation comme Windows de Microsoft et un OS libre de type Linux. – Le manque de standard : jusqu’à février 2007, il n’existait pas de normes pour représenter les événements, ce qui a laissé la voie libre aux fournisseurs d’exprimer les faits à leurs manières. A partir de cette date, le format IDMEF (Intrusion Detection Message Exchange Format) [33] est devenu une norme pour le format des informations remontées par les IDS. Nous détaillerons ce format dans la section 2.4.1 . 2.3 Problèmes engendrés par la coopération : de la syntaxe à la sémantique. Dans ce type d’architecture, la même intrusion peut générer des alertes différentes si elle est détectée par différents produits de sécurité, détectée par les différents mécanismes d’audit sur les ressources critiques. Par exemple une ouverture de session sous Windows génère un événement qui a un format différent de celui généré par l’ouverture de session sous Linux. Par conséquent, l’hétérogénéité des sources de données génère des données hétérogènes, cela étant dû au manque de standard pour la représentation de ces données. L’interopérabilité entre ces différentes sources de données implique la gestion des données générées dans les fichiers journaux de ces sources. Par conséquent, l’hétérogénéité des formats d’alertes et d’événements présente un problème sérieux pour la coopération entre les sources de données dans le but de surveiller la sécurité d’un SI. Plusieurs aspects pour l’interopérabilité peuvent être identifiés. Une condition nécessaire pour l’interopérabilité de deux systèmes est l’interopérabilité syntaxique. Cette dernière implique que les données générées de deux systèmes différents peuvent être analysées syntaxiquement de la même manière (être d’accord sur le modèle de données). Une autre condition nécessaire pour l’interopérabilité de deux systèmes est l’intercompréhension qui implique que les deux systèmes se mettent d’accord sur le sens des données ainsi que sur la représentation du sens. Se mettre d’accord sur la syntaxe et sur la sémantique permet aux produits de coopérer dans la détection d’intrusion même s’ils ne sont pas conçus pour travailler ensemble. Une alerte ou un événement est une suite de chaîne de caractères écrite dans le ”format” implanté au niveau de la source de donnée et ”décrit” un fait. Chaque source de données propose son propre formatage de l’information remontée. La syntaxe de l’information remontée n’est pas identique au niveau de toutes les sources de données. Il devient donc indispensable de créer un modèle de données pour ces informations afin de fournir une représentation uniforme des alertes et des événements. Chaque alerte ou événement porte un sens sur une activité qui a eu lieu dans le SI. Les sources de données n’expriment pas le sens des activités de la même façon. Certaines sources utilisent une chaîne de caractère (suite de mots) pour décrire le sens. D’autres utilisent un 24 Syntaxe des informations de sécurité schéma de nommage (une taxonomie) où elles définissent des catégories de faits à l’aide d’une taxonomie et assigne ensuite une catégorie à l’événement ou l’alerte. Les sources de données rapportent le sens différemment même dans le cas où il s’agit de la même sémantique. Par exemple un événement de connexion d’un utilisateur sur le système d’exploitation Unix a le même sens qu’un événement de connexion d’un utilisateur sur le système d’exploitation Windows mais chaque source décrit le sens avec sa manière. Nous avons donc besoin de nommer les événements et les alertes à l’intérieur du modèle de données. Le schéma de nommage doit être identique pour tous les enregistrements des fichiers journaux. Un expert ne peut maîtriser qu’un ensemble restreint d’association sémantique/syntaxique. En effet, l’absence de modèle sémantique rend cette maîtrise très dépendante de l’expérience. De même, les algorithmes d’analyses, pour être évolutifs, doivent travailler à l’aide d’une sémantique propre. Sans cela, chaque logiciel d’analyse doit être particulièrement adapté à son cursus d’événements et d’alertes et la mise à jour de ce type de logiciel devient très complexe. La modélisation de la sémantique des informations de sécurité devient obligatoire pour la gestion des informations de sécurité et pour les processus de traitement de ces informations dans l’objectif de maintenir le niveau de sécurité d’un SI. Dans ce genre de contexte de travail, les deux contraintes que nous avons évoquées ci-dessus ne sont pas satisfaites. Dès lors, il est nécessaire d’avoir une représentation uniforme des alertes et des événements afin que ces informations puissent être gérées automatiquement. 2.4 Syntaxe des informations de sécurité Les premières tentatives de réalisation d’un modèle de données ont été entreprises par l’agence américaine - Defence Advanced Research Projects Agency (DARPA), qui a créé le Common Intrusion Detection Framework (CIDF) [104]. L’objectif du CIDF est de permettre l’interopérabilité des différents systèmes impliqués dans la surveillance du SI. Le groupe de travail sur CIDF s’est focalisé sur la création d’un langage qui décrit les informations remontées par les équipements de surveillance. Le Common Intrusion Specification Language (CISL) fut le résultat de leur travail. Les travaux sur CIDF ont été arrêtés en 1999 et ce format n’a été implanté par aucun produit. Certaines idées introduites dans CIDF ont encouragé la création d’un groupe de travail Intrusion Detection Working Group (IDWG) à l’IETF co-dirigé par les anciens coordinateurs de CIDF. 2.4.1 Modèle IDMEF La charte de l’IDWG est de définir des formats de données et des protocoles d’échange d’informations entre les systèmes de détection d’intrusions. L’IDWG a travaillé sur deux grandes familles de standards : – La normalisation des messages échangés Intrusion Detection Message Exchange Format (IDMEF) [33], qui spécifie le format des messages échangés entre les composants d’un système de détection d’intrusions. Problématique 25 – Un protocole permettant d’échanger les messages précédents Intrusion Detection eXchange Protocol (IDXP), qui définit les procédures et les mécanismes de transport entre les entités d’un système de détection d’intrusions. Afin de conserver entièrement l’information brute, le format IDMEF intègrera la terminologie utilisée par les IDS (l’événement, l’alerte, l’analyseur et le manager) avec sa propre terminologie. Fig. 2.1 – Le modèle de données IDMEF : (1) avec la description de l’événement portée dans l’événement brut (2) enrichi par une sémantique. L’IDMEF propose de représenter l’alerte avec le format DTD XML. Les alertes et les événements transcrits dans le format IDMEF n’ont donc pas obligatoirement la même taille mais respectent toujours la même structure. La classe IDMEF-Message (cf Fig 2.1 avec le cas (1)) constitue la classe principale et tous les messages IDMEF sont des instances de celle-ci. Elle est composée de deux sous-classes Alert et Heartbeat. – La classe Alert : quand un analyseur détecte un événement pour lequel il a été configuré, il émet un message Alert à son manager. Un message Alert peut être émis sur la détection d’un simple événement ou après corrélation de plusieurs événements, suivant le mécanisme de fonctionnement de l’analyseur. 26 Synthèse Quand un événement se produit, toutes les informations qui y figurent vont être modélisées dans la classe Alert. La classe Alert est composée de neuf sous classes : Classification, Source, Target, Analyser, AdditionalData, CreateTime, DetectTime et analyser time. – La classe Heartbeat : les messages Heartbeat sont envoyés par les analyseurs pour que les managers puissent déterminer leur statut. Autrement dit, elle constitue une trame visant à réaliser un bilan sur l’état des analyseurs. Le Heartbeat indique au manager que l’analyseur correspondant est opérationnel. La classe est composée de trois sous-classes (Analyser, CreateTime et AdditionalData). Le format IDMEF a aussi prévu la représentation du résultat de la corrélation de plusieurs alertes. Ce format est utilisé par de nombreux travaux de recherche comme dans [19] et par quelques produits qui réalisent le management des informations de sécurité (les SIM évoqués dans 1.3) comme le Produit SMS1 de l’entreprise française Exaprotect. La sémantique de l’alerte ou de l’événement est représentée dans le format IDMEF par la valeur de la classe Classification. Elle reprend le même message qui décrit la sémantique de l’événement et qui figure dans l’alerte brute ou l’événement brut. La mise en correspondance de chaque événement et de chaque alerte avec un format IDMEF va conserver dans le champ de la classe Classification le même message que celui remonté par la source de données. L’IDMEF ne résoud donc pas le problème de la sémantique qui doit être obtenue par analyse des valeurs des champs Classification. L’IDMEF répond de façon acceptable au problème de la représentation syntaxique des informations de sécurité. Mais il ne modélise pas leurs sémantiques. Le moteur de corrélation, ou n’importe quel mécanisme d’analyse, ne peut pas manipuler la sémantique des événements dans leurs formats bruts. En effet, il reste à fournir des efforts pour satisfaire la contrainte de l’intercompréhension. 2.5 Synthèse Nous avons vu que l’IDMEF n’a résolu que la moitié du problème. Il reste encore le problème de la modélisation de la sémantique des alertes et des événements à résoudre. Pour faciliter notre discours, nous allons utiliser le terme événement pour désigner les alertes et les événements et le terme message pour désigner la description d’une alerte ou d’un événement (exprimé par la classe Classification dans la norme IDMEF). L’IDMEF est un effort vers l’interopérabilité des systèmes de détection d’intrusions. De plus, il s’agit de la seule proposition soutenue par un organisme. Il est devenu une norme sous la forme de la RFC 47652 . Cependant, son adoption nécessite un certain effort de la part des éditeurs de logiciels et de produits de sécurité. Dans notre travail, nous adopterons ce modèle pour représenter les événements des produits impliqués dans la surveillance du SI. Un format de données commun n’est pas suffisant pour la gestion des informations de sécurité provenant de sources hétérogènes. Du point de vue opérationnel, la détection d’un scénario d’une attaque par le mécanisme de corrélation ne peut être efficace que si la description de la 1 http 2 http ://www.exaprotect.com ://www.rfc-editor.org/rfc/rfc4765.txt Problématique 27 sémantique des événements appartenant au scénario est la même au niveau de toutes les sources d’événements. Outre le modèle de données commun pour les événements, nous avons besoin de définir une sémantique des événements à l’intérieur du modèle de données. L’objectif de notre travail est de répondre aux problèmes d’hétérogénéité des différents messages de sécurité. Le modèle IDMEF a prévu une classe Classification pour la description de la sémantique de l’événement. Nous allons adopter ce modèle de données pour la description des informations de sécurité et nous allons développer une ontologie pour la description du sens des informations de sécurité. La classe Classification du modèle de donnée IDMEF sera représentée par une catégorie de l’ontologie qui décrit sa sémantique. Le système de surveillance sur lequel nous allons travailler concerne l’architecture illustrée sur la figure 2.2. Il est composé de trois modules : 1. Un module de collecte : un agent est installé sur chaque actif (ressource jugée critique par l’administrateur de sécurité) de l’organisation d’une entreprise ; un actif peut être un équipement comme un routeur ou un switch, un logiciel comme une base de données ou un service comme le service web ou le service de courrier électronique ; cet agent se charge de la collecte des événements remontés par chaque asset ou chaque produit de sécurité. Les assets sont choisis par le responsable de la sécurité de l’organisation en question. Nous avons prévu deux fonctions principales dans ce module : (a) Traitement de la syntaxe de l’événement : chaque événement brut sera transformé dans le modèle de donnée IDMEF. (b) Traitement de la sémantique de l’événement : la classe classification du modèle de données IDMEF portera le nom de la catégorie de l’ontologie qui décrit sa sémantique. Le modèle de données des informations de sécurité sur lequel s’appuie notre travail est illustré sur la figure 2.1 avec le cas (2). 2. Un module d’analyse : Les données collectées sont analysées par un moteur d’analyse afin d’effectuer les traitements prévus sur ces données, comme par exemple la reconstitution des scénarios d’attaques et des scénarios d’usage du SI par les algorithmes de corrélation. Ces scénarios sont détectés suivant la politique de détection implantée au niveau du produit. 3. Un module de réponse : Ce module décide comment répondre aux différents événements à l’aide des règles préprogrammées dans la base de la politique de réponse. Parmi les réponses possibles, l’envoi d’alertes à l’administrateur. 2.6 Conclusion La détection d’intrusions par coopération de différents dispositifs a besoin de nouveaux efforts dans le domaine de traitement et de modélisation des données brutes générées par les dispositifs de surveillance. En effet, sans la modélisation de la syntaxe et de la sémantique de ces données brutes, aucun mécanisme utilisant ces données ne peut être efficace même s’il implante de nouvelles technologies. Toutefois, les différents systèmes doivent être d’accord sur la façon de 28 Conclusion Fig. 2.2 – Système de détection d’intrusion dans le contexte des grandes infrastructures. l’exprimer. Nous avons vu que l’IDMEF apporte une solution pour l’interopérabilité syntaxique. L’IDMEF est devenue une norme qui nécessite des efforts de la part des constructeurs et des chercheurs pour l’utiliser afin d’uniformiser leurs alertes et événements. Il reste à fournir des efforts sur la modélisation de la sémantique des événements de sécurité, objectif de cette thèse. Deuxième partie Modélisation des informations de sécurité 29 31 Les différents équipements impliqués dans la surveillance d’un SI ont de nombreuses façons de rapporter les faits. Deux dispositifs différents surveillant les mêmes actions utilisent différents formats et différents vocabulaires pour exprimer les mêmes faits. Par exemple, lorsque un processus démarre sur un dispositif A, il rapporte ”processus a démarré (process has started)” dans son fichier journal. Toutefois, lorsque le même processus démarre sur le dispositif B, il peut rapporter ”B a commencé l’exécution (B has begun execution)”. Bien que les deux messages aient le même sens, ils sont présentés différemment. Il est donc difficile de corréler des messages provenant de sondes hétérogènes dû au manque de standard comme nous l’avons évoqué dans le chapitre précédent. Plusieurs travaux de recherche sur la corrélation ont été développés qui parfois ne traitent que des informations issues d’IDS, comme dans [32, 35], mais parfois traitent différentes sources de données dans le processus de corrélation comme dans [42, 139, 138] . Ces travaux apportent l’idée que la corrélation d’information à partir de différentes sources de données améliore la détection d’intrusions. Que ce soit le premier type de travaux ou le second, un point commun entre ces travaux est la nature hétérogène des données impliquées dans leurs mécanismes de corrélation rend les informations complexes et rend difficile l’automatisation des algorithmes de traitement. Les auteurs ne s’attachent guère sur la modélisation des données proprement dites, l’abordant essentiellement au moment de la description de leurs architectures. Par contre, les auteurs sont unanimes sur l’idée que ces données sont représentées dans un format normalisé ou dans le même standard. La plupart reprennent le format IDMEF pour la représentation des événements. Cependant, ils n’évoquent pas la modélisation de la sémantique des événements. Ces travaux détaillent plus les algorithmes de corrélation car ils représentent le coeur de leurs contributions. Les auteurs dans [2] réexaminent le modèle de donnée IDMEF comme un mécanisme d’échange de données et analysent comment les algorithmes de corrélation doivent être utilisés dans la vie réelle des systèmes. A travers leur analyse, ils mentionnent qu’un format de données seul n’est pas suffisant si la sémantique n’y est pas rattachée. Ils concluent enfin qu’il est nécessaire de définir la connaissance du domaine à un niveau plus haut à l’intérieur du modèle de données. Une autre étude a été effectuée dans [51] où les auteurs proposent un modèle général de corrélation. Ce modèle inclut tous les aspects de la corrélation (de la modélisation des informations fournies par les IDS à la génération de rapports des différents processus) à travers différents composants. Chaque composant est dédié à une tâche spécifique. Ils ont prévu un composant qu’ils ont appelé normalisation et qui s’attache à transformer chaque événement brut dans un format standard. Ils définissent le format standard dans leur modèle par une syntaxe et une sémantique commune. L’outil qu’ils ont développé afin de mettre en oeuvre leur modèle exprime la syntaxe des données par l’IDMEF et la sémantique en utilisant les identificateurs Common Vulnerabilities and Exposures (CVE3 ). Les auteurs se sont concentrés sur chaque aspect du processus individuellement au lieu de se concentrer uniquement sur l’efficacité globale de la corrélation dans le but de voir la façon dont chaque composant du processus de corrélation (y compris le composant normalisation) contribue aux résultats de la corrélation. Cependant, ces travaux montrent bien que la normalisation des informations de sécurité est une étape nécessaire 3 http ://cve.mitre.org/ 32 pour les algorithmes de corrélation. La corrélation n’est donc qu’une forme de la gestion des informations. Cette gestion ne pourra être efficace si les informations ne sont pas modélisées de la même manière. La gestion des informations de sécurité a besoin d’une modélisation de ces informations afin que les algorithmes proposés soient efficaces. En général, structurer un domaine facilite l’étude du domaine. En particulier, une classification sur les intrusions permet d’effectuer les statistiques sur les intrusions, observer des comportements et effectuer d’autres traitements comme la corrélation ou le diagnostic. L’objectif de la classification est de transformer la désorganisation en uniformité (régularité, homogénéité) ; elle est nécessaire afin de traiter la grande quantité d’informations auxquelles les humains et les processus de traitement sont confrontés. Nous avons besoin de faire un point sur la terminologie que nous allons utiliser dans la suite de ce chapitre : – Classification : la classification est la séparation ou classement des objets (ou échantillons) en catégories ou groupes. – Taxonomie : la taxonomie est l’étude des principes théoriques de la classification, y compris les procédures qui doivent être suivies pour créer des classes, et pour attribuer des objets aux classes. – Ontologie : l’ontologie est la spécification des concepts qui prévoit un partage et une compréhension commune du domaine de connaissances, qui peut être communiqué, intégré et réutilisé entre les personnes et les systèmes d’application. L’ontologie comprend essentiellement deux parties nécessaires : la définition des concepts et les relations entre eux [54, 120]. Plus généralement, une ontologie est une théorie du domaine. C’est un système très structuré de concepts couvrant les processus, les objets et les attributs d’un domaine et l’ensemble de leurs relations, avec un niveau de détail déterminé par le besoin d’une application, ou du domaine [101]. – Vulnérabilité : James définit une vulnérabilité par un défaut dans un logiciel qui, en l’exécutant, peut produire un comportement incorrect [128]. Bishop [9] voit qu’un système informatique est composé d’un ensemble d’états définissant les configurations courantes des entités qui le forment. Chaque état du système, accessible à partir d’un état donné, appartient à la classe des états autorisés ou non autorisés et toutes les transitions effectuées sont des transitions autorisées ou non autorisées suivant la politique de sécurité. L’auteur définit un état vulnérable par un état autorisé par lequel il est possible de transiter vers un état non autorisé du système en utilisant une transition autorisée. Nous définissons une vulnérabilité comme suit : une vulnérabilité est un défaut dans la conception d’un système, d’une application, d’une opération de management , qui pourrait être exploité pour violer avec succès la politique de sécurité du système. Les deux termes vulnérabilité et faille sont évoqués dans les divers travaux de recherche. Il y a ceux qui font la différence entre les deux et ceux qui les considèrent comme identiques. A notre avis, les termes dépendent essentiellement du contexte. Les chercheurs travaillant sur le management réseaux utilisent plutôt le terme faille tandis que les chercheurs du 33 domaine de la sécurité emploient plutôt le terme vulnérabilité. D’autre part, une faille est un défaut dans le système qui peut mener à une violation de la sécurité. Chaque vulnérabilité doit être dûe à au moins une faille, mais il est possible pour une faille de ne pas causer de vulnérabilité. – Attaque : une attaque (ou exploit) est le processus par lequel une ou plusieurs vulnérabilité(s) est/sont exploitées pour attaquer un système. Dans cette partie, nous examinerons l’état de l’art des travaux de recherche sur la modélisation des informations de sécurité - dans le chapitre 3, puis nous détaillerons notre contribution dans ce domaine - dans le chapitre 4. 34 3 État de l’art sur la modélisation des informations de sécurité 3.1 Introduction Plusieurs classifications sur les intrusions ont été présentées, certaines se concentrant sur les intrus et leurs méthodes (c’est-à-dire les menaces ou les techniques d’intrusion) et d’autres sur les caractéristiques des systèmes informatiques qui rendent l’intrusion possible (c’est-à-dire les vulnérabilités ou les failles de sécurité). Nous allons commencer par prendre le point de vue des attaques, puis celui des vulnérabilités pour arriver ensuite à une synthèse des informations de sécurité issue des deux approches. 3.2 Modélisation des attaques Il existe de nombreux travaux sur la classification des attaques, quelles soient générales ou spécifiques à une attaque. Les classifications générales couvrent un ensemble d’attaques, tandis que les classifications spécifiques analysent une attaque en détail. Cette section est consacrée aux classifications générales sur les attaques. Les travaux de recherche sur la modélisation des attaques ont utilisé trois grandes approches pour décrire les informations sur les attaques : les listes, les taxonomies et les ontologies. 35 36 Modélisation des attaques 3.2.1 Classification par listes Les premières approches sont basées sur de simples listes de termes. Ils classent les attaques en sélectionnant les termes les plus descriptifs. Le nombre de termes diffère d’un auteur à un autre. Par exemple, Cohen définit 39 termes dans [28] et 94 dans [62]. Icove [62] utilise une liste de 24 termes. D’autres auteurs ont construit des catégories qui regroupent plusieurs termes sous un thème commun. Le nombre de catégories devient relativement court, une attaque étant classée en sélectionnant la catégorie qui décrit le mieux l’information portée par l’alerte. La classification de Cheswick et Bellovin fait partie de ce type de classification. Leurs travaux dans [24] décrivent une liste de sept catégories ; chaque catégorie est définie par une description et c’est la description de la catégorie qui guide le processus de classification. Jayaram et Morse ont développé une liste de catégories pour des menaces de sécurité pesant sur les réseaux [65]. Cinq catégories ont été proposées : la menace physique, la vulnérabilité, les programmes malveillants, l’usurpation de l’identité des utilisateurs légitimes dans le but d’accéder aux ressources du système (obtention des droits d’accès), et les menaces basées sur les communications. Cette taxonomie ne couvre qu’une partie des menaces et les catégories se recouvrent. Les listes sont des modèles à plat qui ne décrivent pas les propriétés des attaques. Certaines alertes ne peuvent être représentées par aucun terme proposé, la liste n’étant pas suffisamment exhaustive pour couvrir tous les types d’attaques. L’utilisation de catégories qui regroupent plusieurs termes réduit le nombre de catégories mais ajoute une certaine complexité. En effet, ce type de classification ne guide pas le processus de classification ; les propriétés des attaques ne sont pas séparées et par la suite, les termes ne peuvent pas être mutuellement exclusifs, rendant la classification difficile à appliquer et à faire vivre. 3.2.2 Les taxonomies Perry [99] a créé une matrice à deux dimensions afin d’élargir le champ de la classification et de former un schéma qui fait correspondre les attaquants potentiels aux dommages potentiels. Il est difficile d’associer des attaquants potentiels aux dommages spécifiques et vice versa, par manque de restrictions sur les attaquants spécifiques par rapport aux dommages spécifiques. Les cellules de cette matrice ne peuvent pas couvrir tous les types d’attaque, mais la représentation sous forme de matrice représente une amélioration par rapport aux classifications représentées sous forme de liste car elle tente de séparer les caractéristiques d’une attaque. Cette classification est une forme de taxonomie. Stallings [116] se base sur les menaces de la sécurité durant la transmission de données à travers l’Internet. Son modèle se focalise sur les différentes actions qui penvent s’appliquer aux données. Il définit quatre catégories d’attaques : Interruption, Interception, Modification, Fabrication. Cette taxonomie présente un cadre d’application spécifique qu’aux données avec une classification très générale qui ne pourrait pas être considérée comme suffisante pour accéder aux propriétés des attaques. État de l’art sur la modélisation des informations de sécurité 37 Dans [27, 103], les auteurs se sont intéressés à regrouper les alertes suivant les résultats des attaques (effets ou conséquences). D’autres auteurs ont pu construire leurs taxonomies sur des données empiriques en se basant sur un corpus d’alarmes générées dans un environnement spécifique pour développer une liste de catégories. Neumann et Parker ont développé un modèle qu’ils appellent SRI Computer Abuse Methods Model. Ils ont publié dans [93] 9 classes de techniques d’attaques en se basant sur des données empiriques d’environs trois mille cas. Neumann s’est basé sur la classification de [93] et l’a étendu en ajoutant les vulnérabilités exploitées et l’impact de l’attaque [92]. Lindqvist et Jonson [79] ont monté une expérience d’intrusion sur un système dans le but de trouver des mesures opérationnelles pour la sécurité d’un système et ainsi de répondre aux besoins des propriétaires et des administrateurs du système. Ils ont remarqué que l’intrusion peut être décrite par plusieurs attributs. Ils ont retenu comme attributs les techniques d’intrusion et les résultats d’intrusion pour former leur taxonomie. Les travaux de [93] ayant portés sur les catégories de techniques d’attaques, Lindqvist et Jonson se sont basés sur ces catégories pour enrichir la partie concernant les techniques d’intrusion de leur taxonomie. Au final, ils n’ont réutilisé et étendu que trois catégories de cette dernière. Les personnes qui ont menés les expériences d’attaques dans [79] étaient des utilisateurs autorisés dans le système. Les auteurs n’ont donc réutilisé et étendu que les trois catégories des techniques d’intrusion développées dans les travaux de Neumann qui étaient liées aux utilisateurs autorisés à utiliser le système. Kumar dans son manuscrit de thèse [71] a développé une classification des attaques basée sur les complexités des signatures (motifs ou pattern) laissées dans les fichiers journaux par les intrusions. La classification est prévue pour une utilisation dans les systèmes de détection d’intrusions basée sur les techniques de pattern matching. Kumar a proposé une taxonomie des attaques selon la complexité de la signature par laquelle une attaque est détectée. De son point de vue, la complexité de la signature est liée à la complexité du calcul de la détection d’une attaque. Kumar classe les attaques en fonctions de leurs manifestations dans les données collectées par des capteurs. Ces manifestations ont portées sur la difficulté de la détection de la signature, non sur la présence de certains types de manifestations. Elles ne pourront pas servir à la détection d’intrusions. Howard [60] a développé une taxonomie des incidents basée sur les données du Computer Emergency Response Team (CERT)1 collectées de 1989-1995. Il a créé une taxonomie dont le schéma de classification est composé des types d’attaquants, des outils utilisés, des informations sur les accès, des résultats et de l’objectif de l’attaque. Sa taxonomie présente des incidents du point de vue opérationnel. Il a souligné la nécessité de structurer les rapports d’incidents pour améliorer les réponses suite à un incident. Les travaux de Howard et Longstaff évoquent le besoin d’un langage commun pour la représentation des informations de sécurité ainsi que les avantages que peut offrir un tel langage [59]. Ils ont développé une taxonomie dont l’objectif est de classer et de comprendre les informations sur les incidents de sécurité et sur les vulnérabilités. La taxonomie proposée par Howard 1 http ://www.cert.org/ 38 Modélisation des attaques et Longstaff s’est basée sur la taxonomie d’Howard [60] en lui ajoutant quelques catégories et en fusionnant d’autres [59]. Les catégories de la classification reposent sur les attaquants, les outils, les vulnérabilités, les actions, les cibles, les résultats non autorisés et les objectifs. Cette taxonomie fait la différence entre plusieurs notions et définit l’événement, l’attaque et l’incident. Daniel Weber [126] a proposé une taxonomie d’attaques basée sur trois éléments : le niveau du privilège requit par l’attaquant, les moyens par lesquels l’attaque a été effectuée et l’effet d’une attaque. Les auteurs dans [80] au MIT’s Lincoln Laboratory ont adopté la taxonomie de Weber la réduisant en se basant uniquement sur l’effet de l’attaque. Les auteurs dans [67] critiquent les taxonomies sur les attaques citées ci-dessus en arguant le fait que prendre le point de vue de l’attaquant biaise la modélisation : ils parlent de taxonomies centrées sur l’attaque (attack-centric) car ils se sont basées sur les objectifs des attaquants. Ils proposent une taxonomie centrée sur la défense (defense-centric) se justifiant par le fait que les administrateurs de sécurité ainsi que les processus de détection ont besoin d’un moyen de déterminer si leurs processus de détection sont réellement opérationels. Ils suggèrent qu’une taxonomie centrée sur la défense sert de manière plus efficace qu’une taxonomie centrée sur les attaques. Leur schéma de classification est composé de : symbole étranger (nouvelle manifestation d’une attaque présente dans le fichier journal), séquence minimale étrangère (séquence d’appels système qui n’a jamais été présente dans les enregistrements normaux), séquence dormante (la manifestation d’une attaque contenant une sous séquence d’une séquence d’un enregistrement normal des appels systèmes) et séquence quasi normale (traduction personnelle de ”Non-anomalous sequence”), c’est-à-dire la manifestation d’une attaque par une séquence d’appels système qui correspond exactement à une séquence normale. L’idée est intéressante, la taxonomie développée pouvant permettre de définir des seuils pour les algorithmes de corrélation afin de détecter des attaques inconnues. Chakrabarti et Manimaran dans [20] ont présenté une taxonomie des attaques sur les infrastructures. Leur objectif était de chercher des solutions à long terme afin de parvenir à sécuriser les communications sur Internet. Quatre catégories d’attaques ont été proposées. La première concerne le service DNS qui est l’une des clés de voûte actuel de l’Internet. La deuxième se rapporte aux tables de routages et aux attaques qui visent à les altérer. La troisième catégorie est constituée par un ensemble de menaces visant à apporter une mauvaise gestion des paquets. La quatrième et dernière catégorie est constituée par les attaques DoS et DDoS, qui peuvent également résulter des deux types d’attaques précédentes. Une étude dans [68] s’est concentrée sur les incidents au sein du secteur commercial et du secteur gouvernemental, se focalisant sur la façon dont les secteurs subissent les différents types d’attaques. Une nouvelle taxonomie avec quatre attributs a été élaborée. Les attributs sont les méthodes opératoires qui représentent les méthodes utilisées par l’attaquant pour effectuer une attaque, l’impact qui se réfère à l’effet de l’attaque, la Source qui se réfère à la source de l’attaque et la Cible qui se réfère à la victime de l’attaque. Les auteurs ont analysé les données sur les incidents de sécurité dans les deux secteurs. Leurs analyses montrent que les attaques, les impacts et les sources d’attaque sont différents au niveau des deux secteurs et ils ont généralisé ce constat en concluant que les attaques vers des cibles différentes sont différentes. Ils ont montré l’intérêt de l’utilisation d’une normalisation des informations sur les incidents. En effet, elle leur État de l’art sur la modélisation des informations de sécurité 39 a permis d’effectuer différentes analyses, des statistiques et de tirer des conclusions. Connaître les attaques menées vers un secteur économique, leurs impacts et leurs cibles, contribuent à créer une plus grande prise de conscience de ce qui se passe dans une organisation. 3.2.3 Les ontologies sur les attaques Peu de travaux de recherche portent sur la modélisation des informations de sécurité par une ontologie. Le besoin d’une ontologie pour les informations de sécurité a été souligné par Raskin [101]. Il soutient l’idée de l’adoption de l’ontologie comme un moyen puissant pour organiser et unifier la terminologie et la nomenclature des informations du domaine de la sécurité. Ils ajoutent que l’utilisation de l’ontologie pour les informations de sécurité augmentera l’automatisation, pour permettre la modularité et prévoir de nouveaux phénomènes dans le domaine de la sécurité. Undercoffer et al. [119] sont les premiers à proposer une ontologie pour la modélisation des attaques. Les auteurs ont commencé par le développement d’une taxonomie qui a comme objectif de donner une vue générale du système, puis une ontologie centrée sur la cible (targetcentric). En effet, il semble que c’est une bonne démarche de se focaliser sur la cible. L’attaquant effectue plusieurs actions que nous pouvons détecter, uniquement si ces actions laissent des traces dans le SI, par analyse des fichiers journaux des cibles surveillées. Leur taxonomie est constituée de la cible, des moyens et des conséquences d’une attaque, et de l’attaquant. La taxonomie a été étendue à une ontologie, en définissant les différentes classes, leurs attributs et leurs relations. Les auteurs se sont basés sur un corpus de 4000 alertes pour décrire leur domaine. Leur ontologie a été testée par des scénarios d’attaque afin de détecter une attaque distribuée. Dans leur expérience, tous les IDS partagent la même ontologie. Quand un IDS détecte une nouvelle attaque, il envoie cette information exprimée par l’ontologie aux autres IDS pour l’ajouter dans leurs bases de connaissances et vérifie si elle peut être corrélée avec d’autres alertes. Cette ontologie a été déployée comme un modèle de données pour les attaques. Elle exprime donc à la fois la sémantique et la syntaxe. 3.2.4 Les langages d’attaques Plusieurs auteurs proposent la détection d’intrusions à travers des langages d’attaques. Ces langages sont conçus pour décrire les manifestations d’attaques dans un format approprié. Ils sont utiles pour analyser les relations à travers différentes attaques. Leurs but est d’identifier les attaques coordonnées contre le système. Ces langages sont classés en six classes distinctes selon [48]. – Les langages de description d’exploit sont utilisés pour décrire les étapes suivies pour exploiter des failles dans le système. – Les langages d’événements sont utilisés pour décrire les événements. Ces événements sont les données de base d’un processus d’analyse. Cette classe de langage se focalise sur la spécification du format de données. Dans la plupart des cas, il n’y a pas une définition formelle pour ces langages. Il y a plutôt des descriptions en langage naturel du format de chaque type d’événement. 40 Modélisation des vulnérabilités – Les langages de détection sont utilisés pour fournir les mécanismes identifiant la manifestation d’une attaque. – Les langages de corrélation sont actuellement un sujet de recherche très actif. Ces langages comptent sur la sémantique des alertes provenant des différents systèmes de détection d’intrusions. Ils spécifient les relations entre les attaques pour identifier les attaques coordonnées contre le système. – Les langages de description d’alertes sont utilisés pour décrire les informations sur les attaques détectées. – Les langages de réaction sont utilisés pour exprimer les actions à prendre pour réagir à la détection des manifestations d’attaques. Ces langages ont des caractéristiques différentes mais sont utiles dans le contexte de détection d’intrusions suivant des environnements particuliers. Ils se basent sur des modèles d’alertes ou d’événements pour effectuer leurs modélisations. Ils ne modélisent pas la sémantique de l’alerte mais ils utilisent des taxonomies d’attaques implicitement dans leurs modélisations. 3.3 Modélisation des vulnérabilités Les vulnérabilités semblent être omniprésentes. Dans chaque système, les erreurs de programmation, les erreurs de configuration, les erreurs opérationnelles ont permis à des utilisateurs non autorisés d’accéder au système, ou à des utilisateurs autorisés d’entreprendre des actions non autorisées. Les vulnérabilités représentent un élément central pour attaquer une application ou un programme. Nous pouvons prévenir un exploit en identifiant et en éliminant les vulnérabilités présentes dans un système. Cette section évoque les travaux de recherche qui portent sur la modélisation des vulnérabilités encore appelées failles. Landwehr et ses collègues [73] ont développé une taxonomie qui classe les failles selon la façon dont la vulnérabilité est introduite dans le système, la date d’introduction dans le système et sa localisation dans le système. Leur taxonomie était destinée à identifier les problématiques dans la conception d’un système et la façon dont la faille de sécurité à été introduite dans le code. Cette taxonomie permet d’aider les concepteurs de systèmes et les programmeurs à créer des systèmes plus sûrs. Bishop [8] propose une approche similaire à celle de [73] visant à éclaircir les caractéristiques d’un programme qui pourrait lui permettre d’être exploités dans une attaque. Il a développé une taxonomie qui dispose d’un schéma de classification composé de six attributs. Chaque vulnérabilité est classée suivant les six attributs de la taxonomie. Les six attributs représentent respectivement la nature de la faille, la date de l’introduction de la faille dans le système, le gain de l’exploitation de la vulnérabilité, la cible affectée par cette vulnérabilité, le minimum de composants nécessaires pour exploiter la vulnérabilité et la source qui a identifié la vulnérabilité. Un composant désigne un programme ou une commande, cet attribut permet aux administrateurs de découvrir l’exploit réalisé en analysant les fichiers journaux des composants en question. Bishop a repris les classes concernant la date d’introduction de la vulnérabilité dans le système proposé dans [73] et les a modifié. Dans [73], les auteurs définissent la date de État de l’art sur la modélisation des informations de sécurité 41 l’introduction d’une vulnérabilité par au cours de développement, au cours de maintenance et au cours de l’opération. Bishop argue qu’il est difficile de distinguer ces trois phases dans la vie d’un programme. Il a repris ces trois classes concernant la date d’introduction de la vulnérabilité et il a ajouté une définition explicite pour chaque date dans le but de soulever l’ambiguïté. En étant conscients de ces caractéristiques, les concepteurs des systèmes peuvent plus facilement détecter les vulnérabilités avant qu’elles ne soient découvertes et exploitées par des attaquants. À cet égard, la taxonomie de Bishop sur les vulnérabilités est similaire à celle sur les failles dans [73]. Aslam dans [4] a développé une taxonomie des failles dans le système d’exploitation Unix qu’il a désigné par “security faults”. Elle est composée de 3 catégories : les erreurs de codage mis en place pendant le développement de logiciels, les défauts de fonctionnement qui résultent d’une mauvaise installation du logiciel, les défauts de l’environnement lorsqu’un programme est utilisé dans un environnement pour lequel il n’était pas prévu. Sa motivation principale était de classer d’une manière non ambigüe les failles de sécurité afin de pouvoir utiliser cette classification pour organiser les vulnérabilités dans une base de données et faciliter le traitement des différentes requêtes d’identification des failles dans le système et le maintien des informations sur les patches. La taxonomie ne représente pas le modèle de donnée de la base de données, elle représente juste la description de la vulnérabilité dans la table des vulnérabilités dans la base de données. Krsul [70] a construit une taxonomie des vulnérabilités des logiciels en s’appuyant sur le travail de Aslam. La classe à laquelle la vulnérabilité appartient dépend essentiellement des hypothèses des programmeurs. Par exemple, une des hypothèses est que la longueur d’une variable d’environnement transmise à un programme est d’une longueur maximale fixée par le programmeur, ce qui est très souvent faux. Les vulnérabilités sont groupées en fonction de la similitude des hypothèses fausses qui ont introduit la vulnérabilité. Cette taxonomie, et celle d’Aslam, visent à aider les concepteurs de systèmes et de programmes plutôt que les administrateurs de sécurité et les processus de détection des comportements malveillants. Computer Emergency Response Team (CERT2 ) à l’université de Carnegie Mellon maintient une liste sur des vulnérabilités et des exploits. Il attribut un identificateur unique pour chaque vulnérabilité. Les utilisateurs de la liste peuvent lancer des recherches sur la base des vulnérabilités en se basant sur des mots clés et sur des opérateurs logiques. La description de la vulnérabilité est exprimée par un texte sur plusieurs lignes, mais cette liste reste difficile à exploiter par des processus de traitement. Le projet Common Weakness Enumeration (CWE)3 a pour ambition de nommer, décrire et classer de manière universelle les failles de sécurité logicielles, que ce soit au niveau du code, de la conception ou de l’architecture, comme le débordement de tampon, la définition de mots de passe, les pointeurs logiciels mal définis, la gestion des cookies, etc. Plus de 600 failles logicielles ont déjà trouvé leur place dans ce nouveau dictionnaire, sous la forme de fiches détaillées. Les 2 Organisme officiel chargé d’assurer des services de prévention des risques et d’assistance aux traitements d’incidents, destinés aux entreprises et/ou aux administrations, dont les informations sont généralement accessibles à tous. 3 http ://cwe.mitre.org/. Un organisme américain à but non lucratif qui réalise, entre autres, des travaux de RD pour l’armée des États-Unis. 42 Les caractéristiques des catégories des informations de sécurité failles sont organisées dans une taxonomie. Le projet est réalisé en collaboration avec plus de 40 organisations partenaires, dont IBM, Microsoft, Oracle, OMG, MIT et Unisys. Une tentative pour aider à la classification et le partage des informations d’attaque est la collection de Common Vulnerabilities and Exposures (CVE) par le MITRE4 . L’identifiant CVE est une référence de la forme CVE-AAAA-NNNN (AAAA est l’année de publication et NNNN un numéro incrémenté). Cette liste contient une description succincte de la vulnérabilité concernée, ainsi qu’un ensemble de liens que les utilisateurs peuvent consulter pour plus d’information. Le CVE est un dictionnaire qui fournit des noms communs pour les failles et les vulnérabilités de sécurité publiquement connues, comme les défauts d’implémentations des logiciels, les erreurs de conception ou les configurations non sécurisées. Ces différentes listes peuvent être utilisées comme une documentation sur les vulnérabilités et ne peuvent pas être impliquées dans un processus de détection. Ces listes ont besoin d’être organisées dans des taxonomies. Dans [45] l’auteur mentionne que l’utilisation de nom commun permet de corréler les données de multiples bases de données et qu’il devient facile d’identifier le remède nécessaire pour réparer les problèmes si les produits de sécurité intègrent les noms CVE dans leurs classifications des événements de sécurité. L’auteur propose de classer la liste CVE suivant la taxonomie d’attaque proposée dans [89]. 3.4 Les caractéristiques des catégories des informations de sécurité On ne peut proposer une méthode de classification sans se définir des objectifs précis pour un tel processus. En effet, la définition de l’objectif nous guide dans le développement du processus. Dans le contexte de la classification des événements de sécurité, un certain nombre de caractéristiques du processus de classification ont été évoqué par différents auteurs. Chacun des travaux dans [1, 8, 60, 70, 79] a identifié ce qu’il semble être les propriétés nécessaires pour une taxonomie servant de base à la classification. La compilation de tous ces travaux permet d’identifier les propriétés suivantes : – Acceptable Elle doit être logique et intuitive de sorte qu’elle puisse être approuvée par la communauté, – Compréhensible Pour les experts de sécurité et pour ceux qui ont un intérêt à l’utiliser, – Exhaustive Elle doit couvrir toutes les attaques de telle sorte que chaque attaque trouve une catégorie, – Déterministe la procédure de classification doit être clairement définie, – Non ambiguë Elle doit utiliser des termes parfaitement bien définis par la taxonomie pour enlever toute ambiguïté et pour qu’une alerte ne soit classée que dans une catégorie, – Mutuellement exclusive Les catégories doivent avoir des intersections vides, – Convenable elle doit répondre au besoin pour lequel elle a été développée, – Spécifique Elle doit être conforme à la terminologie de la sécurité, – Applicable Elle doit être utile pour rapporter les incidents ou pour effectuer des requêtes. 4 http ://www.mitre.org/. État de l’art sur la modélisation des informations de sécurité 43 Pour assurer la présence de toutes ces caractéristiques, il est nécessaire d’utiliser une ontologie à la place d’une taxonomie. En effet, une grande partie des caractéristiques citées ci-dessus sont assurées par une ontologie comme par exemple non ambiguë, les termes clairement définis, mutuellement exclusive. Après avoir longuement travailler avec des experts de la sécurité, nous ajoutons une caractéristique très importantes : l’ontologie être consensuelle, c’est-à-dire que toutes les personnes qui travaillent avec cette ontologie doivent l’accepter. Une ontologie est une spécification consensuelle et formelle de conceptualisations [54]. Elle fournit une connaissance partagée et commune sur un domaine, et peut être utilisée par des humains ou des logiciels applicatifs. La majorité des travaux décrits dans la section précédente ont développé des taxonomies d’attaques ou de vulnérabilités, ce qui a l’avantage d’être suffisamment simple pour des experts humains. Les ontologies se basent sur des taxonomies, mais permettent également à des algorithmes de raisonner sur les termes qui composent une ontologie. Une ontologie permet de se rapprocher de la réalité et de substituer l’objet par sa description pour le manipuler. Une ontologie ne va pas seulement permettre de décrire les informations de sécurité mais aussi de corréler ces informations à partir de ce que nous avons décrit. 3.5 Discussion La classification des informations de sécurité a de grand intérêt pour les processus qui permettent d’évaluer la sécurité d’un SI vis à vis des activités à la fois intrusives ou non qui ont eu lieu. A travers ces travaux de recherches nous constatons que : – L’évolution des travaux portent à la fois sur deux axes principaux : les indicateurs qui peuvent définir une attaque et la manière de représenter ces indicateurs. Les indicateurs changent d’un travail à un autre et peuvent être, un simple terme, un thème qui couvre plusieurs termes, des propriétés propres à des attaques comme les outils utilisés et les effets ou plusieurs propriétés comme les classifications de Howard et du laboratoire SANDIA qui proposent plusieurs indicateurs pour décrire une attaque. La manière de représenter les attaques a évolué dans le temps ; elle a pris respectivement l’une de ces trois formes : une liste, une taxonomie ou une ontologie. Les inconvénients d’une représentation sous une forme de liste ont poussés les auteurs à utiliser des taxonomies et les inconvénients des taxonomies ont conduit à l’utilisation des ontologies. – Type de classification : les classifications peuvent être empiriques ou non. Les classifications empiriques se basent sur l’étude d’un échantillon d’événements collectés suite à une expérience d’intrusion ; les auteurs dans ce cas se basent sur des indications dérivées à partir de cette expérience en faisant des statistiques sur l’échantillon ou en se basant sur des phénomènes qui se répètent. Ce genre de taxonomie ne couvre que le contexte dans lequel les expériences ont été réalisées. En effet, elle dépend des types d’utilisateurs qui mènent les attaques et des actions effectuées sur des cibles bien spécifiques ; elle ne modélise qu’une partie des faits qui peuvent survenir dans un SI. Quant aux classifications non empiriques, elles ne se basent pas sur des fondements plus théoriques et sont guidées par l’intuition des concepteurs et par l’objectif de la classification ; elles peuvent reprendre des travaux existant tout en étendant, fusionnant ou ajoutant des catégories. 44 Discussion – Angle de vision : la question qui se pose ici est la suivante : de quel coté nous nous plaçons pour rapporter les faits ? Est-ce du coté de l’attaquant ? Ou du côté du système surveillé ? Quelques auteurs s’attachent à se placer au niveau de l’attaquant et ils ont décrit les faits à partir de cette vision. Quand à d’autres, ils se sont placés à l’intérieur du système pour rapporter les faits. Concevoir une classification du point de vue de l’attaquant peut générer des attributs pour lesquels il est impossible de leur attribuer des valeurs sans ambiguïté. Dans le cas de la taxonomie du laboratoire SANDIA par exemple, l’attribut attaquant fait partie de la liste des attaquants suivants : ”Hackers, Spies, Terrorists, Corporate Raiders, Professional Criminals, Vandals, Voyeurs”. Comment pourrions nous identifier le type de l’attaquant dans ce cas là ? Les seuls indices sur les intrusions que nous pouvons identifier se trouvent dans les fichiers journaux des équipements qui surveillent l’organisation. Donc la meilleure façon est de se placer du côté de la cible pour mieux modéliser les informations de sécurité. – Niveau d’abstraction : les produits de sécurité utilisent différents langages pour rapporter les faits. Quel principe adopter pour rapprocher ces faits ? Par exemple nous avons vu dans le travail de [71] qu’il a utilisé le principe de complexité de calcul pour trouver un point commun qui rapproche les faits. Ce niveau d’abstraction choisit par Kumar n’apporte pas une aide aux processus de détection d’intrusions. Faire une abstraction des équipements est un point essentiel mais il faut adopter le niveau qui peut être utilisé pour la détection d’intrusions. – Contexte générale ou spécifique : déterminer le contexte de la classification est essentiel. Certains auteurs ont créé des classifications spécifiques suivant le contexte de leurs expériences ou de leur projet de recherche. Le but d’une classification pour les informations de sécurité est de répondre à l’architecture des SI. Par exemple l’ajout d’un composant dans le SI ne devrait pas influencer le fondement de la classification. Pour cela il doit être pris en compte dans la conception de la classification même s’il n’existait pas dans le SI. – Le niveau de détail : nous ne pouvons pas parler de classification des informations de sécurité sans parler du niveau de détail de ces informations. En effet, un processus de corrélation va traiter les informations générées par les équipements de sécurité. Ces informations jouent un rôle important dans la classification. Le niveau de détail est définit différemment pour chaque système, et peut contribuer à une ambiguïté si le niveau de détail n’est pas identique - ou compatible dans l’ensemble de la modélisation. Il ne faut pas oublier que l’objectif de la corrélation n’est pas de refaire un IDS mais de donner une vue synthétique de ce qui se passe dans le SI. Donc modéliser les informations avec un niveau de détail très bas revient à faire des IDS ! 4 Proposition d’une modélisation 4.1 Introduction L’objectif de notre travail est de fournir un mécanisme qui permet de modéliser les informations de sécurité d’une manière compréhensible par des experts, mais également exploitable par des applications, des processus de détection d’intrusions, fondée sur des critères pertinents. Au cours de l’état de l’art, nous avons pu constater que les travaux précédents tentaient de modéliser exclusivement les attaques et/ou les vulnérabilités. Par contre, notre travail s’intéresse à modéliser les informations collectées par les produits de sécurité ainsi que les informations contenues dans les fichiers journaux des ressources sensibles du SI que nous souhaitons surveiller, sans se limiter aux attaques et aux vulnérabilités. Cela transparaît dans l’architecture établie dans le chapitre précédent permettant une vision globale de la sécurité du SI. Nous considérons que les informations contenues dans les fichiers journaux des ressources font parties des informations de sécurité. D’une part, leurs intégrations aux informations sur les attaques complètent les parties manquantes pour construire les scénarios d’attaques et d’autre part, elles permettent de construire les scénarios d’utilisations du SI. En effet, la connaissance fournie au processus de détection d’intrusions va être plus étendue et il sera possible de renforcer les SI contre les intrusions avec l’utilisation de ces connaissances. Les ontologies fournissent une manière de partager la compréhension des termes utilisés par les experts humains et par les programmes. Actuellement il n’existe aucune ontologie permettant de conceptualiser les informations de sécurité d’une manière standard. Nous allons développer au cours de ce chapitre une ontologie que nous appelons Ontology for Intrusion Detection (OID). OID va établir une sémantique bien définie qui permet de raisonner sur les événements 45 46 Source de données de sécurité à un niveau d’abstraction supérieur, facilitant de ce fait l’automatisation des tâches de gestion de ces informations. Les événements générés dans notre type d’architecture décrivent des activités malveillantes (des attaques) mais également des activités légitimes. Il est important de représenter ces deux types d’informations de la même manière afin que ces données puissent subir les mêmes traitements. Il est nécessaire de faire une abstraction de ces deux types d’informations, pour prendre en compte l’hétérogénéité des équipements impliqués dans la surveillance du SI - et de leurs langages, afin de ne pas créer une modélisation spécifique à chaque produit ou à chaque type d’événement. 4.2 Source de données Le choix des sources de données à impliquer dans la détection d’intrusion dépend actuellement des ressources d’un SI jugées critiques par l’organisation en question. Ces sources de données peuvent être placées dans des endroits différents du réseau d’une organisation ou sur ses hôtes comme le montre la figure 4.1. Fig. 4.1 – Source de données Plusieurs informations peuvent figurer dans les fichiers journaux. Afin de donner une idée sur les informations que nous allons modéliser, nous décrivons quelques fichiers journaux qui peuvent être impliqués dans la détection d’intrusions : – IDS : le fichier journal de l’IDS est une source de données réseau et/ou système générée par les IDS. Il contient une séquence d’événements concernant les attaques effectuées contre le système surveillé, les tentatives d’accès au système surveillé, les comptes qui se connectent sur l’IDS ainsi que les erreurs qui peuvent survenir. – Scanner de vulnérabilités : le fichier journal du scanner des vulnérabilités est une source de données système générée par le scanner des vulnérabilités. Elle contient une séquence d’événements concernant les vulnérabilités détectées sur le système surveillé, des informations sur l’état du scanner ainsi que les erreurs qui peuvent survenir sur le scanner. – Antivirus : le fichier journal de l’antivirus est une source de données réseau et/ou système générée par les antivirus. Elle contient une séquence d’événements concernant les virus Proposition d’une modélisation 47 détectés, les informations sur l’antivirus ainsi que les erreurs qui peuvent survenir sur le fonctionnement de l’antivirus. – Pare-feu : le fichier journal du pare-feu est une source de données réseau générée par les pare-feu. Elle contient une séquence d’événements concernant les flux acceptés et les flux refusés qui passent à travers le pare-feu, les comptes connectés sur le pare-feu, les modifications effectuées sur les règles d’accès ainsi que des erreurs qui peuvent survenir. – DNS (Domain Name System) : le fichier journal DNS est une source de données réseau générée par les serveurs DNS. Elle contient une séquence d’événements concernant les requêtes de la part des clients, les réponses aux requêtes de la part du serveur, les changements effectués sur la table de mappage, l’état du serveur et les erreurs qui peuvent survenir. – DHCP (Dynamic Host Configuration Protocol) : le fichier journal DHCP est une source de données réseau générée par les serveurs DHCP. Elle contient une séquence d’événements concernant les requêtes DHCP, l’état du serveur et les éventuelles erreurs. – HTTP : le fichier journal HTTP est une source de données réseau générée par les serveurs HTTP. Elle contient une séquence d’événements concernant l’historique des requêtes reçues par les clients HTTP, l’historique de son activité aussi bien que tous problèmes qui peuvent se produire. – FTP (File Transfert Protocol) : le fichier journal FTP est une source de données réseau générée par les serveurs FTP. Elle contient une séquence d’événements concernant les commandes demandées auprès du serveur, les réponses des serveurs, l’état du serveur et les erreurs qui peuvent survenir. – SMTP (Simple Mail Transfert Protocol) : le fichier journal SMTP est une source de données réseau générée par les serveurs SMTP. Elle contient une séquence d’événements concernant les messages envoyés via le serveur, l’état du serveur et les erreurs qui peuvent survenir. – POP3 (Post Office Protocol) : le fichier journal POP3 est une source de données réseau générée par les serveurs POP3. Elle contient une séquence d’événements concernant les messages, les commandes et les réponses échangés entre un client et un serveur POP3, sur l’état du serveur et sur les erreurs qui peuvent être générées. – SSH (Secure Shell) : le fichier journal SSH est une source de données réseau générée par les serveurs SSH. Elle contient une séquence d’événements concernant les connexions des utilisateurs, des commandes exécutées et sur les éventuelles erreurs qui peuvent survenir. – Vérificateur de l’intégrité des fichiers : le fichier journal du Vérificateur de l’intégrité des fichiers est une source de données système générée par les vérificateur d’intégrité. Elle contient une séquence d’événements concernant les modifications effectuées sur les données suivant des règles prédéfinies ainsi que les erreurs qui peuvent survenir. 48 Niveau d’abstraction 4.3 Niveau d’abstraction La notion d’abstraction a été déjà évoquée par Ning et al. [94]. Les auteurs considèrent que l’abstraction dans le domaine de la détection d’intrusions est importante pour deux raisons principales. Tout d’abord, les systèmes à protéger ainsi que les IDSs sont hétérogènes. En particulier, un système distribué est constitué souvent de différents types de composants hétérogènes, comme par exemple des machines fonctionnant avec le système d’exploitation Windows et Linux. L’abstraction devient ainsi un moyen nécessaire pour masquer la différence entre ces composants systèmes et permettre la détection d’intrusions dans les systèmes distribués. Deuxièmement, l’abstraction est souvent utilisée pour supprimer tous les détails non pertinents, afin que les IDS puissent éviter une complexité inutile et de se concentrer sur les informations essentielles. Afin de réaliser une abstraction aux méthodes d’analyses de chaque produit, à leurs façons de remonter les faits et à leurs hétérogénéités, nous allons représenter les événements par des concepts manipulés par les mécanismes de surveillance afin de les représenter qu’avec ces concepts. La description de l’événement est fortement liée aux activités qui ont eu lieu dans le SI. Une activité ce n’est qu’une action perçue par le système, cette action pouvant être observée dans un des moments de son cycle de vie, entre son déclenchement et sa fin ou son interruption. Un message d’alerte peut donc porter l’information qu’une action vient de démarrer, qu’elle est en cours, qu’elle a échoué ou qu’elle a fini. Le message porté par l’événement dépend du niveau d’avancement de l’exécution de l’action ; il peut décrire une action ou un état d’un composant du système vers lequel l’action était dirigée. Il n’est pas trivial de trouver une modélisation commune pour ces différentes informations. Pour simplifier, nous avons retenu la modélisation des événements via le concept d’action observée. Nous obtenons ainsi une modélisation qui s’adapte à tout type d’observation. L’analyse conceptuelle est un champ de la philosophie, tout autant qu’un outil ; nous travaillerons précisément à l’aide de la théorie de l’action pour aborder notre problème. Dans les paragraphes suivants nous abordons les travaux qui ont été réalisés dans le domaine de la théorie de l’action, et esquissons une adaptation de ces travaux à notre contexte. 4.3.1 L’intention Selon le modèle classique de l’explication de l’action de Davidson [37, 38, 39], les actions (humaines) sont susceptibles d’être décrites par un type d’explication rationnelle. Une telle explication a pour but de rendre intelligible une action en indiquant les raisons qu’a eues l’agent d’agir comme il l’a fait. Plus précisément, expliquer une action suppose que l’on attribue à l’agent un certain nombre d’états psychologiques qui rendent approprié le fait d’accomplir cette action. Davidson soutient que connaître la raison d’une action revient à savoir quelle intention l’a sous-tendue. Cela le conduit à proposer une réduction du concept d’intention à celui de raison motivante d’une action. Searle [110] définit une action intentionnelle comme suit : une action intentionnelle est simplement la réalisation des conditions de satisfaction d’une intention. Proposition d’une modélisation 49 Les philosophes ont aussi souvent attribué des fonctions cognitives et motivationnelles supplémentaires aux intentions. Il est très généralement admis que les intentions ont un rôle de motivation de l’action. Plusieurs auteurs [10, 12, 86] ont souligné que ce rôle ne se limite pas à déclencher l’action mais à la soutenir jusqu’à son achèvement. On a aussi attribué aux intentions une fonction de guidage dans la production de l’action. La composante cognitive d’une intention de faire une action A comporte un plan pour faire cette action, c’est à dire une représentation ou un ensemble de représentations spécifiant le but de l’action et les étapes de sa réalisation. C’est cette composante de l’intention qui intervient dans le guidage de l’action. 4.3.2 Le mouvement La plupart de nos actions font intervenir des mouvements. Israel, Perry et Tutiya [64] ont remarqué que l’explication de l’action reste incomplète si on ne prend pas en compte les mouvements. Ces auteurs donnent une illustration de cette incomplétude à travers ce qu’ils appellent le problème du faux mouvement. Une action échoue, non pas parce que l’intention est mauvaise, mais parce que le mouvement corporel de l’agent n’est pas approprié. De manière générale, il semble difficile de penser que l’on puisse avoir l’intention de faire une action, si l’on n’a pas la moindre idée du type de mouvement qui pourrait constituer le fait de la réaliser. 4.3.3 Les objets Brentano définit la marque du mental par l’intentionnalité, les états mentaux incluant un objet en eux-mêmes, vers lequel ils se portent. Ainsi, tout acte mental correspond plutôt à une relation dont les membres sont, d’une part, l’état mental lui-même et, d’autre part, ce vers quoi il est dirigé. L’objet intentionnel fait partie de la définition même de l’acte mental. En d’autres termes, les états mentaux ne peuvent exister que s’ils sont complétés par autre chose qu’eux-mêmes, c’est-à-dire leur objet ; ils ne peuvent exister que s’ils sortent d’eux-mêmes. En résumé, les actions humaines sont conformes à une certaine logique. Dire qu’un agent réalise une action A, c’est dire que l’agent a eu l’intention, en faisant l’action A de produire un effet sur un objet X, cible de l’action A. L’action conçue comme un passage, une transformation entre une intention et un mouvement. Une action produit un effet, elle est déclenchée au nom de buts, de fins qui apparaissent comme les raisons de l’action. 4.4 Le modèle conceptuel Du point de vue de la surveillance d’un SI, les événements représentent les résultats des interactions des actions menées par les utilisateurs du SI avec les entités du SI. L’application de la théorie de l’action à la modélisation des informations de sécurité consiste à faire une analogie entre la théorie de l’action abordée dans la section précédente et l’action observée dans le SI. Nous redéfinissons les concepts de la théorie de l’action par rapport à l’action perçue par le SI comme suit : 1. Intention : l’objectif visé dans le SI par une action entreprise par un attaquant ou un utilisateur légitime, appelée Intention dans notre modèle. 50 Ontologie des informations de sécurité 2. Mouvement : le moyen utilisé pour atteindre l’objectif visé dans le SI, appelé Movement dans notre modèle. 3. Objet : l’entité du SI vers laquelle l’action est dirigée, appelée Target dans notre modèle. Cette entité peut représenter la victime d’un attaquant. Comme nous attachons à modéliser les actions malicieuses et les actions légitimes, nous gardons la notion de cible afin de rester général. Pour exprimer le résultat des interactions des actions des utilisateurs légitimes ou des attaquants avec le SI, nous avons ajouté un quatrième concept que nous appelons Gain. Une information de sécurité est une intention (Intention) dirigée vers une cible (Target) qui utilise un mouvement (Movement) pour atteindre la cible et qui produit un résultat (Gain). La figure 4.2 illustre la sémantique générale d’un événement de sécurité. Fig. 4.2 – Sémantique générale d’une information de sécurité OID se repose sur ce schéma conceptuel pour décrire le vocabulaire adopté et sur des règles pour l’utilisation de ce vocabulaire afin de soulever les ambiguïtés à la fois par les experts et par les processus de détection d’intrusion. Nous allons détailler cette ontologie dans la section suivante. 4.5 Ontologie des informations de sécurité Notre modèle conceptuel se base sur l’action observée pour décrire les événements. L’identification des concepts qui décrivent la sémantique de l’événement et les règles qui gèrent ces concepts va définir l’ensemble des actions à surveiller dans un SI. Chaque attaque implique plusieurs phases. A chaque phase, l’attaquant peut réaliser certaines actions offensives, automatiquement le système peut réaliser des actions défensives. Ces actions offensives sont définies par la stratégie de l’attaquant. Une stratégie d’attaque n’est pas simplement une séquence d’actions offensives, elle peut inclure aussi des décisions dynamiques face à certaines conditions et certains états du système attaqué. Les stratégies des attaquants sont construites pour atteindre des objectifs. Les auteurs dans [81] expliquent que la modélisation des intentions, des objectifs et des stratégies des attaquants peut avancer considérablement les travaux de recherche sur l’évaluation du risque, la prédiction des dommages, et la prédiction ou proaction de méthodes de défense. Les travaux de Peng Ning et Dingbang Xu [95] précisent que la compréhension des stratégies d’attaques est cruciale pour les applications de la sécurité comme la recherche de preuves (la forensic), la réponse aux intrusions, et la prévention contre les futur intrusions ; les auteurs Proposition d’une modélisation 51 présentent des techniques afin d’apprendre automatiquement les stratégies d’attaques à partir de la corrélation des alertes. L’étude de la stratégie de l’attaquant est essentielle pour notre modèle. D’une part, elle nous permet de définir les objectifs des attaquants dans un SI (les intentions) et d’autre part elle permet aux algorithmes de corrélation de reconnaître les scénarios d’attaques ou d’usage du SI en reliant les différents objectifs. Le choix qui est fait sur l’étude de la démarche de l’attaquant n’annule pas notre proposition de départ qui consiste à surveiller les utilisateurs légitimes et les attaquants. En effet, ce choix est justifié par le fait que les actions effectuées par un attaquant englobent les actions effectuées par un utilisateur légitime car une fois que l’attaquant a réussi à pénétrer le système, il serait vu par le système comme un utilisateur légitime. De plus, une attaque utilise également des actions légitimes durant son déroulement. 4.5.1 La démarche de l’attaquant Il ya plusieurs phases distinctes qui constituent la démarche d’un attaquant dans un SI, à partir de sa motivation initiale, à l’exécution finale de l’attaque. Un modèle traditionnel de pénétration des SI a été présenté dans [61, 118]. Ce modèle comprend les phases de collection d’informations, exploitation et métastase. Le terme métastase est un terme emprunté de la médecine, par analogie il signifie la propagation de l’attaque dans le système. Durant la phase de la collecte d’informations, l’attaquant cherche à déterminer les caractéristiques de la victime. Parmi les techniques utilisées, la détection de la disponibilité de l’hôte par l’envoie de ping, la détermination des services qui tournent avec le scan de port (chaque port est associé à un service), la détermination de la topologie du réseau et la détermination du système d’exploitation en analysant les paquets provenant de cette hôte (IP stack fingerprinting). Dans la phase de l’exploitation, l’attaquant utilise les informations collectées dans la première phase en associant à chaque information collectée la vulnérabilité qui pourrait être exploitable à distance. Cette phase est particularisée par des changements forcés dans le SI. Les méthodes utilisées pour exploiter les faiblesses du système sont variées, mais le résultat final se manifeste par l’exécution d’un processus dans un contexte privilégié, comme l’ouverture d’une ligne de commande privilégiée, l’ajout d’un compte ou la révélation d’informations critiques de sécurité comme les mots de passe cryptés, etc. La phase de métastase se rapporte au processus par lequel un attaquant, après avoir compromis un hôte, attaque d’autres parties du système en utilisant les ressources de l’hôte compromis. Durant cette phase, l’attaquant tente d’augmenter son privilège en déployant les mêmes techniques utilisées lors de la phase d’exploitation. Il essaie d’effacer les traces générées par ses actions en modifiant les fichiers journaux et d’autres entrées nécessaires sur l’OS (comme la base de registres). Le risque majeur survient lorsque l’hôte est complètement compromis, l’attaquant continuant à l’exploiter alors qu’il est dorénavant très difficile de différencier les actions d’un attaquant des actions d’un utilisateur légitime. Et enfin, il peut installer un programme qui lui permet d’exploiter le système à distance. En réalité, un attaquant a de nombreuses raisons pour réaliser une attaque. Il sélectionne sa cible avant de monter une attaque en fonction de ce qu’il souhaite atteindre. Nous allons 52 Ontologie des informations de sécurité Fig. 4.3 – Démarche d’un attaquant. étendre le modèle traditionnel en ajoutant une étape principale qui est la définition de l’objectif final de l’attaquant. Le processus d’une attaque se déroule donc en 4 phases : 1. Détermination de l’objectif final de l’attaquant. 2. Collecte d’information /sélection de la cible. 3. Exploitation. 4. Métastase. Les quatre phases de la démarche de l’attaquant sont illustrées sur la figure 4.3. Nous n’avons pas détaillé sur cette figure l’étape 1 de la démarche de l’attaquant. Durant cette étape, l’attaquant n’effectue pas d’actions, il réalise juste une réflexion mentale sur ce qu’il souhaite faire afin d’entamer l’étape 2. 4.5.2 Intention A chaque étape du plan d’attaque, l’attaquant tente de réaliser un sous objectif. L’attaquant passe d’un sous objectif à un autre jusqu’à ce qu’il atteigne l’objectif final. Les actions de l’attaquant sont planifiées en se basant sur les intentions. Les intentions d’un attaquant dans le SI correspondent aux objectifs que l’attaquant souhaite réaliser à chaque étape. Après l’étude de la démarche de l’attaquant, nous avons constaté qu’il y a des intentions limitées dans le SI et qui se répètent dans le plan d’attaque. Cette étude nous a permis de dégager les intentions d’un utilisateur dans le système : – Recon : intention de découvrir et de collecter des informations sur un composant du SI. – Authentication : intention d’accéder au SI via un mécanisme d’authentification. Cette intention est liée aux événements qui décrivent l’accès au SI à travers le service d’authentification en présentant une identité ou la connaissance d’un secret. Parmi ces événements nous pouvons citer. – Authentification réussie ou échouée d’un utilisateur ou une erreur sur le service d’authentification – Signatures d’attaques qui ont l’intention d’accéder au SI, Proposition d’une modélisation 53 – Les alertes des scanners de vulnérabilités qui décrivent la présence des vulnérabilités qui permettent d’accéder au SI via l’authentifieur si ces vulnérabilités sont exploitées, – Authorization : intention d’accéder à une ressource via une autorisation ou une tentative d’accès à une ressource du système sans que cet accès ne soit autorisé par des règles pré-établies. Parmi les événements, nous pouvons citer : Fig. 4.4 – Démarche d’un attaquant décrite par les intentions. – Exécution ou tentative d’exécution d’une application dans un mode privilégié. – Accès à un fichier autorisé ou tentative d’accès à un fichier non autorisé – Utilisation ou tentative d’utilisation de certaines commandes du système réservées à des utilisateurs privilégiés, – changement des droits d’accès à des fichiers sensibles, – System : intention d’accéder aux ressources du système via la disponibilité des ressources. Il s’agit des alertes pour lesquelles des ressources système ont été utilisées sans demander une autorisation ; information sur l’utilisation de la CPU, taux d’occupation de la mémoire, information sur les activités d’une application, d’un service. Nous réécrivons sur la figure 4.4 chaque phase de la démarche de l’attaquant, décrite précédemment, avec les intentions d’un attaquant dans le SI. Tous les événements seront décrits par ces quatre intentions. La sémantique des événements sera liée à la démarche de l’attaquant ou plus précisément à la démarche de l’utilisateur du SI. Les plans d’attaque ou d’usage du SI vont apparaître après la corrélation des actions unitaires observées. Nous n’allons pas ajouter de l’information à l’événement mais nous allons interpréter l’intention vue par le système après la réalisation de l’action. 4.5.3 Movement Les informations contenues dans les fichiers journaux portent sur des activités malveillantes comme les attaques et les virus et sur des activités légitimes comme l’ouverture de session et 54 Ontologie des informations de sécurité l’accès à des fichiers. Nous avons constaté que chaque mécanisme dédié à la surveillance remonte des informations propres à sa fonction ainsi que des informations propre à son fonctionnement. Par exemple un fichier journal d’un pare-feu contient des informations liées à la fonction de filtrage de flux comme les paquets acceptés et les paquets refusés et des informations liées à son démarrage, à son arrêt et aux erreurs rencontrées pour son fonctionnement. Certains travaux de la littérature ne modélisent que les attaques, d’autres que les vulnérabilités et enfin certains font les deux. Les attaques sont fortement liées aux vulnérabilités ; cette relation forte entre les deux peut produire des confusions lors de la définition d’une classification. Un exemple de classification ambiguë est celle d’Howard [60], qui propose des catégories qui décrivent en même temps les attaques et les vulnérabilités. Ce constat ne veut pas dire que la combinaison des deux notions n’est pas faisable, mais ces deux notions doivent être clairement distinguées pour éviter les confusions. Dans le cas réel, quand les IDS détectent des attaques, ils ne remontent pas la connaissance sur les vulnérabilités qui ont produit ces attaques. L’identification des vulnérabilités d’un SI permet d’estimer le coût d’une attaque. Dans notre modélisation, nous séparons les attaques et les vulnérabilités, nous créons une catégorie pour chacune. Il existe des mouvements qui peuvent survenir dans un SI et qui sont capables de se répliquer eux-mêmes de manière automatique. Les comportement de logiciels malveillants (Malwares) qui s’exécutent automatiquement après un déclenchement par une action d’un utilisateur, se propageant très vite et pouvant nuire au fonctionnement d’un SI. Leurs comportement est différent du comportement des utilisateurs du SI ; il est ainsi nécessaire de les identifier comme une catégorie à part. Certains produits de sécurité qualifient des activités comme suspectes. Dans ce cas, nous ne pouvons pas juger ces activités comme étant légitimes ou non. En effet, l’objectif de l’ontologie est de réécrire dans un format commun ces informations et de ne pas déformer l’information brute. Dans notre modélisation, nous tenons à garder ce type d’information remontée par les produits, les algorithmes de corrélation peuvent découvrir sa vraie nature en la corrélant avec d’autres informations. Chaque produit de sécurité a une fonction à accomplir. Prenons comme exemple le pare-feu qui réalise la fonction de filtrage de flux. Dans certains produits de ce type, le filtrage peut opérer au niveau transport du modèle OSI. Dans ce cas, chaque paquet est comparé à une série de critères selon lesquelles le pare-feu décidera si le paquet est accepté ou rejeté. D’autres technologies peuvent travailler au niveau de la couche session du modèle OSI ou au niveau TCP du modèle TCP/IP. Ils servent à vérifier si les sessions TCP ouvertes sont légitimes ou non. D’autres pare-feux opèrent au niveau de la couche application du modèle OSI. Ils peuvent examiner les paquets au niveau applicatif, ils peuvent filtrer des commandes spécifiques telles que http :get, ou http :post. Dans le contexte d’un serveur web, une activité représente une requête HTTP. Nous pouvons donc déduire que l’action peut être perçue par chaque produit sous des formes différentes : suivant la fonction de chaque produit, suivant le contexte dans lequel l’action est exécutée et suivant la localisation du produit dans le réseau d’une organisation (voir figure 4.1). En effet, les produits qui font l’analyse du flux sur les segments du réseau (comme les pare-feu, les Proposition d’une modélisation 55 IDS réseau, les proxis, etc.) vont remonter des informations à des niveaux d’abstraction différents s’ils opèrent à des niveaux différents du modèle OSI. Cela signifie qu’il est difficile d’interpréter les actions de l’utilisateur au sein des applications. Il est également difficile de rassembler les paquets de la même manière que l’application cible va les interpréter. Les mouvements survenus dans un SI vont subir des interprétations différentes si l’analyse se fait au niveau de couches différentes du modèle OSI. Nous avons organisé ces mouvements en sept catégories : Information, Vulnerability, Activity, Configuration, Suspicious, Malware et Attack. – Information : les informations concernant un état constaté sur une ressource comme par exemple un service mal configuré. Ces informations ne reflètent pas une action observée. – Vulnerability : les informations liées aux vulnérabilités. – Activity : les mouvements liés aux actions normales exécutées et qui ne changent pas la configuration du système surveillé. Comme exemple, l’ouverture de la session d’un utilisateur légitime. – Config : les mouvements liés à la configuration normale d’une ressource du système, par exemple le changement d’un mot de passe d’un utilisateur. – Suspicious : les mouvements liés aux activités suspectes. – Malware : les informations liées aux mouvements malicieux qui consistent à l’injection de malware et qui infecte une ressource du SI. – Attack : les informations liées aux mouvements malicieux qui consistent à exécuter des attaques sur des ressources du SI. Nous avons identifié des types de mouvements sous chacune de ces grandes catégories de nature de mouvement. Notons qu’une intention peut avoir plusieurs mouvements, comme par exemple un accès au SI pouvant se faire à travers l’ouverture de session ou à travers la configuration d’un compte ou à travers une attaque. Les tableaux dans l’annexe A.1.1 illustrent les natures de mouvement sous chaque catégorie de mouvement suivant chaque intention. 4.5.4 Target Les actions s’effectuent sur une cible par un attaquant, un utilisateur ou le système. La cible joue un rôle essentiel pour celui qui accomplit l’action afin de parvenir à son objectif. Toute ressource du SI peut être une cible. Afin d’effectuer une vue conceptuelle des cibles, nous réalisons une première analyse sur les grandes catégories de cibles en focalisant sur la localisation de la manifestation de l’action (voir figure 4.1), puis nous détaillerons cette analyse suivant les intentions des utilisateurs du SI afin de se rapprocher de la démarche de l’attaquant. En effet, les activités dans une organisation peuvent se manifester au niveau du réseau ou au niveau de l’hôte : – Réseau : si l’action est effectuée sur le flux du réseau, la cible représente un élément de la pile de protocoles. Afin d’être exhaustive, une classification des protocoles suivant les différentes couches du modèle OSI et TCP/IP est illustrée sur le tableau 4.1. Sous la classe réseau nous citons : 1. Les protocoles qui interviennent au niveau applicatif. Ces protocoles offrent des services aux utilisateurs du SI comme le service de messagerie et le service de transfert 56 Ontologie des informations de sécurité Modèle OSI Application Modèle TCP/IP Application Pile de protocoles DHCP, DNS, FTP, HTTP, IMAP4, IRC, POP3, SMTP, SNMP, SSH, TELNET, RPC, TLS, SSL, SDP, SOAP, NTP, P2P, LDAP. Présentation Session Transport Réseau Transport Internet Liaison de donnée Network Access TCP, UDP. IP (IPv4, IPv6), OSPF, IS-IS, IPsec, ARP, RIP, ICMP, ICMPv6, IGMP, BGP. 802.11 (WLAN), 802.16, Wi-Fi, WiMAX, Ethernet, FDDI. Physique Tab. 4.1 – Cibles réseau. de fichier. Ces protocoles applicatifs seront distingués par le terme Service. Cette distinction nous permet de différencier par la suite les attaques effectuées sur le protocole et les attaques effectuées sur les applications. 2. Les protocoles de cryptographie sont différenciés par rapport aux autres. En effet, les protocoles de cryptographie utilisent des algorithmes qui visent la protection des échanges en assurant la confidentialité, l’authenticité et l’intégrité. Une action malveillante sur ces protocoles implique la présence d’utilisateurs malveillants qui tentent de violer la sécurité du SI. 3. Les protocoles de routage ont été regroupés dans la même classe. Ces protocoles visent le même objectif et leur regroupement permet d’éviter de créer des classes d’événements qui se recouvrent. 4. Les autres protocoles ont été gardés tels qu’ils sont car nous n’avons pas trouvé un point commun pour les grouper. – Hôte : si l’action peut être effectuée sur un composant du noyau d’un Hôte ou sur une application installée sur l’hôte. L’hôte désigne un ordinateur, un produit de sécurité (ex : Pare-feu, IDS) ou un équipement de connectivité (ex : routeur, switch). Un produit de sécurité désigne un logiciel installé sur un ordinateur ou un matériel fourni avec son propre système d’exploitation et son logiciel. – Noyau : si l’action est effectuée sur un processus exécuté comme partie du système d’exploitation ou sur un module du système d’exploitation. – Application : si l’action est effectuée sur une application exécutée en dehors du noyau. Les services et les hôtes sont manipulés par des utilisateurs et sont soumis à une politique. En effet, chaque utilisateur du système doit posséder un compte qui lui donne le droit d’acquérir les ressources. Les comptes font parties des ressources car d’une part, ils sont nécessaires pour le fonctionnement d’un SI et d’autre part ils permettent aux attaquants et aux utilisateurs du SI d’atteindre leurs objectifs dans le SI. Chaque compte a un privilège. Par exemple, l’administrateur du système dispose des privilèges sans limites, l’accès à ce compte par un utilisateur malicieux implique toutes les menaces à la fois. Par exemple, si un attaquant obtient un compte root sur Unix, il pourrait effacer, détruire ou contaminer le disque dur, modifier le Proposition d’une modélisation 57 mot de passe, produire des données erronées, accéder à la messagerie électronique et envoyez un courrier en prétendant être un autre utilisateur (fausse représentation). La classe Account regroupe les comptes qui peuvent exister dans un SI. La politique de sécurité contribue à définir ce qui est considéré comme précieux dans un SI, et précise quelles mesures devraient être prises pour sauvegarder les ressources précieuses. En d’autres termes, la politique de sécurité est définie comme l’ensemble des lois, des règles, des pratiques, de normes et de modes qui régissent la façon dont une organisation gère, protège et distribue des informations sensibles, et qui réglemente la manière dont une organisation protège les services système. La politique prend en compte les concepts de contrôle d’accès, de l’autorisation et de la protection des informations. Nous ajoutons aux cibles qui ont été dégagées en se basant sur la localisation de l’action les comptes et la politique de sécurité. Certaines des ressources évoquées ci-dessus ont des propriétés spécifiques qui ne peuvent pas être présentes au niveau des autres ressources et qui doivent être prises en compte dans la modélisation. Prenons comme exemple la notion de ’request’ pour les serveurs web et ’path’ pour les serveurs de transfert de fichiers. Après l’identification des grandes catégories de cible, nous allons les raffiner suivant les intentions visées dans un SI. D’une part, ceci nous permet d’établir les règles qui gèrent le choix des cibles pour chaque intention et d’autre part cela va nous permettre de préciser le niveau de détail à respecter pour la modélisation des informations de sécurité. 1. Dans le cas de l’intention Recon, une activité de collecte d’information se réalise sur un hôte. La cible représente l’hôte sur lequel l’activité a été détectée. 2. Dans le cas de l’intention Authentication, une activité d’accès au SI se réalise TOUJOURS sous le contrôle d’un service d’authentification chargé de filtrer sur des critères précis l’entrée, le refus ou la sortie d’un utilisateur. La cible est représentée par une paire (target1, target2). target1 et target2 se réfèrent respectivement au système qui effectue l’authentification et à l’objet ou un attribut de l’objet qui s’authentifie auprès de l’authentifieur. 3. Dans le cas de l’intention Authorization, une activité d’accès aux ressources du SI se réalise TOUJOURS sous le contrôle d’un service chargé de filtrer sur des critères précis l’accès, le gain ou le refus d’accès d’un utilisateur ou d’un groupe d’utilisateurs à une ressource. La cible est représentée par une paire (target1, target2). target1 et target2 se réfèrent respectivement à la ressource qui filtre les accès (qui gère les droits des utilisateurs ou des groupes) et la ressource dont des droits ont été utilisés pour y accéder. 4. Dans le cas de l’intention System, une activité dépend de la disponibilité du système. La cible est représentée par une paire (target1, target2). target1 et target2 se réfèrent respectivement à une ressource et à une propriété de la ressource, par exemple (Host, CPU). Une ressource n’est jamais indépendante mais dépend du contexte dans lequel elle est utilisée. Nous attachons à modéliser cette relation de dépendance par le couple (target1, target2). Par exemple dans un SI, un compte d’un utilisateur est une cible d’une action menée par un attaquant ou un utilisateur légitime. Le compte représente target2 dans notre modélisation, 58 Ontologie des informations de sécurité target1 représente le système auquel cette ressource est rattachée. Avec cette modélisation, lors d’une connexion d’un compte sur un pare-feu, la cible est présentée par (pare-feu, compte). De ce fait, un administrateur de sécurité peut par exemple, générer des rapports sur les activités des comptes sur le pare-feu, sur un autre hôte ou sur un service. L’ontologie des cibles est illustrée sur la figure 4.5. Le détail porté par une information remontée par les produits diffère d’un produit à un autre. Le détail s’attache notamment aux ressources qui sont le centre de l’observation. Prenant comme exemple la cible web sur la figure 4.6 avec les relations sémantiques qui la relient aux autres ressources. Nous constatons qu’il y a des relations hiérarchiques de type is a (est un) et des relations de types Composed Of(composé de). Une première solution consiste à donner la valeur WEB à target1 et présenter chaque élément attaché (directement ou plus bas dans l’arborescence) à web comme target2. Cette modélisation va créer une catégorie pour chaque élément attaché à web, elle est coûteuse en termes de catégories générées. Cette solution remonte un détail très fin et par conséquent, nous restons dans un niveau de détail très bas, qui est similaire à ce que nous trouvons dans les fichiers journaux. Nous avons adopté une deuxième solution qui est la suivante. Nous cherchons la cible et le détail porté sur la cible dans l’événement brut, dans la modélisation des cibles sur la figure 4.5. Si la relation qui relie les deux est une relation hiérarchique (de type ”is a” ou ”composed of”), target1 prend comme valeur la ressource potentielle parmi les grandes catégories de cibles que nous avons évoquées ci-dessus. Si le détail se trouve à un niveau très bas par rapport de la cible principale, nous parcourons l’arborescence du bas vers le haut jusqu’à que nous atteignons target1, nous affectons à target2 le fils direct à partir duquel nous rejoignons target1. Dans ce cas, target2 représente un attribut de target1. Dans le cas des autres relations sémantiques, target1 représente la ressource dont target2 dépend. Revenons à l’exemple sur la figure 4.6 dont l’événement porte une information sur l’URL. Nous avons utilisé la spécification du protocole HTTP pour décrire la cible Web. Le protocole HTTP, comme il est spécifié avec la RFC 1945 par l’IETF, définit une requête par RequestCorp, RequestHead et RequestLine, RequestLine est composée à son tour de URL, Methode et version. Dans ce cas target1=web et target2=requête. Une spécification des cibles est présentée en langage Web Ontology Language (OWL)1 dans l’annexe A.1.2. 4.5.5 Gain La réussite ou l’échec d’une action sur un système surveillé dépend de certaines conditions. En effet, si ces conditions ne sont pas conformes aux règles qui gèrent l’accès au système, aux ressources du système ou bien si les informations collectées par un attaquant ne sont pas conformes aux informations environnementales du système surveillé, l’action échoue. Elle réussit dans le cas contraire. Le résultat d’exécution d’une action se traduit donc par un gain. Nous voulons faire apparaître ce gain car il exprime la progression de la démarche d’un utilisateur ou d’un attaquant. Exprimer le gain par rapport à une action intrusive ne représente pas la même chose que par rapport à une action légitime. Nous prendrons toujours le point de vue de celui qui réalise 1 http ://www.w3.org/TR/owl-features/ Proposition d’une modélisation 59 Fig. 4.5 – Ontologie des cibles. Un zoom de chaque partie de la figure est illustré sur l’annexe A.1.3. 60 Expérimentations effectuées Fig. 4.6 – La cible ”web”. l’action pour en définir le gain. Nous ne faisons donc aucune différence entre un gain d’un utilisateur légitime et d’un attaquant. Le gain dépend des catégories d’activité, le tableau 4.2 décrivant les valeurs du Concept Gain dans l’ontologie : – Dans le cas des catégories de Movement-Activity et Config, Gain dépend de l’activité exercée et prendra les valeurs : Success, Failed,Denied et Error. – Dans le cas des catégories de Movement Malware, Vulnerability, Suspicious et Attack, Gain aura comme valeur Detected. – Dans le cas de la catégorie de Movement-Information, l’événement porte sur une information à propos de l’état du système ; Gain peut avoir des valeurs liées soit aux informations de contrôle - Valid, Invalid, Notify, soit aux informations sur des seuils - Expired, Exceeded, Low, Normal. 4.6 Expérimentations effectuées Dans cette section nous allons décrire deux types d’expériences. La première expérience s’attache à classifier des événements bruts programmés dans des produits hétérogènes. La deuxième expérience teste l’ontologie dans un milieu opérationnel qui est le réseau d’une entreprise pour évaluer la sécurité d’un SI. 4.6.1 Expérience n˚1 : Classification des informations de sécurité Caractéristiques de l’expérience Nous disposons de 123 produits hétérogènes. Chaque fournisseur de produit programme une liste d’événements liées aux activités surveillées par le produit ; ces événements seront remontés Proposition d’une modélisation Movement Activity, Config 61 Gain Success Failed Denied Information sur le control sur les seuils Malware, Suspicious, Vulnerability, Attack Error Valid Invalid Notify Expired Exceeded Low Normal Detected Description l’auteur de l’action a réussi son activité (demande acceptée), l’auteur de l’action a échoué son activité (demande refusée), refus de relayer un flux, c’est un état spécifique pour les activités Forward et Connection, Erreur sur le service qui contrôle l’activité, un état valide suite à un contrôle, un état invalide suite à un contrôle, une notification sur une cible, dépassement de durée (lié au temps), dépassement d’un seuil qui n’est pas lié au temps, utilisation basse de seuils, les seuils peuvent être une limite sur des droits, ou peuvent exprimer le manque de privilège d’un utilisateur, utilisation normale des seuils. Une activité malveillante est détectée. Tab. 4.2 – Les Gains suite à la détection de ces activités, nous ne disposons pas donc de type spécifique d’architecture. L’ensemble des listes d’événements forment 20182 événement bruts. Les produits sont hétérogènes car ils proviennent de constructeurs différents -ils ont des fonctions différentes, et rapportent les fait différemment. Les produits impliqués dans cette expérience sont des produits de sécurités, des systèmes d’exploitation, des applications, des services et des équipements de connectivité. Le tableau 4.3 présente les différents types de produits utilisés ainsi que le nombre de produit par type. La tâche de classification consiste à affecter l’événement brut à la catégorie qui exprime sa sémantique. Une catégorie est définie par l’ontologie comme suit : Intention_Movement.movementNature_Target1.Target2_Gain La classification est effectuée manuellement par des experts. L’expert lit le message brut et doit extraire l’intention de l’action effectuée qui a généré l’événement, le mouvement utilisé pour accomplir l’intention, la cible vers laquelle l’intention était dirigée et le gain de cette intention afin de connaître la catégorie à laquelle le message fait partie. Réduction du nombre d’événements La définition des différents mouvements, intentions et cibles à surveiller a rendu l’ontologie flexible et adaptable à chaque source de surveillance. Nous avons pu trouver une catégorie pour chaque événement. Nous avons utilisé le mouvement ”other” dans les catégories de mouvements de vulnerability, attack et suspicious afin d’être exhaustif et de pouvoir classifier un événement qui décrit une attaque encore inconnue. La classification a généré des catégories de différentes tailles, la plus grande regroupe 6627 62 Expérimentations effectuées Produits de sécurité IDS (5) Firewall(18) Antivirus(9) Authentification(8) VPN(3) IPS(2) Antispam(1) Monitoring (5) Applications et services Serveurs Mail(7) Serveur FTP(3) Serveur Web(3) Système d’exploitation Windows Linux FreeBsd Equipements de connectivité Routeur (1) Switch(1) Console de management (5) Serveur de base de données(2) Serveur DNS (1) Proxy (7) Autres applications (6) Tab. 4.3 – Les types de produits utilisés alertes et représente 32, 83% du corpus. Les tailles des catégories dépendent des intentions, des mouvements et des cibles à surveiller. Si par exemple certaines actions sont surveillées par plusieurs produits, des catégories qui décrivent ces types d’actions sont plus grandes que les autres. La classification des événements a produit 1734 catégories. Ce résultat est intéressant car nous avons pu réduire le nombre de messages d’alertes à présenter à l’analyste de 20182 à 1734 (soit 8, 6%). Les produits surveillent les mêmes activités, chaque produit décrivant l’activité à sa manière. L’ontologie a uniformisé ces descriptions et elle a permis d’agréger tous les événements qui ont le même sens sous la même catégorie ce qui explique la réduction du nombre d’événements. Les figures 4.7.(a), 4.7.(b), 4.7.(c) présentent la distribution des événements sur les tailles des catégories. Nous avons opté pour une présentation des événements en 3 parties à cause des différences des tailles des catégories. Les catégories de petites tailles ne seront pas visibles si elles sont présentées avec les catégories de grandes tailles. Vue le grand nombre de catégories, nous les avons présenté par des numéros sur l’axe des abscisses. Par ailleurs, nous avons eu des catégories unitaires, 732 alertes brutes formant leurs propres catégories, ce qui représente 42, 21% de toutes les catégories et qui ne représente que 3, 63% du corpus. La présence de catégories de taille unitaire peut être expliquée par les points suivants : – Il n’y a qu’un seul produit parmi les produits impliqués dans l’expérience qui surveille cette activité. – Une signature qui est reconnue par un produit, ne l’est pas par les autres produits. – Des erreurs commises par les analystes ont engendré la création de nouvelles catégories. Parmi ces catégories, il existe des catégories unitaires qui ne doivent pas exister théoriquement. – L’existance de cibles rarement surveillées augmente le nombre de catégories unitaires, car le mouvement existe plusieurs fois pour d’autres cibles mais une seule fois pour ces cibles rares. Le résultat obtenu renforce notre proposition de départ qui consiste à déployer des produits de types différents dans la détection d’intrusions. En effet, la présence de catégories unitaires Proposition d’une modélisation (a) Classification des événements 1/3 (b) Classification des événements 2/3 (c) Classification des événements 1/3 Fig. 4.7 – Distribution des événements de sécurité sur les catégories 63 64 Expérimentations effectuées prouve qu’il existe des activités qui peuvent arriver dans un SI et qui ne peuvent pas générer des événements si elles ne sont pas surveillées. Prenant l’exemple de la surveillance du mouvement d’ajout de compte de groupe sur le service d’annuaire LDAP. Il est surveillé par un seul produit et qui génère la catégorie Rights.Config_Add.LDAP_AccountGroup.Success Les figures 4.8 et 4.9 illustrent la distribution des intentions sur les mouvements. Nous constatons que l’intention System est la plus utilisée et également que le mouvement Vulnerability et le mouvement Attack peuvent avoir toutes les types d’intentions. Nous constatons que la catégorie de Movement- Suspicious regroupe un nombre important d’événements. Il est donc nécessaire de la garder pour préserver la sémantique des événements qui sont qualifiés de suspects par les produits. Ces types d’alertes seront traitées par un moteur d’analyse, comme par exemple un moteur de corrélation, pour contrôler la véracité de cette première analyse faite par le produit (réellement suspecte ou pas). L’ontologie ne permet pas de prendre une telle décision. La catégorie de mouvement Information représente les alertes qui ne décrivent pas des actions effectuées dans le SI mais plutôt des états des cibles. Ces informations sont remontées par les produits et seront également prises en compte dans le processus de corrélation. Les proportions des différentes intentions dépendent des produits déployés et des activités à surveiller par ces produits. Fig. 4.8 – Distribution des Intentions sur les mouvements Inconvénient de la classification manuelle Nous avons constaté que la classification des alertes manuellement a engendré des erreurs liées aux : – Sens de l’événement perçu par l’expert et à la différence des connaissances des experts de la pratique de l’ontologie. Avec le temps, l’expert a plus d’expérience qu’au départ et comprend mieux le langage des produits et de l’ontologie. Par conséquent le taux d’erreurs diminue. Par contre, nous serons face aux mêmes problèmes avec chaque nouvel expert. En effet, le nouvel expert va produire des erreurs durant la phase de l’apprentissage du processus de classification. Le nombre d’erreurs peut être additionnel car les erreurs peuvent être différentes d’un expert à un autre. Proposition d’une modélisation 65 Fig. 4.9 – Distribution des Intentions sur le mouvement Vulnerability – Non respect de toutes les règles préétablies pour la classification, comme par exemple l’utilisation d’un mouvement qui n’est pas lié à une intention pour décrire un événement a généré une catégorie qui théoriquement ne doit pas exister. Nous avons eu 433 alertes mal classées de cette manière ; ce chiffre est très petit devant la taille du corpus qui a tout de même généré 43 catégories qui n’ont pas de sens. Il peut s’agir d’un problème de concentration de l’analyste qui pourrait être résolu par des sessions de normalisation de durée plus courte. – Non respect du grain utilisé pour représenter la sémantique de l’alerte. Dans notre modélisation, nous avons défini le même niveau de détail pour chaque type de mouvement suivant les intentions. Nous avons constaté que quelques analystes n’ont pas respecté ce niveau de détail pour exprimer la sémantique de l’événement. Par exemple, un changement de mot de passe de l’administrateur sur SSH , était classifiée en ”Authentication_Config.Modify_SSH.password :success” pour un produit et ”Authentication_Config.Modify_SSH.Amin_success” pour un autre produit. Le non respect du grain utilisé pour exprimer la sémantique engendre des erreurs dues à l’expression du même sens par deux catégories différentes et augmente le nombre de catégories. Les erreurs commises engendrent des risques de faux : la classification d’un comportement qui ne présente pas de danger comme comportement dangereux produit un faux positif et la classification d’un comportement dangereux comme comportement normal engendre un faux négatif. De ce fait, on peut conclure que les mauvaises données engendrent de mauvais résultats même si on applique un algorithme de corrélation efficace pour la détection d’intrusions. Nous déduisons que l’étude des activités à surveiller par les produits contribue au choix du nombre et de la fonction de produits à déployer pour la sécurité du SI. La multiplication des produits n’implique pas toujours une plus grande protection pour le SI. En effet, le déploiement de plusieurs produits surveillant les mêmes activités et les mêmes ressources va augmenter la complexité du travail de l’administrateur. Si l’administrateur de sécurité à la connaissance des activités surveillées par chaque produit, il peut choisir une liste de produits à impliquer dans la surveillance de telle sorte que ces produits seront complémentaires en termes d’actions à surveiller. 66 Expérimentations effectuées 4.6.2 Expérience n˚2 : Application de l’ontologie aux processus de traitement Caractéristiques de l’expérience Cette expérience s’attache à appliquer l’ontologie dans un milieu applicatif. Nous disposons d’un corpus d’événements générés par les activités de l’entreprise pendant 11 jours. Nous ne pouvons pas donner de détails sur le nom de l’entreprise, ni sur la topologie de son réseau, car ces informations restent propres à l’organisation en question et restent confidentielles. Par contre, nous pouvons analyser la sécurité de son SI à travers les informations de sécurité dont nous disposons. Fig. 4.10 – Contexte de l’expérience L’architecture générale de cette entreprise peut être similaire à la figure 4.10. La classification de ce corpus d’événement se fait au niveau des agents installés sur chaque produit. L’agent utilise le format IDMEF pour exprimer la syntaxe de l’événement et l’ontologie OID pour exprimer la sémantique de l’événement. Nous disposons d’une base d’événements normalisée (même syntaxe et même sémantique) qui correspond à l’étape 1 sur la figure 4.10. Cette base est constituée de 6351565 événements bruts générés par les produits déployés. Le traitement des informations de sécurité ne peut s’effectuer que sur des données homogènes. L’ontologie présentée en section 4.5 permet une représentation homogène des actions effectuées sur le système d’information. Deux principales catégories de traitement d’information peuvent être différenciées ; la génération de rapport et la corrélation des événements. La génération de rapport sur les activités de l’entreprise Les événements générés par les produits du réseau de l’entreprise ont été classés dans 73 catégories. La figure 4.11 illustre le résultat de la classification des événements bruts par journée d’activité. Une fois les messages dans les fichiers journaux des différents produits transformés dans des catégories communes, il est alors possible d’analyser ces événements. Proposition d’une modélisation Fig. 4.11 – Distribution des événements sur les catégories par journée d’activité. 67 68 Expérimentations effectuées L’administrateur de sécurité n’est plus face au problème d’hétérogénéité des produits. Grâce à l’ontologie, les événements remontés par les produits sont unifiés, l’administrateur a besoin que de se familiariser avec le vocabulaire de l’ontologie. Par conséquent l’administrateur de sécurité peut réagir face à des événements malveillants ou face à des abus d’utilisation des ressources par les utilisateurs du SI. La création de règles unifiées pour effectuer des statistiques sur les activités quelle que soit la différence qui existe entre les produits est donc faisable. L’administrateur de sécurité peut établir des métriques pour mesurer la sécurité du SI qui permettent de contrôler la performance des processus métiers. Les métriques peuvent être définies comme des seuils sur les concepts de l’ontologie, comme par exemple le nombre de connexions effectuées par jour sur un serveur web afin de pouvoir assurer la disponibilité du serveur. L’administrateur peut réagir quand il détecte des comportements malveillants, s’il constate par exemple une augmentation subite de l’activité sur une ressource par rapport aux jours précédents. Sur la figure 4.12, nous avons filtré les activités sur les natures de mouvements effectués dans le SI de l’entreprise pendant les 11 jours. Nous constatons que l’activité Forward (relayage de paquet) est une part importante de l’activité au sens SI de l’entreprise. La corrélation d’événements L’objectif du processus de corrélation est de déterminer des relations entre les différents évènements. Les événements qui sont liés peuvent correspondre à un objectif commun d’utilisation des ressources du SI (scénario d’usage) ou un objectif malicieux commun d’attaquant (scénario d’attaque). Notre ontologie offre une couche d’abstraction qui nous permet de produire des règles de corrélation génériques focalisées sur les actions des utilisateurs du système. Deux modules de corrélation peuvent être réalisés. Le premier module réalise de la corrélation explicite qui va prédéfinir explicitement les règles de corrélation. Le second module de corrélation, quant à lui, va définir et qualifier automatiquement les règles de corrélation, ce module de corrélation est appelé corrélation comportementale. Dans cette partie, nous allons nous servir des travaux de Jacques Saraydaryan [106] pour démontrer l’intérêt de l’utilisation de l’ontologie. L’auteur a développé un moteur de corrélation comportemental et utilise notre ontologie pour la modélisation des informations de sécurité pour la mise en oeuvre de ses algorithmes de corrélation. Nous allons appliquer l’approche de corrélation de l’auteur sur les informations de sécurité générées dans le réseau de l’entreprise (l’étape 2 sur la figure 4.10). La corrélation comportementale a pour objectif principale d’apprendre un profil normal du système d’information et de détecter toutes déviances à ce profil. Cette méthode de corrélation permet la découverte automatique de liens entre des évènements collectés sur le système d’information. Deux types de corrélations comportementales peuvent être décrits ; les corrélations comportementales non supervisées et les corrélations comportementales supervisées. La corrélation comportementale non supervisée décèle automatiquement des liens entre plusieurs variables sans connaissance au préalable de règles particulières. La corrélation comportementale supervisée va orienter la mise en place de liens suivant une connaissance définie au préalable. Proposition d’une modélisation 69 Fig. 4.12 – Distribution des événements sur les natures de mouvement par journée d’activité. 70 Conclusion La méthode proposée par l’auteur est une méthode supervisée. Les relations entre les évènements sont découvertes à partir de connaissance au préalable et sont présentées par un graphe d’évènements qui définit les scénarios de comportements normaux. Pour compléter ce modèle, l’auteur a transformé le graphe d’évènements en réseau Bayésien [106] permettant de représenter toutes les probabilités conditionnelles des évènements du graphe. Ce modèle permet de comparer les futurs évènements au modèle de comportements normaux et de détecter des comportements anormaux assimilables à des erreurs utilisateurs ou à des activités intrusives. L’application des travaux de l’auteur au corpus d’événements remontés par le réseau de l’entreprise à générer des graphes d’événements sur l’utilisation du SI. La figure 4.13 illustre un graphe d’événements parmi les graphes qui ont été détectés par la corrélation comportementale. 4.6.3 Conclusion sur les expériences Le pouvoir de la représentation des événements de sécurité sous la même sémantique renforce le processus de détection dans un contexte coopératif, facilite la tâche de l’analyste en lui présentant des catégories d’événements reflétant la sémantique de plusieurs événements et aide les processus de détection d’intrusions pour être efficace. Une bonne ligne de défense doit surveiller toutes les intentions visées dans un SI, la détection coopérative ne doit pas se focaliser sur le nombre de produits déployés mais sur les intentions, les mouvements et les cibles à surveiller dans un SI. Ce résultat peut remettre en question le choix de ligne de défense représentée par les produits à mettre en place pour surveiller un SI. Pour éviter les erreurs de classification manuelle, nous devons respecter des règles dictées par la politique de l’ontologie afin de ne pas créer de nouvelles catégories, de définir le niveau de détail pour chaque type de catégorie, de respecter les définitions des intentions et des mouvements pour ne pas mal classifier une alerte et engendrer par la suite des faux positifs ou des faux négatifs. Ceci pourrait également être effectué par un processus automatique ou semi-automatique qui gère la tâche de la classification ou qui peut aider l’analyste à prendre une décision dans le cas où il ne peut pas le faire automatiquement. 4.7 Conclusion La modélisation des informations de sécurité est une partie essentielle du processus de détection d’intrusions. Ce chapitre s’est focalisé sur la création d’une ontologie qui traite ce sujet. Tout d’abord, nous avons présenté les travaux de l’état de l’art effectués pour la modélisation des informations de sécurité. Ces travaux focalisent sur la modélisation des attaques et/ou des vulnérabilités. Par contre, ces travaux nous ont permis d’établir des contraintes pour développer notre modélisation : l’abstraction, non ambiguïté, précision du niveau de détail. A la différence de ces travaux, nous proposons une modélisation qui prend en compte toutes les activités qui peuvent survenir dans un SI ; les activités légitimes et les activités malveillantes. Nous avons proposé une ontologie appelé OID pour la description des informations de sécurité. Elle se base à la fois sur la théorie de l’action pour définir les concepts de l’ontologie, et sur la démarche de l’attaquant pour définir les intentions dans le SI, les mouvements et les cibles Proposition d’une modélisation Fig. 4.13 – Un graphe d’événements sur l’utilisation du SI. 71 72 Conclusion qui vont avec. Nous avons utilisé l’ontologie pour effectuer deux types d’expérience. La première expérience vise à classifier des événements bruts dans les catégories décrites par l’ontologie. La deuxième expérience tâche à prouver l’utilité de l’ontologie dans un milieu opérationnel. Il est clair que la communauté de la détection d’intrusions bénéficiera largement d’un modèle pour la modélisation des informations de sécurité qui étend le travail actuel de l’IDMEF avec des informations sur la sémantique et un schéma de nommage commun. Une ontologie pour les informations de sécurité est une condition préalable à une véritable interopérabilité entre les différentes sources de données. Afin d’éviter le risque engendré par la classification manuelle, nous proposons dans les chapitres suivants, une solution pour contourner ce problème. Troisième partie Classification automatique des informations de sécurité 73 75 Comme nous l’avons clairement constaté, la classification manuelle des informations de sécurité est coûteuse en temps et en ressources humaines. Un seul produit (de sécurité ou autre) définit un volume important de types d’évènements, l’usage de multiple produits comme nous le préconisons rendant la tâche beaucoup trop lourde. La classification manuelle des événements de l’expérience 4.6.1 a demandé 5 mois et 3 personnes à temps plein. De plus, on peut difficilement imaginer que ce travail ne sera réalisé qu’une seule fois, les produits évoluant sans cesse, modifiant la liste des types d’évènements, voire leur sémantique. Cette opération manuelle serait donc à répéter souvent, nécessitant à chaque fois un très grand niveau d’expertise des intervenants pour mettre en correspondance les nouvelles données avec l’ontologie. Parallèlement, les erreurs de classification sont inévitables ; celles-ci peuvent être additionnelles si elles sont différentes d’un expert à un autre. Dans le contexte de la détection d’intrusions, ces erreurs se traduisent par des faux positifs et des faux négatifs. Ces ”faux” influencent les moteurs de corrélation et, si leur nombre est important, peuvent conduire à des décisions de sécurité dangereuses. Pour remplacer le travail fait par un expert - ou plus généralement en appui à ce travail, il est donc naturel d’envisager une classification automatique des messages de sécurité. Cette classification automatique consiste à affecter automatiquement la description de l’activité qui a eu lieu au sein du SI, description qui est portée par l’événement brut ou plus précisément ce que nous appelons Classification text du format IDMEF, dans une seule catégorie de l’ontologie. Pour faciliter notre discours, nous appelons message cette description. Ce message est une phrase textuelle : nous sommes donc face aux problèmes de classification automatique de texte. La classification automatique de texte ou catégorisation automatique de texte (CT) est une tâche particulière de l’analyse moderne de données, à la fois du point de vue empirique et théorique. Ce problème est central dans de nombreuses applications, comme le filtrage de mails, la réponse à des requêtes sur le web ou l’identification de la langue des textes. Par conséquent, ce problème scientifique a reçu l’attention de nombreux chercheurs dans des domaines aussi divers que la recherche d’information, les machines d’apprentissages (machine learning) et la théorie des algorithmes. L’objectif de la CT est d’affecter automatiquement un texte à une catégorie définie aupréalable en se basant sur le contenu du texte. Habituellement, les catégories font référence aux sujets des textes, mais elles peuvent prendre d’autres formes pour des applications particulières. Une autre particularité du problème qui varie selon les applications est la présence ou non d’une contrainte concernant le nombre de catégories qu’un texte donné peut se voir affecter. Suivant les problèmes de classification, certains exigent qu’un texte ne soit affecté qu’à une seule catégorie. D’autres acceptent qu’un texte puisse être affecté à plusieurs catégories. En résumé, le problème consiste à regrouper des textes selon leur similarité dans des catégories déterminées à priori. Dans le cas où les catégories font référence aux sujets des textes, la CT est confrontée au problème de l’extraction de la sémantique du texte, l’affectation d’un document à une catégorie étant fortement liée au sens du texte. Cette tâche est très difficile, le traitement de la sémantique d’un texte écrit en langage naturel étant un sujet de recherche complexe et très actif. Définition 1 La Classification de texte (CT) est le processus qui permet d’attribuer une valeur booléenne à chaque paire < dj , ci >∈ D × C, où D est le domaine des documents et 76 C = {c1 , .., c|C| } est l’ensemble des catégories prédéfinies. La tâche de classification de texte consiste à approximatiser la fonction inconnue φ : D × C → {T, F } (qui décrit comment les documents doivent être classifiés) au moyen d’une fonction ϕ : D × C → {T, F } appelée le classifieur tel que φ et ϕ coïncident autant que possible [111]. 4.7.1 Processus de catégorisation de texte Pour débuter la mise en place d’un processus de catégorisation de texte, il est nécessaire de disposer d’un corpus, préalablemenent classifié manuellement. Ce corpus est ensuite divisé en deux catégories, le corpus d’apprentissage et le corpus de test. Dès lors, trois grandes phases peuvent être distinguées dans le processus de CT : l’indexation des documents, la construction d’un système de classification (le classifieur) et l’évaluation du classifieur. L’indexation des documents comprend à la fois la représentation de ceux-ci et la réduction des paramètres les caractérisant. La représentation traduit les documents dans un format spécifique, qui doit être à la fois représentatif de son contenu et manipulable par les algorithmes de classification dans leurs phases de construction et d’évaluation. La réduction consiste à extraire des paramètres qui représentent un document que par ceux qui sont pertinents pour la classification, permettant ainsi de réduire la complexité algorithmique du traitement. En CT un document est généralement représenté par un vecteur. La phase de réduction se base sur le corpus d’apprentissage pour extraire les connaissances nécessaires et qui rentrent dans la représentation du document, ces connaissances étant des attributs du vecteur. La réduction des attributs décrivant un document permet à la fois de réduire le phénomène de sur-apprentissage par les classifieurs et d’augmenter la pertinence de ceux-ci. Le surapprentissage est un phénomène qui caractérise le classifieur lorsqu’il devient trop spécifique aux données d’apprentissage : très performant lorsqu’il s’agit de classer les textes de l’ensemble d’entraînement, il devient moins efficace quand il traite d’autres textes. L’objectif est donc de ne retenir que les caractéristiques générales d’une catégorie. Un espace vectoriel à dimension réduite serait favorable, probablement parce que les attributs conservés font réellement partie d’une bonne généralisation des catégories [111]. La seconde étape du processus de classification consiste à adapter un classifieur au problème traité. Les premiers travaux qui se sont intéressés à la catégorisation de texte utilisaient des systèmes experts. Un tel système est constitué d’un ensemble de règles définies manuellement par les experts du domaine. A partir des années 90 et avec le développement des techniques de l’apprentissage automatique, le problème est abordé différemment. L’application des machines d’apprentissage à la catégorisation de texte est devenue l’approche dominante. L’apprentissage automatique vise à construire des systèmes qui vont apprendre par eux-mêmes à classer des documents, le système étant entraîné à l’aide du corpus d’apprentissage. Au lieu ”d’observer” ce qui est fait à la main par un expert et en déduire des règles, l’apprentissage automatique généralise les liens sous-jacents entre les textes et les catégories en analysant les exemples. Après cette phase, le classifieur peut procéder à la classification de nouveaux documents. Appliquée à l’ensemble de test, la phase 3 consiste à mesurer les performances du classifieur par rapport à celles de l’expert. 77 Les défis associés à la catégorisation de texte automatique proviennent donc de plusieurs axes : 1. choisir une bonne structure de donnée pour représenter les documents, 2. traiter les problèmes qui se posent sur la grande dimension des données, 3. choisir une fonction d’objectif appropriée pour optimiser afin d’éviter le problème de surapprentissage et avoir une bonne généralisation, 4. choisir un algorithme de classification adapté au contexte du problème étudié. L’application de la CT à notre problème nécessite la possession d’un corpus classifié et la connaissance des catégories. L’ensemble des événements qui ont été classifiés manuellement par les experts représente le corpus classifié, et l’ontologie définit les catégories. Fig. 4.14 – CT appliquée à la classification des informations de sécurité. Dans la première étape du processus de classification ((1) sur la figure 4.14), nous allons créer un module pour l’extraction des attributs d’un message de sécurité à partir du corpus classifié manuellement. L’objectif du module est double, il réalise la représentation d’un message par un vecteur et la réduction de la taille du vecteur sans perdre la sémantique du message brut. Le chapitre 5 est consacré à l’analyse des méthodes utilisées pour la réduction des descripteurs d’un texte et précise notre démarche pour réaliser cette étape. Dans la deuxième étape ((2) sur la figure 4.14), nous allons former un corpus d’apprentissage et un corpus de test à partir du corpus qui a été classifié manuellement. Le chapitre 6 va donc aborder les algorithmes d’apprentissage qui ont été utilisés dans le domaine de la CT, les mesures qui nous permettent d’évaluer les classifieurs et va illustrer les résultats d’une sélection de ces algorithmes appliqués à notre problème de classification des informations de sécurité. 78 5 Indexation et réduction d’attributs 5.1 Introduction L’indexation de document et la réduction des attributs qui les représentent sont deux notions complètement liées, les attributs retenus représentant l’index d’un document. L’indexation permet de représenter un document par ses termes les plus informatifs. La réduction d’attributs consiste à sélectionner un nombre d’attributs inférieur au nombre d’attributs initiaux les plus porteurs d’information. Tous les travaux de recherche sur la classification de texte (CT) s’accordent sur le fait que la grande dimension de l’espace des termes représente la difficulté majeure pour la classification. L’espace de terme natif est constitué des termes (mots ou phrases) qui apparaissent au moins une fois dans un texte. La taille souvent impressionnante du vocabulaire peut s’avérer être un frein pour les algorithmes d’apprentissages. Il a été largement observé que la réduction d’attribut est un outil puissant permettant de simplifier et d’accélérer les calculs lors des phases d’apprentissage et de classification ; cette réduction, si elle est employée de manière judicieuse, ne doit pas influencer la qualité du classement final. De plus, il est bien évidemment préférable de réaliser cette réduction, elle aussi automatiquement, i.e. sans définition ou construction manuelle des attributs. La principale difficulté de la CT tient à l’instabilité des liaisons entre syntaxe et sémantique des termes qui serviront à l’indexation. Il existe deux aspects à ce problème que nous appelons les synonymies et les polysémies. Nous utilisons le terme synonymie dans le sens très large pour définir le fait que les mêmes objets peuvent être décrits de façon différente et donc avec des termes différents. Des utilisateurs dans des contextes différents, ou avec des besoins différents, 79 80 Représentation du document des connaissances et des habitudes linguistiques différentes, vont décrire la même information en utilisant des termes différents. Le taux de présence de synonymes tend à diminuer les performances des systèmes de recherche. Par polysémie nous nous référons au fait que la plupart des mots ont plus d’une signification. Dans des contextes différents, ou dans l’emploi par différents utilisateurs, le même terme prend des significations variables. Par conséquent, l’utilisation du terme dans la recherche ne signifie pas nécessairement que le document au final sera indexé par ce même terme. La polysémie est un facteur sous-jacent de la mauvaise précision. Nous proposons dans la suite de ce chapitre une démarche pour représenter un message dans un espace vectoriel ; cette représentation prend en compte la connaissance du domaine, les caractéristiques du corpus des informations de sécurité et les caractéristiques de l’ontologie. 5.2 Représentation du document Pour permettre une démarche algorithmique, il est nécessaire d’adopter une représentation compacte du contenu d’un document et d’appliquer uniformément une méthode d’indexation aux corpus d’apprentissage. En CT, le modèle vectoriel est utilisé pour la représentation des documents comme il se fait généralement pour le problème d’extraction d’information [105]. → Un document dj est représenté par un vecteur de termes pondérés dj = (w1j , . . ., w|τ |j ), où τ est un ensemble de termes (souvent appelés attributs) qui peut être tous les termes uniques d’un document ou une collection spéciale d’un sous-ensemble de ces termes. wk j représente combien le terme tk contribue à la sémantique du document dj . L’ordre des termes dans le vecteur est arbitraire, i.e. il ne dépend pas de l’ordre dans lequel les termes apparaissent dans le texte. La différence entre les différentes approches utilisées pour l’indexation d’un document se manifeste dans : 1. Les différentes manières de comprendre la signification d’un terme, 2. Les différentes façons pour calculer le poids des termes. Au niveau du terme, on identifie très généralement les termes par de simples mots. Cette technique simpliste, appelée souvent sac-à-mots (bag of words) est de loin la plus efficace. Dans un certain nombre d’expériences, il a été constaté que des représentations plus sophistiquées que le cas simple ne permettent pas une meilleure efficacité. En particulier, certains travaux ont tenté l’utilisation de phrases à la place de mots individuels pour indexer un document, mais les résultats expérimentaux n’ont pas été encourageants [111]. Le choix des poids est un peu plus complexe. Les données sont complexes car étant symboliques et non-numériques. Dès lors, une pondération binaire - c’est-à-dire que le poids 1 indique la présence du terme et 0 indique son absence dans le document, est rarement suffisante, sauf dans quelques cas très particuliers. Dans les cas les plus fréquents (l’indexation non-binaire), une pondération basée sur la fréquence d’un terme dans le document est utilisée à la place de la présentation binaire. Une fonction de pondération affecte à chaque élément un certain poids qui dépend de la fréquence du terme dans le document et de la distribution des termes dans la collection des documents. Dans ce cas, toutes les approches utilisées dans le domaine de l’extraction d’information, qui représentent un document par un vecteur de termes pondérés, peuvent être utilisées. Indexation et réduction d’attributs 81 La plupart du temps, la fonction TF/IDF (Term Frequency/Inverse Document Frequency) est utilisée pour calculer la pondération wij d’un terme ti dans le document dj . TF(ti ,dj ) est le nombre de fois que le terme ti apparaît dans le document dj . DF(ti ) (Document frequency) est le nombre de documents contenant le terme ti . IDF est dérivée de DF et elle est calculée comme suit : IDF (w) = log nombre de documents DF (ti ) wi,j est calculée par la combinaison de TF et IDF : wij = T F (ti , dj ) · IDF (ti ) Les valeurs pondérées du vecteur sont généralement normalisées dans l’intervalle [0-1]. 5.3 Réduction d’attributs L’objectif de la réduction d’attributs pour la catégorisation de texte consiste à choisir une stratégie de formation de termes de telle façon que les termes indexés sont à la fois prédictifs et discriminants. Un terme prédictif ne devrait pas seulement apparaître dans les documents d’apprentissage, mais doit avoir une forte probabilité d’apparaître dans les documents de tests. Le terme est discriminant quand il est informateur de la catégorie à laquelle un document appartiendra au final. Plusieurs méthodes démarrent le processus de réduction d’attributs par l’élimination de mots vides de sens (appelés en anglais ”stop words”). Cette tâche nécessite d’avoir à disposition une liste de ces mots qui ne modifient pas la signification des autres mots qui les accompagnent. Il s’agit souvent de mots fonctionnels comme les prépositions et les articles. Le pourcentage de réduction des mots vides diffèrent d’un corpus à un autre suivant la nature du corpus. Par exemple le taux de présence de mots vides dans un corpus de texte littéraire est différent du taux de présence de mots vides dans un corpus de texte technique. a, about, above, across, after, afterwards, again, against, all, almost, alone, along, already, also, although, always, am, among, amongst, amount, an, and, another, any, anyhow, anyone, anything, are, as, at, back, be, because, been, before, behind, being, below, beside, can, cannot, could, couldn’t, describe, detail, do, done, . . . Fig. 5.1 – Une partie de mots vides en anglais [50]. De nombreuses listes ont été identifiées manuellement et sont disponibles de nos jours dans différents corpus suivant différentes langues. La figure 5.1 illustre une partie des mots vides identifiés manuellement en anglais. La suppression des mots vides est une technique habituellement utilisée afin d’améliorer la précision des résultats. Dans le domaine de l’extraction d’information, la réduction des mots vides peut contribuer considérablement à la réduction de la taille du vecteur qui représente les documents, la réduction pouvant dépasser 40% [50]. Certains auteurs 82 Réduction d’attributs comme Zou Feng [50] définissent les mots vides par les mots les plus fréquents. Une collection spécifique de mots les plus fréquents a été ajoutée à la liste des mots vides, mais les expériences menées dans ce sens n’ont montré aucune amélioration fiable [17]. Contrairement à l’utilisation de mots vides génériques, de nouvelles approches ont été développées afin d’identifier de manière plus agressive des mots à enlever à partir des documents. Ces approches doivent réduire la taille des descripteurs sans pour autant détériorer la précision du système de classification. Nous constatons deux grandes familles : la sélection de termes et la construction de nouveaux termes. 5.3.1 Sélection d’attributs La sélection automatique d’un sous-ensemble de terme est le plus souvent réalisée à partir de fonctions statistiques [69, 136] appliquées à l’ensemble d’apprentissage. Cependant, les modélisations de ce travail conduisent toujours à des problèmes très difficiles [36] pour lesquels une recherche d’optimalité conduit à un problème NP-Complet. Généralement, la fonction statistique utilisée pour le calcul de l’importance de chaque terme consiste à supprimer de l’espace vectoriel les termes dont l’importance est inférieure à un seuil prédéterminé . Nous allons nous intéresser aux approches les plus citées dans la littérature : – La fréquence des documents (Document Frequency (DF)) : représente le nombre de documents dans le corpus d’apprentissage dans lesquels un terme t se produit. Le DF de chaque terme est calculé dans le corpus d’apprentissage, les termes dont leur DF est inférieur à un seuil prédéterminé sont supprimés de l’espace vectoriel. L’hypothèse de base est que les termes rares sont soit non informatifs pour la prédiction des catégories, soit sans influence sur les performances globales. La précision de la tâche de catégorisation peut être améliorée si les termes rares représentent un bruit. C’est la technique la plus simple pour la réduction de termes qui peut être appliquée à un large corpus avec une complexité de calcul linéaire avec le nombre de documents dans le corpus d’apprentissage. – Le gain d’information (Information Gain(IG)) : l’objectif principal de cette méthode est de mesurer le pouvoir de discrimination d’un mot. Elle mesure la quantité d’information obtenue pour la prédiction de la catégorie en sachant la présence ou l’absence d’un terme dans le document. L’IG de chaque terme est calculé dans le corpus d’apprentissage en utilisant la formule (2) du tableau 5.11 ; les termes dont la valeur d’IG est inférieure à un seuil prédéterminé sont supprimés de l’espace vectoriel. La méthode IG a une complexité de calcul de O(|V |m), |V | représente la taille du vocabulaire dans le corpus d’apprentissage, m représente le nombre de catégories dans le corpus d’apprentissage. Lewis et Ringuette [77] ont utilisé IG afin de réduire de façon drastique le vocabulaire des documents pour les classifieurs, le bayésien naïf et les arbres de décision. – Information mutuelle (Mutual Information (MI)) : le MI [129] est un critère utilisé habituellement dans la modélisation statistique de la langue sur l’association des mots et qui a été adapté au problème de réduction d’attributs pour la CT. Soit A le nombre de fois que le terme t est présent avec la catégorie c, soit B le nombre de fois que le terme t apparaît sans la catégorie c, soit C le nombre de fois que c apparaît sans t, et soit N le nombre total des documents. MI est donc calculé suivant la formule (3) du tableau 5.11. Indexation et réduction d’attributs 83 Méthode Fonction DF (t)= nombre de documents contenant le terme t (1) Document Frequency (DF) (2) Information Gain(IG) IG(t) = − Pm i=1 P (ci )logP (ci ) + P (t) P r(t̄) i=1 Pm i=1 P (ci /t)logP (ci /t)+ P r(ci /t̄)logP r(ci /t̄) A×N I(t, c) ≈ log (A+C)(A+B) (3) Mutual Information (MI) (4) χ2 statistic (CHI) χ2 (T, C) = N ×(AD−CB)2 (A+C)×(B+D)×(A+B)×(C+D) s(t) = Pr (t ∈ dj |t ∈ di ) (5) Term strength(TS) (6) Correlation Coefficient (CC) Pm Co(T, C) = √ (T P ×T N −F N ×F P )2 (T P +F N )(F P +T N )(T P +F P )(F N +T N ) Tab. 5.1 – Différentes approches utilisées pour la sélection d’attributs. La définition de chaque approche est évoquée dans 5.3.1. MI a une complexité de calcul de O(|V |m) similaire à IG. – χ2 statistic (CHI) : CHI mesure le degré d’indépendance entre le terme t et la catégorie c et peut être comparé à la distribution χ2 avec un degré de liberté égal à un. Soit A le nombre de fois que le terme t est présent avec la catégorie c, soit B le nombre de fois que le terme t apparaît sans la catégorie c, soit C le nombre de fois que c apparaît sans t, soit D le nombre de fois où ni c ni t n’apparaissent, et soit N le nombre total des documents. CHI est donc calculé suivant la formule (4) du tableau 5.11. CHI a une complexité quadratique comme MI et IG. CHI = 0 si t et c sont complètement indépendants et CHI augmente avec leur niveau de dépendance. Évidemment, les termes fortement dépendants d’une catégorie sont conservés. Les auteurs dans [108] utilisent CHI pour sélectionner les attributs d’un système de classification qui se base sur les réseaux de neurones. – Force des termes (Term strength(TS)) : TS est proposée et évaluée à l’origine par Wilbur et Sirotkin [130] pour la réduction du vocabulaire dans l’extraction de texte et a été appliquée plus tard pour le problème de catégorisation de texte dans [132]. Cette méthode estime l’importance d’un terme en se basant sur la façon qu’un terme apparaît dans des documents étroitement reliés. Un corpus d’apprentissage est utilisé pour calculer les paires de documents qui sont similaires. Soit (di , dj ) une paire de documents distincts mais reliés par une relation de similarité, et soit t un terme. TS représente donc la probabilité conditionnelle que le terme t apparaît dans le document dj sachant qu’il apparaît dans le document di . TS est calculée par la fonction (5) sur le tableau 5.11. TS est différente de IG, MI et CHI car elle n’utilise pas les informations sur les associations entre les termes et les catégories. Elle se base sur le regroupement des documents (document clustering) en supposant que les documents qui partagent plusieurs termes sont reliés, et que les termes qui sont peu partagés entre documents reliés sont informatifs. TS a une complexité de calcul quadratique en nombre de documents dans le corpus d’apprentissage. 5.3.2 Extraction d’attributs L’extraction d’attributs est une alternative pour la réduction de la dimension de l’espace vectoriel. Cette approche tente de créer de nouveaux attributs à partir des attributs originaux afin de donner une vue synthétique de ces derniers. La taille de l’ensemble des nouveaux termes 84 Réduction d’attributs générés est plus petite que la taille de l’ensemble original et, d’autre part, les nouveaux termes sont statistiquement plus indépendants que les termes originaux. Nous pouvons citer notamment la méthode Latent Semantic Indexing (LSI), appelée aussi Latent Semantic Analysis (LSA), ainsi que la méthode de regroupement de termes (term clustering) [98, 112]. – Latent Semantic Indexing (LSI) [44] : cette approche effectue une sorte de compression des vecteurs qui représentent les documents dans un espace vectoriel de dimension plus petite. Les nouvelles dimensions sont obtenues par des combinaisons de dimensions originales en tenant compte de leur schéma (pattern) de co-occurrence. En pratique, LSI infère les dépendances entre les termes originaux et crée de nouvelles dimensions indépendantes. La réduction de la dimension de la matrice de départ est réalisée en appliquant la décomposition en valeur singulière (appelée aussi Singular Value Decomposition - SVD) à la matrice formée par les occurrences termes/documents du corpus d’étude. Le nombre de dimension obtenu au final est un critère important, car l’obtention d’un nombre trop grand ne fait pas suffisamment émerger les relations sémantiques entre les termes. Un nombre trop petit conduit à une trop grande perte d’informations. Ce nombre de dimensions est généralement ajusté empiriquement [44]. La réduction à k dimensions consiste à ne conserver que les k premières valeurs singulières de ces valeurs pour reconstituer une matrice approchée de dimension k. Chaque terme et chaque document sont ainsi représentés par un vecteur à k dimensions. LSI est conçue à l’origine pour s’attaquer aux problèmes de synonymie et de polysémie dans la matrice terme-document. Contrairement aux autres approches (sélection de termes et regroupement de termes), les nouvelles dimensions obtenues par LSI ne sont pas interprétables mais la méthode a tendance à faire ressortir la structure latente de la sémantique du vocabulaire [111]. – Regroupement de mots (Word clustering (WC)) Une autre façon de réduire la dimension de l’espace vectoriel consiste à réaliser des regroupements de termes en clusters. Cette approche vise à regrouper des termes, suivant une relation sémantique entre les termes. Le cluster sera donc utilisé comme une dimension à la place des termes qui le constitue. La tâche critique de cette approche est la détermination de la fonction de regroupement. Lewis [75] emploie un algorithme appelée reciprocal nearest neighbour pour créer les clusters de mots en se basant sur la similarité entre les mots. Les résultats obtenus sont moins bons que les résultats de classification utilisant tout le vecteur des termes originaux. Un autre travail a été réalisé dans ce sens par Li et Jain [78] où la relation sémantique entre les mots est représentée en fonction de leurs co-occurrences et de co-absence dans les documents d’apprentissage. Cette technique a été utilisée dans le contexte d’un algorithme de clustering hiérarchique. Les résultats obtenus sont comparables à ceux de l’approche classique qui conserve tous les attributs du vecteur. Il est difficile de généraliser les résultats de [78] dû à la petite taille des échantillons de leurs expériences. Travaillant exclusivement sur les mots, la méthode de groupement de termes effectuée dans les travaux de [75] et [78] n’est pas influencée par les catégories attachées aux documents. Par contre, les travaux effectués dans [6] proposent une méthode de regroupement basée Indexation et réduction d’attributs 85 sur la distribution des mots dans les catégories. 5.4 Analyse du corpus des informations de sécurité La nature des données à classifier joue un rôle important lors du choix de la méthode de réduction des attributs et de l’algorithme de classification. Afin de déterminer les caractéristiques du corpus des informations de sécurité, nous avons analysé de nombreux fichiers journaux de produits provenant de différents éditeurs. Ces produits accomplissent des fonctions différentes dans le SI. 5.4.1 Format des messages bruts Nous constatons que le format des messages diffère d’un produit à un autre. Certains produits peuvent avoir une taxonomie interne pour rapporter les faits. Le message généré dans ce cas est structuré mais cette taxonomie reste propre au fournisseur du produit. D’autres produits n’ont pas de taxonomie pour décrire les faits, le message généré est alors une simple phrase. Par conséquent, nous sommes devant une multitude de formats de messages dont beaucoup expriment des sémantiques très proches. Dès lors, il n’est pas possible de trouver un lien direct entre les mots qui apparaissent dans des événements issus de produits différents. Pour chaque produit, nous disposons des événements qui devront être remontés suites à la détection d’activités surveillées. Nous ne tenons pas compte de la temporalité des événements pour pouvoir déduire des relations entre des mots apparaissant dans des événements différents. Les informations sur les dates d’apparition arrivent au moment de la génération de l’événement par le produit mais plus dans la base des événements. 5.4.2 Étude de la fréquence des mots dans un corpus : la loi de Zipf La distribution des fréquences des mots dans un corpus a été étudiée empiriquement par Zipf [140] et les résultats de cette étude sont connus sous le nom de loi de Zipf. La loi s’énonce à l’aide de la notion de rang : étant donné un corpus T de textes, l’occurrence F (m) de chaque mot m dans le corpus est calculée. Si on classe ensuite l’ensemble des mots du corpus par ordre décroissant d’occurrences, on obtient pour chaque mot un rang r(m). La loi formulée par Zipf s’écrit alors : F (m).r(m) = KT , où KT est une constante qui dépend du corpus. Nous avons étudié la fréquence des mots pour différents corpus de sécurité. A titre d’exemple, nous avons tracé la fréquence des mots par rapport à leurs rangs pour le corpus du pare-feu Cisco sur la figure 5.2. Nous avons constaté que la loi n’est pas vraiment vérifiée dans notre cas. Il existe différentes méthodes pour corriger cette loi dans les domaines où elle n’est plus tout à fait vérifiée [84]. En revanche, le comportement général de la distribution des mots reflète la loi de Zipf : il existe un petit nombre de mots très fréquents, il existe un grand nombre de mots très rares n’apparaissant qu’une fois ou deux sur le corpus et il existe tout un ensemble de mots dont la fréquence d’apparition se situe entre ces deux domaines. La distribution de fréquences décrite par la loi de Zipf a eu deux conséquences importantes pour la représentation des textes : suppression des mots fréquents et suppression des mots rares. 86 Analyse du corpus des informations de sécurité Fig. 5.2 – Loi de Zips et le corpus des informations de sécurité. Certains auteurs soutiennent la thèse que les mots fréquents sont les mots de liaison et les articles. Dès lors, ils procèdent à leurs suppressions. Du point de vue sémantique, ces mots sont peu informatifs et du point de vue statistique, ils ne sont pas discriminants. D’après la loi de Zipf, les mots rares sont très nombreux. Dans notre contexte, nous avons constaté que les mots dont l’occurrence est égale à un représentent plus que la moitié des mots pour de nombreux produits. De nombreux auteurs suppriment dans leurs travaux ces mots en justifiant leurs démarches par le fait que ces mots ne peuvent pas être utilisés par des méthodes d’apprentissage à cause de leur très faible occurrence. Dans notre contexte, de nombreux mots peuvent être très rares, mais très informatifs. En conséquence, il n’est pas judicieux dans notre contexte de supprimer un mot fréquent ou un mot rare sans connaître sa sémantique. L’ensemble des termes discriminants est peut être celui qui est situé entre les deux traits rouges sur la figure 5.2 ou en dehors de cette zone mais dans notre contexte particulier, rien n’est moins sûr. En illustration, on trouve sur le tableau 5.2 une liste de sélection aléatoire de 16, 72% de mots qui apparaissent au minimum une fois dans le corpus du pare-feu Cisco. 45, 32% de mots de ce corpus n’apparaissent qu’une seule fois. Parmi ces mots, il existe des mots qui sont discriminants (les mots en caractère gras sur le tableau 5.2). S’il existe des mots à la fois discriminants et rares, tout traitement statistique effectué sur les textes doit prendre ce phénomène en compte. 5.4.3 Taille du vocabulaire Nous constatons sur le tableau 5.3 que la taille du vocabulaire diffère d’un produit à un autre. En effet, dans le cas de sondes de fonctions différentes, il existe des mouvements et des cibles qui sont surveillés par une sonde et qui ne le sont pas par d’autre. Dans le cas de sondes de mêmes fonctions, le fait qu’elles proviennent de constructeurs différents influe sur le vocabulaire et le format de messages. Nous constatons aussi que les sondes peuvent partager des mots. Effectivement, nous pouvons le confirmer avec les deux dernières lignes du tableau 5.3 où la somme des tailles des deux corpus pris séparément est supérieure à la taille des Indexation et réduction d’attributs 87 attack bridge destination idle accessed built dial-out important access-list cache discarded incorrectly account cards duplicated infomation activate certificat echo initialization activation chassis erased initialize activex checksum establish install addresses cleared evasion instant adjusting cluster executing integrity advertissement component exhausted ipv6 allocating condition existing java allowed conf_file expired keep-alives allowing configurations exported keypair api conflicting extended land appliance console filter level assembling container finding licences assigned conversation flow listen attribut corrupt fragments listening auth counter full loading authenticate cpu functionality local-host available critical get locating backbone crl granted location bad daemon guard locked boot deletion handle logged border deny hosts initialization Tab. 5.2 – Un échantillon de mots apparaissant une seule fois dans le corpus de Cisco. Les mots en gras sont des mots informatifs, par exemple land représente un type d’attaque. Sonde Fonction # de messages # de mots Moyenne de mots par message Exchange Serveur Mail 686 601 4,68 Cisco-FW Firewall 617 593 3,55 Cisco-switch Switch 122 214 3,05 Checkpoint Firewall 120 207 2,67 Apache Serveur web 42 70 4,61 Barracude Proxy 17 22 2,35 Cisco-FW, Exchange Firewall + Serveur Mail 1291 941 4,14 Checkpoint, Cisco-FW Firewalls 710 678 3,19 Tab. 5.3 – Statistiques sur les corpus des produits de surveillance. deux corpus fusionnés. En effet, le vocabulaire utilisé contient le vocabulaire de la sécurité, du réseau et du système ; ce sous-ensemble de mots peut être partagé car il est commun au niveau des différentes sondes. Néanmoins, il existe une différence entre les noms des mouvements qui peuvent apparaître dans un langage d’une sonde et pas dans l’autre ; ils peuvent également apparaître mais sous un autre nom ou sous une autre forme de description au lieu d’être exprimés par un seul mot. Le niveau de détail qui décrit l’information diffère aussi, tout comme la multitude des instances des concepts de la sécurité, du réseau et du système. Prenons l’exemple du mot “Attack” qui fait partie du vocabulaire de la sécurité ; ce mot est partagé par plusieurs sondes mais chaque sonde peut détecter un type d’attaque qui est remonté par l’une et non par l’autre. Revenons sur la fusion des deux corpus de pare-feux Cisco et Checkpoint illustrée par le tableau 5.3. Les occurrences des mots qui existent dans les deux corpus ont augmenté. Quand nous augmentons la taille de l’échantillon, non seulement la fréquence des mots qui apparaissent déjà dans le corpus des événements est augmentée, mais de nouveaux mots sont également ajoutés. Ces chiffres illustrent un simple fait : les mots fréquents dépendent de la taille de l’échantillon. 88 Comparaison des méthodes de réduction et discussion 5.5 Comparaison des méthodes de réduction et discussion Généralement, il existe deux types de termes que nous souhaitons identifier pour indexer un document : les termes vides (termes qui ne portent pas de sens) et les termes clés. L’identification parfaite de ces deux groupes revient presqu’à résoudre le problème de la classification. D’une manière générale, la réduction de termes peut être vue comme le processus qui recherche les mots clés d’un document afin de représenter le document seulement par ces mots clés. Ou alors, elle peut être vue comme le processus qui s’attache à éliminer les mots vides de sens et de représenter le document par le reste des termes. Certaines méthodes tendent à privilégier les mots fréquents comme CHI et certaines tendent à privilégier les mots rares comme LSI. De nombreuses techniques de réduction d’attributs ont été développées afin de répondre au problème de la grande dimensionnalité. Yang et Pedersen [136] ont réalisé une étude comparative sur les approches de sélection d’attributs pour la CT. Cinq méthodes ont été évaluées : DF, IG, MI, CHI et TS. Ils ont créé deux classifieurs afin de tester l’effet de la réduction des termes sur les performances des classifieurs. Ils ont constaté que IG, DF et CHI ont des effets similaires sur les performances des classifieurs, comme le montre la figure 5.3. Ces trois dernières méthodes ont pu éliminer jusqu’à 90% ou plus des termes uniques sans perte de la précision de la catégorisation. Ils ont constaté que CHI a généré de bons résultats de catégorisation mais lors de seuils extrêmement agressifs, IG est meilleure. Dunning rapporte dans [47] que CHI est connue pour être non fiable pour les termes de basses fréquences . Baker et McCallum [6] ont perdu 2% de la précision du classifieur avec l’utilisation de l’approche de regroupement de termes. Ce résultat est donc intéressant devant la réduction réalisée de la taille de l’espace vectoriel. Ils constatent que les performances de leur algorithme de regroupement sont significatives par rapport à celles de la réduction de termes par l’utilisation de MI, IG et LSI. Les travaux dans [98] ont montré que le regroupement de termes qui se base sur la distribution des catégories associées aux mots est plus efficace que les méthodes de sélection d’attributs . D’autre part, d’autres chercheurs ont constaté que les performances de certaines méthodes de sélection d’attributs diffèrent selon l’algorithme de classification sur lequel les données ont été testées. Les travaux dans [11] ont exploré l’interaction des méthodes de sélection d’attributs et les algorithmes linéaires de classification. Leurs résultats montrent que les méthodes de sélection d’attributs et les algorithmes de classification peuvent générer divers degrés de compatibilité entre eux. Leurs résultats montrent qu’une bonne méthode de réduction de terme est celle qui donne un bon résultat de classification et non pas seulement celle qui donne un bon pourcentage de réduction de termes. Notre objectif principal est la recherche de descripteurs qui peuvent représenter un message de sécurité. Après l’étude des caractéristiques de notre corpus et des caractéristiques des méthodes de réduction, nous rejoignons l’idée des travaux de recherche sur la nécessité de réduire l’espace vectoriel. Dans le contexte de notre problématique, il est effectivement préférable de réduire la taille de l’espace natif de terme à cause d’une part de la présence du phénomène de synonymie et de polysémie et d’autre part, des termes qui engendrent un bruit pour les algorithmes de classification. Indexation et réduction d’attributs (a) Précision du classifieur KNN. 89 (b) Précisions du classifieur LLSF. Fig. 5.3 – Comparaison des méthodes de sélection d’attributs. Les figures sont reprises des travaux de Yang et Pedersen [136]. Les nouveaux attributs ont été utilisés pour définir le nouvel espace vectoriel pour deux systèmes de classification ; le KNN qui est l’algorithme des k plus proches voisins et LLSF qui est Linear Least Squares Fit mapping [134]. La réduction de termes pour le problème de CT se fait généralement sur des textes composés de plusieurs paragraphes. L’indexation du document par un sous-ensemble d’attributs peut conserver le sens des documents bruts. Quant au problème de classification des messages de sécurité, la réduction agressive de termes peut déformer le sens des messages bruts. En effet, comme il est mentionné dans le tableau 5.3, la moyenne de la taille d’un message ne dépasse pas cinq mots, la suppression de mots dans un message peut complètement changer le sens du message si la suppression n’est pas judicieuse. Il n’est donc pas facile de choisir une méthode de réduction d’attributs. L’adaptation des approches utilisées dans la CT à la classification des messages de sécurité doit se faire avec précautions. A travers les expériences des travaux que nous venons de citer ci-dessus, nous pouvons dresser une comparaison entre les méthodes dans le tableau 5.4. La comparaison entre ces méthodes peut se faire sur plusieurs angles. Nous constatons que certaines méthodes prennent en considération l’occurrence des termes dans les catégories, d’autres ne prennent pas en considération ce phénomène mais se basent sur la co-occurrence des termes ou sur le lien existant entre les documents où les catégories n’influencent pas la décision de la méthode de réduction de termes. Toutes les méthodes de réductions, sauf LSI vont produire un espace vectoriel que nous pouvons interpréter sémantiquement les nouveaux descripteurs. Les méthodes de sélection vont conserver un sous-ensemble d’attributs de l’espace natif. Les méthodes de regroupement vont regrouper les termes proches sémantiquement et nous nous retrouvons donc dans la même situation que pour l’approche de sélection d’attributs. Par contre, la LSI va générer des nouveau attributs dont nous ne pouvons pas connaître le sens. Les méthodes d’extraction d’attributs peuvent répondre aux problèmes de la redondance qui existent entre les termes. Elles tentent de faire face aux phénomènes de synonymie et de polysémie. En effet, le nombre de mots rares peut diminuer si nous pouvons les fusionner avec d’autres mots. Nous choisissons deux méthodes de la littérature, une parmi les approches de sélection de 90 Module d’extraction Méthodes DF CHI MI TS IG WC Co-occurence mots/catégorie + + + - + +/- LSI - Réduction du nombre d’attributs redondants - - - - - + + Traitement des mots rares - - + + Tab. 5.4 – Comparaison des méthodes de réduction d’attributs. termes et une parmi les approches d’extraction de termes : IG et LSI. Ces deux méthodes ne sont pas seulement différentes sur la façon de choisir les termes discriminants , mais sont aussi différentes sur le principe de base. IG se base sur l’occurrence des mots dans les catégories et IG se base sur la co-occurrence des mots. Ces deux méthodes seront discutées dans la section 5.7. Dans la section suivante, nous allons développer un module qui permet d’extraire les attributs d’un message à partir d’un corpus de messages de sécurité. 5.6 Module d’extraction L’analyse du corpus effectuée dans la section 5.4 et le travail effectué dans le chapitre 4 montrent que les produits partagent les mêmes concepts. L’ontologie que nous avons développée offre un langage qui permet d’unifier le vocabulaire à utiliser pour décrire les informations de sécurité. Comme les termes dans un corpus de sécurité peuvent être fortement corrélés entre eux, nous sommes devant une représentation redondante qui peut avoir des conséquences négatives pour la classification. Nous sommes conscients en effet que des messages proches sémantiquement peuvent très bien ne pas contenir les mêmes termes. Détecter les relations entre termes permettra d’améliorer la précision de la classification. L’idée fondamentale de la construction de ce module est l’extraction d’attributs à partir d’un corpus d’informations de sécurité sans perdre l’information portée par le message brut. Dans cette section, nous allons présenter notre travail pour l’indexation d’un message de sécurité. Nous allons décrire les étapes nécessaires pour transformer un message de sécurité à partir de sa représentation en texte simple vers une représentation vectorielle. 5.6.1 Étiquetage morphosyntaxique des messages L’étiquetage morphosyntaxique (Part-of-Speech tagging ou POS tagging en anglais) d’un texte est le processus qui consiste à identifier pour chaque mot sa catégorie morphosyntaxique (comme un nom ou un verbe) à partir de son contexte et de connaissances lexicales. L’étiquetage automatique est utile pour plusieurs applications de traitement du langage naturel et notamment pour l’extraction de l’information. Le programme qui permet d’effectuer ce processus est appelé tagger, l’étiquetage de texte est une tâche de classification. Plusieurs approches ont été proposées pour construire un étiqueteur automatique, plus particulièrement les modèles de Markov caché (en anglais Hidden Markov Models)[22], des méthodes à base de règles [14], des méthodes à base d’entropie maximale [102], et des méthodes à base de mémoire [34]. Indexation et réduction d’attributs 91 L’étiquetage d’un message de sécurité va nous permettre de déterminer la fonction syntaxique de chaque mot dans le message. Cette information est nécessaire pour les étapes suivantes du module d’extraction. Dans notre système nous utilisons l’étiqueteur de Brill présenté dans [14], le code de l’étiqueteur de Brill étant disponible sur le web et gratuit. Le modèle de Brill est un modèle basé sur l’apprentissage supervisé. Les données d’apprentissage sont représentées par un texte correctement annoté manuellement. Cet étiqueteur a été entraîné sur un corpus de 600, 000 mots et a réalisé une précision de 97, 2% lors d’un test de validation sur un corpus de 150, 000 mots [15]. Le lexique de Brill n’est pas toujours adapté pour des textes spécialisés. Nous avons enrichi le vocabulaire de l’étiqueteur par l’ajout de règles lexicales et contextuelles propres à notre domaine. L’exemple sur le tableau 5.5 représente trois messages de sécurité étiquetés par l’étiqueteur de Brill. La signification des étiquettes est illustrée sur le tableau 5.6. Input : - authentication ticket request failed - mail infected by virus - attempt to set the directory services restore mode administrator password Output : - authentication/NN ticket/NN request/NN failed/VBD - mail/NN infected/VBD by/IN virus/NN - attempt/NN to/TO set/VB the/DT directory/NN services/NNS restore/VBP mode/NN administrator/NN password/NN Tab. 5.5 – Un exemple d’application de l’étiqueteur de Brill. 5.6.2 Normalisation des termes (analyse morphologique) L’objectif de la normalisation des mots est le regroupement des nombreuses formes morphologiques de mots en une seule forme, notamment dans le cadre d’une analyse de texte par un traitement automatique. Le mot est reconnu par rapport à sa forme représentative, et cela quelle que soit la forme sous laquelle il apparaît dans un texte. Deux concepts ont souvent été mentionnés lorsqu’il s’agit de normalisation des mots pour l’indexation : Étiquette DT IN JJ NN NNS TO VB VBD VBP Description Déterminant Préposition ”in” Adjectif Nom, singulier Nom, Pluriel to Verb, infinitif Verbe, ”past tense” Verbe, singulier, ”present tense”, non conjugué à la 3ème personne du singulier Tab. 5.6 – Exemple d’étiquettes associées aux mots avec l’étiqueteur de Brill. Les étiquettes indiquent la fonction syntaxique de chaque mot. Plus de détails sur les étiquettes attribuées aux mots illustrés dans le tableau B.3 92 Module d’extraction – Stemming est le processus qui permet de ramener le mot à son radical (dite lexème) en réalisant des troncatures et des remplacements sur le mot ; il applique des heuristiques axés sur le langage afin d’associer les mots liés sémantiquement à une unique représentation. – Lemmatisation est le processus qui permet de ramener un mot à sa forme de base ou de référence (dite lemme) ; c’est un processus linguistique qui associe les mots syntaxiquement reliés à une unique représentation. Le remplacement des mots par leur racine ou leur lemme va réduire l’espace des descripteurs et va permettre de représenter des mots qui ont le même sens par un même descripteur. L’ensemble des descripteurs obtenus est plus grand lorsque les formes de base des mots sont retenues à la place de leurs radicaux. Si nous optons dans notre modèle pour la représentation des mots par leurs radicaux, les verbes et les noms qui ont le même radical vont être regroupés sous le même descripteur dans l’espace vectoriel. Les verbes et les noms peuvent représenter respectivement des mouvements et des cibles dans le SI. Nous souhaitons les représenter différemment dans l’espace vectoriel. Nous avons ainsi retenu la représentation des mots par leurs lemmes. Par exemple, ”servers” et ”server” seront regroupés et représentés par un seul attribut dans l’espace vectoriel au lieu de deux attributs. La lemmatisation repose sur l’utilisation de l’analyse grammaticale ; généralement elle consiste à remplacer les noms par leurs formes au singulier et les verbes par leurs formes infinitives. Nous avons développé un algorithme présenté dans algorithme 1 qui permet de normaliser les mots des messages de sécurité. Il est basé sur des règles. Les règles sont explicites et dépendent de l’étiquette et de la syntaxe du mot et respectent la grammaire anglaise. Les règles permettent de transformer les verbes en un seul temps qui est le past tense et les noms en pluriel. Il nous était difficile de pouvoir écrire les règles qui font la transformation vers l’infinitif ou le singulier à cause de nombreuses exceptions de grammaire. Cet algorithme s’applique sur un corpus étiqueté, utilisant une liste de règles et un fichier de verbes irréguliers avec leurs conjugaisons. Le corpus étiqueté est obtenu après l’exécution du programme de Brill sur le corpus qui va subir le traitement. La matrice relative au corpus de traitement avant l’application de la lemmatisation possède des attributs redondants. La lemmatisation va effectuer le regroupement de certains mots, pour ainsi obtenir une matrice plus réduite. Un exemple d’application de la lemmatisation est illustré dans le tableau 5.7. Les mots transformés ainsi que leurs étiquettes sont représentés respectivement en italiques et en gras (voir le tableau B.3 pour des détails sur la signification de chaque étiquette). 5.6.3 Reconnaissance des concepts La reconnaissance de concepts est une tâche d’extraction d’information qui consiste en l’identification et la classification des mots du corpus des messages de sécurité dans les concepts définis par l’ontologie. Le grand nombre de termes sémantiquement proches génère un sérieux problème lors de l’indexation d’un message car il engendre des axes redondants. Une manière de faire face à ce phénomène est la détection des termes qui sont liés par une relation sémantique. Indexation et réduction d’attributs 93 Algorithme 1 Lemmatisation des messages de sécurité Entrées: Corpus étiqueté, règles sur l’orthographe de la grammaire anglaise, fichier des verbes irréguliers avec leurs conjugaisons. 1: Corpus : vecteur des messages étiquetés 2: word : vecteur des mots du message 3: tag : vecteur des étiquettes associées aux mots du message 4: K : nombre de messages dans le corpus 5: corpus_output : fichier des messages étiquetés et lemmatisés initialement vide 6: pour (i = 1 to K) faire 7: message=Corpus(i) 8: word ← les mots de message 9: tag ← les étiquettes associées aux mots de message 10: m : le nombre de mots de message 11: pour (j = 1 to m) faire 12: lemme = word(j) 13: si ((tag(j)=”vbz”) or (tag(j)=”vbg”) or (tag(j)=”vbn”)) alors 14: si (lemme ∈ liste des verbes irréguliers) alors 15: Remplacer lemme par son correspondant dans la liste des exceptions 16: sinon si (tag(j)=”vbz”) alors 17: Appliquer les règles de transformation du temps présent vers le past tense sur le lemme 18: sinon si (tag(j)=”vbg”) alors 19: Appliquer les règles de transformation du gérondif vers le past tense sur lemme 20: sinon si (tag(j)=”vbn”) alors 21: Ne rien faire {ne changer que l’étiquette du mot} 22: finsi 23: word(j) ← lemme 24: tag(j) ← ”vbd” 25: sinon si (tag(j)=”nn”) alors 26: Appliquer les règles de transformation d’un nom du singulier vers le pluriel sur lemme 27: 28: 29: 30: 31: 32: 33: 34: word(j) ← lemme tag(j) ←”nns” finsi fin pour Reconstituer le message en associant chaque mot du message avec son étiquette Écrire le message dans corpus_output fin pour retourner corpus_output Input : - set/VBN acl/NN of/IN members/NNS in/IN administrators/NNS groups/NNS - attempt/NN to/TO set/VB the/DT directory/NN services/NNS restore/VBP mode/NN administrator/NN password/NN - mail/NN service/NN changing/VBG port/NN number/NN Output : - set/VBN acl/NN of/IN member/NN in/IN administrator/NN group/NN - attempt/NN to/TO set/VBN the/DT directory/NN service/NN restored/VBN mode/NN administrator/NN password/NN - mail/NN service/NN changed/VBN port/NN number/NN Tab. 5.7 – Exemple de messages lemmatisés. 94 Module d’extraction De telles relations peuvent être des relations de synonymies, hyperonymies (terme dont le sens est plus large qu’un autre terme), hyponymies (terme dont sa compréhension logique est inclus dans le sens d’un autre). Nous allons nous servir de la figure 5.4 pour éclaircir ces notions. Sur la figure 5.4.a, nous disposons de 4 classes : Service, serveur-web, Apache et ISS. Le lien entre Apache et Serveur-web signifie que Apache est un Serveur-web ou plus précisément que Apache est une sorte de Serveur-web. La même relation existe entre ISS et Serveur-web. La relation entre Serveur-web et Service exprime le fait que Serveur-web est un Service parmi les services. En d’autres termes, Apache est un hyponyme de Serveur-web et Serveur-web est un hypéronyme de Apache. Donc, Nous parlons ici de relations sémantiques qui sont différentes de la synonymie. La relation est-un peut relier une classe enfant à une classe mère ou une instance à sa classe. Ces types de relations sont dominants dans le corpus des informations de sécurité. Un autre type de relation qui existe est la relation partie-de. Une classe peut être composée de plusieurs entités comme une entité peut faire partie d’une classe. Un exemple de telles relations est illustré dans la figure 5.4.b où entête est une partie de Paquet si nous nous plaçons par exemple dans le contexte d’un paquet du protocole TCP. Fig. 5.4 – Types de relations sémantiques. L’approche qui paraît la plus simple pour décrire ces relations consiste à définir le concept de chaque mot dans une liste, comme par exemple mettre dans la liste Apache → Serveur-web pour exprimer la relation est-un entre Apache et Serveur-web. En remplaçant toutes les instances d’une classe par la classe qui est un concept de l’ontologie revient à faire une abstraction des instances d’un concept. Cette représentation va diminuer le nombre de descripteurs dans l’espace vectoriel et en même temps va supprimer les descripteurs redondants. Nous servir d’une liste de ce genre de termes liés par de telles relations sémantiques paraît simple mais dans la majorité des cas la liste reste insuffisante, nous ne disposons pas de tous les termes qui peuvent être déployés. La liste ne peut jamais être exhaustive. Nous avons constaté que les produits ont une tendance à évoquer l’objet puis la classe à laquelle cet objet appartient, comme sur les exemples de messages suivants ”netasq firewall packet dropped” et ”astaro antivirus update failed”, ce qui veut respectivement dire que netasq est un firewall et astaro est un antivirus. Pour découvrir cette relation sémantique, nous procédons en premier à étiqueter un corpus de messages puis à le normaliser. Ensuite, nous extrayons automatiquement des séquences Indexation et réduction d’attributs Algorithme 2 Extraction de séquences candidates pour la reconnaissance de concepts Entrées: Corpus étiqueté et lemmatisé, liste des concepts de l’ontologie. 1: Corpus : vecteur des messages 2: Liste − sequence : la liste des séquences candidates 3: Concept : la liste des concepts 4: word : vecteur des mots d’un message 5: tag : vecteur des étiquettes associées aux mots d’un message 6: K : nombre de messages dans le corpus 7: Liste-sequence=null 8: pour (i = 1 to K) faire 9: message ← corpus(i) 10: word ← les mots de message 11: tag ← les étiquettes associées aux mots de message 12: m : le nombre de mots dans message 13: j←0 14: tantque (j < m) faire 15: nb = 0 16: sequence = null 17: tantque ((tag(j)=”nn”) et (j<m)) faire 18: sequence = sequence + word(j) 19: nb ← nb + 1 20: j ←j+1 21: fin tantque 22: si (nb > 1) alors 23: si (word(j − 1) ∈ concept) alors 24: Liste-sequence=Liste-sequence+sequence 25: sequence = null 26: finsi 27: finsi 28: j ←j+1 29: fin tantque 30: fin pour 31: retourner Liste-sequence 95 96 Module d’extraction de mots à base de schémas morphosyntaxiques comme “Nom Nom”, “Nom Nom Nom” et “Nom Nom . . . Nom”. Nous acceptons les séquences de taille supérieure à 3 car il existe des noms d’instances qui sont composés de plusieurs mots. Nous appelons séquences candidates les séquences qui ont été extraites et qui finissent par un terme du vocabulaire de l’ontologie. L’étape suivante consiste à analyser ces séquences candidates par un expert pour effectuer une sélection manuelle des séquences qui interprètent la relation est une instance de, ces dernières sont ajoutées au dictionnaire comme suit : instance ;classe (ex : astaro ;antivirus). Le pseudo code de ce processus est décrit sur l’algorithme 2. 5.6.4 Reconnaissance de la nature des fichiers Lorsque les équipements de surveillance remontent une information sur un fichier, ils rapportent le nom du fichier dans le message remonté. Généralement, chaque fichier porte un nom sous la forme nom_du_fichier.ext où ”.ext” représente l’extension. L’extension d’un fichier est donc uniquement une convention de nommage qui ajoute un suffixe à un fichier permettant de reconnaître le format d’un fichier et l’application qui peut l’ouvrir. Robots.txt Information Disclosure Suspicious file registrations.txt Ikonboard help.cgi allow read access to any file on the system Suspicious file webbbs.cgi Tab. 5.8 – Exemple de fichiers présents dans des messages de sécurité. Les fichiers sont représentés en caractère gras. Lors de la projection des messages dans un espace vectoriel, nous devons créer un attribut pour chaque mot du message. Sur les exemples de messages du tableau 5.8, il y a quatre noms de fichiers différents (Robots.txt, registrations.txt, help.cgi et webbbs.cgi), par contre ces fichiers sont seulement de deux types dont leurs extensions sont ”.txt” et ”.cgi”. Une manière de réduire le nombre de dimensions est d’effectuer le regroupement de tous les mots dont le suffixe est un point suivi d’un certain nombre de caractères par le terme file. En revanche, dans la majorité des cas, cette solution nous fait perdre de la connaissance pour classifier un nouvel événement. En effet, évoquer un fichier exécutable ou un fichier texte n’a pas le même impact sur le SI. Par exemple, l’exécution d’un script sur un serveur web peut permettre l’accès à un répertoire privilégié et par conséquent permet l’effaçage du site web ou le vol d’informations sensibles. Afin de faire ressortir le danger qui peut être présent et afin de conserver la sémantique du message brut, nous avons effectué une classification des fichiers selon leurs extensions tout en gardant comme objectif la surveillance du SI. L’idée derrière cette classification est le regroupement de fichiers par type ainsi que de garder la trace sur la nature de l’information pour aider le processus de la classification. La classification effectuée sur les fichiers est présentée sur le tableau 5.9. La première colonne représente les classes des fichiers, la deuxième colonne donne une description de la classe et quelques exemples d’extensions entre parenthèses. Il est possible que certaines classes puissent être fusionnées comme webfile est textfile, mais ici nous séparerons les deux classes pour garder des indices sur la cible. Si le fichier en question est de type webfile, il y Indexation et réduction d’attributs Type de fichier Description textfile Fichier texte (.txt, .asc, .ascii) datafile Fichier de données comme les fichiers traités par les applications de base de données 97 (.dat, .db, .mdb), les fichiers disque (.cd, .iso, .vcd) multimediafile Fichier image, audio et vidéo et fichier encodé (.bmp, mp3, m2v) webfile Fichier web (.css, .jsp, .htm) pluginfile Fichier de Plugin (fxt, .plg, .xlv) systemfile Fichier du système (.lnk, .nfo, .swp) settingfile Fichier de configuration (.cnf, .conf, .dbg) executablefile Fichier executable (.app, .exe, .cmd) compressedfile Fichier compressé (.ar, .gz, .zip) encryptedfile Fichier chiffré (.ccf, .dime, .mfs) developperfile Fichier développé (.bas, .cp, .java) passwordfile Fichier des mots de passe (.pwa, .pwl, .rzk) Tab. 5.9 – Classification des fichiers selon les extensions. a plus de chance que la cible soit un serveur web. Le même cas se présente entre textfile et passwordfile ; il est important de connaître les fichiers concernant les mots de passe car c’est un principe de sécurité qui permet la protection d’une ressource. Nous voulons aussi faire ressortir la notion de fichiers cryptés par la présence de la classe encryptedfile. Les fichiers encryptés ont besoin de la connaissance d’un secret pour les manipuler, il est important de les représenter par une classe à part. Afin d’effectuer ce traitement, nous avons mis dans un fichier chaque classe avec toutes ses extensions. Les extensions des fichiers ont été récupérées à partir du site web http ://www.fileinfo.net : ce site contient une base de données de milliers d’extensions de fichiers avec des informations détaillées sur les types de fichiers associés. Il organise les extensions en catégories. Nous avons gardé certaines catégories, fusionné certaines et nous en avons créé d’autres. Un échantillon d’extensions de la classe executablefile est illustré sur le tableau B.4. Il est important de noter qu’il peut exister des fichiers sans extensions, cas que nous n’avons pas traité ici. 5.6.5 Extraction des mots avec leurs équivalents par la traduction basée sur l’exemple La traduction automatique est le processus qui permet de traduire un texte écrit dans un langage source (LS) vers un texte écrit dans un langage cible (LC) par un programme informatique. Le nombre d’approches en traduction automatique s’est multiplié ces dernières années. Les premiers travaux se sont basés sur la définition d’un ensemble de règles de traduction du LS vers LC et sont connus sous le nom de ”machines de traduction à base de règles”. Par contre, les nouvelles approches se basent sur un corpus bilingue où nous distinguons les machines de traduction statistique (MTS) [16] et les machines de traduction guidée par l’exemple, connues dans la littérature sous le nom de Example-Based Machine Translation(EBMT) [115]. MTS se base principalement sur la fréquence des mots dans le corpus et sur la combinaison entre les mots du corpus. EBMT quant à lui, se base sur l’extraction et la combinaison de phrases. Nous nous intéressons dans notre travail à la traduction guidée par l’exemple. L’approche utilise la connaissance de la traduction déjà effectuée sur des textes. L’idée principale derrière est 98 Module d’extraction que si une phrase déjà traduite se produit de nouveau, l’utilisation de la même traduction pour la phrase est susceptible d’être correcte. Par exemple, si les traductions des phrases ”l’homme conduit la voiture” et ”Jean va à la banque” sont connues, il est possible de tirer des conclusions pour la traduction de la phrase ”L’homme va à la banque”. L’unité de traduction est la phrase : étant donné un ensemble de phrases dans LS avec leurs traductions correspondantes dans LC, pour la traduction d’une nouvelle phrase, sa similarité à quelques phrases sources dans la base de données est calculée. Puis, une phrase cible est construite à partir des parties pertinentes des phrases sources par substitution, modification et adaptation de séquences de mots. Plusieurs méthodes ont été inventées pour mettre en oeuvre le processus de substitution, de modification ou d’adaptation des séquences de mots qui diffèrent dans les exemples issus de la base d’exemples par rapport aux nouvelles phrases à traduire. Nous sommes intéressés par une heuristique développée par Cicekli et Güvenir [25] pour l’apprentissage de correspondances de terme entre LS et LC à partir de paires d’exemples traduits. L’approche se résume comme suit : étant donné deux paires d’exemples, si les deux exemples dans LS manifestent quelques similarités, leurs traductions correspondantes dans LC doivent avoir des parties similaires, et ces parties similaires doivent être les traductions des parties similaires entre les deux exemples dans LS. Voici ci-dessous un exemple. I give the book to Marie ←→ Je donne le livre à Marie I give the pencil to Marie ←→ Je donne le stylo à Marie Les parties similaires entre la paire des deux exemples sont soulignées et les parties différentes représentent le reste du texte. Les similarités dans LS sont présentées comme suit ”I give the X S to Marie”, et les similarités correspondantes dans LC sont présentées comme suit ”Je donne le X C à Marie”. Selon l’heuristique, les similarités doivent être les mêmes pour les deux paires d’exemples afin de déduire que X S est le composant qui peut être remplacé par une structure approprié de LS, X C se réfèrant à sa traduction dans LC. L’heuristique permet aussi d’inférer que book doit correspondre à livre et pencil doit correspondre à stylo d’où l’apprentissage de nouvelles correspondances entre les exemples. Nous allons nous servir de ce domaine de recherche et notamment des travaux dans [25] afin d’extraire des connaissances dans notre corpus des informations de sécurité. Nous posons qu’un message brut est exprimé en langage L1 qui est le langage d’un des produits utilisé dans la surveillance du SI, et que la catégorie du message est exprimée en langage L2 . Nous allons nous servir du corpus bilingue (langage du produit/langage de l’ontologie) pour pouvoir inférer des règles de traduction en utilisant les similarités et les différences entre une paire de couple de messages, ceci afin d’extraire la traduction des mots du langage L1 dans le langage L2 . Soit un corpus D1 de cardinal |D1 | = K1 messages bruts appartenant au langage L1 en provenance d’un produit de surveillance du SI. Soit D2 de cardinal |D2 | = K2 messages appartenant au langage L2 issue de l’ontologie. Soit un message mi ∈ D1 constitué d’une suite de Indexation et réduction d’attributs 99 terminaux du langage L1 . Cette suite sera notée mi = (li1 , li2 .., liK ). Soit un message Ck ∈ D2 constitué par les éléments des 4-uplets que l’on note Ck = (a1k , a2k , a3k , a4k ). Enfin, soit une base d’exemple, définit par une application surjective f de D1 → D2 , f (mi ) ∈ D2 est la traduction par l’expert du message mi d’un produit dans l’ontologie. Soit (mi , mj ) un couple de messages de L1 et soit (ck , cl ) leur traduction respective dans le langage L2 . Nous cherchons une séquence de matching M (mi , mj ) entre l’exemple mi et mj et une séquence de matching M (ck , cl ) entre leur traduction ck et cl . S’il existe un terme lip de mi et un terme ljp de mj tel que lip = ljp , ce terme est remplacé dans la séquence de matching par Sp . S’il existe un terme lip de mi qui est différent d’un terme ljp de mj , ce terme est remplacé dans la séquence de matching par Dp . Une séquence de matching entre le couple d’exemple (mi , mj ) est écrite par : M (m1 , m2 ) = X1 X2 ...Xk , avec Xi ∈ {S, D}, (S et D représentent respectivement la similarité et la différence entre les exemples de messages mi et mj ). De même nous cherchons une séquence de matching M (ck , cl ) pour le couple de catégories (ck , cl ) et la séquence de matching correspondante s’écrit M (ck , cl ) = Y1 Y2 Y3 Y4 , avec Yi ∈ {SS, DD}, (SS et DD représentent respectivement la similarité et la différence entre ck et cl ). Les deux exemples sont supposés dans notre cas avoir la même structure morphosyntaxique, c’est à dire que la structuration sémantique/grammaticale est identique : on cherchera des synonymes aux mêmes positions, ce qui est réaliste pour des messages issus de sondes (on est en présence de phrase très courte, avec sujet-verbe-complément). Les mots et leurs traductions ainsi obtenus sont ajoutés au dictionnaire sémantique. Nous nous intéressons dans ce chapitre aux règles générées par l’heuristique. La discussion sur les règles de généralisation est reportée au chapitre suivant. Le pseudo code de l’heuristique est illustré sur l’algorithme 3. Exemple : Soit le couple d’exemple (mi , mj ) : (added global group enabled, changed global group enabled) mi :added global group enabled → ck : rights config Add os accountgroup success mj changed global group enabled → cl rights config Modify os accountgroup success M (mi , mj )=added :changed global group enabled M (ck , cl )= rights config Add :Modify os accountgroup success l’italique représente la différence et le gras représente la similarité. Nous pouvons inférer les règles suivantes : added → add et changed → modify avec la règle de généralisation : Xi global group enabled → rights config Yi os accountgroup success, avec Yi est la traduction de Xi 5.6.6 Traitement des mots qui n’ont pas de sens L’objectif de ce traitement est de supprimer les mots jugés vides de sens dans notre contexte. Le premier traitement dans ce sens consiste à enlever les chiffres, les articles, les déterminants, les symboles et les mots de liaisons qui apparaissent fréquemment dans le corpus mais qui ne sont pas porteurs de sens. Pour éviter le traitement individuel des mots, nous travaillons sur les catégories de mot. En effet, la suppression de ces mots s’effectue sur un corpus étiqueté. Ce traitement est effectué en dernier pour ne pas influencer les traitements qui se basent sur la 100 Module d’extraction Algorithme 3 Extraction des traductions des mots du langage d’un des produits dans le langage de l’ontologie Entrées: Corpus bilingue , le corpus écrit en L1 est étiqueté. 1: Soit (mi , mj ) un couple de messages de L1 et soit (ck , cl ) leur traduction respective dans le langage L2 2: M (m1 , m2 ) ← match(mi , mj ) 3: M (ck , cl ) ← match(ck , cl ) 4: si (#de similarité(M (m1 , m2 )) = 0) et (#de similarité(M (ck , cl )) = 0) alors 5: Ne rien faire 6: sinon si (#de différence(M (m1 , m2 )) = 0) ou (#de différence(M (m1 , m2 )) 6= #dif f érence(M (ck , cl ))) alors 7: Ne rien faire 8: sinon si (#différence(M (ck , cl )=1) alors 9: si (il existe un terme lip de mi et un terme ljp de mj tel que lip = ljp ) et (il existe un terme ark de ck et un terme ark1 de cl tel que ark = ark1 ) alors 10: remplacer lip dans M (m1 , m2 ) par Sp 11: remplacer ark dans M (ck , vl ) par SSr 12: finsi 13: si (il existe un terme lip de mi qui est différent d’un terme ljp de mj ) et (il existe un terme ark de ck qui est différent d’un terme ark1 de cl ) alors 14: remplacer lip dans M (m1 , m2 ) par Dp et remplacer 15: remplacer ark dans M (ck , vl ) par DDp 16: finsi 17: Apprendre les règles suivantes : lip ← ark ,lkp ← ark1 18: Apprendre la règle de généralisation : M (m1 , m2 ) ← M (ck , cl ) 19: finsi 20: retourner les règles Indexation et réduction d’attributs 101 grammaire du texte. Le deuxième traitement consiste à enlever certains adjectifs du texte. Dans le contexte de la sécurité, un message remonté par un produit de surveillance décrit une action effectuée ou un état du système. Notre ontologie ne s’intéresse pas à l’état de la cible si le message décrit aussi un mouvement effectué sur la cible. C’est à dire, elle ne normalise pas la conséquence de l’action mais l’action en elle même. Nous avons constaté qu’il existe des cas où nous pouvons supprimer les adjectifs qui expriment des états des composants du système, sans citer les états explicitement. Dans ce cas, nous pouvons supprimer l’adjectif dans la phrase car il porte une information qui n’est pas prise en compte dans notre modélisation. Nous avons mis en place des règles, qui se basent sur la grammaire de la phrase, et qui sont appliquées automatiquement sur un corpus étiqueté afin de supprimer l’adjectif dans un tel cas. Prenons l’exemple de la règle : Verbe Adjectif Nom → Verbe Nom ; elle veut dire que si un adjectif est présent dans la phrase entre un verbe et un nom il sera supprimé. Le message suivant : specified/VBD local/JJ group/NN already/RB exist/VB devient specified/VBD group/NN already/RB exist/VB. Le terme supprimé est local, il représente une propriété de l’objet group, qui correspond à un niveau de détail qui n’est pas pris en compte dans notre modélisation. 5.6.7 Architecture du module d’extraction Le module d’extraction est une succession d’exécution de processus. Chaque processus utilise le résultat de traitement du processus précédent et fournit des données pour le processus suivant. Le traitement commence par l’étiquetage, puis viendra la lemmatisation, l’extraction de concepts, la reconnaissance des types de fichiers, l’application des méthodes de traduction par l’exemple et enfin la suppression des mots vides de sens. Nous avons besoin de l’intervention de l’expert pour valider les termes extraits par le processus d’extraction de concepts et la traduction guidée par l’exemple. Après la validation des termes, ces termes seront ajoutés à un dictionnaire que nous appellerons dictionnaire sémantique. A la fin de ce traitement, nous obtenons le corpus de départ traité, un vecteur d’attributs et la connaissance enregistrée dans le dictionnaire afin de l’utiliser ultérieurement pour le corpus de test. L’architecture complète du module d’extraction est illustrée sur la figure 5.5. 5.7 Expérimentation Pour nos expérimentations, nous utilisons le même corpus que celui utilisé dans 4.6.1. Ce corpus nous a été fourni par l’entreprise Exaprotect. Tous les algorithmes décrits dans la section 5.6 sont mis en oeuvre en java. Le tagger de Brill a été téléchargé sur le web car il est gratuit est disponible sur plusieurs adresses. Nous avons aussi implanté IG en java. 102 Expérimentation Fig. 5.5 – Processus d’extraction des attributs d’un message de sécurité. 5.7.1 Application de la méthode gain d’information Soit D un corpus de messages de sécurité et soit m le nombre de catégories dans ce corpus. Pour chaque terme du corpus, l’IG d’un terme est calculé par la formule suivante : IG(t)= − Pm i=1 + P (t̄) P (ci )logP (ci ) + P (t) Pm i=1 Pm i=1 P (ci /t)logP (ci /t) P (ci /t̄)logP (ci /t̄) Où P (ci ) est le nombre de messages affectés à la classe c divisé par le nombre total de message dans le corpus de traitement, P (t) est le nombre de message contenant le terme t divisé par le nombre total de messages, P (t̄) est le nombre de messages sans le terme t divisé par le nombre total des documents. P (ci /t) est la probabilité conditionnelle de ci sachant la présence de t et P (ci /t̄) est la probabilité conditionnelle de ci sachant l’absence de t. Nous trions ensuite les IG dans l’ordre décroissant et nous retenons les termes qui ont l’IG supérieur à une valeur seuil. Nous ne pouvons pas déterminer à priori le seuil. Le nombre de termes retenus est identifiable par l’expérimentation au moment de la classification par un algorithme de classification. Le seuil peut varier d’une expérience à une autre. IG croît avec l’augmentation de la dépendance entre t et c et malheureusement aussi avec l’augmentation de la probabilité de t. En conséquence, les termes avec une faible entropie ont une faible IG même s’ils peuvent être fortement corrélés avec c. 5.7.2 Application de la méthode LSI Détail de la méthode Soit D la matrice des occurrences termes/messages de taille t × d tel que t représente le nombre de termes dans le corpus de messages et m représente le nombre de messages. La matrice rectangulaire D peut être décomposée en un produit de 3 autres matrices : Indexation et réduction d’attributs 103 0 D = T0 S0 W0 Tel que S0 est une matrice diagonale qui contient les valeurs singulières de D, et les matrices orthonormales T0 et W0 sont les vecteurs singuliers correspondants. On appelle ceci la décomposition en valeur singulière de D. De plus, les valeurs de la diagonale de S0 doivent être triées dans l’ordre décroissant. L’approche suppose que la représentation initiale de la matrice D contient beaucoup de bruits. Ces bruits se retrouvent dans ces dimensions de valeurs faibles, ce qui ramène les dimensions de S0 à k en supprimant les valeurs faibles, et cette matrice réduite est notée S. En conséquence, les valeurs des matrices T0 et W0 doivent respecter ce tri puis subissent des suppressions des colonnes correspondantes de T0 et des lignes correspondantes de W0 pour obtenir respectivement T et W . La matrice reconstituée correspond à une matrice de termes-messages nettoyée : D ≈ D̂ = T SW 0 Le modèle SVD peut être interprété géométriquement, les lignes des matrices réduites des vecteurs singuliers sont prises comme coordonnées des points représentant les termes et les messages dans un espace de k dimensions. Test de LSI Un exemple concret d’application de la méthode LSI sur un échantillon de messages de sécurité nous permet de préciser celle-ci de façon beaucoup plus claire. Le tableau 5.10 décrit un petit échantillon de messages de sécurité. Dans notre contexte, le document représente un message de sécurité, les messages (étiqueté 1-20) provenant de plusieurs produits. Les articles ont été retirés des messages, le reste des mots a été utilisé pour indexer ces messages. Nous avons sélectionné des messages qui représentent l’ouverture de session d’un compte sur un service ou sur un hôte. Les messages ont donc le même contexte, utilisent des mots différents pour exprimer la même chose. Ce choix de messages est intentionnel afin de voir en clair ce que cette méthode peut nous apporter. Les éléments de la matrice des occurrences terme/message sont simplement la présence ou l’absence du terme dans chaque message. De telles matrices sont utilisées comme des données d’entrée pour l’analyse par la méthode SVD. Nous avons effectué les décompositions en valeurs singulières au moyen de la routine svd du package LAPACK1 . Les résultats numériques de l’application de la SVD sur la matrice D sont représentés géométriquement sur la figure 5.6. Les termes et les documents sont représentés dans le nouvel espace vectoriel de deux dimensions. Nous avons choisi pour cet exemple de ne garder que 2 valeurs singulières (donc le k=2) pour pouvoir visualiser et interpréter les résultats de la solution. Nous pouvons constater qu’il y a essentiellement trois types de comparaisons : celles qui comparent deux messages (comment les messages i et j sont similaires ?), celles qui comparent deux termes (comment les termes i et j sont similaires ?) et celles qui comparent un terme et un document (comment un document i et un terme j sont associés ?). Le sens d’un terme est représenté par un vecteur, la proximité entre les termes (respectivement les messages) 1 http ://www.netlib.org/lapack/ 104 Expérimentation Exemple d’application de LSI Messages (entre parenthèses les initiaux du produit) 1: Authentication failed (ac) 2: Authentication failure for user from host (sg) 3: Authentication succeeded (ac) 4: User admin login accepted from telnet (fo) 5: User admin login successfully from GUI (fo) 6: User admin login successfully from SSH (fo) 7: User root login failed from SSH (fo) 8: Access denied (sy) 9: Access denied to mailbox (ex) 10 : Account logon (se) 11 : Admin access refused (in) 12 : Admin Connection (ar) 13 : Admin logged in(ns) 14 : Admin login (lu) 15 : Admin Login Failed (lu) 16 : Administrator connected successfully (ex) 17 : Administrator logged on database (ex) 18 : Anonymous FTP logon (wu) 19 : Failed login (as) 20 : LDAP anonymous account log denied (ex) Produits ac : Activpack ar : Arkoon as : Astaro_V4 ex : Exchange fo : Fortigate in : Ingrian lu : Lucent ns : NSM se : Security_wmi sy : System_wmi wu : WU-FTPD sg : sgs Matrice occurrence terme/message Termes Messages 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 authentication 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 failed 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 failure 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 user 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 host 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 succeeded 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 login 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 accepted 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 telnet 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 successfully 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 gui 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ssh 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 root 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 access 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 denied 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 mailbox 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 account 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 refused 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 connection 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 logged in 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 administrator 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 connected 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 logged on 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 database 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 anonymous 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 ftp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 logon 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 ldap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 log 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Tab. 5.10 – Un échantillon de 20 messages de sécurité provenant de produits différents. Les termes sont représentés par tous les mots qui apparaissent dans les messages bruts à l’exception des articles. Indexation et réduction d’attributs 105 Sonde # de messages # de mots avant traitement # de mots après traitement Taux de réduction WMI 1117 912 671 26,43% Exchange 686 601 459 23,63% Cisco-fw 617 593 495 16,53% Checkpoint 120 207 184 11,11% Tab. 5.11 – Résultat du module d’extraction. peut être mesurée par le cosinus entre les vecteurs correspondants. Nous remarquons sur la figure 5.6 que les termes sont proches car ils sont présents dans le même message (comme ftp et logon), partageant le même contexte (comme ssh et accepted, ils apparaissent avec les mêmes mots comme login et user). Nous remarquons que les mots rares ne sont pas isolés, ils sont toujours proches des mots qui se trouvent avec eux dans les mêmes messages. Nous remarquons que les mots les plus fréquents sont éloignés par rapports aux autres mots. Ce constat nous permet de déduire que si le mot apparaît plusieurs fois, il n’est pas discriminant pour LSI. 5.7.3 Résultat d’application du module d’extraction Nous avons sélectionné des produits de sécurité hétérogènes afin de voir le résultat des traitements effectués par le module d’extraction des attributs de messages. Nous constatons sur le tableau 5.11 que le module d’extraction a pu réduire la taille de l’espace vectoriel des messages. Le taux de réduction n’est pas fixe, il diffère d’un produit à un autre. Ce module d’extraction a pu éliminer une partie des termes. D’une part, à cause du regroupement des termes sous le même concept, ces termes étant liés par des relations sémantiques. D’autre part, à cause de la suppression de termes qui n’apportent pas d’information pour notre modélisation. L’effet du module d’extraction est vu actuellement en termes de taux de réduction d’attributs. Il n’est pas vu en termes de précision qu’il peut apporter aux algorithmes de classification. 5.7.4 Conclusion Nous avons choisi d’utiliser trois approches afin de réduire la taille du corpus des informations de sécurité. Nous avons décrit chacune des approches et comment les appliquer à notre contexte. L’effet réel de ces approches n’est visible qu’après la classification des messages de sécurité par un classifieur. En effet, la comparaison doit se faire sur le même corpus. Le corpus doit subir chacun des traitements séparément et le résultat de chaque traitement sera utilisé comme corpus d’apprentissage. Ensuite, la classification de nouveaux messages doit se faire séparément, en se basant sur les corpus d’apprentissages fournis par les méthodes de réduction de termes. 5.8 Conclusion Ce chapitre expose les approches possibles pour la sélection et l’extraction d’attributs. Ces approches visent à réduire la taille d’un corpus dans le contexte du problème de CT pour que les algorithmes de classification évoluent dans un espace vectoriel de dimension raisonnable. 106 Conclusion Nous avons effectué une analyse du corpus des informations de sécurité pour connaître ses caractéristiques dans le but de choisir une méthode de réduction. Nous avons comparé les méthodes utilisées dans la littérature pour tester un sous-ensemble pertinent à notre problématique. Nous avons proposé un module qui prend en charge la réduction de la taille des attributs du vecteur représentatif du message. Ce module effectue des traitements syntaxiques et sémantiques sur le corpus des informations de sécurité dans le but de ne pas perdre le sens du message brut. Il n’est pas possible de savoir à priori quelle méthode conduira aux meilleures performances ; des expériences seront présentées dans le chapitre 6 afin de déterminer la représentation la mieux adaptée à la mise en oeuvre des apprentissages dans notre contexte particulier. Maintenant que le problème de la taille des vecteurs est cerné, nous allons poursuivre dans le chapitre suivant par la présentation des algorithmes d’apprentissage automatique qui sont utilisés dans la CT puis nous adapterons certains algorithmes à notre problème. Indexation et réduction d’attributs Fig. 5.6 – La projection des termes et des documents dans les deux nouveaux axes. 107 108 Conclusion 6 Algorithmes d’apprentissage appliqués à la CT 6.1 Introduction Les masses de données générées par les systèmes de surveillance des SI constituent une base d’informations pour le domaine de la sécurité. Cependant, notre capacité d’analyse de tels volumes de données croit bien moins rapidement que notre capacité à collecter ces données. Nous avons besoin de nouvelles générations de techniques de calcul et d’outils de représentation pour extraire des connaissances réellement utiles d’un tel volume. Par exemple, la mise en place d’une description uniforme des informations de sécurité peut rapporter la connaissance des corrélations existantes dans une base d’événements. Cette connaissance peut être employée pour mieux protéger le SI. Les informations de sécurité dans leur état brut sont souvent une ressource potentielle dormante mais, une fois exploitées, peuvent apporter des avantages substantiels. Dans ce chapitre, nous allons apporter notre réponse au problème du traitement automatique des informations de sécurité. Nous nous appuieront sur les machines d’apprentissage qui ont été adaptées au problème de CT, dans l’objectif d’extraire les connaissances utiles à la classification des événements bruts de sécurités. Tout d’abord, nous passons en revue la littérature sur les machines d’apprentissage appliquées à la CT. Nous adapterons ensuite plusieurs approches à notre problématique. Enfin, nous effectuerons une série d’expériences afin de trouver la bonne approche pour la classification automatique des informations de sécurité. 109 110 6.2 Approches de construction de système de classification Approches de construction de système de classification Le nombre de classes de techniques d’apprentissage qui ont été utilisées en CT est important. Il comprend les méthodes probabilistes, les méthodes de régression, les arbres de décision, l’apprentissage de règles de décisions, les réseaux de neurones, les k plus proches voisins, les machines à support de vecteur, les algorithmes génétiques et les classifieurs basés sur le vote. Il existe une importante bibliographie sur la catégorisation automatique de textes créée à l’origine par Sebastiani et actuellement maintenue et mis à jour par Evgeniy Gabrilovich à l’adresse http://www.cs.technion.ac.il/~gabr/resources/atc/ATCbibliography. bib (des recherche peuvent être effectuées dans cette base sur l’adresse http://liinwww.ira. uka.de/bibliography/Ai/automated.text.categorization.html) 6.2.1 Classifieurs probabilistes Les classifieurs probabilistes voient la fonction de classification en terme de probabilité qu’un → document représenté par le vecteur d j = (w1j , w1j , . . . , w|τ j| ) de termes (binaires ou pondérés) appartient à la catégorie ci (pour plus de détail voir [76]) et calcule cette probabilité par l’application du théorème de Bayes, énoncé par : → P (ci | dj ) → = P (ci )P ( d j |ci ) (6.1) → P ( d j) → Dans (6.1), l’espace d’événements est l’espace des documents : P ( d j ) est la probabilité qu’un → document choisi au hasard a le vecteur d j en tant que représentation, et P (ci ) la probabilité → qu’un document choisi au hasard appartient à ci . L’estimation de P ( d j |ci ) dans (6.1) est problématique. Afin d’alléger le problème, il est courant de faire l’hypothèse que les cordonnées du document deux à deux, lorsqu’elles sont considérées comme des variables aléatoires, sont statistiquement indépendantes les unes des autres ; cette hypothèse d’indépendance est exprimée par l’équation : → P ( d j |ci ) = |τ | Y P (wkj |ci ) (6.2) k=1 Les classifieurs probabilistes qui utilisent cette hypothèse sont appelés bayesien naïf (BN) et représentent la plupart des approches probabilistes de CT dans la littérature [23, 107, 135]. La classification d’un nouveau document dj par un classifieur probabiliste consiste à calculer → la probabilité P (ci | dj ) pour i = 1 . . . |C| où C est l’ensemble des classes, puis d’affecter le document à la classe qui génère la probabilité maximale. Les classifieurs bayésien ont montré leur efficacité dans de nombreux travaux de classification de texte [6, 69]. Algorithmes d’apprentissage appliqués à la CT 6.2.2 111 L’arbre de décision Un classifieur de type arbre de décision [52, 77] repose sur un arbre où chaque noeud interne est marqué par un terme et est associé à une condition sur ce terme. Les branches sortant du noeud correspondent aux résultats de test et les feuilles sont étiquetées par les catégories. La construction de l’arbre s’effectue à partir des documents d’apprentissage. → La classification d’un document ayant d j comme vecteur commence à partir du noeud racine, puis les noeuds internes sont successivement visités jusqu’à ce qu’une feuille soit atteinte. Au niveau de chaque noeud, le test associé est effectué afin de déterminer le noeud suivant. La catégorie du document est celle qui se trouve à la feuille finale. 6.2.3 Règle de décision Ce classificateur consiste à construire pour chaque catégorie ci un ensemble de règles, permettant de distinguer une catégorie d’une autre [3]. Une règle est de type Si <formule> alors <catégorie> où la prémisse est en forme normale disjonctive (FND). Les littéraux dans les prémisses représentent la présence ou l’absence d’un terme dans le document de test dj , tandis que la clause de l’entête indique la décision pour classer dj dans la catégorie ci . Les systèmes d’apprentissage de règles FND varient considérablement en termes de méthodes, d’heuristiques et de critères employés pour la généralisation et l’élagage de règles. Parmi ce type de système nous citons CHARADE [90] et RIPPER [29]. 6.2.4 Rocchio Dans cette méthode, un vecteur profil est construit pour chaque catégorie. Le profil pour une catégorie ci correspond au barycentre des documents d’apprentissage assignés à la catégorie ci . Le classement d’un nouveau document s’effectue en calculant la distance euclidienne entre le vecteur du document et celui de chacun des profils de catégories, le nouveau document est assigné à la classe la plus proche [52, 125]. 6.2.5 Réseaux de neurones (RN) Les réseaux de neurones ont été largement utilisés dans différents domaines et particulièrement en CT, sous différentes formes. Ils sont principalement distingués en réseaux de neurone linéaires qui ont été proposés et testés dans [108, 129] et non linéaires [108, 135]. Un réseau de neurone est un réseau d’unités construit à partir des documents d’apprentissage, où les unités d’entrées représentent les termes, les unités de sorties représentent la (ou les) catégorie(s) d’intérêts, et les arcs reliant les unités représentent les relations d’indépendances. Pour classer un document de teste dj , ses termes wkj sont chargés dans les unités d’entrées. L’activation de ces unités est propagée à travers le réseau, et la valeur de l’unité de sortie détermine la décision de la catégorisation. Le problème dans l’utilisation des réseaux de neurones et que le temps d’entraînement est souvent excessif et le réseau obtenu est difficile à interpréter. 112 6.2.6 Approches de construction de système de classification Support Vector Machine (SVM) Les machines à support de vecteur utilisent des surfaces de décision pour diviser les points représentant les documents en classes. L’idée des machines à support de vecteur a été introduite par Vapnik en 1995 [123] pour les machines d’apprentissage. Joachims [66] l’a introduit en CT puis les a utilisés dans plusieurs travaux [74, 135, 137]. Cette approche a été conçue pour les problèmes de classification binaire puis a été adaptée à la classification multi-classes. Dans sa forme la plus simple, les documents d’apprentissage sont représentés par des vecteurs et l’algorithme détermine entre toutes les surfaces σ1 , σ2 , . . . , σn dans un espace de |T | surfaces celles qui séparent les exemples d’apprentissages en classes. Une surface de décision dans un espace linéairement séparable représente un hyperplan. Les documents de tests sont classifiés en fonction de leurs positions par rapport aux hyperplans. Comme l’affirme Joachims, un avantage que les SVMs offrent pour le problème de CT est que la réduction de la dimension n’est généralement pas nécessaire, comme les SVMs ont tendance à être assez robuste pour le phénomène de surapprentissage et peuvent résoudre des problèmes de dimensions considérables. Des expériences récentes indiquent que la sélection d’attributs tend à être désavantageuse pour les performances des SVMs [11]. Il a été apporté dans [66, 74, 111, 137] que les SVMs ont permis la construction de systèmes très puissants. 6.2.7 Classification par vote (voted classification) Ce système de classification se base sur l’idée que k différents classifeurs peuvent être mieux qu’un seul si leurs jugements individuels sont combinés convenablement. Cette approche prend un algorithme de classification et un ensemble d’apprentissage comme données d’entrées et entraine le classifieur plusieurs fois sur des versions différentes de l’ensemble d’apprentissage. Les classifieurs générés sont combinés pour créer un classifieur final, qui va être utilisé pour classer les documents de l’ensemble de test. Les algorithmes de vote peuvent être divisés en deux types : boosting [91] et bagging [13]. La principale différence entre les deux types est la façon dont les différentes versions de l’ensemble d’apprentissage sont formées. 6.2.8 K plus proche voisin (k-PPV) La première application du k-PPV à la catégorisation de textes a été rapportée par Masand et al. [30, 85]. L’idée consiste à déterminer la catégorie d’un document de test tout en se basant sur les catégories des k documents qui lui sont les plus proches dans l’espace de documents. Ensuite, le document de test est affecté à la catégorie dominante. k-PPV est facile à mettre en oeuvre, ce type de classifieur ne construit pas une représentation explicite des catégories. En outre, des expérimentations dans [133, 135] montrent que la méthode donne des résultats prometteurs pour la CT. Algorithmes d’apprentissage appliqués à la CT 6.2.9 113 Modèle de régression Quelques chercheurs tentent à résoudre le problème de CT en utilisant les modèles de régression. Ces classifieurs se basent sur les statistiques. Plusieurs variantes ont été proposées, la plus connue d’entre elles étant la Linear Least Square Fit (LLSF) [134] dans laquelle les documents sont modélisés par deux vecteurs, un vecteur de poids sur les termes et un vecteur de poids sur les catégories ; la classification consiste à ajuster les poids des catégories. 6.3 Évaluation des classifieurs Toutes les méthodes de classification que nous avons évoquées dans la section précédente aboutissent à un résultat acceptable, plus ou moins efficacement suivant les contextes. Toutefois, l’utilisateur du système de classification aimera mesurer le coût ou le bénéfice dû au remplacement d’un système traditionnel par un système entièrement automatique. Il est évident qu’il est nécessaire de fournir des données afin que les utilisateurs puissent prendre une décision. Quelles mesures pourrions-nous utiliser pour refléter la capacité du système à satisfaire l’utilisateur ? Cleverdon [122] a donné une réponse à cette question en énumérant six grandes quantités mesurables : 1. La couverture de la collection, qui est la mesure dans laquelle le système inclut les exemples appropriés ; 2. Le délai, qui est l’intervalle moyen entre le moment où la demande de recherche est faite et le temps qu’une réponse est donnée ; 3. La forme de représentation des résultats ; 4. L’effort requis de la part de l’utilisateur pour obtenir des réponses à ses demandes de recherche ; 5. Le rappel du système, qui est la proportion de documents pertinents en réponse à une demande de recherche ; 6. La précision du système, qui est la proportion de documents recherché qui est réellement pertinent. Il a été affirmé dans [122] que de (1) à (4) sont faciles à évaluer. L’efficacité de la classification est mesurée en terme des notions classiques du rappel et de la précision du domaine de l’extraction d’information, adaptées au cas de CT. L’évaluation des systèmes de classification automatique de textes est effectuée donc de façon expérimentale. Il est supposé que plus le système est efficace, plus il est en mesure de satisfaire l’utilisateur. Il est également supposé que la précision et le rappel sont suffisants pour la mesure de l’efficacité [122], mais il existe aussi d’autres mesures qui ont été évoquées dans la littérature. Le rappel, la précision et, autres mesures Lors de l’évaluation de la performance d’un système, quatre quantités sont d’intérêt pour chaque catégorie : – a : le nombre de documents correctement assignés à cette catégorie. 114 Discussion – b : le nombre de documents incorrectement assignés à cette catégorie. – c : le nombre de documents incorrectement rejeté de cette catégorie. – d : le nombre de documents correctement rejeté de cette catégorie. A partir de ces quantités, nous définissons les mesures de performances suivantes : rappel = a a+c précision = a a+b conséquence = accuracy = erreur = b b+d a+d a+b+c+d b+c a+b+c+d (6.3) (6.4) (6.5) (6.6) (6.7) Afin d’évaluer la moyenne des performances à travers les différentes catégories, les deux méthodes nommées micro-moyenne (micro-averaging) et macro-moyenne (macro-averaging) ont été utilisées. La macro-moyenne est déterminée en calculant d’abord les mesures de performance par catégorie et en faisant ensuite la moyenne de ces dernières pour calculer la moyenne globale. La macro-moyenne est déterminée d’abord par le calcul du total de a, b, c et d pour toutes les catégories et ensuite utilise ces totaux pour calculer la mesure de performance du résultat. Il existe une distinction importante entre les deux types de moyenne. La mico-moyenne donne un poids égal à chaque document, quant à la macro-moyenne accorde un poids égal à chaque catégorie. Un autre critère d’évaluation a été défini par Van Rijsbergen [122] qui combine le rappel et la précision est le F-measure afin de satisfaire certaines propriétés théoriques [122] : Fβ = (β 2 + 1) ∗ précision ∗ rappel β 2 ∗ précision + rappel (6.8) Où β est un paramètre permettant les différentes pondérations du rappel et de la précision. 6.4 Discussion La littérature en CT est riche, elle fournit des informations sur l’application des différentes méthodes individuellement. Cependant, il est très difficile de les comparer entre elles de façon globale, les exemples qui illustrent chaque proposition étant souvent bien adaptés à la méthode et les conclusions ne sont pas forcement extensible à tous les types de données Par exemple, on ne peut pas dire si la performance du réseau de neurone par Weiner [129] est statistiquement meilleur ou pire que la performance des SVM par Joashims [66], car les données utilisées dans les évaluations de ces méthodes sont différentes. Les classificateurs BN ont fait preuve de mauvais résultats dans certaines études [66, 77], d’autre part, quelques papiers ont rapporté que les méthodes de BN se comportent étonnant bien [6, 69], et sont largement utilisés récemment. Il est difficile de comprendre ce phénomène car les mesures des évaluations sont incomparables ou les évaluations de la méthode ont été Algorithmes d’apprentissage appliqués à la CT 115 effectuées sur deux ensembles différents de tests. Dans la pratique, les catégories ont une distribution non uniforme dans le corpus d’apprentissage. Une question qui se pose est la suivante : quelle est la robustesse de ces méthodes pour résoudre les problèmes avec une distribution inégale des catégories ? Peut être qu’il serait significatif de comparer les performances des différents classifieurs par rapport à la fréquence des catégories ! En outre, la plupart des systèmes de classification automatique de textes proposés dans la littérature ont été expérimentés sur le corpus Reuters1 et/ou OHSUMED [58]. Une expérience a été menée dans [109] sur deux corpus complètement différents. Un corpus d’articles de journaux et un autre de texte littéraire. Le premier corpus a un style d’écriture direct et utilise un vocabulaire restreint, le deuxième utilise les métaphores, les rimes et un vocabulaire étrange. L’expérience a montré que la classification automatique du deuxième corpus est difficile par rapport au premier corpus. Nous pouvons dire que la nature du texte à classer peut aussi influencer l’efficacité des classifieurs. Toutefois, les comparaisons sont plus problématiques quand il s’agit de classificateurs différents testés par des expériences différentes, ce qui est très largement le cas lors de la comparaison des résultats publiés par différents auteurs. Dans ce cas, divers facteurs, souvent étrangers à l’algorithme d’apprentissage, peuvent influencer les résultats expérimentaux. Ceci peut comprendre, entre autres, les différents choix des méthodes de réduction de termes et l’indexation du corpus dans la phase de prétraitement. Une expérience intéressante et objective a été menée par Yang et Liu [135]. Ils ont testé les performances de cinq systèmes de classification (SVM, k-PPV, RN, LLSF et BN) dans le but de trouver des critères permettent la comparaison des performances relatives aux différentes méthodes. Les cinq classifieurs ont été testés sur le même ensemble de test en utilisant quatre mesures de performances. En fonction des résultats de performances des classifieurs, les mesures de performances ont été regroupées en deux classes. La première classe contient qu’une seule mesure et suggère que SV M > k − P P V >> {LLSF, RN } > BN Où ’>’ indique que le classifieur qui est sur sa gauche est meilleur que celui qui est sur sa droite. La deuxième classe regroupe trois mesures et suggère que {SV M, k − P P V, LLSF } > {RN, BN } Ce regroupement et ce classement inconsistants de classifieurs selon leurs performances reflète un biais dans les mesures de performances. Les auteurs rapportent que la différence des résultats est due à la présence et/ou l’absence des catégories rares et/ou catégories fréquentes. Les auteurs ont conclu que les mesures d’évaluation peuvent être utilisées conjointement pour faire une comparaison par croisement, que les résultats d’un test significatif dépendent du choix 1 Un corpus d’articles de journaux mis à disposition par l’agence de presse Reuters. Il existe plusieurs versions du corpus 116 Application de quelques approches de CT à la classification des messages de sécurité (a) Performances de tests sur les catégories rares. (b) Performances de tests sur les catégories fréquentes. Fig. 6.1 – Utilisation de la mesure macro-moyenne par les cinq classifieurs, et influence de l’efficacité des classifieurs par la distribution des catégories dans le corpus de test [135]. kNN, NN et NB représentent respectivement k-PPV, RN et BN sur les figures a et b. de mesures de performance et de la distribution des catégories dans le corpus d’apprentissage. On peut noter que SVN et kNN se comportent presque de la même manière pour les différentes mesures de tests. Quelques résultats de ce travail sont illustrés sur la figure 6.1. Cependant, Il est important de garder à l’esprit que ces valeurs ne sont pas absolues et ne sont pas des jugements finaux sur la comparaison de l’efficacité des classifieurs. La raison principale est que les comparaisons ont tendance à être assez fiables lorsqu’il s’agit de nouvelles expériences, effectuées par un autre auteur sous des conditions contrôlées attentivement. Les différentes remarques citées dans cette section prouvent que le succès d’une méthode dépend d’un ensemble de paramètres qui vont du codage des documents au choix des algorithmes et de leur utilisation, et qu’il est, par conséquent, extrêmement difficile de tirer des conclusions définitives sur une approche. On ne peut que souscrire à la conviction commune que l’expérimentation sur le même corpus est vraiment nécessaire afin de parvenir à des conclusions plus définitives. 6.5 Application de quelques approches de CT à la classification des messages de sécurité 6.5.1 Notation Pour tous les algorithmes que nous évoquerons ci-après, nous utiliserons les mêmes notations. Les messages de sécurité sont représentés dans un espace vectoriel. Soit D = {d1 , d2 , . . . , dm } l’ensemble de m messages dans le corpus d’apprentissage D. Soit τ = {w1 , . . . , wn } l’ensemble des n attributs d’un message (termes retenus pour la représentation d’un message). Pour un message dj dans D, sa représentation dans l’espace vectoriel est comme suit : → d j= Ci-dessus → dj (w1j , w2j , . . . , wnj ) (6.9) indique le vecteur du document dj . Dans ce travail, nous utilisons le modèle Algorithmes d’apprentissage appliqués à la CT 117 binaire : ( wij = 1 0 Si le terme wi est présent dans le message j Sinon Chaque message dj dans D est étiqueté par une seule classe ci dans C où C = {c1 , c2 , . . . , cl } l’ensemble des l catégories dans D. Nous définissons la fonction d’association d’un message dj à une classe ci par la fonction Classify comme suit : Classif y(dj ) = ci (6.10) Soit T = {t1 , t2 , . . . , tr } l’ensemble de r messages dans le corpus de test T . Il devient donc simple d’adapter la CT à la classification automatique de messages de sécurité. 6.5.2 Le bayésien naïf (BN) Illustrons les équations du théorème vu dans (6.1) au problème de classification de messages de sécurité. Supposons que nous disposons de l catégories de messages, déterminer à quelle catégorie ci sera associé un message t revient à calculer la probabilité de l’appartenance du message t à la catégorie ci . On peut calculer cette probabilité de la façon suivante : P (ci |t) = P (t|ci )P (ci ) P (t) (6.11) Dans (6.11), P (ci |t) représente la probabilité d’appartenance du message t à la catégorie ci qui peut être également déterminée en évaluant la fréquence d’apparition des mots du message t qui sont associés à la catégorie ci . P (ci ) est la probabilité qu’un message choisi au hasard appartient à la catégorie ci indépendamment du contenu du message. P (t) est la probabilité propre du message t. Pour réellement déterminer à quelle catégorie un message appartient, il faut calculer P (ci |t) pour chacune des catégories. Étant donné que P (t) reste constant pour toutes les catégories, déterminer P (ci |t) se résume juste au calcul de P (t|ci )P (ci ). Comme nous considérons qu’un message est composé d’un ensemble de mots, calculer P (t|ci ) reviendrait à calculer le produit des probabilités d’apparition de chaque mot wi dans la catégorie ci . Ce calcul se justifie par l’hypothèse selon laquelle les mots apparaissent indépendamment les uns des autres dans un message. Ce qui permet finalement d’écrire : P (t|ci ) = P (w1 |ci ) ∗ . . . P (wn |ci ) (6.12) Pour chacune des catégories, P (wr |ci ) est le rapport entre le nombre de messages contenant le terme wr et apparaissant dans la catégorie ci , et le nombre total de messages que comprend la catégorie ci . P (ci ) est calculé en divisant le nombre total de messages appartenant à la catégorie ci par la somme du nombre total de messages dans l’ensemble d’apprentissage. D’où la formulation suivante : P (ci |t) = P (w1 |ci ) ∗ . . . ∗ P (wm |ci ) ∗ P (ci ) (6.13) 118 Application de quelques approches de CT à la classification des messages de sécurité Si on applique directement la formule (6.13), le fait d’avoir un seul mot du message n’appartenant pas à une des catégories implique que la valeur de sa probabilité est égale à zéro, et par la suite P (ci |t) = 0. Dans nos expériences, nous traitons ce cas par deux façons. La première consiste à accepter la formule tel qu’elle, en négligeant la présence des autres mots dans la catégorie ; nous gardons donc dans nos calcul l’occurrence du mot i dans la catégorie j égale à zéro. La deuxième consiste à attribuer à l’occurrence du mot i dans la catégorie j non pas la valeur 0 mais la valeur 0, 1 EN appliquant le logarithme à l’expression (6.13), nous transformons les produits en additions, ce qui permet de réduire les calculs à effectuer par le classifieur. De cette manière, la probabilité d’appartenance d’un message t à une catégorie ci se calcule comme suit : log(P (ci |t)) = log(P (w1 |ci )) + . . . + log(P (wm |ci )) + log(P (ci )) (6.14) Algorithme 4 Bayesien_naif_Apprentissage(Term_Message, Category, Term_Count) Entrées: Term_Message[n][m], Category[m], Term_Count {représentent respectivement la présence ou l’absence de chaque terme dans chaque message du corpus d’apprentissage, la catégorie assignée à chaque message et le nombre total de termes dans le corpus d’apprentissage.} 1: Variables : Term_Category[n][l], CountCategory[l], P[n][l], ProCategory[l] { représentent respectivement le nombre d’occurrence de chaque terme dans chaque catégorie , le nombre total de mots dans chaque catégorie, la probabilité qu’un terme apparaît dans une catégorie et la probabilité d’une catégorie.} 2: pour (chaque terme wi ) faire 3: pour (chaque catégorie cj ) faire 4: Calculer Term_Category[i][j] : l’occurrence du terme wi dans la catégorie cj 5: fin pour 6: fin pour 7: pour (chaque catégorie cj ) faire 8: Calculer CountCategory[j] : le nombre de termes apparaissant dans la catégorie cj 9: fin pour {Calculer les probabilités P (wi /cj )} 10: pour (chaque termes wi ) faire 11: pour (chaque catégorie cj ) faire 12: si (le terme i est présent dans la catégorie j alors 13: P (wi /cj ) ← Term_Category[i][j] / CountCategory[j] 14: sinon 15: P (wi /cj ) ← 0.1 / CountCategory[j] 16: finsi 17: fin pour 18: fin pour {Calculer les probabilités P (ci )} 19: pour (chaque catégorie ci ) faire 20: ProCategory[i] ← CountCategory[j]/Term_Count 21: fin pour 22: retourner P, ProCategory Ce calcul est effectué pour chaque catégorie et on considère la probabilité la plus élevée pour choisir à quelle catégorie sera associé le message qu’on souhaite classer : Algorithmes d’apprentissage appliqués à la CT 119 Classif y(t) = argmaxci P (ci |t) (6.15) Le calcul ainsi présenté se justifie par l’hypothèse selon laquelle tous les mots apparaissent indépendamment les uns des autres dans le message. D’où le caractère naïf de la classification. Le pseudo code de la phase d’apprentissage est représenté sur Algorithme 4. Une fois que toutes les probabilités sont calculées, l’algorithme de classification exprimé par le pseudo code sur Algorithme 5 peut être lancé pour la classification de nouveaux messages. Algorithme 5 Bayesien_naïf_Classifier(ProTerm_Category, ProCategory) Entrées: ProTerm_Category, ProCategory, Term_MessageTest {Term_MessageTest représente la matrice du corpus de test} 1: Variables : p, CategoryTest {vecteur devant contenir la catégorie de chaque message de test} 2: pour (chaque message de test ti ) faire 3: pour (chaque catégorie cj ) faire 4: calculer log(P (ci /ti )) avec la formule 6.14 5: si (j=1) alors 6: max ← log(P (c1 /t), cat=1 7: sinon si (log(P (ci /t)>max) alors 8: max=log(P (ci /t), cat=j 9: finsi 10: fin pour 11: CategoryTest[j]← cat : étiqueter le message ti par la catégorie cat 12: fin pour 13: retourner CategoryTest 6.5.3 k plus proche voisin (k-PPV) Quand on parle de voisin cela implique la notion de distance ou de similarité. Étant donné deux messages dj et ds , nous calculons le coefficient de similarité entre les deux messages par la distance euclidienne comme suit : v u n uX |wij − wis |2 Similarité(dj , ds ) = t (6.16) i=1 Pour certaines méthodes de réductions que nous utilisons dans notre travail, et qui gardent la notation binaire pour la représentation des termes, le calcul de la similarité va se résumer par la distance de Manhattan (qui se confond ici avec de la distance Euclidienne) comme suit : Similarité(dj , ds ) = n X i=1 |wij − wis | (6.17) 120 Application de quelques approches de CT à la classification des messages de sécurité La construction d’un classifieur k-PPV inclut la détermination empirique de la valeur de k qui indique combien de voisins parmi les messages d’apprentissage doivent être pris en compte pour prendre une décision. Étant donné un message de test tj , nous calculons d’abord le coefficient de similarité entre tj et chaque message ds (s = 1 . . . n) dans le corpus d’apprentissage avec la formule (6.17). Nous trions les similarités obtenues dans l’ordre croissant des similarités et nous regardons les catégories des k premiers messages. Ensuite, nous utilisons deux approches pour choisir la catégorie du message que nous appelons vote1 et vote2. La première approche vote1 se base sur une stratégie de vote pour trouver la catégorie du message tj . Chaque message des k messages voisins contribue à un vote en faveur de sa catégorie, en attribuant son score de similarité à tj comme un score à sa catégorie. Si plusieurs des k voisins partagent une classe, les scores par message voisin appartenant à cette classe sont additionnés. Plus formellement, le score de chaque catégorie peut être écrit comme suit : score(tj , ci ) = X Similarité(dj , ds ) (6.18) ds ∈k−P P V (tj ) Dans (6.18), k − P P V (tj ) indique l’ensemble des k plus proche voisin du message de test tj . Les scores sont ensuite triés. Le message tj est affecté à la catégorie ”cat” qui a le score minimal, c’est à dire Classif y(tj ) = cat ∈ C seulement si : score(tj , cat) = min{score(tj , ci )|i = 1 . . . l} (6.19) Quand à la deuxième approche voite2, elle calcule l’occurrence de chaque catégorie dans l’ensemble formé par les catégories des k voisins. Les occurrences sont ensuite triées dans l’ordre décroissant. Le nouveau message sera affecté à la catégorie qui possède la valeur maximale des occurrences. score(tj , cat) = max{occurrence(ci )/i ∈ 1 . . . l et i est une classe des message dans k−P P V (tj ) (6.20) Ainsi, le classifieur s’opère en deux phases : la première est la détermination des plus proches voisins et la deuxième est la détermination de la classe en utilisant ces voisins. Le temps de complexité de KNN est de O(nt |D|log|D|) où |D| et nt sont respectivement la taille du corpus d’apprentissage et le nombre des messages dans le corpus de test. Étant donnée que la phase d’apprentissage de l’algorithme k-PPV consiste seulement à mettre en mémoire l’ensemble des messages d’apprentissage D, voici donc sur Algorithme 6 la procédure de prédiction. Algorithmes d’apprentissage appliqués à la CT 121 Algorithme 6 k-PPV pour les messages de sécurité Entrées: Term_Message[n][m], Category[m] 1: pour chaque message ti dans T faire 2: pour chaque message dj dans D faire 3: Calculer similarité(ti , dj ) suivant la formule 6.16 4: si similarité(ti ,dj )=1 alors 5: Étiqueter ti par la catégorie de dj 6: Revenir à l’étape 1 7: finsi 8: Ordonner ( similarité(ti , d1 ), similarité(ti , d2 ) . . . similarité(ti , dm ) ) du plus petit au plus grand 9: Sélectionner les k voisins plus proches de ti (qui ont les k petites valeurs de la similarité) 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: Déterminer les catégories des k voisins fin pour pour (chaque voisin) faire IndiceCategory =category[voisin] Score[IndiceCategory]=score[IndiceCategory]+similarité(voisin, ti ) fin pour Trier Score CategoryTest[ti ] ← la catégorie qui a la valeur du Score la plus petite fin pour retourner CategoryTest 6.5.4 SVM La méthode est définie par rapport à un espace vectoriel, la classification se résumant à trouver une meilleure surface de décision qui sépare les messages en catégories. Afin de définir la meilleure séparation, nous avons besoin d’introduire la notion de marge entre deux catégories. Pour simplifier l’idée, nous montrons seulement un cas dans un espace à deux dimensions, avec des points de données linéairement séparables, mais l’idée peut être généralisée à un espace de dimensions élevées et à des points de données qui ne sont pas linéairement séparables. L’idée est illustrée sur la figure 6.2. Fig. 6.2 – Exemple de deux catégories linéairement séparables. L’hyperplan de décision est la ligne continue. La marge est la distance entre deux lignes pointillées. Une ligne de décision avec une petite marge sur (a) et une ligne de décision avec une grande marge sur (b). Les points de données entourés par un carrées sombres (rouges) représentent les vecteurs à support. Une surface de décision dans un espace linéairement séparable est un hyperplan. Les lignes continues dans les figures 6.2.a et 6.2.b montrent deux surfaces de décision, chacune d’elles 122 Application de quelques approches de CT à la classification des messages de sécurité sépare correctement les deux groupes de données. Les lignes parallèles en pointillés à la ligne continue montrent de combien on peut déplacer la surface de décision sans générer de fausse classification des données. La distance entre chaque série de ces lignes parallèles est désignée comme étant la marge. Le problème des SVM est de trouver la surface de décision qui maximise la marge entre les points de données dans l’ensemble d’apprentissage. Plus précisément, la surface de décision pour un espace linéairement séparable est un hyperplan qui peut être définit comme suit : → → h . t −b = 0 (6.21) → → t est un message à classer, et le vecteur h et la constante b sont appris à partir d’un ensemble de données d’apprentissage linéairement séparables. Considérant maintenant que l’ensemble → d’apprentissage D = { ti } et les catégories associées à ces messages sont représentées par yi ∈ → {−1, +1}. Le problème des SVM est de définir h et b qui satisfassent les contraintes suivantes : → → h . ti −b ≥ 1 pour yi = +1 → → h . ti −b ≤ −1 pour yi = −1 (6.22) (6.23) → et que le vecteur 2-norm de h est plus petit que possible. Le problème des SVM peut être résolu en utilisant des techniques de programmation quadratique [123]. Les algorithmes utilisés pour résoudre des cas linéairement séparables peuvent être étendus pour résoudre les cas non-linéairement séparables, comme par exemple la transformation des vecteurs de données d’apprentissage dans un espace vectoriel de dimensions plus grandes où les données dans le nouvel espace vectoriel deviennent linéairement séparables [123]. Lorsque les exemples sont linéairement séparables, l’algorithme SVM estime les paramètres → → h ∈ <|D| et b ∈ < l’hyperplan h . t −b = 0 qui les sépare. Dans le cas où les exemples ne sont pas linéairement séparables, un noyau est utilisé afin de projeter les exemples dans un espace de plus grande dimension où le problème devient linéairement séparable. Une propriété intéressante des SVM est que la surface de décision est déterminée seulement 1 par les points de données qui ont exactement la distance → du plan de décision. Ces points h sont appelés les vecteurs à support, qui sont les seuls éléments efficaces des éléments de l’ensemble d’apprentissage ; si tous les autres points ont été retirés, l’algorithme va apprendre la même fonction de décision. Cette propriété rend les SVM théoriquement uniques et différents des autres méthodes. Il serait intéressant de savoir si oui ou non cette distinction théorique conduit à d’importantes différences d’efficacité entre les SVM et d’autres méthodes dans la pratique. Dans notre travail, nous utilisons la librairie LIBSVM version 2.23 développée par ChihChung Chang et Chih-Jen LinL et qui est disponible sur Internet [21]. La librairie implante plusieurs fonctions de noyaux. Nous devons seulement préparer et respecter la représentation des données pour l’application de cette librairie.Étant donnée que la phase d’apprentissage de Algorithmes d’apprentissage appliqués à la CT 123 l’algorithme k-PPV consiste seulement à mettre en mémoire l’ensemble des messages d’apprentissage D, voici donc sur Algorithme 6 la procédure de prédiction. 6.6 Expérimentation Dans ce travail, nous sommes intéressés par des modèles pour la classification de textes proches du langage naturel. Dans de tels modèles, nous disposons de messages d’apprentissage avec leurs catégories et de nouveaux messages, l’objectif étant de prédire les catégories des nouveaux messages de sécurité. Dans cette étude, nous traitons l’application du Bayesien Naïf (BN), du k-plus proches voisins (k-PPV) et des machines à support de vecteurs (SVM). Les expériences que nous allons mener ont cinq buts : 1. Choix des paramètres de chaque méthode de classification. 2. Choix des méthodes de réduction. 3. Choix d’un classifieur. 4. Combinaison des résultats de plusieurs classifieurs. 5. Choix des mesures de classification Lors de la classification manuelle, le niveau de détail n’était pas respecté par les experts, ce qui nous à conduit à ne pas extraire automatiquement Target2. La tâche de classification consiste à réaliser 5 classifieurs séparément, chacun a la tâche d’extraire à partir d’un message brut une instance des concepts qui forment la catégorie du message : un pour extraire l’Intention de l’action effectuée, un pour extraire le Movement effectué, un pour extraire le MovementType, un pour extraire la Target de l’action effectuée et un pour extraire le Gain de l’action. Le processus complet de la classification est illustré sur la figure 6.3. Nous avons utilisé java comme langage de programmation pour les approches que nous avons implanté. Fig. 6.3 – Processus de catégorisation 124 Expérimentation L’évaluation des classifieurs se fait par la micro-moyenne et la macro-moyenne du rappel. La macro-moyenne exige le calcul du rappel par catégorie qui est exprimé par la formule 6.24. RappelCi = #message correctement attribués à la catégorie Ci par le classif ieur #messages du corpus de teste appartenant à laégorieCi (6.24) La macro-moyenne est calculée ensuite en se basant sur 6.24 comme suit : Pl macro − myenne = 1 RappelCi l (6.25) La micro-moyenne est calculée par la formule 6.26. micro − moyenne = 6.6.1 #message correctement attribués à leur catégorie par le classif ieur #messages dans le corpus de teste (6.26) Choix des paramètres des classifieurs et la méthode de réduction Les données : corpus et catégories Dans cette étude, le corpus utilisé est composé des messages du pare-feu Cisco. Les messages de ce corpus ont été classifiés manuellement par l’expert. Ce corpus a été divisé au hasard en deux corpus disjoints : un corpus d’apprentissage et un corpus de test. Les corpus d’apprentissage et de test sont composés respectivement de 456 et 200 messages et, de 489 et de 244 mots. Le corpus d’apprentissage est utilisé pour la recherche d’un vecteur représentatif d’un message, le corpus de test est utilisé dans l’évaluation de la méthode de sélection. Les catégories sont décrites par l’ontologie que nous avons détaillée dans le chapitre 4. Un message ne doit être étiqueté que par une seule catégorie. Pour chaque message de test, nous devons extraire chaque concept de l’ontologie. La catégorie du message est représentée par Intention_Movement.movementNature_Target1.Target2_Gain. La distribution des différentes classes pour chaque concept est illustrée sur la figure 6.4. choix des paramètres des méthodes Nous nous basons dans cette partie sur les données décrites ci-dessus. Pour ces expériences, nous utilisons la mesure micro-moyenne comme mesure de performance. 1. BN : Nous avons évoqué l’impact d’un terme qui n’appartient pas à une catégorie sur le calcul des probabilités dans 6.5.2. Lors du calcul des différentes probabilités, nous avons testé le cas de garder la valeur de leur occurrence à 0 que nous appelons cas 0 et le cas de remplacer la valeur de leurs occurrences par 0.1 que nous appelons cas 0.1. Nous avons exécuté NB séparément sur les deux cas. Les résultats des deux expériences sont illustrés sur la figure 6.5. Nous constatons sur la figure 6.5 que le classifieur reconnaît plus de valeurs pour les différents concepts de la catégorie lorsqu’on garde l’occurrence à 0 des mots qui n’appartiennent pas à une catégorie. Nous avons tenté de prendre en compte la présence des autres mots dans la catégorie mais le résultat n’est pas encourageant. Nous adoptons donc Algorithmes d’apprentissage appliqués à la CT 125 (a) Occurrence des intentions. (b) Occurrence des cibles. (c) Occurrence des mouvements. (d) Occurrence des types de mouvements. (e) Occurrence des gains. Fig. 6.4 – Distribution des catégories de chaque concept dans le corpus d’apprentissage. 126 Expérimentation Fig. 6.5 – Résultat du classifieur BN pour le cas 0 et le cas 1 représentant respectivement, dans le calcul des probabilités, la valeur des occurrences des termes qui n’appartiennent pas à une catégorie égale à 0 et à 0.1. pour le BN le cas 0 qui garde la valeur des occurrences des termes n’appartenant pas à une catégorie à 0. 2. k-PPV : Pour le classifieur k-PPV, nous avons besoin de fixer l’approche de décision de la classe dominance ainsi que le nombre de voisins (la valeur du k). Dans la description de la méthode k-PPV, nous avons proposé deux approches pour choisir la classe dominante. Nous avons lancé séparément deux classifieurs k-PPV où dans l’un nous implantons vote1 et dans l’autre vote2. Nous avons fait varié le k pour les deux classifieurs. Nous avons constaté que les deux approches ont donné les mêmes résultats pour les deux mesures. Nous adopterons donc l’approche vote2 car elle effectue moins d’opérations de calcul par rapport à l’approche vote1. Le résultat de ces expériences est dans le tableau 6.1. Tab. 6.1 – Résultats identiques pour l’exécution de vote1 et vote2 pour le classifieur k-PPV. Algorithmes d’apprentissage appliqués à la CT 127 Afin de pouvoir fixer k, le nombre de voisin à retenir, nous avons effectué deux expériences. Dans la première (E1), nous avons utilisé le corpus d’apprentissage et le corpus de test décrits dans 6.6.1, nous avons fait varié le k puis nous avons procédé à extraire les valeurs des cinq concepts. Dans la deuxième expérience (E2), nous avons utilisé le corpus d’apprentissage à la fois comme corpus d’apprentissage et de test et nous avons fait varié le k suivant les valeurs du k utilisé dans la première expérience. Nous effectuons ensuite une comparaison entre les deux résultats. Le but de cette expérience est de voir si la valeur du k qui correspond à la solution qui extrait le plus de concepts pour l’expérience E1 est la même lorsque nous classifions le corpus d’apprentissage. Pour l’expérience E1, nous avons repris le résultat de l’expérience du tableau 6.1. Le résultat de la deuxième expérience E2 est illustré dans le tableau 6.2. Nous allons nous servir ici de la mesure macro-moyenne en plus de la mesure micro-moyenne pour trancher la valeur de k. Sur le tableau 6.2, nous constatons que la meilleur solution pour E2 est atteinte pour k = 1 pour l’extraction des valeurs de tous les concepts. Pour E1, le meilleur résultat concernant l’extraction des valeurs de Intention et MovementType correspond à k = 1. Le meilleur résultat pour le concept Movement est réalisé pour k = 40 avec une valeur de macro-moyenne égale à 0.16. Par contre, pour le même concept (Movement) et pour k = 1, macro-moyenne=0.42 avec une différence de 0.03 dans la micro-moyenne. Lorsque la macro-moyenne est petite nous pouvons dire que le classifieur a le phénomène de surapprentissage ; c’est-à-dire que certaines catégories sont trop définit de tel sorte qu’il assigne tous les messages à cette catégorie. Ou au contraire, il n’arrive pas à reconnaître certaines catégories car elles ne sont pas présentes dans le corpus d’apprentissage. Pour cette situation, nous préconisons le cas où k = 1. Même explication pour l’extraction du concept target et gain. En conclusion, nous choisissons la valeur du k qui génère le meilleur compromis entre la micro-moyenne et la macro-moyenne dans la classification du corpus d’apprentissage. La valeur du k peut être différente d’un concept à un autre. Tab. 6.2 – Résultats d’extraction des valeurs des concepts, prenant comme corpus de test le corpus d’apprentissage pour déterminer la valeur du k. 128 Expérimentation Choix de la méthode de réduction Le but de ces expériences est de retenir la méthode de réduction qui permet d’extraire le plus de valeurs des concepts. Nous fixons une méthode de classification et nous testons les différentes approches de réduction de l’espace vectoriel qui ont été retenues dans le chapitre précédent. Le but est de retenir la méthode la plus efficace. Nous allons appliquer les méthodes gain d’information (IG), le module d’extraction et l’analyse en sémantique latente (LSI) sur le même corpus. Nous effectuons ensuite la classification de nouveaux messages de sécurité avec le classifieur bayésien naïf (NB). – Module d’extraction Nous appliquons les différents traitements du module d’extraction sur le corpus que nous avons choisi pour cette partie d’expérience. Le traitement du corpus d’apprentissage par ce module a permis de réduire sa taille de 25,56%. Tous les termes qui restent dans le corpus après le traitement constituent les attributs d’un message. La taille de ce vecteur est de 364. Chaque message du corpus traité est représenté dans cet espace. Le corpus de traitement subit certains traitements comme nous l’avons expliqué dans le chapitre précédent, il sera ensuite représenté dans le même espace vectoriel. Les résultats de ce traitement sont représentés dans le tableau 6.3. Tab. 6.3 – Pré-traitement du corpus par l’application du module d’extraction. Après le traitement du corpus, nous avons procédé à extraire les valeurs des concepts de la catégorie d’un message du corpus de test par l’algorithme BN. Les résultats de nos expériences sont résumés dans le tableau 6.4. Tab. 6.4 – Résultat d’extraction des valeurs des concepts avec l’utilisation du module d’extraction comme méthode de réduction. – Gain d’information (IG) Cette méthode se base sur l’occurrence des classes dans l’ensemble d’apprentissage pour trier les termes. Nous avons besoin de définir un vecteur pour l’extraction de chaque concept. Nous exécutons cette approche, séparément cinq fois, sur le corpus d’apprentissage. Le résultat d’exécution est un vecteur de tous les termes du corpus d’apprentissage trié suivant les poids calculé avec la méthode pour chaque terme. L’ordre des termes Algorithmes d’apprentissage appliqués à la CT 129 change d’un concept à un autre. Nous exécutons ensuite séparément cinq classifieurs de type BN. Pour chaque classifieur, nous faisons varier le nombre de termes à retenir afin de voir l’impact de ce dernier sur la classification. Les résultats de nos expériences sont récapitulés dans le tableau 6.5. Tab. 6.5 – Résultat d’extraction des valeurs des concepts avec l’utilisation de gain d’information comme méthode de réduction. – Analyse Sémantique Latente(LSI) Soit D la matrice terme-message qui représente le corpus d’apprentissage. Nous appliquons la décomposition en valeurs singulière de la matrice D à l’aide de la routine svd du package LAPACK en Matlab (plus de détails sur la méthode est dans 5.7.2). Nous varions ensuite le nombre de valeur singulière à retenir pour diminuer le bruit dans la matrice D et nous calculons la nouvelle matrice approché de D comme suit : D ≈ D̂ = T SW 0 0 W est la matrice des messages dans le nouveau espace vectoriel de taille k ∗ kDk où k est le nombre de valeur singulière. Chaque nouveau message q du corpus de test de vecteur → Xq est représenté dans ce nouveau espace vectoriel avec la formule (6.27) comme suit : 0 Dq = Xq T S −1 (6.27) Après la construction des matrices d’apprentissage et de test, nous exécutons l’algorithme BN pour l’extraction de différentes valeurs des concepts. Tab. 6.6 – Résultat d’extraction des valeurs des concepts avec l’utilisation de LSI comme méthode de réduction et BN comme classifieur. Dans le tableau 6.6, la colonne ”valeur singulière” représente le nombre de valeur singulière 130 Expérimentation que nous avons retenu pour réduire le bruit dans la matrice de départ ; c’est le nombre de nouveaux descripteurs qui représentent le message dans la nouvelle dimension. Le résultat du classifieur NB sur le corpus de test avec l’utilisation de LSI nous a étonné ; pour chaque concept, nous obtenons le même résultat quelque soit les dimensions retenues pour l’expérience. Afin de voir si ce comportement se reproduit avec d’autres classifieurs, nous avons évalué la même méthode avec le k-PPV. Le résultat de cette expérience est dans le tableau 6.7. Sur ce dernier, le résultat change d’une dimension à une autre. Les valeurs dans le tableau 6.6 restent constante, peut être c’est dû à la nature du classifieur. On peut supposer que la réduction avec LSI n’est pas adaptée au classifieur BN. Tab. 6.7 – Résultat d’extraction des valeurs des concepts avec l’utilisation de LSI comme méthode de réduction et k-PPV comme classifieur. Après l’étude de chaque approche, nous pouvons dresser une comparaison entre les trois méthodes sur la figure 6.6. Avec l’utilisation de la mesure micro-moyenne (figure 6.6.(a)) comme méthode de comparaison de performance, nous constatons que la méthode IG permet d’extraire le maximum de valeurs pour la plupart des concepts. IG et LSI se comportent presque de la même manière, la différence est légère entre les deux méthodes. Le module d’extraction se comporte mieux avec l’utilisation de la mesure macro-moyenne (figure 6.6.(b)) comme mesure de performance. Le module d’extraction a permit d’extraire moins de valeurs de concepts mais il a la faculté d’être moins susceptible au phénomène de surapprentissage. De plus, le nombre de descripteurs retenus avec le module d’extraction reste élevé par rapport aux autres méthodes. Il est intéressant d’appliquer IG sur le résultat de traitement du module d’extraction pour réduire encore la taille des descripteurs. 6.6.2 Méthodes de classification Choix d’un classifieur Expérience n˚1 Nous appliquons dans cette expérience les trois algorithmes annoncés dans la section 6.5 (le BN, le k-PPV et les SVM) sur les données présentées dans 6.6.1. BN et k-PPV subissent la Algorithmes d’apprentissage appliqués à la CT (a) Utilisation de la mesure micro-moyenne 131 (b) Utilisation de la mesure macro-moyenne Fig. 6.6 – Comparaison entre les méthodes de réduction de la taille de l’espace vectoriel du corpus. Pour le module d’extraction, la taille des descripteurs est égale à 364. Pour la méthode IG, la taille des attributs retenue pour représenter un message pour l’extraction des valeurs respectives de Intention, Movement, MovementType, Target et Gain est respectivement 20, 200, 100 20 et 40. Pour LSI, la taille de descripteur est égale à 20. même approche d’extraction d’attributs pour les corpus d’apprentissage et de test. Les travaux de recherches sur les SVM rapportent que les SVM n’ont pas besoin d’un traitement préalable des corpus de test et d’apprentissage. En effet, les SVM ont tendance de projeter les données dans un espace vectoriel de dimensions plus grande dans le but de trouver les vecteurs à support. Il est inutile de réduire l’espace vectoriel s’il va subir des transformations dans un espace plus grand. Nous exécutons donc le code des SVM sur les corpus bruts d’apprentissage et de test. SVM cherche les hyperplans qui séparent les données de test en classe. Les points de l’hyperplan sont décrits par un noyau. Nous avons utilisé SVM avec un noyau polynomial, un noyau radial et un noyau à base de modèle de régression. La comparaison entre les performances BN, k-PPV, SVM noyau polynomial et SVM noyau radial est illustrée sur la figure 6.7, le tableau 6.8 résume ces résultats. Nous constatons que la performance d’un classifieur diffère d’une extraction d’un concept à un autre. La comparaison de ces résultats avec prise en compte de la distribution des classes sur les concepts illustrée sur la figure 6.4 nous permet de dresser la conclusion suivante. Le classifieur k-PPV était le plus performant quand le nombre des catégories dans le corpus de test est petit. Le classifieur SVN noyau radial a prouvé ses performances lorsque le nombre de classe dans le corpus d’apprentissage est important. Tab. 6.8 – Comparaison entre les performances des classifieurs. Quand au classifieur SVM basé sur un noyau de modèle de régression, il représente une classe comme un point sur une droite et génère pour chaque message une valeur qui peut être comparée aux indices des classes (une sorte de distance). Nous illustrons les résultats de cette méthode à 132 Expérimentation (a) Extraction des valeurs d’Intention. (b) Extraction des valeurs de Movement. (c) Extraction des valeurs de MovementType. (d) Extraction des valeurs de Target1. (e) Extraction des valeurs de Gain. Fig. 6.7 – Comparaison des performances des différents algorithmes de classification. Algorithmes d’apprentissage appliqués à la CT 133 l’aide d’un petit échantillon sur le tableau 6.8. La colonne SVM régression représente les résultats générés par le modèle de régression ; la colonne CM représente les indices de classes attribués par l’expert aux différentes valeurs des concepts. La méthode n’assigne pas une catégorie à un concept, elle génère une distance entre le message à classer et les classes prédéfinies. Par exemple pour le 4ème et 5ème exemple (ligne 4 et 5 dans le tableau), l’extraction de la valeur du concept Intention a généré respectivement 1.96229 et 1.10001 qui sont des valeurs proches des classes qui portent respectivement les indices 2 et 1. Dans ce cas, ce résultats est très proche des indices des classes qui ont été assignées par l’expert. Ce résultat a besoin d’être raffiné pour fixer les seuils qui permettent de trancher la classe d’un exemple donné à partir de la réponse du classifieur. La comparaison des performances des classifieurs avec la mesure macro-moyenne montre que le classifieur BN à tendance de reconnaître plus de catégories par rapport aux autres classifieurs. Tab. 6.9 – Un petit échantillon des résultats d’application de SVM basée sur un modèle de régression. Expérience n˚2 Les données : corpus et catégories L’objectif de cette expérience est d’évaluer les algorithmes BN, k-PPV et les SVM sur un échantillon plus grand. Le corpus utilisé est composé des messages remontés de plusieurs produits, la liste des produits impliqués dans l’expérience est sur le tableau 6.11. Ce corpus a été divisé à l’aide d’une fonction aléatoire en deux corpus disjoints : un corpus d’apprentissage et un corpus de test. Les corpus d’apprentissage et de test sont composés respectivement de 134 Expérimentation (a) Occurrence des intentions. (b) Occurrence des cibles. (c) Occurrence des mouvements. (d) Occurrence des types de mouvements. (e) Occurrence des gains. Fig. 6.8 – Distribution des catégories de concepts dans le corpus d’apprentissage. 6000 et 1442 messages. Le corpus d’apprentissage est utilisé pour entraîner les classifieurs, le corpus de test est utilisé dans l’évaluation de la méthode de classification. La distribution des différentes classes dans le corpus d’apprentissage est illustrée sur la figure 6.8. La comparaison entre les performances de BN, k-PPV, SVM noyau polynomial et SVM noyau radial est illustrée sur la figure 6.9, le tableau 6.11 résume ces résultats. Le classificateur Naïve Bayes est simple et rapide dans l’apprentissage et dans la classification. Le classifieur k-PPV est coûteux en calcul par rapport au classifieur BN. Toutefois, il donne de meilleurs résultats. Les SVM sont très coûteux en calcul ce qui rend très lents à apprendre par rapport à BN et k-PPV même pour les petits ensembles de données. Toutefois, il est le moins performant des trois classifieurs. Algorithmes d’apprentissage appliqués à la CT 135 Tab. 6.10 – Produits impliqués dans l’expérience. Tab. 6.11 – Comparaison des performances de classification pour les différents classifieurs. 136 Expérimentation (a) Extraction des valeurs d’Intention. (b) Extraction des valeurs de Movement. (c) Extraction des valeurs de MovementType. (d) Extraction des valeurs de Target1. (e) Extraction des valeurs de Gain. Fig. 6.9 – Comparaison des performances des différents algorithmes de classification. Algorithmes d’apprentissage appliqués à la CT 6.6.3 137 Combinaison de classifieurs L’approche est basée sur l’idée que l’information offerte par les différents classifieurs est complémentaires, et donc la combinaison de différentes méthodes de classification peut accroître leurs efficacités et leurs précisions. Une seule classification est réalisée à partir des résultats de méthodes ayant différents points de vue : toutes les décisions individuelles des classificateurs sont utilisées pour obtenir une décision consensuelle. Notre objectif est de présenter à l’analyste un sous ensemble des exemples à classer automatiquement dont on est sur de leur bonne catégorie. Ce que nous proposons ne va pas résoudre tout le problème mais va réduire le nombre de messages à classer manuellement par l’expert. Généralement, la résolution d’un problème de classification focalise sur la recherche d’un algorithme de classification qui donne un taux de réussite élevé. Les algorithmes de classification permettent de définir par apprentissage la fonction ϕ qui permet de classer de nouveau messages. Le choix d’un algorithme s’effectue après une phase de test de plusieurs algorithmes de classification afin d’adopter celui qui arrive à classer le maximum d’exemples du corpus de test dans les bonnes catégories. Fig. 6.10 – Relation entre la fonction de classification réelle et les fonctions de classification automatique. L’utilisation de deux algorithmes de classification peut être schématisée par la figure 6.10 où ϕ1 et ϕ2 représentent respectivement les fonctions de classification de deux classifieurs classiques différents. Un classifieur ϕ1 est estimé meilleur qu’un classifieur ϕ2 si |{ϕ1 }−{φ}| ≺ |{ϕ2 }−{φ}|. En d’autre terme, si l’erreur engendrée par le classifieur ϕ1 est plus petite que l’erreur engendrée par le classifieur ϕ2 . Il n’existe aucun moyen, actuellement, de démontrer si une catégorisation est correcte ou non. L’évaluation d’un processus de catégorisation s’effectue empiriquement sur un jeu de test. Une fois le jeux de test est classé par l’expert, les affectations fournies par le système sont comparées aux affectations préalablement définies par un expert. L’objectif d’un processus de catégorisation est donc de maximiser une fonction de score. En d’autre terme, l’objectif revient à minimiser |{ϕ} − {φ}|. Il n’y a pas de moyen pour exclure les exemples mal classés par le classifieur afin de ne présenter que les exemples dont le classifieur leur estime la bonne classe. Nous croyons que la combinaison de plusieurs classifieurs devrait être en mesure de proposer une méthode de classification qui permet d’augmenter la précision des classifieurs. Afin de combiner plusieurs classifieurs, il est nécessaire de trouver une relation entre eux. Soit mk ∈ D un message brut, soit Class(mk ) la classe assignée par l’expert au message 138 Expérimentation Cas 1 2 3 4 estimation(mik ) 0 0 1 1 estimation(mik ) 0 1 0 1 Résultat Erreur Conflit Conflit Succès Tab. 6.12 – Comparaison des résultats des classifieurs Cas 1 : C(mik ) = C(mjk ) 2 : C(mik ) 6= C(mjk ) Détail C(mik ) Cas 1 et 4 du tableau 6.12 C(mik ) si C(mik ) est la bonne solution - Erreur - Les deux classifieurs sont complémentaires - Conflit entre les deux classifieurs - Erreur Cas 1, 2 et 3 du tableau 6.12 Tab. 6.13 – Relation entre deux classifieurs. mk , soit Class(m1k ) la classe assignée par le classifieur ϕ1 au message mk et soit Class(mjk ) la classe assignée par le classifieur ϕ2 au message mk . Enfin soit la fonction booléenne d’évaluation des classifieurs estimation de D → {0, 1} ( estimation(mik ) = 1 Si C(mk ) = C(mik ) ; le message mk est bien classé par le classifieur ϕi 0 Sinon La combinaison de deux classifieurs ϕ1 et ϕ2 génère les cas illustrés sur le tableau 6.12. Nous constatons que nous pouvons avoir 4 configurations. Dans le cas 1, les deux classifieurs peuvent se tromper et le résultat de leurs classifications est complètement différent de celui du classifieur réel. Dans le cas 2 et le cas 3, un des deux classifieurs se trompe, nous pouvons déduire que les deux classifieurs peuvent être complémentaire. En effet, si nous pouvons cerner les cas dans lesquels chaque classifieur soit efficace, nous pouvons construire une solution à partir des solutions générées par les deux classifieurs. Dans le cas 4, les deux classifieurs réussissent à assigner le message à la bonne catégorie et donc deux classifieurs peuvent se mettre d’accord pour la classification des messages bruts. Notre objectif est de générer une solution dont on est sur des classes assignées aux messages bruts même si on arrive à le réaliser que sur un sous ensemble de D. Pour n’importe quel problème de classification, nous n’avons pas la valeur de Class(mk ). Nous cherchons à trouver des tendances entre les deux classifeurs de tel sorte que nous pouvons déduire la valeur de C(mk ). En se basant sur le tableau 6.12, nous allons construire le tableau 6.13 qui exprime les relations entre les résultats des deux classifieurs. En effet, dans la pratique nous pouvons avoir deux types de configurations. 1. Cas 1 : les deux classifieurs se mettent d’accord. 2. Cas 2 : un conflit entre les deux classifieurs. Dans cette expérience, nous nous intéressons à étudier empiriquement le cas 1. Ce cas Algorithmes d’apprentissage appliqués à la CT 139 pourrait contenir des messages qui sont classés dans la bonne catégorie. Nous allons voir ensuite si l’erreur de classification engendrée par la collaboration de classifieurs est inférieure à l’erreur de classification engendrée par la classification classique. Dans cette expérience, nous utilisons un corpus de messages du pare-feu McAfee. Les corpus d’apprentissage et de test sont composés respectivement de 1050 et 545 messages. Nous procédons d’abord à la classification des messages de test avec le classifieur K-PPV et le classifieur BN. Le résultat des performances des classifieurs est illustré dans le tableau 6.14. Nous appliquons ensuite l’approche de collaboration sur le résultat obtenu de la part des deux classifieurs. Le tableau 6.15 illustre le résultat de la collaboration des deux classifieurs. Nous calculons le taux de réussite par cas. Nous constatons que dans le cas où les deux classifieurs se mettent d’accord, l’erreur de classification pour cet ensemble est très petite. Par exemple pour le concept Target, nous pouvons extraire 255 valeurs de cibles avec une erreur de 3.13% en faisant collaborer les classifieurs. Par contre pour la classification individuelle, nous pouvons extraire 545 valeurs du concept target avec une erreur de 44.40% (respectivement (60.19%) avec le classifieur k-PPV (respectivement BN). Classifier Category Intention Movement Target Gain k-PPV (McAfee) 89,35% 61,28% 55,60% 100% NB (McAfee) 62,93% 47,90% 39,81% 100% Tab. 6.14 – Performance de k-PPV et BN sur la classification du corpus McAfee. Classifier Cas Concepts Intention Movement MovementType 480 238 300 255 k−P P V )=1 a- estimation(mk 452(94,16%) 227(95,36%) 247(96,86%) PV b- estimation(mk−P )=0 k 28(5,83%) 11(4,620%) 65 305 61(93,84%) 162(53,11%) 4(6,15%) 143(46,88%) 286(95,30%) 24(4,70%) 245 100(33.33%) 145(48.33%) PV ) = Class(mBN ) 1 : Class(mk−P k k PV 2 : Class(mk−P ) 6= Class(mBN ) k k k−P P V ) = 1 ou estimation(mBN )=1 a- estimation(mk k PV b- estimation(mk−P )=0 k Target 8(3,13%) 290 136(46,89%) 154(53,10%) Tab. 6.15 – Collaboration entre classifier le classifier k-PPV et le classifier BN. 6.6.4 Conclusion Nous avons présenté dans ce chapitre une approche qui permet la classification automatique des informations de sécurité. Tout d’abord, nous avons expérimenté trois méthodes de réduction d’attributs : IG, LSI et un module d’extraction. La méthode IG a montré son efficacité par rapport aux autres. Toutefois, les deux autres méthodes restent utiles pour l’analyste et pour l’enrichissement de la sémantique d’un message. LSI permet de construire une matrice de corrélation entre les mots. Le module d’extraction permet de construire un dictionnaire avec les connaissances extraites à partir du corpus, il permet de générer un corpus traité pour faciliter sa compréhension par l’expert. Il reste à étudier le cas de l’application de la méthode IG sur le corpus traité par le module d’extraction. Nous avons utilisé trois types de classifieurs sur des échantillons différents. Le résultat de classification dépend des termes utilisés dans le corpus d’apprentissage et de test, il dépend 140 Expérimentation aussi de la distribution des classes dans le corpus d’apprentissage. Il reste à vérifier le cas dans lequel nous réduisons certaines classes dominantes dans le corpus d’apprentissage, dans le but d’améliorer la performance du classifieur en évitant le phénomène du surapprentissage. Le problème de classification automatique des messages de sécurité est un problème complexe et l’erreur générée a un impact sur les processus de gestion des informations de sécurité. La complexité du problème réside dans le fait que nous traitons la sémantique du message. Dans le cas de classification par un seul classifieur, nous pouvons correctement extraire certaines valeurs de concepts. Il est intéressant de présenter à l’analyste un résultat dont nous pouvons faire la différence entre la bonne et la mauvaise réponse générée par le classifieur. Nous avons dirigé notre étude ensuite vers la collaboration entre classifieurs afin de répondre à ce besoin. Le résultat de collaboration est encourageant. Afin de pouvoir généraliser ces constats, il est préférable de multiplier les expériences et de trouver des fonctions qui permettent de combiner les résultats de plusieurs classifieurs. Quatrième partie Conclusion et perspectives 141 7 Conclusions et perspectives L’augmentation incroyable des menaces par le biais d’Internet, associée aux persistantes menaces internes, demandent l’attention quotidienne de la part des administrateurs de sécurité. Parallèlement, le déploiement des solutions de sécurité pour se protéger contre les menaces est multiplié. La quantité des données produites par ces solutions est meilleur, mais le volume de ces données toujours en croissance. Les administrateurs de sécurité doivent constamment analyser ces données dans le but de protéger le système d’information et de mettre à jour les politique de sécurité. La recherche se dirige vers le développement de techniques de sécurité qui permettent de réduire le risque de présence d’intrus dans le système et non plus uniquement de détecter après coup une attaque. Ces techniques nécessite de revisiter la modélisation des informations de sécurité. Nous avons traité dans ce travail le problème d’interopérabilité de produits hétérogènes pour la surveillance d’un SI. Plus précisément, ce mémoire de thèse porte sur la modélisation des informations de sécurité remontées par des dispositifs hétérogènes déployés au sein d’une organisation, ainsi que sur le traitement automatique de ces informations. Nous résumons ici les contributions de cette thèse puis nous évoquerons les perspectives qu’ouvrent nos travaux. 7.1 Contributions Les mécanismes de détection d’intrusions se basent sur les informations contenues dans les fichiers journaux pour effectuer leurs analyses. Toutefois, la qualité de la détection d’intrusion n’est pas seulement influencée par le choix des algorithmes de détection mais également et de façon primordiale par les choix des sources d’informations à impliquer dans l’analyse. Nous avons 143 144 Contributions proposé dans ce travail une architecture d’un système de détection d’intrusion qui se base sur une vision globale de ce qui se passe dans le SI. Cette vision globale est basée sur l’implication des informations remontées par les produits de sécurité ainsi que les informations contenues dans les fichiers journaux des ressources jugées critiques dans une organisation. L’objectif de cette architecture est double. Elle enrichit les informations et cherche celle qui manque, pour reconstituer les scénarios d’attaques contre le SI ; elle aide l’analyste de sécurité en permettant le contrôle des utilisateurs autorisés à accéder au SI, en plus de la détection des intrus, qui est devenu le besoin important de l’analyste de sécurité, les attaques étant souvent d’origine interne. La modélisation des informations de sécurité est une partie essentielle du processus de détection d’intrusion. Nous avons proposé dans ce travail une modélisation de la connaissance contenues dans les fichiers journaux. Nous avons pu faire une abstraction du problème de l’hétérogénéité des produits impliqués dans la surveillance du SI en modélisant la connaissance par des concepts manipulés par ces produits. Le résultat de cette modélisation est une ontologie qui définit la connaissance des activités à surveiller dans un SI. Elle se base à la fois sur la théorie de l’action pour définir les concepts de l’ontologie, et sur la démarche de l’attaquant pour définir le vocabulaire des concepts. Nous avons montré l’utilité de cette modélisation dans un cas d’utilisation réelle, sur des très grand systèmes. Il est clair que la communauté de la détection d’intrusion bénéficiera largement d’une modélisation des informations de sécurité qui étend le travail actuel de l’IDMEF avec des informations sur la sémantique et un schéma de nommage commun. Une ontologie pour les informations de sécurité est une condition préalable à une véritable interopérabilité entre les différentes sources de données. Dans n’importe quel type d’entreprise, de grandes bases d’informations de sécurité générées par un SI sont omniprésentes. Les informations de sécurité dans leur état brut sont des ressources potentielles dormantes. Elles peuvent être utiles que si elles sont exploitées. Parallèlement, notre capacité à comprendre et à analyser la taille importante de ces informations est limitée. Par conséquent, notre travail était dirigé vers l’automatisation des informations de sécurité dans les catégories qui ont été définies par l’ontologie. Nous avons fournit une approche pour l’automatisation de la classification. Cette approche utilise l’apprentissage supervisé. Elle s’appuie sur les machines d’apprentissage pour extraire les valeurs des concepts de l’ontologie. Nous avons définit un module permettant l’extraction de connaissance à partir d’un corpus brut et un ensemble de classifieurs. Les résultats que nous obtenons sont satisfaisant, mais peuvent certainement encore être améliorer. Ils restent encore des erreurs en quantité non négligeable, qui influencent les décisions des mécanismes de détection. Les erreurs sont interprétées dans le contexte de la détection d’intrusions par des faux positifs et des faux négatifs. Toutefois, les erreurs ne peuvent pas être complètement supprimées, à cause de à la complexité du problème de traitement de la sémantique. Notons que même les experts humains ne sont parfois pas d’accord sur la classification de certains évènements ! Afin de gérer ces erreurs et d’aider l’analyste dans sa tâche, nous avons présenté une approche qui fait coopérer plusieurs classifieurs améliorer le résultat de classification. L’idée est intéressante mais a besoin de plus d’investigation. Pour conclure, notre ontologie a été bien accueilli par la communauté scientifique. Sa valeur Conclusions et perspectives 145 pormetteuse, se révèlera que si son emploi par d’autre équipe de recherche s’avère utile. En tout cas, elle est une proposition de complément à la sémantique d’IDMEF qui est absoluement nécessaire. Elle a également été intégré à un outil d’analyse global complexe au sein de la société exaprotect. Elle est en tout cas une réponse possible au problème de l’intéropérabilité des sources de données. L’automatisation de la traduction des messages brutes est également une clé à son exploitation. Les solutions que nous avons proposer permettre de réaliser automatiquement une grande partie tu travail, mais nous avons la conviction qu’il sera impossible de se passer complétement de l’expert humain. Cependant, ce travail n’est à faire qu’au moment du déploiement de nouveaux produits ou de la mise à jour de produits. 7.2 Perspectives Les travaux effectués au cours de la thèse offrent plusieurs perspectives. Ils se situent dans l’extension des travaux réalisés. Nous les détaillons dans cette section. Nous avons vu que l’ontologie définit les activités à surveiller dans un SI. Au regard de ce nouveau modèle, il serait intéressant de revisiter le concept de bonne ligne de défense pour une organisation. En effet, l’analyse d’une base d’événements, générés dans une organisation, ayant été classés dans les catégories de l’ontologie, nous permet de voir les activités qui ont été effectuées dans un SI. L’analyste de sécurité peut lister les activités qu’il souhaite surveiller, comparer ces activités par rapport aux activités qui ont eu lieu dans le SI. L’ontologie, par sa précision, peut permettre de repérer des évènements qui ne sont pas détecter par le système d’analyse, parcequ’il n’existe pas de sonde les surveillant, ou parceque leur fréquence ne déclenche pas d’action compte tenu des seuils de détections. Ceci devrait permettre à l’analyste de sécurité d’intervenir pour avoir une meilleur vision, en complétant par exemple le dispositif avec des sondes adéquate ou en modifiant les paramètres. L’analyste peut aussi réduire le coût d’achat d’un nouveau produit et réduire la masse d’informations générées par des produits utilisés en plus dans la surveillance d’un SI. En effet, s’il constate que plusieurs produits effectuent la surveillance de la même activité pour le même segment de l’organisation, il est préférable de ne garder qu’un seul, bien sur dans le cas où les produits se basent sur la même méthode d’analyse et ils interviennent au même niveau des couches protocolaires. La multiplication de produits de surveillances n’implique pas que le système est bien surveillé si les produits surveillent les mêmes activités. Une autre perspective de ce travail est l’aide à l’extraction des différentes classes du format de données IDMEF. En effet, si un message porte une information sur un paquet refusé. Les champs que nous devons remplir dans l’IDMEF sont l’adresse source, l’adresse de destination et le port. Nous pouvons donc définir des méthodes d’extraction pour chaque type d’événement. L’appuie sur La connaissance de la sémantique à l’aide de l’ontologie aide le remplissage des champs de l’IDMEF. Cette modélisation peut être adaptée à tout type de surveillance ; il suffit de définir le vocabulaire nécessaire pour les différents concepts et les règles qui gèrent ce vocabulaire afin de l’utiliser dans un autre contexte (exemple : surveillance d’un musée). Ceci est également une piste de perspectives. par exemple, la méthode permettrait également de travail au niveau de 146 Perspectives l’intrusion physique d’un périmètre de bâtiment par exemple. La classification automatique est loin d’être à 100% automatique car elle traite la sémantique. Nous allons continuer à chercher des mécanismes permettant d’aider l’analyste dans son travail quotidien. Par exemple, en mettant une mesure de confiance sur les résultats obtenus par un classifieur afin de présenter à l’analyste que les bonnes réponses du classifieur. Continuer à remplir le dictionnaire que nous avons mis en place afin que l’analyste trouve la connaissance nécessaire à comprendre l’événement brut. A Modélisation des Informations de sécurité A.1 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature Wiretapping Masquerading Trap doors Tunneling Harassment Scanning Dumpster diving Software piracy Covert channels Trojan horses Denial-of-service Traffic analysis Eavesdropping on Emanations Unauthorized data copying Viruses and worms Logic bombs diddling Password sniffing Degradation of service Tab. A.1 – Liste de termes de Cohen [62]. 147 Data Salamis Timing attacks IP spoofing Excess privileges Session hijacking 148 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature Fig. A.1 – Taxonomie d’Howard et Longstaff [59]. Fig. A.2 – Ontologie développée dans [119]. Modélisation des Informations de sécurité A.1.1 Spécification des mouvements avec chaque type d’intention Fig. A.3 – Movement et MovementType de l’intention Authentication. Fig. A.4 – Movement et MovementType de l’intention System. A.1.2 Spécification des cibles avec le langage OWL <?xml version="1.0"?> <rdf:RDF xmlns:xsp="http://www.owl-ontologies.com/2005/08/07/xsp.owl#" xmlns:swrlb="http://www.w3.org/2003/11/swrlb#" xmlns="http://www.owl-ontologies.com/Ontology1214985964.owl#" 149 150 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature Fig. A.5 – Movement et MovementType de l’intention Rights. xmlns:swrl="http://www.w3.org/2003/11/swrl#" xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#" xml:base="http://www.owl-ontologies.com/Ontology1214985964.owl"> <owl:Ontology rdf:about=""/> <rdfs:Class rdf:ID="CUPS"> <rdfs:subClassOf> <rdfs:Class rdf:ID="IPP"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="RoutingTable"/> <rdfs:Class rdf:ID="IGRP"> <rdfs:subClassOf> <rdfs:Class rdf:ID="RoutingProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="X400"> <rdfs:subClassOf> <rdfs:Class rdf:ID="E-MAil"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Admin"> <rdfs:subClassOf> <rdfs:Class rdf:ID="ACCOUNT"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="SMB"> Modélisation des Informations de sécurité <rdfs:subClassOf> <rdfs:Class rdf:ID="FileTransfert"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="NTP"> <rdfs:subClassOf> <rdfs:Class rdf:ID="Networking"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="FAT"> <rdfs:subClassOf> <rdfs:Class rdf:ID="FileSystem"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="LogFile"> <rdfs:subClassOf> <rdfs:Class rdf:ID="DATA"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="TransportProtocol"> <rdfs:subClassOf> <rdfs:Class rdf:ID="PROTOCOL"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="CREDENTIAL"/> <rdfs:Class rdf:ID="IMAP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#E-MAil"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Module"/> <rdfs:Class rdf:ID="OS"/> <rdfs:Class rdf:ID="Path"> <rdfs:subClassOf> <rdfs:Class rdf:ID="Environnement"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="TLS"> <rdfs:subClassOf> <rdfs:Class rdf:ID="CryprographicProtocol"/> </rdfs:subClassOf> </rdfs:Class> 151 152 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:Class rdf:ID="PKI"/> <rdfs:Class rdf:ID="SecurityHost"> <rdfs:subClassOf> <rdfs:Class rdf:ID="HOST"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="IGMP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#RoutingProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:about="#FileTransfert"> <rdfs:subClassOf> <rdfs:Class rdf:ID="SERVICE"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="ICMP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#PROTOCOL"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Switch"> <rdfs:subClassOf> <rdfs:Class rdf:ID="ConnectivityHost"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Anonymous"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="Memory"> <rdfs:subClassOf> <rdfs:Class rdf:ID="COMPONENT"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="VulnerabilityScanner"> <rdfs:subClassOf rdf:resource="#SecurityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="LPR"> <rdfs:subClassOf> <rdfs:Class rdf:ID="PrintingService"/> </rdfs:subClassOf> </rdfs:Class> Modélisation des Informations de sécurité <rdfs:Class rdf:about="#IPP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#PrintingService"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Registry"> <rdfs:subClassOf rdf:resource="#Environnement"/> </rdfs:Class> <rdfs:Class rdf:ID="LDAP"> <rdfs:subClassOf> <rdfs:Class rdf:ID="Annuaire"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="IDS"> <rdfs:subClassOf rdf:resource="#SecurityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="Rule"/> <rdfs:Class rdf:ID="Account"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="SSH"> <rdfs:subClassOf> <rdfs:Class rdf:about="#CryprographicProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Methode"/> <rdfs:Class rdf:ID="Kernel"/> <rdfs:Class rdf:ID="Response"/> <rdfs:Class rdf:ID="RIP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#RoutingProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="NTFS"> <rdfs:subClassOf rdf:resource="#FileSystem"/> </rdfs:Class> <rdfs:Class rdf:ID="ARP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#PROTOCOL"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Modem"> 153 154 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:subClassOf> <rdfs:Class rdf:about="#ConnectivityHost"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Credential"> <rdfs:subClassOf rdf:resource="#CREDENTIAL"/> </rdfs:Class> <rdfs:Class rdf:ID="URL"/> <rdfs:Class rdf:ID="Chat"> <rdfs:subClassOf> <rdfs:Class rdf:about="#SERVICE"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="SysFile"/> <rdfs:Class rdf:ID="HPFS"> <rdfs:subClassOf rdf:resource="#FileSystem"/> </rdfs:Class> <rdfs:Class rdf:ID="TCP"> <rdfs:subClassOf rdf:resource="#TransportProtocol"/> </rdfs:Class> <rdfs:Class rdf:ID="Quarantine"/> <rdfs:Class rdf:ID="IPS"> <rdfs:subClassOf rdf:resource="#SecurityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="Protocol"> <rdfs:subClassOf> <rdfs:Class rdf:about="#PROTOCOL"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="AdminGroup"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="Command"/> <rdfs:Class rdf:about="#PROTOCOL"> <rdfs:subClassOf rdf:resource="#Networking"/> </rdfs:Class> <rdfs:Class rdf:ID="Data"> <rdfs:subClassOf rdf:resource="#DATA"/> </rdfs:Class> <rdfs:Class rdf:ID="Service"> <rdfs:subClassOf> <rdfs:Class rdf:about="#SERVICE"/> Modélisation des Informations de sécurité </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Database"> <rdfs:subClassOf> <rdfs:Class rdf:ID="APPLICATION"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Policy"/> <rdfs:Class rdf:ID="Application"> <rdfs:subClassOf rdf:resource="#APPLICATION"/> </rdfs:Class> <rdfs:Class rdf:about="#ConnectivityHost"> <rdfs:subClassOf rdf:resource="#HOST"/> </rdfs:Class> <rdfs:Class rdf:ID="DHCP"> <rdfs:subClassOf> <rdfs:Class rdf:about="#SERVICE"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="CPU"> <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="NFS"> <rdfs:subClassOf rdf:resource="#FileTransfert"/> </rdfs:Class> <rdfs:Class rdf:ID="Firewall"> <rdfs:subClassOf rdf:resource="#SecurityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="EIGPR"> <rdfs:subClassOf> <rdfs:Class rdf:about="#RoutingProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="Telnet"> <rdfs:subClassOf> <rdfs:Class rdf:about="#SERVICE"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="AccountService"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="NNTP"> 155 156 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:subClassOf> <rdfs:Class rdf:about="#E-MAil"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="AFS"> <rdfs:subClassOf rdf:resource="#FileTransfert"/> </rdfs:Class> <rdfs:Class rdf:ID="IPSEC"> <rdfs:subClassOf> <rdfs:Class rdf:about="#CryprographicProtocol"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="RequestLine"/> <rdfs:Class rdf:ID="UDP"> <rdfs:subClassOf rdf:resource="#TransportProtocol"/> </rdfs:Class> <rdfs:Class rdf:ID="Ext"> <rdfs:subClassOf rdf:resource="#FileSystem"/> </rdfs:Class> <rdfs:Class rdf:about="#Annuaire"> <rdfs:subClassOf> <rdfs:Class rdf:about="#SERVICE"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:ID="HTML"> <rdfs:subClassOf> <rdfs:Class rdf:ID="WEB"/> </rdfs:subClassOf> </rdfs:Class> <rdfs:Class rdf:about="#CryprographicProtocol"> <rdfs:subClassOf rdf:resource="#PROTOCOL"/> </rdfs:Class> <rdfs:Class rdf:about="#SERVICE"> <rdfs:subClassOf rdf:resource="#Networking"/> </rdfs:Class> <rdfs:Class rdf:about="#E-MAil"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="Process"/> <rdfs:Class rdf:ID="RequestCorp"/> <rdfs:Class rdf:about="#RoutingProtocol"> <rdfs:subClassOf rdf:resource="#PROTOCOL"/> Modélisation des Informations de sécurité </rdfs:Class> <rdfs:Class rdf:ID="POP"> <rdfs:subClassOf rdf:resource="#E-MAil"/> </rdfs:Class> <rdfs:Class rdf:about="#WEB"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="SMTP"> <rdfs:subClassOf rdf:resource="#E-MAil"/> </rdfs:Class> <rdfs:Class rdf:ID="Guest"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="WnFS"> <rdfs:subClassOf rdf:resource="#FileSystem"/> </rdfs:Class> <rdfs:Class rdf:ID="Router"> <rdfs:subClassOf rdf:resource="#ConnectivityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="File"> <rdfs:subClassOf rdf:resource="#DATA"/> </rdfs:Class> <rdfs:Class rdf:ID="AccountHost"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="OSPF"> <rdfs:subClassOf rdf:resource="#RoutingProtocol"/> </rdfs:Class> <rdfs:Class rdf:ID="Host"> <rdfs:subClassOf rdf:resource="#HOST"/> </rdfs:Class> <rdfs:Class rdf:ID="Version"/> <rdfs:Class rdf:ID="Directory"> <rdfs:subClassOf rdf:resource="#DATA"/> </rdfs:Class> <rdfs:Class rdf:ID="AccountGroup"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="InputOutput"> <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="Component"> 157 158 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="BGP"> <rdfs:subClassOf rdf:resource="#RoutingProtocol"/> </rdfs:Class> <rdfs:Class rdf:ID="Password"> <rdfs:subClassOf rdf:resource="#CREDENTIAL"/> </rdfs:Class> <rdfs:Class rdf:ID="ManagementService"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="SSL"> <rdfs:subClassOf rdf:resource="#CryprographicProtocol"/> </rdfs:Class> <rdfs:Class rdf:about="#PrintingService"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="Certificate"> <rdfs:subClassOf rdf:resource="#CREDENTIAL"/> </rdfs:Class> <rdfs:Class rdf:ID="SecurityTools"> <rdfs:subClassOf rdf:resource="#APPLICATION"/> </rdfs:Class> <rdfs:Class rdf:ID="ConfFile"> <rdfs:subClassOf rdf:resource="#DATA"/> </rdfs:Class> <rdfs:Class rdf:ID="Variable"> <rdfs:subClassOf rdf:resource="#Environnement"/> </rdfs:Class> <rdfs:Class rdf:ID="Proxy"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="IS_IS"> <rdfs:subClassOf rdf:resource="#RoutingProtocol"/> </rdfs:Class> <rdfs:Class rdf:ID="IP"> <rdfs:subClassOf rdf:resource="#PROTOCOL"/> </rdfs:Class> <rdfs:Class rdf:ID="ServiceGroup"> <rdfs:subClassOf rdf:resource="#ACCOUNT"/> </rdfs:Class> <rdfs:Class rdf:ID="Antivirus"> Modélisation des Informations de sécurité <rdfs:subClassOf rdf:resource="#SecurityHost"/> </rdfs:Class> <rdfs:Class rdf:ID="IRC"> <rdfs:subClassOf rdf:resource="#Chat"/> </rdfs:Class> <rdfs:Class rdf:ID="ApplicationPayement"> <rdfs:subClassOf rdf:resource="#APPLICATION"/> </rdfs:Class> <rdfs:Class rdf:ID="Battery"> <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="Request"/> <rdfs:Class rdf:ID="Disk"> <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="LDP"> <rdfs:subClassOf rdf:resource="#PrintingService"/> </rdfs:Class> <rdfs:Class rdf:ID="Interface"> <rdfs:subClassOf rdf:resource="#COMPONENT"/> </rdfs:Class> <rdfs:Class rdf:ID="Cache"/> <rdfs:Class rdf:ID="RequestHead"/> <rdfs:Class rdf:ID="Message"/> <rdfs:Class rdf:ID="RPC"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <rdfs:Class rdf:ID="SNMP"> <rdfs:subClassOf rdf:resource="#ManagementService"/> </rdfs:Class> <rdfs:Class rdf:ID="FTP"> <rdfs:subClassOf rdf:resource="#FileTransfert"/> </rdfs:Class> <rdfs:Class rdf:ID="DNS"> <rdfs:subClassOf rdf:resource="#SERVICE"/> </rdfs:Class> <owl:ObjectProperty rdf:ID="ComposedOf1"> <rdfs:domain rdf:resource="#RequestLine"/> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#URL"/> 159 160 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:Class rdf:about="#Version"/> <rdfs:Class rdf:about="#Methode"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has1"> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#Kernel"/> <rdfs:Class rdf:about="#OS"/> <rdfs:Class rdf:about="#Policy"/> <rdfs:Class rdf:about="#DATA"/> <rdfs:Class rdf:about="#Command"/> <rdfs:Class rdf:about="#COMPONENT"/> <rdfs:Class rdf:about="#Process"/> </owl:unionOf> </owl:Class> </rdfs:range> <rdfs:domain rdf:resource="#HOST"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="ComposedOf"> <rdfs:domain rdf:resource="#Request"/> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#RequestHead"/> <rdfs:Class rdf:about="#RequestLine"/> <rdfs:Class rdf:about="#RequestCorp"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Manipulates"> <rdfs:domain rdf:resource="#E-MAil"/> <rdfs:range rdf:resource="#Message"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has4"> <rdfs:domain rdf:resource="#Router"/> <rdfs:range rdf:resource="#RoutingTable"/> </owl:ObjectProperty> Modélisation des Informations de sécurité <owl:ObjectProperty rdf:ID="Include"> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#Module"/> <rdfs:Class rdf:about="#Process"/> <rdfs:Class rdf:about="#FileSystem"/> <rdfs:Class rdf:about="#Environnement"/> <rdfs:Class rdf:about="#SysFile"/> </owl:unionOf> </owl:Class> </rdfs:range> <rdfs:domain rdf:resource="#Kernel"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Execute"> <rdfs:domain rdf:resource="#FileTransfert"/> <rdfs:range rdf:resource="#Command"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Receive"> <rdfs:range rdf:resource="#Response"/> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#WEB"/> <rdfs:Class rdf:about="#Proxy"/> </owl:unionOf> </owl:Class> </rdfs:domain> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has"> <rdfs:domain rdf:resource="#ACCOUNT"/> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#CREDENTIAL"/> <rdfs:Class rdf:about="#Policy"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has5"> <rdfs:domain rdf:resource="#Antivirus"/> 161 162 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature <rdfs:range rdf:resource="#Quarantine"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has2"> <rdfs:range rdf:resource="#Policy"/> <rdfs:domain rdf:resource="#SERVICE"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Use"> <rdfs:range rdf:resource="#Cache"/> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#Proxy"/> <rdfs:Class rdf:about="#WEB"/> <rdfs:Class rdf:about="#DNS"/> </owl:unionOf> </owl:Class> </rdfs:domain> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Has3"> <rdfs:domain rdf:resource="#APPLICATION"/> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#Command"/> <rdfs:Class rdf:about="#DATA"/> <rdfs:Class rdf:about="#Policy"/> <rdfs:Class rdf:about="#Process"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Send"> <rdfs:range rdf:resource="#Request"/> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#WEB"/> <rdfs:Class rdf:about="#Proxy"/> <rdfs:Class rdf:about="#DNS"/> </owl:unionOf> </owl:Class> </rdfs:domain> Modélisation des Informations de sécurité </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="Issues"> <rdfs:range rdf:resource="#Certificate"/> <rdfs:domain rdf:resource="#PKI"/> </owl:ObjectProperty> <owl:ObjectProperty rdf:ID="AuthenticateOn"> <rdfs:domain rdf:resource="#ACCOUNT"/> <rdfs:range> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#APPLICATION"/> <rdfs:Class rdf:about="#HOST"/> <rdfs:Class rdf:about="#SERVICE"/> </owl:unionOf> </owl:Class> </rdfs:range> </owl:ObjectProperty> <owl:DatatypeProperty rdf:ID="licence"> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#APPLICATION"/> <rdfs:Class rdf:about="#HOST"/> <rdfs:Class rdf:about="#SERVICE"/> <rdfs:Class rdf:about="#OS"/> </owl:unionOf> </owl:Class> </rdfs:domain> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:DatatypeProperty> <owl:DatatypeProperty rdf:ID="name"> <rdfs:domain> <owl:Class> <owl:unionOf rdf:parseType="Collection"> <rdfs:Class rdf:about="#APPLICATION"/> <rdfs:Class rdf:about="#HOST"/> <rdfs:Class rdf:about="#OS"/> <rdfs:Class rdf:about="#SERVICE"/> </owl:unionOf> </owl:Class> </rdfs:domain> <rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> 163 164 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature </owl:DatatypeProperty> <owl:Thing rdf:ID="Thing_50"/> </rdf:RDF> <!-- Created with Protege (with OWL Plugin 3.4, Build 504) A.1.3 http://protege.stanford.edu --> Détail de la figure 4.5 sur la modélisation des cibles. Modélisation des Informations de sécurité Fig. A.6 – Partie (1). 165 166 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature Fig. A.7 – Partie (2). Modélisation des Informations de sécurité Fig. A.8 – Partie (3). 167 168 Exemple de liste, de taxonomie et d’ontologie à partir de la littérature B Indexation et réduction d’attributs B.1 Exemple de comparaison du vocabulaire de deux produits 169 170 Module d’extraction aborted bounce conversation echo handle location accepted bridge corrupt embryonic hardware locked network new access browsed corrupted enabled hazard log no accessed buffer could encoded header logged normal account built counter encrypt high logging not acl cable cpu end host logical notification activated cache created ended http login now activation called creation enforcement icmp logout null active cannot critical enough identifier long number activex card crl entry ike looked object added catcher crossed erased illegal lost obtained occured address certificate crypto error import low adjusted change daemon established inbound mac occurred advertissement changed data evasion incorrectly mail ok again channel database event information malformated only allocated chassis dce-rpc exceeded initialization malformed opened allocation chat deactivated executed initialized malicious orphan allowed checksum deactived exhausted initiated management os outbound already cif deauthorized existed injection many answered cisco decrypt expected inserted map overflow antivirus cleared default expired installed marked overlapped api client defragmentation exploited instant mastered overrun appliance closed delete export insuffient matched packet application cluster deleted exported integrity max parsed applied code deletion extended interface maximum password area collision denied extension invalid media payload arp command depleted failed io memory peer as communication destination failure ip message pended ascii compatible detected field ipsec method permitted asn complete device file java misconfigured ping assembled completed dhcp filter jpeg mismatch pmtu assigned component dial finded keep-alive missed png attack concealment different fingerprint key mode point attempt condition directory firewall lan modification policy attribute conffile disabled flood land modified polling authenticated configuration discard flow large module pool authentication configured discarded format length monitor popup authorization conflicted disconnected found level move port authorized connected disconnection fragment library ms possibly available connection dns ftp license ms-chap power backbone connectivity domain full limit ms-sql preallocated backup console dos functionality link multicast present bad contact downloaded gif list multiple preshared balancing contacted dropped got listened must previously base container duplicate granted load name priv beginning content duplicated group loading nat privilege block context duration gtp local-host negociation problem boot control dynamic guard located neighbor process Tab. B.1 – Comparaison du vocabulaire brut du pare-feux Cisco et du pare-feux Checkpoint. Le texte en bleu représente le vocabulaire commun entre les deux produits. Le texte en rouge représente le vocabulaire utilisé que par Checkpoint et Le texte en noir représente le vocabulaire utilisé que par Cisco. B.2 Module d’extraction Indexation et réduction d’attributs 171 processed redirection restricted service state technique unknown processing reference retransmitted serviced stateful terminaison unlocked progression refresh returned session static terminated unrecognized proposal registered revocation set statistic tested unsupported protection registration rip setting status testing updated protector rejected rollover shared stopped timed url protocol released route sip subnet timeout usage proxy reload routed site subsystem timer used pup reloaded router siz succeeded traffic user query removed rtsp size successful transaction validation queue renamed rule skipped successfully transfer verification quota replay same slave successive transitioned verifier range replication sanity slot support translation version rate report scan small supported transport viewed rcmd request scheduled smb suspicious traversal violation reached requested scripted snmp switch triggered virus reading required secure socket switched trust vlan ready reseted security spoof syn tunnel vpn reason resolution securitytools spoofing synchronization tunnelled warning reboot resource selected sql synchronizationed udp welchia rebuilt responded send ssh sysauth unable windows received response sent ssl system unanswered wins recived resquet sequence standby table unbinded witty record ressource serial start tcp undetermined worm recovered restarted server started teardrop unit writed Tab. B.2 – Comparaison du vocabulaire brut du pare-feux Cisco et du pare-feux Checkpoint, suite du tableau refcomparaisonsonde B.2.1 Les étiquettes utilisées dans le programme de Brill Etiquette Description Etiquette Description CC Coordinating conjunction PP$ Possessive pronoun CD Cardinal number RB Adverb DT Determiner RBR Adverb, comparative EX Existential ”there” RBS Adverb, superlative FW Foreign word RP Particle IN Preposition or subordinating conjunction SYM Symbol JJ Adjective TO ”to” JJR Adjective, comparative UH Interjection JJS Adjective, superlative VB Verb, base form LS List item marker VBD Verb, past tense MD Modal VBG Verb, gerund or present participle NN Noun, singular or mass VBN Verb, past participle NNS Noun, plural VBP Verb, non-3rd person singular present NNP Proper noun, singular VBZ Verb, 3rd person singular present NNPS Proper noun, plural WDT Wh-determiner PDT Predeterminer WP Wh-pronoun POS Possessive ending WP$ Possessive wh-pronoun PP Personal pronoun WRB Wh-adverb Tab. B.3 – Etiquettes associées aux mots par le tagger de Brill 172 Module d’extraction B.2.2 Exemple d’extensions de fichiers exécutables Extenstion Description Extenstion Description .a6p Authorware 6 Program .cmd Windows Command File .ac Autoconf Script .com DOS Command File .acr ACRobot Script .csh C Shell Script .action Automator Action .dek Eavesdropper Batch File .air Adobe AIR Installation Package .ds TWAIN Data Source .app Mac OS X Application .ebm EXTRA ! Basic Macro .applescript AppleScript File .elf Playstation Executable File .awk AWK Script .esh Extended Shell Batch File .bat DOS Batch File .exe Windows Executable File .cgi Common Gateway Interface Script .ezs EZ-R Stats Batch Script Tab. B.4 – Un échantillon d’extensions de fichiers exécutables B.2.3 Quelques résultats du module d’extraction addiction ; backdoor left ; activity logout adware-azesearch ; pup alibaba ;web amavis ; antivirus ammanda ; backdoor anaconda ; application_web analogx ; proxy shutdown ; stopped netasq ; firewall renamed ; activity write l2tp ; tunnel security event source ; audit disconnected ; activity logout installed ; config add worldmail ; mail user ; account ticket ; credential adware-180sa ; pup skyfull ; mail squid ; proxy su ; command sudo ; command sun ; os sygate ; firewall thread ; process ftpsec ; ftp Tab. B.5 – Exemple de règles générées par le module d’extraction. Langage source (Modèle de messages) Langage cible (Catégorie de l’ontologie) radius user XL1 authentication XL1 user disconnected XL1 account created XL1 policy changed XL1 packet dropped invalid XL1 in active directory log XL1 full XL1 timeout activity login sysauth account XL2 authentication activity logout XL2 account success authentication config add sysauth XL2 success XL2 config modify domain policy success system activity forward XL2 packet denied system information control ldap XL2 invalid system information threshold XL2 logfile exceeded system information threshold XL2 timeout expired Tab. B.6 – Exemple de règles de généralisation. Indexation et réduction d’attributs 173 List d’acronymes AFCSC ASAX ASIM BN CERT CMDS CT CVE DDOS DNS DOS EBMT EMERALD FTP ICMP IDES IDIOT IDMEF IDS IMAP IP k-PPV LC LS LSI MIND NIDS NIPS NSM OID RN SVD SVD USTAT Air Force Cryptologic Support Center Advanced Security audit-trail Analysis on uniX Automated Security Incident Measurement Bayesien Naïf Computer Emergency Response Team Computer Misuse Detection System Catégorisation de Texte Common Vulnerabilities and Exposures Distributed Denial of Service Attack Domain Name System Denial of Service Attack Exemple-Based Machine Translation ou Traduction Automatique Guidée par l’Exemple Event Monitoring Enabling Responses to Anomalous Live Disturbances File Transmission Protocol Internet Control Message Protocol Intrusion Detection Expert System Intrusion Detection In Our Time Intrusion Detection Message Exchange Format Intrusion Detection System Internet Message Access Protocol Internet Protocol k Plus Proches Voisins Langage Cible Langage Source Latent Semantic Indexing Minnesota Network Intrusion Detection Network Intrusion Detection System Network Intrusion Prevention System Network Security Monitor Ontology for Intrusion Detection Réseaux de Neurones Singular Value Decomposition ou Décomposition en Valeur Singulière Support Vector Machine State Transition Analysis Tool for UNIX 174 Module d’extraction Bibliographie [1] Edward G. Amoroso. Fundamentals of computer security technology. Prentice-Hall, Inc, Upper Saddle River, NJ, USA, 1994. [2] Ronja Addams-Moring Antti Hatala, Camillo Sars and Teemupekka Virtanem. Event data exchange and intrusion alert correlation in heterogeneous networks. In the 8th Collogquium for Information Systems Security Education, West Point, NY, June 2004. [3] C. Apte, F. Damerau, and S. Weiss. Text mining with decision rules and decision trees. In the Conference on Automated Learning and Discovery, Workshop 6 : Learning from Text and the Web, 1998. [4] Taimur Aslam. A Taxonomy of Security Faults in The UNIX Operating System. PhD thesis, Purdue University, August 1995. [5] Stefan Axelsson. Intrusion detection systems : A survey and taxonomy. Technical Report 99-15, Chalmers Univ, March 2000. [6] L. Douglas Baker and Andrew K. McCallum. Distributional clustering of words for text classification. In SIGIR ’98 : Proceedings of the 21st annual international ACM SIGIR conference on Research and development in information retrieval, pages 96–103, New York, NY, USA, 1998. ACM. [7] Emilie Lindin Barse. Logging for intrusion and fraud detection. PhD thesis, Department of Computer Engineering, School of Computer Science and Engineering, CHALMERS UNIVERSITY OF TECHNOLOGY. Göteborg, Sweden, 2004. [8] Matt Bishop. A taxonomy of Unix system and network vulnerabilities. Technical Report CSE-9510, Department of Computer Science, University of California at Davis, May 1995. [9] Matt Bishop and Michael Dilger. Checking for race conditions in file accesses. Computing Systems, 9(2) :131–152, Spring 1996. [10] M Brand. Intending and acting : toward a naturalized action theory. Cambridge, MA : MIT Press, 1984. [11] Janez Brank and Marko Grobelnik. Interaction of feature selection methods and linear classification models. In Proceedings of the ICML-02 Workshop on Text Learning. Forthcoming, 2002. [12] M. E Bratman. Intention, plans, and practical reason. Cambridge, MA : Cambridge University Press, 1987. [13] Leo Breiman. Bagging predictors. Machine Learning, 24(2) :123–140, 1996. 175 176 BIBLIOGRAPHIE [14] Eric Brill. A simple rule-based part-of-speech tagger. In Proceedings of ANLP-92, 3rd Conference on Applied Natural Language Processing, pages 152–155, Trento, IT, 1992. [15] Eric Brill. Some advances in transformation-based part of speech tagging. In AAAI ’94 : Proceedings of the twelfth national conference on Artificial intelligence (vol. 1), pages 722–727, Menlo Park, CA, USA, 1994. American Association for Artificial Intelligence. [16] Peter F. Brown, John Cocke, Stephen A. Della Pietra, Vincent J. Della Pietra, Fredrick Jelinek, John D. Lafferty, Robert L. Mercer, and Paul S. Roossin. A statistical approach to machine translation. Computational Linguistics, 16 :79–85, 1990. [17] Chris Buckley, Gerard Salton, and James Allan. Automatic retrieval with locality information using smart. In The First Text REtrieval Conference (TREC-1), pages 59–72, 1992. [18] J. Capoulade, P. Carle, E. Cochevelou, F. Cuppens, M. Diop, S. Dubus, S. Gombault, L. Mé, C. Michel, and B. Morin. Mirador : A cooperative approach of IDS. In Poster présenté au 6ème European Symposium on Reseach in computer Security (ESORICS). Toulouse, France, Octobre 2000. [19] Nathan Carey, Andrew Clark, and George M. Mohay. IDS interoperability and correlation using IDMEF and commodity systems. In ICICS ’02 : Proceedings of the 4th International Conference on Information and Communications Security, pages 252–264, London, UK, 2002. Springer-Verlag. [20] A. Chakrabarti and B. Manimaran. Internet infrastructure security : A taxonomy. IEEE Network, 16(6) :13–21, Nov-Dec 2002. [21] Chih-Chung Chang and Chih-Jen Lin. LIBSVM : a library for support vector machines, 2001. Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm. [22] Eugene Charniak, Curtis Hendrickson, Neil Jacobson, and Mike Perkowitz. Equations for part-of-speech tagging. In Proceedings of the Eleventh National Conference on Artificial Intelligence, pages 784–789, 1993. [23] Peter Cheeseman and John Stutz. Bayesian classification (autoclass) : theory and results. U. M fayyad, G. Piatetsky-Shapiro, P. Smyth, and R. Uthurusamy, editors, Advances in Knowledge Discovery and Data Mining, pages 153–180, 1996. [24] W. R. Cheswick and S. M. Bellovin. Firewalls and Internet SecurityRepelling the Wily Hacker. Addison-Wesley, 1994. [25] I. Cicekli and H. A. Guvenir. Learning translation rules from a bilingual corpus. In NEMLAP-2, Second International Conference on New Methods in language Processing, pages 90–97, Ankara, Turkey, 1996. [26] Richard Clarke and Lee Zeichner. Beyond the Moat : New Strategies For Cybersecurity. Bank Systems & Technology, January 2004. [27] Frederick B. Cohen. Protection and Security on the Information Superhighway. John Wiley & Sons, Inc., New York, NY, USA, 1995. [28] Frederick B. Cohen. Information system attacks : A Preliminary Classification Scheme. Computers and Security, 16, No.1 :29–46, 1997. BIBLIOGRAPHIE 177 [29] William W. Cohen. Fast effective rule induction. In Proceedings of the Twelfth International Conference on Machine Learning, pages 115–123. Morgan Kaufmann, 1995. [30] Robert H. Creecy, Brij M. Masand, Stephen J. Smith, and David L. Waltz. Trading MIPS and memory for knowledge engineering. Commun. ACM, 35(8) :48–64, 1992. [31] F. Cuppens. Managing alerts in a multi-intrusion detection environment. In ACSAC ’01 : Proceedings of the 17th Annual Computer Security Applications Conference, page 22, Washington, DC, USA, 2001. IEEE Computer Society. [32] Frédéric Cuppens and Alexandre Miège. Alert correlation in a cooperative intrusion detection framework. In SP ’02 : Proceedings of the 2002 IEEE Symposium on Security and Privacy, page 202, Washington, DC, USA, 2002. IEEE Computer Society. [33] D. Curry and H. Debar. Intrusion detection message exchange format, March 2007. http ://www.ietf.org/internet-drafts/draft-ietf-idwg-idmef-xml-16.txt. [34] Walter Daelemans, Jakub Zavrel, Peter Berck, and Steven Gillis. MBT : A Memory-Based Part of Speech Tagger Generator. In Proc. of Fourth Workshop on Very Large Corpora, pages 14–27. ACL SIGDAT, 1996. [35] O. Dain and R. Cunningham. Fusing a heterogeneous alert stream into scenarios. In the ACM Workshop on Data Mining for Security Applications, 2001. [36] Abhimanyu Das and David Kempe. Algorithms for subset selection in linear regression. In STOC ’08 : Proceedings of the 40th annual ACM symposium on Theory of computing, pages 45–54, New York, NY, USA, 2008. ACM. [37] Davidson. Actions, reasons, and causes. Journal of Philosophy, pages 685–700 (Reprinted in Davidson 1980, pp. 3–19.), 1963. [38] D Davidson. Freedom to act. Honderich (ed.), Essays on Freedom of Action (London : Routledge & Kegan Paul, 1973, reprinted with corrections, 1978) pp. 137–156., 1973. [39] D Davidson. Intending. In Y. Yovel (ed.), Philosophy of History and Action, pages 41–60, 1978. [40] Hervé DEBAR, Monique BECKER, and Didier SIBONI. A Neural Network Component for an Intrusion Detection System. In SP ’92 : Proceedings of the 1992 IEEE Symposium on Security and Privacy, page 240, Washington, DC, USA, 1992. IEEE Computer Society. [41] Hervé Debar, Marc Dacier, and Andreas Wespi. Towards a taxonomy of intrusion- detection systems. Comput. Netw., 31(9) :805–822, 1999. [42] Hervé Debar and Andreas Wespi. Aggregation and Correlation of Intrusion-Detection Alerts. In RAID ’00 : Proceedings of the 4th International Symposium on Recent Advances in Intrusion Detection, pages 85–103, London, UK, 2001. Springer-Verlag. [43] D.E.Denning and P.G.Neumann. Requirement and model for IDES-A real-time intrusion detection system. Technical report, Technical report, Computer Science Laboratory, SRI International, Menlo Patk, CA, USA, 1985. [44] Scott C. Deerwester, Susan T. Dumais, Thomas K. Landauer, George W. Furnas, and Richard A. Harshman. Indexing by latent semantic analysis. Journal of the American Society of Information Science, 41(6) :391–407, 1990. 178 BIBLIOGRAPHIE [45] Lori L. DeLooze. Classification of computer attacks using a self-organizing map. In Information Assurance Workshop Proceedings from the Fifth Annual IEEE SMC, 2004. [46] D.E. Denning. An intrusion detection model. IEEE transaction on Software Engineering, 13(2) :222–232, 1987. [47] Ted Dunning. Accurate methods for the statistics of surprise and coincidence. Computational Linguistics, 19(1) :61–74, 1994. [48] Steven T. Eckmann, Giovanni Vigna, and Richard A. Kemmerer. STATL : an attack language for state-based intrusion detection. Journal of Computer Security, 10 :71–103, 2002. [49] Philippe Evard and Eric Filiol. Guerre, guérillas et terrorismes informatiques : du trafic d’armes numériques à la protection des infrastructures. Multi-system & Internet Security Cookbook (MISC), (35) :4–13, Janvier-Février 2008. [50] Zou Feng. The identification of stop words and keywords : a study of automatic term weighting in natural language text processing. Master’s thesis, Department of Computer Science, City University of Hong Kong, July 2006. [51] Christopher Kruegel Fredrik Valeur, Giovanni Vigna and Richard A. Kemmerer. A comprehensive approach to intrusion detection alert correlation. IEEE Transactions On Dependable and Secure Computing, 1(3) :146–169, 2004. [52] Christoph Goller, J. Löning, T. Will, and W. Wolff. Automatic document classification - a thorough evaluation of various methods. In Internationales Symposium für Informationswissenschaft (ISI), pages 145–162, 2000. [53] TRW Defense Systems Group. Intrusion detection expert system feasibility study. Final report 46761, 1986. [54] T. R. Gruber. Toward principles for the design of ontologies used for knowledge sharinge. International Journal of Human and Computer Studies, 43 :907928, 1995. [55] Eugene H., Spafford, and Diego Zamboni. Intrusion detection using autonomous agents. Computer Networks, 4(34) :547–570, October 2000. [56] Naji Habra, Baudouin Le Charlier, Abdelaziz Mounji, and Isabelle Mathieu. ASAX : Software architecture and rule-based language for universal audit trail analysis. Computer Security ESORICS 92, pages 435–450, 1992. [57] L.T. Heberlein, G. Dias, K. Levit, B. Mukherjee, J. Wood, , and D. Wolber. A network security monitor. In Proceedings of the 1990 IEEE Computer Society Symposiumon Research in Security and Privacy, pages 296–304, May 1990. [58] William Hersh, Chris Buckley, T. J. Leone, and David Hickam. Ohsumed : an interactive retrieval evaluation and new large test collection for research. In SIGIR ’94 : Proceedings of the 17th annual international ACM SIGIR conference on Research and development in information retrieval, pages 192–201, New York, NY, USA, 1994. Springer-Verlag New York, Inc. [59] J. Howard and T. Longstaff. A common language for computer security incidents. Sand988667, Sandia International Laboratories, 1998. BIBLIOGRAPHIE 179 [60] John D. Howard. An Analysis of Security Incidents on the Internet. PhD thesis, Carnegie Mellon University, Pittsburgh, Pennsylvania 15213 USA, April 1997. [61] Ming-Yuh Huang, Robert J. Jasper, and Thomas M. Wicks. A large scale distributed intrusion detection framework based on attack strategy analysis. Computer Networks (Amsterdam, Netherlands : 1999˚, 31(23–24) :2465–2475, 1999. [62] David Icove, Karl Seger, and William VonStorch. Computer Crime : A Crimefighter’s Handbook. Inc., Sebastopol, CA, 1995. [63] Koral Ilgun. Ustat : A real-time intrusion detection system for unix. Proceedings of the 1999 IEEE Symposium on Research in Security and Privacy, Oakland, CA, USA, pages 16–28, 1993. [64] Israel D. J., Perry J. R., and Tutiya S. Executions, motivations, and accomplishments. Philosophical Review, 102(4), Oct 1993. [65] N.D. Jayaram and P.L.R. Morse. Network security-a taxonomic view. European Conference on Security and Detection. School of Computer Science, University of Westmister, UK, IEE, Conference Publication, 437, 28-30 April 1997. [66] Thorsten Joachims. Text categorization with support vector machines : learning with many relevant features. In Claire Nédellec and Céline Rouveirol, editors, Proceedings of ECML-98, 10th European Conference on Machine Learning, volume 1398, pages 137–142, Chemnitz, DE, 1998. Springer Verlag, Heidelberg, DE. [67] Kevin S. Killourhy, Roy A. Maxion, and Kymie M. C. Tan. A defense-centric taxonomy based on attack manifestations. In DSN ’04 : Proceedings of the 2004 International Conference on Dependable Systems and Networks, page 102, Washington, DC, USA, 2004. IEEE Computer Society. [68] Maria Kjaerland. A taxonomy and comparison of computer security incidents from the commercial and government sectors. Computers & Security, 25(7) :522–538, 2006. [69] Daphne Koller and Mehran Sahami. Hierarchically classifying documents using very few words. In ICML ’97 : Proceedings of the Fourteenth International Conference on Machine Learning, pages 170–178, San Francisco, CA, USA, 1997. Morgan Kaufmann Publishers Inc. [70] Ivan Krsul. Software Vulnerability Analysis. PhD thesis, Purdue University, US, May 1998. [71] S. Kumar. Classification and detection of computer intrusions. PhD thesis, Purdue University, 1995. [72] Sandeep Kumar and Eugene h. Spafford. A pattern matching model for misuse intrusion detection. Proceedings of the 17th National Computer Security Conference,Baltimore, Maryland, National Institute of standards and Technology / National Computer Security Center, pages 74–81, October 17-20, 1988. [73] Carl E. Landwehr, Alan R. Bull, John P. McDermott, and William S. Choi. A taxonomy of computer program security flaws. ACM Computing Surveys, 26(3) :211–254, 1994. 180 BIBLIOGRAPHIE [74] Edda Leopold and Jörg Kindermann. Text categorization with support vector machines. how to represent texts in input space ? Machine Learning, 46(1-3) :423–444, 2002. [75] David D. Lewis. An evaluation of phrasal and clustered representations on a text categorization task. In SIGIR ’92 : Proceedings of the 15th annual international ACM SIGIR conference on Research and development in information retrieval, pages 37–50, New York, NY, USA, 1992. ACM. [76] David D. Lewis. Naive (Bayes) at forty : The independence assumption in information retrieval. In Claire Nédellec and Céline Rouveirol, editors, Proceedings of ECML-98, 10th European Conference on Machine Learning, number 1398, pages 4–15, Chemnitz, DE, 1998. Springer Verlag, Heidelberg, DE. [77] David D. Lewis and Marc Ringuette. A comparison of two learning algorithms for text categorization. In In Third Annual Symposium on Document Analysis and Information Retrieval, pages 81–93, 1994. [78] Yonghong Li and Anil K. Jain. Classification of text documents. The Computer Journal 1998, 41(8) :537–546, 1998. [79] Ulf Lindqvist and Erland Jonsson. How to systematically classify computer security intrusions. In proceeding of the IEEE Symposium on Security and Privacy, pages 154– 163, 1997. [80] Richard Lippmann, Joshua W. Haines, David J. Fried, Jonathan Korba, and Kumar Das. Analysis and results of the 1999 darpa off-line intrusion detection evaluation. In RAID ’00 : Proceedings of the Third International Workshop on Recent Advances in Intrusion Detection, pages 162–182, London, UK, 2000. Springer-Verlag. [81] Peng Liu, Wanyu Zang, and Meng Yu. Incentive-based modeling and inference of attacker intent, objectives, and strategies. ACM Transactions on Information and System Security, 8(1) :78–118, 2005. [82] Emilie Lundin and Erland Jonsson. Survey of intrusion detection research. http ://citeseerx.ist.psu.edu/viewdoc/summary ?doi=10.1.1.15.7644. [83] Ludovic Mé and Cédric Michel. Intrusion detection : A bibliography. Technical Report SSIR-2001-01, Supélec, Rennes, France, September 2001. [84] Christopher D. Manning and Hinrich Schütze. Foundations of statistical natural language processing, volume 2. The MIT Press Cambridge, Massachusetts., New York, NY, USA, 1999. [85] Brij Masand, Gordon Linoff, and David Waltz. Classifying news stories using memory based reasoning. In SIGIR ’92 : Proceedings of the 15th annual international ACM SIGIR conference on Research and development in information retrieval, pages 59–65, New York, NY, USA, 1992. ACM Press. [86] A.R Mele. Springs of action, understanding intentional behavior. Oxford University Press, 1992. [87] Mary E Hanna Michael M Sebring, Eric Shellhouse and R Alan Whitehurst. Expert systems in intrusion detection : A case study. In Proceedings of the 11th National Computer Security Conference, Baltimore, Maryland, pages 74–81, October 17-20, 1988. BIBLIOGRAPHIE 181 [88] B. Morin. Corrélation d’alertes issues d’outils de détection d’intrusions avec prise en compte d’informations sur le système surveillé. PhD thesis, INSA de Rennes, Février 2004. [89] John R. Mostow, John D. Roberts, and John Bott. Integration of an Internet Attack Simulator in an HLA Environment. In In Proceedings of the 2000 IEEE Workshop on Information Assurance and Security, West Point, New York, June 6-7 2000. [90] Isabelle Moulinier and Jean-Gabriel Ganascia. Applying an existing machine learning algorithm to text categorization. In Connectionist, Statistical, and Symbolic Approaches to Learning for Natural Language Processing, pages 343–354, London, UK, 1996. SpringerVerlag. [91] Pio Nardiello, Fabrizio Sebastiani, and Alessandro Sperduti. Discretizing continuous attributes in AdaBoost for text categorization. In Proceedings of ECIR-03, 25th European Conference on Information Retrieval, pages 320–334, Pisa, IT, 2003. Springer Verlag. [92] Peter G. Neumann. Computer-Related Risks. Addison-Wesley, October 1994. [93] Peter G Neumann and Donn B Parker. A summary of computer misuse techniques. In Proceedings of the 12th National Computer Security Conference, pages 396–407, Baltimore, Maryland, October 1989. [94] Peng Ning, Sushil Jajodia, and Xiaoyang Sean Wang. Abstraction-based intrusion detection in distributed environments. ACM Transaction Information and System Security, 4(4) :407–452, 2001. [95] Peng Ning and Dingbang Xu. Learning attack strategies from intrusion alerts. In CCS ’03 : Proceedings of the 10th ACM conference on Computer and communications security, pages 200–209, New York, NY, USA, 2003. ACM. [96] James P.Anderson. Computer security threat monitoring and surveillance. Technical report, Contract 79F26400, James P.Anderson Co, Box 42, Fort Washington, PA, 19034, February 26, revised April 15 1980. [97] Yun Cui Peng Ning and Douglas S. reeves. Constructing attack scenarios through correlation of intrusion alerts. In Proceedings of the 9th ACM conference on Computer and Communications security, 2002. [98] Fernando Pereira, Naftali Tishby, and Lillian Lee. Distributional clustering of english words. In Proceedings of the 31st annual meeting on Association for Computational Linguistics, pages 183–190, Morristown, NJ, USA, 1993. Association for Computational Linguistics. [99] T. Perry and P. Wallich. Can computer crime be stopped ? IEEE Spectrum, 5(21), May 1984. [100] P. A. Porras and P. G. Neumann. EMERALD : Event Monitoring Enabling Responses to Anomalous Live Disturbances. In Proc. 20th NIST-NCSC National Information Systems Security Conference, pages 353–365, 1997. [101] Victor Raskin, Christian F. Hempelmann, Katrina E. Triezenberg, and Sergei Nirenburg. Ontology in information security : a useful theoretical foundation and methodological 182 BIBLIOGRAPHIE tool. In NSPW ’01 : Proceedings of the 2001 workshop on New security paradigms, pages 53–59, New York, NY, USA, 2001. ACM. [102] Adwait Ratnaparkhi. A maximum entropy model for part-of-speech tagging. In Proceedings of the Conference on Empirical Methods in Natural Language Processing, pages 133–142, 1996. [103] Deborah Russell and Sr. G. T. Gangemi. Computer security basics. O’Reilly & Associates, Inc., Sebastopol, CA, USA, 1991. [104] Staniford-Chen. S, Tung.B, and Schnackenberg.D. The common intrusion detection framework( CIDF). In The Information Survivability Workshop (ISW ’98), Orlando, FL, October 1998. CERT Coordination Center, Software Engineering Institute. [105] Gerard Salton and Michael J. McGill. Introduction to Modern Information Retrieval. McGraw-Hill, Inc., New York, NY, USA, 1986. [106] Jacques Saraydaryan, Véronique Legrand, and Stéphane.Ubéda. Behavioral Anomaly Detection using Bayesian Modelization Based on a Global Vision of the System. In NOTERE, 2007. [107] Karl-Michael Schneider. Techniques for improving the performance of naive bayes for text classification. In 6th International Conference, CICLing 2005, Mexico City, Mexico, 2005. [108] Hinrich Schütze, David A. Hull, and Jan O. Pedersen. A comparison of classifiers and document representations for the routing problem. In SIGIR ’95 : Proceedings of the 18th annual international ACM SIGIR conference on Research and development in information retrieval, pages 229–237, New York, NY, USA, 1995. ACM. [109] Sam Scott and Stan Matwin. Feature engineering for text classification. In Proceedings of ICML-99, 16th International Conference on Machine Learning, pages 379–388, Bled, SL, 1999. [110] J Searle. Intentionality : An Essay in the Philosophy of Mind. Cambridge University Press New York, 1983. [111] Fabrizio Sebastiani. Machine learning in automated text categorization. ACM Computing Surveys, 34(1) :1–47, 2002. [112] N. Slonim and N. Tishby. The power of word clusters for text classification. In 23rd European Colloquium on Information Retrieval Research, 2001. [113] Stephen E. Smaha. Haystack : An intrusion detection system. In 12th National Computer Security Conference, pages 37–44, 1988. [114] Steven R. Snapp, James Brentano, Gihan V. Dias, Terrance L. Goan, L. Todd Heberlein, Che lin Ho, Karl N. Levitt, Biswanath Mukherjee, Stephen E. Smaha, Tim Grance, Daniel M. Teal, and Doug Mansur. DIDS (distributed intrusion detection system) motivation, architecture, and an early prototype. In Proceedings of the 14th National Computer Security Conference, pages 167–176, Washington, DC, 1991. [115] Harold Somers. Review article : Example-based machine translation. Machine Translation, 14(2) :113–157, 1999. BIBLIOGRAPHIE 183 [116] William Stallings. Network and internetwork security : principles and practice. PrenticeHall, Inc, Upper Saddle River, NJ, USA, 1995. [117] S. Staniford-chen, S. Cheung, R. Crawford, M. Dilger, J. Frank, J. Hoagl, K. Levitt, C. Wee, R. Yip, and D. Zerkle. Grids - a graph based intrusion detection system for large networks. pages 361–370, 1996. [118] Andrew J. Stewart. Distributed metastasis : A computer network penetration methodology. Phrack Magazine, 55(9), 1999. [119] Jeffrey L Undercoffer, Anupam Joshi, and John Pinkston. Modeling computer attacks an ontology for intrusion detections. In LNCS-2516, editor, The Sixth International Symposium on Recent Advances in Intrusion Detection. Springer, September 2003. [120] Mike Uschold, Martin King, Stuart Moralee, and Yannis Zorgios. The enterprise ontology. Knowl. Eng. Rev., 13(1) :31–89, 1998. [121] Alfonso Valdes and Keith Skinner. Probabilistic alert correlation. In Proceedings of Recent Advances in Intrusion Detection 2001, LNCS 2212, pages 54–68, ISBN 3–540–427202, 2001. [122] Keith van Rijsbergen. Information Retrieval, 2nd edition. Dept. of Computer Science, University of Glasgow, 1979. [123] Vladimir N. Vapnik. The nature of statistical learning theory. Springer-Verlag New York, Inc., New York, NY, USA, 1995. [124] Giocanni Vigna and Richard A. Kemmerer. NetSTAT : a network-based intrusion detection system. Journal of Computer Security, pages 37–71, 7/1999. [125] Romain Vinot and François Yvon. Improving rocchio with weakly supervised clustering. In Proceedings of ECML-03, 14th European Conference on Machine Learning, pages 456– 467, Dubrovnik, HK, 2003. Springer Verlag, Heidelberg, DE. [126] Daniel Weber. A taxonomy of computer intrusions. PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, June 1998. [127] G. White and V. Pooch. Cooperating security managers : Distributed intrusion detection systems. In Computers & Security, volume 15, pages 441–450. Elsevier Science Ltd, 1996. [128] James A. Whittaker, Herbert Thompson, Herbert H. Thompson, and Herbert Thompson. How to Break Software Security : Effective Techniques for Security Testing. Addison Wesley, April 2003. [129] Erik D. Wiener, Jan O. Pedersen, and Andreas S. Weigend. A neural network approach to topic spotting. In Proceedings of SDAIR-95, 4th Annual Symposium on Document Analysis and Information Retrieval, pages 317–332, Las Vegas, US, 1995. [130] W. John Wilbur and Karl Sirotkin. The automatic identification of stop words. Journal of information science, 18(1) :45–55, 1992. [131] Tenner WT. Discovery : An expert system in the commercial data security environment. Computer Security Journal, 6(1) :4553, 1990. 184 BIBLIOGRAPHIE [132] Yiming Yang. Noise reduction in a statistical approach to text categorization. In SIGIR ’95 : Proceedings of the 18th annual international ACM SIGIR conference on Research and development in information retrieval, pages 256–263, New York, NY, USA, 1995. ACM. [133] Yiming Yang. An evaluation of statistical approaches to text categorization. Journal of Information Retrieval, 1 :67–88, 1999. [134] Yiming Yang and Christopher G. Chute. An example-based mapping method for text categorization and retrieval. ACM Trans. Inf. Syst., 12(3) :252–277, 1994. [135] Yiming Yang and Xin Liu. A re-examination of text categorization methods. In SIGIR ’99 : Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval, pages 42–49, New York, NY, USA, 1999. ACM. [136] Yiming Yang and Jan O. Pedersen. A comparative study on feature selection in text categorization. In ICML ’97 : Proceedings of the Fourteenth International Conference on Machine Learning, pages 412–420, San Francisco, CA, USA, 1997. Morgan Kaufmann Publishers Inc. [137] James Tin yau Kwok. Automated text categorization using support vector machine. In Proceedings of the International Conference on Neural Information Processing (ICONIP), pages 347–351, 1999. [138] X. Yin, K. Lakkaraju, Y. Li, , and W. Yurcik. Selecting log data sources to correlate attack traces for computer network security : Preliminary results. In the 11th Intl. Conf. on Telecommunication Systems, Modeling and Analysis (ITCSM 11), Oct. 2003. [139] William Yurcik, James Barlow, Yuanyuan Zhou, Hrishikesh Raje, Yifan Li, Xiaoxin Yin, Mike Haberman, Dora Cai, , and Duane Searsmith. Scalable data management alternatives to support data mining heterogeneous logs for computer network security. In SIAM Workshop on Data Mining for Counter Terrorism and Security, 2003. [140] George K. Zipf. Human Behavior and the Principle of Least Effort. Addison-Wesley (Reading MA), 1949. Liste de publications B.2.4 A paraître dans les journaux [1] Fatiha Benali, Stéphane Ubéda and Véronique Legrand. Security Messages Preparation for the Automatic Classification. The Mediterranean Journal of Artificial Intelligence (soumis mai 2008.) [2] Fatiha Benali, Stéphane Ubéda and Véronique Legrand. Collaborative Approach to Automatic Classification of Heterogeneous Information Security. International Journal on Advances in Security. ( invitation de soumission au journal après que le papier a été élu comme best paper.) B.2.5 Brevet [3] Véronique LEGRAND, David MACIEJAK, Jacques SARAYDARYAN, Laurent PAUTET, Christophe BRIGUET, Fatiha BENALI. Procédé de surveillance d’un message associé à une action produite par un élément ou utilisateur d’un SI, produit programme d’ordinateur, moyen de stockage et dispositif correspondants. Brevet déposé par l’entreprise Exaprotect, numéro : 07/55958 - la date de remise des pièces : 22 juin 2007. B.2.6 Conférences & Workshops Internationaux [4] Fatiha Benali, Stéphane Ubéda and Véronique Legrand. Collaborative Approach to Automatic Classification of Heterogeneous Information Security. The Second International Conference on Emerging Security Information, Systems and Technologies SECURWARE 2008, August 25-31, 2008 - Cap Esterel, France. Best Paper Award. [5] Fatiha Benali, Stéphane Ubéda and Véronique Legrand. Automatic Classification of Security Messages Based on Text Categorization. 8ème Conférence Internationale sur les NOuvelles TEchnologies de la REpartition (NOTERE), 23-27 Juin, Lyon, FRANCE -2008. [6] Fatiha Benali, Stéphane Ubéda and Véronique Legrand. Préparation des messages de sécurité pour la classification automatique de messages. Ecol’IA 2008 : Apprentissage et fouille de données : de la théorie à la pratique, best paper award. 20 - 22 mars Hammamet, Tunisie 2008. Best Paper Award. 185 186 BIBLIOGRAPHIE [7] Fatiha Benali, Véronique Legrand, and Stéphane Ubéda. An Ontology for the Management of Heteregenous Alerts of Information System. In The 2007 International Conference on Security and Management (SAM’07), Las Vegas, USA, June 2007. B.2.7 Workshop National [8] Jacques Saraydaryan, Fatiha Benali, Gauthier Jombart, Véronique Legrand and Stéphane Ubéda. L’Apport d’une Ontologie pour la Sécurité des Systèmes d’Information. 2èmes Journées Francophones sur les Ontologies. 1 3 Décembre, Lyon, France, 2008.