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.