robustesse et identification des applications communicantes
TRANSCRIPT
HAL Id: tel-01748663https://tel.archives-ouvertes.fr/tel-01748663v3
Submitted on 5 Jan 2012
HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.
Lâarchive ouverte pluridisciplinaire HAL, estdestinĂ©e au dĂ©pĂŽt et Ă la diffusion de documentsscientifiques de niveau recherche, publiĂ©s ou non,Ă©manant des Ă©tablissements dâenseignement et derecherche français ou Ă©trangers, des laboratoirespublics ou privĂ©s.
Robustesse et Identification des ApplicationsCommunicantes
JérÎme François
To cite this version:JérÎme François. Robustesse et Identification des Applications Communicantes. Réseaux et télécom-munications [cs.NI]. Université Henri Poincaré - Nancy 1, 2009. Français. tel-01748663v3
Departement de formation doctorale en informatique Ecole doctorale IAEM Lorraine
UFR STMIA
Robustesse et Identification des
Applications Communicantes
THESE
presentee et soutenue publiquement le 7 decembre 2009
pour lâobtention du
Doctorat de lâuniversite Henri Poincare â Nancy 1
(specialite informatique)
par
Jerome Francois
Composition du jury
Rapporteurs : Herve Debar Professeur, Telecom & Management SudParis, EvryPhilippe Owezarski Charge de Recherche, CNRS, Toulouse
Examinateurs : Olivier Festor Directeur de Recherche, INRIA, NancyDominique Mery Professeur, Universite Henri Poincare, Nancy
Cristina Nita-Rotaru Professeur Associe, Purdue University, Etats-UnisRadu State Chercheur, Universite du Luxembourg, Luxembourg
Laboratoire Lorrain de Recherche en Informatique et ses Applications â UMR 7503
Remerciements
Je tiens tout dâabord Ă remercier les rapporteurs et les examinateurs de cette thĂšse pour lâintĂ©rĂȘt quâilsportent Ă mes travaux de recherche et pour avoir acceptĂ© de faire partie de mon jury de thĂšse.
Je remercie trĂšs sincĂšrement Olivier Festor, mon directeurde thĂšse, pour mâavoir accueilli au sein delâĂ©quipe MADYNES et accompagnĂ© tout au long de ces trois annĂ©es au cours desquelles jâai apprĂ©ciĂ© sonsoutien et ses nombreux conseils. Le suivi quâil a effectuĂ© ainsi que ses capacitĂ©s dâĂ©coute et dâĂ©changemâont aidĂ© Ă rĂ©aliser efficacement cette thĂšse.
Je souhaite Ă©galement remercier Radu State, mon co-encadrant de thĂšse, qui, malgrĂ© sa mutation pro-fessionnelle, nâa jamais cessĂ© de dialoguer avec moi. Ses nombreux conseils ainsi que sa disponibilitĂ©furent des Ă©lĂ©ments clĂ©s au bon dĂ©roulement de cette thĂšse.
Mes remerciements sâadressent Ă©galement Ă lâensemble de lâĂ©quipe MADYNES au sein de laquellelâambiance de travail est propice Ă lâĂ©change entre tous aussi bien sur le plan personnel que professionnel.Sur ce dernier plan, je tiens spĂ©cialement Ă remercier Humberto Abdelnur avec lequel jâai plus partic-uliĂšrement travaillĂ© et dont la collaboration fut agrĂ©ableet efficace.
Je remercie aussi lâensemble des personnes que jâai pu cĂŽtoyer au LORIA et dont les discussions var-iĂ©es mâont permis dâapprofondir mes connaissances professionelles ou non dans de nombreux domaines.Plus prĂ©cisĂ©ment, mes remerciements sâadresse Ă Yann Guermeur, chargĂ© de recherche du CNRS, pourla patience quâil mâa accordĂ© et son aide dans le domaine de laclassification.
Plus personnellement, je tiens Ă remercier ma famille et en tout premier lieu mes parents qui mâontaccompagnĂ© tout au long de mes Ă©tudes. Je nâoublie pas mon Ă©pouse, StĂ©phanie, pour lâaide et la patiencequâelle mâa accordĂ©e.
A toutes et Ă tous, merci.
i
Table des matiĂšres
Introduction générale 13
1 Contexte et problématiques . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 13
2 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 15
3 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Partie I Ătat de lâart 19
Chapitre 1 Malwares et botnets 21
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 21
1.2 Théorie de la virologie informatique . . . . . . . . . . . . . . . .. . . . . . . . . 22
1.2.1 Machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
1.2.2 Formalisme de Fred Cohen . . . . . . . . . . . . . . . . . . . . . . . . .. 23
1.2.3 Formalisme de Leonard Adleman . . . . . . . . . . . . . . . . . . . .. . . 24
1.3 Taxonomie des malwares . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 25
1.3.1 Bombe logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.2 Cheval de Troie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.3 Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3.4 Vers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4 Botnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
1.4.1 Architecture générale . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 28
1.4.2 Menaces et impacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
1.4.3 Botnets IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1
Table des matiĂšres
1.4.4 Vers de nouveaux botnets . . . . . . . . . . . . . . . . . . . . . . . . .. . 32
1.5 DĂ©tection et mesure des botnets . . . . . . . . . . . . . . . . . . . . .. . . . . . . 33
1.5.1 Observer le botnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 34
1.5.2 DĂ©tection et mesures passives . . . . . . . . . . . . . . . . . . . .. . . . . 35
1.5.3 DĂ©tection et mesures actives . . . . . . . . . . . . . . . . . . . . .. . . . . 37
1.6 ModĂšles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.6.1 Propagation dâun vers ou dâun botnet . . . . . . . . . . . . . . .. . . . . . 38
1.6.2 Structure dâun botnet . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 40
1.7 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Chapitre 2 Rétro-ingénierie de protocoles 43
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 43
2.2 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 44
2.2.1 Les protocoles réseaux . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 44
2.2.2 DĂ©finition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
2.3 DĂ©couverte des messages : types et syntaxe . . . . . . . . . . . .. . . . . . . . . . 50
2.3.1 à partir de traces réseaux . . . . . . . . . . . . . . . . . . . . . . . .. . . 50
2.3.2 En observant la machine hĂŽte . . . . . . . . . . . . . . . . . . . . . .. . . 52
2.4 Apprentissage de la machine Ă Ă©tats . . . . . . . . . . . . . . . . . .. . . . . . . . 55
2.5 Le rejeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
2.5.1 Cas de figure simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
2.5.2 ProblĂšme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.5.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.5.4 Autres applications . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 59
2.5.5 DĂ©finition formelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 59
2.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Chapitre 3 Fingerprinting 63
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 63
3.2 MĂ©thodes de fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 64
3.2.1 Fingerprinting passif . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 64
3.2.2 Fingerprinting actif . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 65
3.2.3 Fingerprinting semi-passif . . . . . . . . . . . . . . . . . . . . .. . . . . . 66
3.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 66
3.3.1 SystĂšmes dâexploitation . . . . . . . . . . . . . . . . . . . . . . . .. . . . 67
3.3.2 Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2
3.3.3 Ăquipement, pile protocolaire . . . . . . . . . . . . . . . . . . .. . . . . . 75
3.3.4 Comptage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.4 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Partie II Contribution 81
Chapitre 4 Modélisation des botnets 83
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 83
4.2 Cas dâĂ©tude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 84
4.2.1 Supervision des réseaux et services . . . . . . . . . . . . . . .. . . . . . . 84
4.2.2 Supervision dâun pot de miel distribuĂ© . . . . . . . . . . . . .. . . . . . . 85
4.2.3 Techniques existantes . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 86
4.3 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 86
4.3.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.2 MĂ©triques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.4 ModĂšles Internet Relay Chat . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 88
4.4.1 Topologie Internet Relay Chat . . . . . . . . . . . . . . . . . . . .. . . . . 88
4.4.2 Premier modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.3 Second modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.4 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5 ModĂšles P2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
4.5.1 Totalement maillé, Slapper . . . . . . . . . . . . . . . . . . . . . .. . . . 97
4.5.2 Table de hachage distribuée, Chord . . . . . . . . . . . . . . . .. . . . . . 99
4.5.3 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Chapitre 5 Nouvelles représentations et méthodes pour la rétro-ingénierie 107
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 107
5.2 Mini protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 109
5.3 Distances entre deux messages . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 110
5.3.1 Longueur dâun message . . . . . . . . . . . . . . . . . . . . . . . . . . .. 110
5.3.2 Distribution des caractĂšres . . . . . . . . . . . . . . . . . . . . .. . . . . . 111
3
Table des matiĂšres
5.3.3 Positions des caractĂšres . . . . . . . . . . . . . . . . . . . . . . . .. . . . 113
5.3.4 Positions pondérées des caractÚres . . . . . . . . . . . . . . .. . . . . . . 114
5.3.5 Distribution ordonnée des caractÚres . . . . . . . . . . . . .. . . . . . . . 115
5.3.6 Alignement de séquences . . . . . . . . . . . . . . . . . . . . . . . . .. . 117
5.4 Partitionnement des données . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 118
5.4.1 DĂ©finition du problĂšme . . . . . . . . . . . . . . . . . . . . . . . . . . .. 118
5.4.2 Méthodes utilisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 119
5.4.3 MĂ©thode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
5.5 Architecture générale . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 120
5.5.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
5.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Chapitre 6 Nouvelles techniques de fingerprinting 125
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 125
6.2 DĂ©finitions des problĂšmes . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 126
6.2.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
6.2.2 Fingerprinting supervisé . . . . . . . . . . . . . . . . . . . . . . .. . . . . 126
6.2.3 Fingerprinting non supervisé . . . . . . . . . . . . . . . . . . . .. . . . . 127
6.3 Machines Ă vecteur de support multi-classes . . . . . . . . . .. . . . . . . . . . . 127
6.4 Fingerprinting comportemental et temporel . . . . . . . . . .. . . . . . . . . . . . 128
6.4.1 Modélisation formelle . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 129
6.4.2 Générations des signatures . . . . . . . . . . . . . . . . . . . . . .. . . . 130
6.4.3 Mise en Ćuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.5 Fingerprinting syntaxique . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 134
6.5.1 Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 134
6.5.2 Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5.3 Technique supervisée . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 140
6.5.4 Technique non supervisée . . . . . . . . . . . . . . . . . . . . . . . .. . . 141
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 146
Partie III Evaluation 147
4
Chapitre 7 Performances des botnets 149
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 149
7.2 RĂ©seaux IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
7.2.1 Premier modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.2.2 ParamĂštres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.2.3 Atteignabilité moyenne . . . . . . . . . . . . . . . . . . . . . . . . .. . . 152
7.2.4 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
7.2.5 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.3 ParamĂštres des modĂšles pair-Ă -pair . . . . . . . . . . . . . . . . .. . . . . . . . . 156
7.4 Slapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
7.4.1 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.4.2 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.5 Chord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
7.5.1 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.5.2 Distance entre deux identifiantsd . . . . . . . . . . . . . . . . . . . . . . . 160
7.5.3 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.5.4 Atteignabilité moyenne . . . . . . . . . . . . . . . . . . . . . . . . .. . . 161
7.6 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 162
7.6.1 Facteur de branchement . . . . . . . . . . . . . . . . . . . . . . . . . .. . 162
7.6.2 Impact des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 162
7.6.3 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 164
Chapitre 8 DĂ©couverte automatique des types de messages 167
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 167
8.2 Protocoles testés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 168
8.2.1 SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
8.2.2 Courriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
8.3 Ăvaluation de la classification . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 171
8.3.1 Précision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.3.2 Nombre de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.3.3 Sensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
8.4 Expérimentations sur SIP . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 172
8.4.1 Partitionnement hiérarchique . . . . . . . . . . . . . . . . . . .. . . . . . 172
8.4.2 Support Vector Clustering . . . . . . . . . . . . . . . . . . . . . . .. . . . 174
8.4.3 MĂ©thode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
8.5 Autres protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 176
5
Table des matiĂšres
8.5.1 Partitionnement hiérarchique . . . . . . . . . . . . . . . . . . .. . . . . . 176
8.5.2 Support Vector Clustering . . . . . . . . . . . . . . . . . . . . . . .. . . . 177
8.6 Paramétrage automatique de SVC . . . . . . . . . . . . . . . . . . . . .. . . . . . 177
8.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 179
Chapitre 9 Identification des Ă©quipements 181
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 181
9.2 MĂ©triques dâĂ©valuation . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 182
9.3 Fingerprinting comportemental . . . . . . . . . . . . . . . . . . . .. . . . . . . . 183
9.3.1 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.3.2 Paramétrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.3.3 Réseau opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 188
9.4 Fingerprinting syntaxique . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 188
9.4.1 Jeux de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.4.2 Fingerprinting supervisé . . . . . . . . . . . . . . . . . . . . . . .. . . . . 191
9.4.3 Fingerprinting non supervisé . . . . . . . . . . . . . . . . . . . .. . . . . 192
9.4.4 Opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 195
Conclusion générale 197
1 Résumé des contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 197
2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
Glossaire 203
Publications relatives 205
Bibliographie 207
1 Malwares, attaques, défenses . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 207
2 Modélisation des botnets . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 212
3 Rétro-ingénierie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 213
4 Fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 215
5 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 217
6 Supervision des réseaux et services . . . . . . . . . . . . . . . . . . .. . . . . . . 219
7 RFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
8 Divers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
6
Annexe A Partitionnement non supervisé de données 223
A.1 Rappel des notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 223
A.2 Clustering hiérarchique ascendant . . . . . . . . . . . . . . . . .. . . . . . . . . . 223
A.3 Support vector Clustering . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 225
A.3.1 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
A.3.2 DĂ©couverte des clusters . . . . . . . . . . . . . . . . . . . . . . . . .. . . 228
Annexe B Machines Ă vecteurs de support multi-classes 229
B.1 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 229
B.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 231
7
Table des figures
1.1 Machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 231.2 Taxonomie générale des malwares, les vers et virus contiennent en général un programme
annexe (payload) qui est lui aussi un malware . . . . . . . . . . . . .. . . . . . . . . . 261.3 Nombre de machines infectĂ©es par CodeRed le 19/07/2001 .. . . . . . . . . . . . . . . 271.4 Architecture gĂ©nĂ©rale dâun botnet . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 291.5 Les deux principaux types dâarchitecture des botnets . .. . . . . . . . . . . . . . . . . 321.6 Nombres de machines infectĂ©es par Storm dĂ©couvertes selon la mĂ©thode classique de
crawling ou PPM [15] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 381.7 ModĂšle infectieux dâun vers . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 391.8 Comparaison entre le modĂšle de [73] et le nombre rĂ©el de machines infectĂ©es par CodeRed 391.9 Effet des dĂ©fenses (alĂ©atoire ou ciblĂ©e) dans un rĂ©seau P2P non structurĂ© . . . . . . . . . 411.10 Distribution des bots du vers Nugache selon leur degrĂ© de connectivitĂ© . . . . . . . . . . 411.11 Effets similaires des dĂ©fenses (alĂ©atoires ou ciblĂ©es) dans Overnet . . . . . . . . . . . . 42
2.1 Les diffĂ©rents modĂšles en couches . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 452.2 Un exemple de session du protocole SIP . . . . . . . . . . . . . . . .. . . . . . . . . . 452.3 Une sous-partie de la machine Ă Ă©tat de SIP . . . . . . . . . . . . .. . . . . . . . . . . 452.4 Extrait de la syntaxe de SIP . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 462.5 Classification des diffĂ©rents types de champs dâun message . . . . . . . . . . . . . . . . 472.6 La rĂ©tro-ingĂ©nierie de protocoles illustrĂ©e par un exemple sur unping ICMP [12] . . . . 482.7 Analyse par tainting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 522.8 DĂ©duction du format gĂ©nĂ©ral dâun message . . . . . . . . . . . . .. . . . . . . . . . . 542.9 Construction de lâarbre APTA . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 562.10 Attaque par rejeu simple . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 572.11 Protection de lâattaque par rejeu par lâutilisation dâun cookie . . . . . . . . . . . . . . . 58
3.1 Les deux approches traditionelles de fingerprinting . . .. . . . . . . . . . . . . . . . . 653.2 Différents types de fingerprinting à différents niveauxde la pile TCP/IP (Beaucoup de
méthodes se basent également sur les délais entre les messages qui dépendent en partiede la coucheAccÚs Réseau) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.3 FenĂȘtres TCP de lâĂ©metteur . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 683.4 Exemples de caractĂ©ristiques utilisĂ©es dans BLINC . . . .. . . . . . . . . . . . . . . . 723.5 Graphe de sous-chaĂźnes possibles pour le protocole SSH .. . . . . . . . . . . . . . . . 743.6 DiffĂ©rence dâordonnancement des champsDateet Serverdans les entĂȘtes HTTP . . . . . 753.7 Tests des piles protocolaires sans fil 802.11 grĂące aux bits de contrĂŽle . . . . . . . . . . 76
9
Table des figures
4.1 Supervision des rĂ©seaux Ă large Ă©chelle . . . . . . . . . . . . . .. . . . . . . . . . . . . 854.2 Cas de figure du honeypot distribuĂ© . . . . . . . . . . . . . . . . . . .. . . . . . . . . 854.3 Notations gĂ©nĂ©rales utilisĂ©es pour la modĂ©lisation desbotnets . . . . . . . . . . . . . . . 874.4 Contraintes sur les nĆuds du rĂ©seau . . . . . . . . . . . . . . . . . .. . . . . . . . . . 884.5 Calcul des probabilitĂ©s de distance exacte dans un arbrealĂ©atoire rĂ©cursif . . . . . . . . 894.6 Calcul des probabilitĂ©s de distances minimales dans un arbre alĂ©atoire . . . . . . . . . . 914.7 Second modĂšle pour les botnets IRC avec des nĆuds non numĂ©rotĂ©s, propagation dâune
requĂȘte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .934.8 Calcul du nombre de voisins au second saut pour le second modĂšle de botnets IRC . . . 944.9 Limitation du nombre maximal de serveurs atteignables .. . . . . . . . . . . . . . . . . 964.10 MĂ©canisme de broadcast dans les rĂ©seaux P2P Ă partir du nĆud 0 . . . . . . . . . . . . . 1004.11 Fonctionnement gĂ©nĂ©ral de Chord . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1014.12 DĂ©lai de diffusion dâune requĂȘte broadcast dans les rĂ©seaux P2P (m= 3) . . . . . . . . . 104
5.1 Attaque ciblĂ©es Ă diffĂ©rents moments de la communication . . . . . . . . . . . . . . . . 1085.2 Illustration du mini protocole utilisĂ© . . . . . . . . . . . . . .. . . . . . . . . . . . . . 1095.3 Distribution des caractĂšres entre tous les messages â SPest le caractĂšre dâespacement . 1115.4 Comparaison des distributions des caractĂšres de deux messages particuliers â SP est le
caractĂšre dâespacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 1125.5 Distribution des caractĂšres entre les messages chiffrĂ©s m0â
âČaâČ et m1ââČ f âČ â la valeur
hexadĂ©cimale des caractĂšres est utilisĂ©e . . . . . . . . . . . . . . .. . . . . . . . . . . 1165.6 Distribution ordonnĂ©e des caractĂšres entre les messages chiffrĂ©sm0â
âČaâČ, m1ââČ f âČ etm4â
âČkâČ1175.7 Les Ă©tapes de SVC (Les Ă©toiles symbolisent les vecteurs supports) . . . . . . . . . . . . 1195.8 MĂ©thode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 1205.9 Architecture gĂ©nĂ©rale . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 121
6.1 Classification multi-classes avec les SVM . . . . . . . . . . . .. . . . . . . . . . . . . 1286.2 Illustration dâun arbre TR-FSM . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1296.3 Exemple de gĂ©nĂ©ration dâune signature pour un Ă©quipement de type Asterisk (SIP) . . . 1326.4 Signature de deux Ă©quipements diffĂ©rents. Les attributs des arcs sont les dĂ©lais moyens.
Les chemins partagĂ©s sont colorĂ©s . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 1336.5 Fingerprinting comportemental supervisĂ© . . . . . . . . . . .. . . . . . . . . . . . . . 1346.6 Ălement de dĂ©finition dâune grammaire . . . . . . . . . . . . . . . .. . . . . . . . . . 1356.7 Construction des arbres syntaxiques Ă partir dâune grammaire . . . . . . . . . . . . . . . 1366.8 Bijections de sous-arbres syntaxiques . . . . . . . . . . . . . .. . . . . . . . . . . . . 1386.9 Biais introduit par les structures trop imposantes . . . .. . . . . . . . . . . . . . . . . . 1396.10 Calcul de la similaritĂ© en dĂ©terminant lâintersectiondes chemins des diffĂ©rents arbres . . 1406.11 Fingerprinting syntaxique supervisĂ© . . . . . . . . . . . . . .. . . . . . . . . . . . . . 1426.12 Classification avec ROCK . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 1436.13 Graphe des points partageant des voisins avec ROCK . . . .. . . . . . . . . . . . . . . 1436.14 Fingerprinting syntaxique non supervisĂ© . . . . . . . . . . .. . . . . . . . . . . . . . . 146
7.1 Premier modĂšle IRC â AtteignabilitĂ© selon diffĂ©rentes distances et 10 serveurs dans lerĂ©seau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
7.2 ModĂšle IRC â AtteignabilitĂ© selon diffĂ©rents facteurs de branchement . . . . . . . . . . 1537.3 ModĂšle IRC â NĆuds atteints avecα(m) = α2(m) . . . . . . . . . . . . . . . . . . . . 1547.4 ModĂšle IRC â DĂ©pendance entre atteignabilitĂ© et facteurde branchement . . . . . . . . 1557.5 ModĂšle IRC â AtteignabilitĂ© selonN et le nombre de sautsj . . . . . . . . . . . . . . 156
10
7.6 Slapper â AtteignabilitĂ© . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 1577.7 Slapper â Influence du nombre de sautsk sur lâatteignabilitĂ© . . . . . . . . . . . . . . . 1587.8 Slapper â Influence du nombre de sautsi sur lâatteignabilitĂ© absolue . . . . . . . . . . . 1587.9 Chord â AtteignabilitĂ© selon le nombre total de nĆuds (S =Slapper) . . . . . . . . . . 1597.10 Chord â AtteignabilitĂ© (S = Slapper) . . . . . . . . . . . . . . . .. . . . . . . . . . . 1607.11 Chord â AtteignabilitĂ© moyenne . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 1617.12 Effet des attaques -r(n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637.13 Comparaison des modĂšles avecN = 5000 . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.1 GĂ©nĂ©ralitĂ©s sur SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . 1698.2 Distribution empirique des message SIP (le prĂ©fixe 0 indique une requĂȘte tandis que 1
prĂ©fixe les rĂ©ponses) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 1708.3 Distributions empiriques des autres protocoles . . . . . .. . . . . . . . . . . . . . . . . 1708.4 Clustering hiĂ©rarchique â Distribution ordonnĂ©e des caractĂšres . . . . . . . . . . . . . . 1728.5 Clustering hiĂ©rarchique â Distribution des caractĂšres. . . . . . . . . . . . . . . . . . . 1738.6 Clustering hiĂ©rarchique â Distribution des positions pondĂ©rĂ©es des caractĂšres . . . . . . 1748.7 SVC â Distribution ordonnĂ©e des caractĂšres . . . . . . . . . . .. . . . . . . . . . . . . 1758.8 SVC â Distribution des positions pondĂ©rĂ©es des caractĂšres . . . . . . . . . . . . . . . . 1768.9 Partitionnement hiĂ©rarchique â autres protocoles (Ï en abscisse) . . . . . . . . . . . . . 1778.10 SVC - SMTP dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 1788.11 SVC â ParamĂ©trage automatique deq . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798.12 tuningSIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 179
9.1 Fingerprinting comportemental â CaractĂ©ristiques desjeux de donnĂ©es (Ă©chelle logarith-mique, un point par type, valeur mĂ©diane reprĂ©sentĂ©e par unebarre horizontale) . . . . . 185
9.2 ParamĂ©trage du fingerprinting comportemental (taille de test = 10, taille dâapprentissage= 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
9.3 Fingerprinting syntaxique supervisé, distanced1 . . . . . . . . . . . . . . . . . . . . . . 1909.4 Fingerprinting syntaxique supervisé, distanced3 . . . . . . . . . . . . . . . . . . . . . . 1919.5 Fingerprinting syntaxique non supervisé amélioré . . . .. . . . . . . . . . . . . . . . . 194
A.1 Partitionnement hiĂ©rarchique â les clusters en rouge sont les clusters finaux si une dis-tance maximal reprĂ©sentĂ©e par la ligne rouge est spĂ©cifiĂ©e. .. . . . . . . . . . . . . . . 224
A.2 Clustering hiĂ©rarchique selon deux types de distances inter-clusters . . . . . . . . . . . . 226A.3 Les Ă©tapes de SVC (Les Ă©toiles symbolisent les vecteurs supports) . . . . . . . . . . . . 226A.4 Forme alĂ©atoire dâun cluster, les lignes en pointillĂ©s montrent que pour tout point du
cluster, il existe un segment linéaire le reliant à un autre sans sortir de la forme du cluster 228
11
Introduction générale
1 Contexte et problématiques
Essor des applications communicantes
Lâessor dâInternet se traduit par lâaugmentation dâĂ©quipements connectĂ©s aussi bien dans les en-treprises que chez les particuliers, tous Ă la recherche dâune connexion quasi permanente (Ă©quipementsmobiles) et dâune connexion toujours plus performante, en termes de bande passante et de dĂ©lais, obligeantles fournisseurs dâaccĂšs Ă sâorienter vers la mise en place de rĂ©seaux hauts voire trĂšs hauts dĂ©bits (ADSL,FTTH...). Alors quâauparavant, Internet se limitait dans la majoritĂ© des cas Ă la consultation dâunepage Web ou Ă lâenvoi de courriel, de nombreuses autres applications sont apparues depuis telles queles diffĂ©rentes messageries instantanĂ©es, le partage et ladiffusion de fichiers en pair-Ă -pair ou via desserveurs centraux, les jeux en ligne, lâĂ©coute ou le visionnage en direct de fichiers multimĂ©dias, la tĂ©lĂ©-phonie, la vidĂ©o-confĂ©rence, des protocoles tels que RTMP (protocole mis en Ćuvre dans les applicationsFlash[11]) permettant de dĂ©velopper des sites Webs plus interactifs et plus riches... En outre, il existe uncertain nombre dâapplications plutĂŽt destinĂ©es aux entreprises et dont le nombre nâa cessĂ© dâaugmenter Ă lâinstar des imprimantes en rĂ©seaux, des serveurs dâannuaire, des protocoles dâaccĂšs distants tels que SSH(Secure Shell), des serveurs de travail collaboratif ou de bases de donnĂ©es... Ă cela se rajoutent encoretous les protocoles de plus bas niveaux qui encapsulent ces protocoles car ces derniers sont uniquementde haut niveau (couche application). Certains dâentre eux sont inĂ©vitables pour vĂ©hiculer les informationsdâune machine Ă une autre grĂące aux protocoles de routage couplĂ©s avec des serveurs de noms (DNS)pour localiser les machines.
Il est clair que dresser une liste exhaustive des protocolesrĂ©seaux est impossible car chacun peutconcevoir son propre protocole. Ainsi, les flux rĂ©seaux circulant sur Internet ou les rĂ©seaux locaux sontvariĂ©s de la mĂȘme maniĂšre que les applications communicantes associĂ©es. Rapidement, les administra-teurs furent confrontĂ©s Ă cette diversitĂ© nĂ©cessitant des solutions de supervision adaptĂ©es pour dĂ©terminerrapidement lâĂ©tat dâun service ou du rĂ©seau en un point afin dâen modifier la configuration si nĂ©cessaire.Par consĂ©quent, la conception dâautres protocoles spĂ©cifiques Ă ces tĂąches a Ă©tĂ© nĂ©cessaire.
Par ailleurs, pour un protocole donnĂ©, il peut exister un grand nombre dâapplications comme, parexemple, les serveurs ou clients Webs ou de courriels. CettediversitĂ© sâest accentuĂ©e ces derniĂšres annĂ©espar les efforts des entreprises rendant la spĂ©cification de leurs protocoles partiellement ou entiĂšrementpubliques ou en fournissant des interfaces de programmation pour les utiliser.
BriĂšvement, la multiplicitĂ© des protocoles et des applications associĂ©es nâest plus Ă dĂ©montrer au-jourdâhui.
13
Introduction générale
DĂ©fis majeurs
Conception efficace dâune application communicante
Face Ă la multitude des protocoles existants, deux solutions sont envisageables lors de la rĂ©alisationdâun nouveau logiciel :
â la sĂ©lection dâun protocole existant ;â la conception dâun protocole dĂ©diĂ©.
La seconde approche a lâavantage de crĂ©er un protocole sur mesure Ă une application donnĂ©e et de leprotĂ©ger de la copie Ă©vitant ainsi lâapparition dâapplications clones concurrentes. Toutefois, elle engendredes coĂ»ts de conception Ă©levĂ©s (Ă©tude, dĂ©veloppement, tests...).
Cependant, quelque soit le choix effectuĂ©, une question subsiste dans tous les cas et concerne larobustesse de lâapplication communicante. GĂ©nĂ©ralement,les utilisateurs souhaitent une applicationdisponible et rapide malgrĂ© la prĂ©sence dâun grand nombre dâutilisateurs en parallĂšle. Ainsi, la robustessese dĂ©finit dans cette thĂšse comme la capacitĂ© pour une application communicante Ă passer Ă lâĂ©chelle,câest-Ă -dire de gĂ©rer un grand nombre dâutilisateurs Ă la fois tout en Ă©tant confrontĂ©e Ă diffĂ©rents prob-lĂšmes comme les pannes rĂ©seaux et les attaques informatiques.
Enfin, il arrive parfois que lâadoption dâun protocole soit imposĂ©e, notamment dans le cadre de laconception de logiciels interopĂ©rables. Toutefois, les spĂ©cifications ne sont pas toujours disponibles ouque partiellement. Dans un premier temps, le fonctionnement du protocole doit ĂȘtre Ă©tudiĂ© en observantles messages Ă©changĂ©s et/ou la maniĂšre dont se comporte lâapplication.
Sécurité
En parallĂšle Ă lâessor dâInternet, le nombre dâattaques nâacessĂ© dâaugmenter et les actions malveil-lantes qui, Ă lâorigine, Ă©taient plutĂŽt des dĂ©monstrationsdâinformaticiens en quĂȘte de reconnaissance,sont passĂ©es aujourdâhui Ă un stade beaucoup moins «attrayant». En effet, beaucoup dâentre elles visentdirectement Ă engendrer des revenus financiers (spam, attaque dâune entreprise concurrente, fraude Ă la carte bancaire...) voire Ă influer sur des thĂšmes politiques (propagande, censure, espionnage...). BienĂ©videmment, la sĂ©curitĂ© nâa donc cessĂ© dâĂȘtre un problĂšme prĂ©occupant pour les particuliers mais encoreplus fortement pour les entreprises. Ainsi, la mise en placede pare-feux ou de systĂšmes de dĂ©tectiondâintrusion est obligatoire pour repĂ©rer et stopper toute action malveillante le plus rapidement possible.
Ăconomie
Alors quâaujourdâhui lâaccĂšs Ă Internet devient de plus en plus aisĂ© et moins coĂ»teux aussi bienen terme dâabonnement que dâĂ©quipement comme le montre lâapparition des ordinateurs Ă bas prix,les entreprises doivent sâefforcer de fournir des applications toujours plus innovatrices. NĂ©anmoins, ledĂ©veloppement rapide dâapplications concurrentes ou de logiciels libres exerce une pression accrue surcette activitĂ©. Aujourdâhui, un produit innovant est un produit qui sâadaptera au mieux au client. Ainsi, ilest nĂ©cessaire de fournir des services personnalisĂ©s pour sĂ©duire les clients.
Supervision
Comme mentionnĂ© prĂ©cĂ©demment, la supervision des rĂ©seaux et des services fut logiquement en-gendrĂ©e par leur croissance. Cependant, celle-ci est aujourdâhui confrontĂ©e Ă plusieurs problĂšmes. Toutdâabord, le nombre dâĂ©quipements Ă superviser ne cesse de croĂźtre : Ă©quipements rĂ©seaux, serveurs, imp-rimantes, ordinateurs (fixes ou portables), tĂ©lĂ©phones mobiles... DeuxiĂšmement, le nombre dâapplications
14
2. Contributions
utilisĂ©es est de plus en plus important. En clair, un challenge majeur est de gĂ©rer un grand nombre deservices variĂ©s sur toujours plus dâĂ©quipements de diffĂ©rentes natures.
Problématiques
De nos jours, la robustesse dâune application communicanteest souvent Ă©tudiĂ©e empiriquement.Ainsi, le passage Ă lâĂ©chelle ou non est gĂ©nĂ©ralement observĂ© lors de lâutilisation du logiciel. Une avancĂ©eserait dont de pouvoir prĂ©dire les performances atteignables Ă lâavance. Il deviendrait alors possible dechoisir la meilleure solution technique Ă un problĂšme posĂ© selon les besoins (nombre dâutilisateurs) etles coĂ»ts (architecture Ă utiliser, dĂ©veloppement, maintenance...).
La comprĂ©hension dâun protocole inconnu, câest-Ă -dire dont les spĂ©cifications ne sont pas disponibles,sâapparente Ă la rĂ©tro-ingĂ©nierie des protocoles dont la difficultĂ© et la complexitĂ© demeurent aujourdâhuiun problĂšme important. En effet, beaucoup des mĂ©thodes existantes reposent sur des techniques assezcomplexes nĂ©cessitant parfois lâinstrumentation dâune machine exĂ©cutant une application utilisant leprotocole, ce qui nâest pas toujours possible (risque de sĂ©curitĂ©, coĂ»ts...). Ainsi, retrouver automatique-ment le fonctionnement dâun protocole Ă partir des traces rĂ©seaux reste un challenge Ă lâheure actuelle.De plus, la comprĂ©hension dâun protocole sâavĂšre essentielle dans le domaine de la sĂ©curitĂ© car uneintrusion ou une attaque ne prendra pas la mĂȘme forme selon leprotocole sur lequel elle se base.
Les problĂšmes de sĂ©curitĂ© sont associĂ©s Ă des failles de sĂ©curitĂ© qui ne sont pas les mĂȘmes selon leprotocole et lâapplication employĂ©s. Ainsi, lors de la dĂ©couverte dâune faille, identifier le plus rapidementpossible les machines concernĂ©es est un atout essentiel pour rĂ©duire lâimpact des attaques envisageables.Cependant, maintenir un inventaire de tous les Ă©quipementset logiciels installĂ©s reste difficile du faitde leur variĂ©tĂ© et de leur dynamique (installation, dĂ©sinstallation) dâoĂč lâintĂ©rĂȘt des techniques de fin-gerprinting. Face Ă la variĂ©tĂ© des applications, un problĂšme majeur actuel est dâavoir un systĂšme defingerprinting rapide et gĂ©nĂ©rique, câest-Ă -dire pouvant ĂȘtre rapidement utilisĂ© sur nâimporte quel proto-cole avec une intervention humaine trĂšs limitĂ©e.
Par ailleurs, le fingerprinting peut aider Ă identifier des applications ou des Ă©quipements dont laprĂ©sence nâest pas normale et pouvant alors ĂȘtre synonyme dâintrusion.
De plus, le fingerprinting est un support essentiel Ă la ventede services personnalisĂ©s aux utilisateursdans le sens oĂč il aide Ă identifier quels sont les logiciels oules Ă©quipements employĂ©s par un utilisateurfacilitant ainsi le ciblage des offres qui peuvent lui ĂȘtre faites.
Enfin, dans le domaine de la supervision, le passage Ă lâĂ©chelle demeure problĂ©matique bien que neconstituant pas le point essentiel de cette thĂšse.
2 Contributions
Cette thĂšse sâarticule autour de trois contributions principales dans deux thĂšmes diffĂ©rents. Toutdâabord, lâĂ©tude de la robustesse des applications communicantes est illustrĂ©e par lâanalyse des logicielsde type botnet. DiffĂ©rents modĂšles mathĂ©matiques ou algorithmiques sont proposĂ©s pour Ă©tudier lesperformances correspondantes. Ils tiennent compte Ă©galement des risques de dĂ©connexion ou dâattaquesqui peuvent surgir. MalgrĂ© le rĂŽle incontestĂ© de ce type de rĂ©seau dans des actions malveillantes, cettethĂšse montrera que de tels rĂ©seaux peuvent Ă©galement servirĂ Ă©lucider le problĂšme du passage Ă lâĂ©chellepour la supervision. Par ailleurs, lâĂ©laboration des modĂšles dans diffĂ©rents cas (pseudo-centralisĂ© ou P2P)souligne plusieurs mĂ©thodes de modĂ©lisation possibles adaptables Ă dâautre cas. Enfin, cette Ă©tude aideaussi Ă mieux comprendre les botnets et donc Ă mieux sâen prĂ©munir.
15
Introduction générale
Le deuxiĂšme thĂšme de cette thĂšse est lâidentification des applications. Ce terme relĂšve en premierlieu de la rĂ©tro-ingĂ©nierie du protocole utilisĂ© par cette derniĂšre. Une nouvelle mĂ©thode se basant unique-ment sur les traces rĂ©seaux et avec une complexitĂ© trĂšs rĂ©duite est introduite afin de dĂ©couvrir le typegĂ©nĂ©ral de chaque message. Alors quâun tel objectif peut paraĂźtre trĂšs limitĂ©, le type des messages estla brique de base essentielle Ă la reconstruction de la machine Ă Ă©tats du protocole permettant sa bonnecomprĂ©hension gĂ©nĂ©rale. De plus, elle est directement utilisable avec la derniĂšre contribution de cettethĂšse visant Ă identifier les Ă©quipements ou les applications utilisĂ©es. En effet, la premiĂšre mĂ©thode re-pose uniquement sur les types de messages Ă©changĂ©s entre plusieurs entitĂ©s pour les identifier. Ce typede fingerprinting sera qualifiĂ© de comportemental par la suite. Pour ce faire, une nouvelle reprĂ©senta-tion formelle des Ă©quipements ou des applications est proposĂ©e ainsi quâune fonction noyau associĂ©eutilisable avec les techniques rĂ©centes de classification que sont les machines Ă vecteurs supports. SavaliditĂ© est Ă©galement formellement prouvĂ©e. Une autre technique complĂ©mentaire sâappuie quant Ă ellesur la reconstruction des arbres syntaxiques de chaque message et nĂ©cessite donc la connaissance de lagrammaire du protocole. La nouveautĂ© de cette approche rĂ©side principalement dans la prise en comptede la structure mĂȘme dâun message et plus seulement son contenu. Lâidentification des applications seraillustrĂ©e via plusieurs protocoles : SIP [6], IMAP, [4] et SMTP [1].
3 Organisation
Lâorganisation gĂ©nĂ©rale de la thĂšse repose sur trois grandes parties. La premiĂšre dresse un bilan desrecherches actuelles dans le cadre des problĂ©matiques associĂ©es Ă la thĂšse. La seconde se focalise sur ladescription des nouvelles mĂ©thodes proposĂ©es alors que la derniĂšre est une Ă©valuation de ces derniĂšres.Ces trois grandes parties se retrouvent dans le tableau suivant et chacun dâelle est dĂ©rivĂ©e pour chacundes thĂšmes abordĂ©s prĂ©cĂ©demment.
Partie Robustesse des botnets RĂ©tro-ingĂ©nierie FingerprintingdâĂ©quipement
Ătat de lâart â Par-tie I
Chapitre 1 Chapitre 2 Chapitre 3
Contribution â Par-tie II
Chapitre 4 Chapitre 5 Chapitre 6
Ăvaluation â PartieIII
Chapitre 7 Chapitre 8 Chapitre 9
Robustesse des botnets
Le chapitre 1 rĂ©pertorie les diffĂ©rents travaux dâanalyse des botnets. Cependant, un botnet Ă©tant unecatĂ©gorie de malware, cela impose dâen dresser un aperçu Ă©galement. Il termine par les diffĂ©rentes ap-proches de modĂ©lisation de botnets existantes en soulignant leurs limites contournĂ©es par les modĂšlesproposĂ©s dans le chapitre 4. Ce chapitre introduit Ă©galement lâapplication de ce type dâarchitecture Ă lasupervision des rĂ©seaux et des services. Ainsi, lâobjectifdu chapitre 7 est de montrer Ă la fois les perfor-mances des diffĂ©rentes architectures de botnets sous diffĂ©rentes conditions tout en justifiant la mise enĆuvre de celles-ci dans le cadre de la supervision.
16
3. Organisation
Rétro-ingénierie
La rĂ©tro-ingĂ©nierie de protocoles est un domaine dans lequel de nombreuses mĂ©thodes existent etque le chapitre 2 sâefforce de dĂ©crire. Chaque mĂ©thode se diffĂ©rencie dâune autre selon les hypothĂšsessous-jacentes, les donnĂ©es analysĂ©es ou les mĂ©thodes dâanalyse employĂ©es. Ainsi, un bilan est donnĂ© ensoulignant les avantages et les contraintes de chacune dâentre elles. Le chapitre 5 dĂ©crit une nouvellemĂ©thode de rĂ©tro-ingĂ©nierie reposant sur une technique relativement rĂ©cente, les machines Ă vecteurssupports, peu employĂ©es dans ce domaine. De plus, de nouvelles reprĂ©sentations des messages sont pro-posĂ©es dont les avantages sont exposĂ©s ainsi que la maniĂšre de sâen servir. Enfin, le chapitre 8 reprĂ©sentelâĂ©valuation de cette nouvelle technique.
Fingerprinting dâĂ©quipement
Le fingerprinting est une discipline non restreinte Ă lâidentification des Ă©quipements. Le chapitre 3dĂ©taille les diffĂ©rents cas de fingerprinting existant touten mettant en avant leur intĂ©rĂȘt. Il souligne no-tamment le peu de mĂ©thodes gĂ©nĂ©riques existant pour le fingerprinting dâĂ©quipement. Câest pour cetteraison que la chapitre 8 propose deux nouvelles mĂ©thodes applicables Ă tout protocole : une premiĂšrereposant sur les interactions entre les machines et une seconde Ă©tudiant la structure syntaxique des mes-sages. Une fois de plus, les machines Ă vecteurs supports seront mises en Ćuvre et complĂ©tĂ©es par unnouvel algorithme de classification. Ce dernier est dâailleurs applicable Ă nâimporte quel domaine et nâestpas spĂ©cifique du fingerprinting ou des rĂ©seaux. Enfin, le chapitre 9 met en exergue de trĂšs bons rĂ©sultatsjustifiant lâutilisation de ces nouvelles techniques.
Enfin, lâensemble des contributions de ces trois annĂ©es de recherche sont rĂ©capitulĂ©es dans la con-clusion et sont complĂ©tĂ©es par un descriptif des perspectives de recherche.
17
1
Malwares et botnets
Sommaire1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 211.2 Théorie de la virologie informatique . . . . . . . . . . . . . . . .. . . . . . . 22
1.2.1 Machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.2 Formalisme de Fred Cohen . . . . . . . . . . . . . . . . . . . . . . . . .231.2.3 Formalisme de Leonard Adleman . . . . . . . . . . . . . . . . . . . .. . 24
1.3 Taxonomie des malwares . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 251.3.1 Bombe logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.2 Cheval de Troie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.3 Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.3.4 Vers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.4 Botnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.4.1 Architecture générale . . . . . . . . . . . . . . . . . . . . . . . . . .. . 28
1.4.2 Menaces et impacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.4.3 Botnets IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.4 Vers de nouveaux botnets . . . . . . . . . . . . . . . . . . . . . . . . .. 32
1.5 DĂ©tection et mesure des botnets . . . . . . . . . . . . . . . . . . . . .. . . . . 331.5.1 Observer le botnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34
1.5.2 DĂ©tection et mesures passives . . . . . . . . . . . . . . . . . . . .. . . . 351.5.3 DĂ©tection et mesures actives . . . . . . . . . . . . . . . . . . . . .. . . 37
1.6 ModĂšles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381.6.1 Propagation dâun vers ou dâun botnet . . . . . . . . . . . . . . .. . . . . 38
1.6.2 Structure dâun botnet . . . . . . . . . . . . . . . . . . . . . . . . . . .. 40
1.7 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.1 Introduction
Au cours de son expansion, lâinformatique a rapidement montrĂ© ses faiblesses avec les premiĂšrespannes et bogues. Alors que ces problĂšmes furent dâabord dĂ»sĂ des erreurs de conception, des person-nes malintentionnĂ©es ont vite compris quâelles pouvaient les exploiter de maniĂšre volontaire. Ainsi, les
21
Chapitre 1. Malwares et botnets
problĂšmes de sĂ©curitĂ© informatique et les programmes malveillants ou malware sont rapidement arrivĂ©s.La dĂ©nomination malware regroupe lâensemble des logicielsayant des fins malveillantes. En quelquesmots, on peut dire quâun malware cherche Ă dĂ©tourner un ordinateur de son comportement normal. CettedĂ©finition est assez vague et va ĂȘtre affinĂ©e au cours de ce chapitre car, pour se dĂ©fendre efficacementcontre eux, les comprendre est obligatoire.
Les virus, malwares connus de tous, ont Ă©tĂ© Ă la base de ce dĂ©veloppement et ce chapitre commenceradonc par donner les fondements thĂ©oriques de la virologie informatique. Dans un deuxiĂšme temps, uneclassification des malwares sera proposĂ©e car la diversitĂ© de ces derniers est trĂšs grande. Plus particuliĂšre-ment, quelques dĂ©tails sur les vers informatiques seront exposĂ©s et montreront leurs Ă©normes capacitĂ©sinfectieuses, nĂ©cessaires au dĂ©ploiement dâun rĂ©seau de machines compromises contrĂŽlĂ©es par un pirate(attaquant). Ces rĂ©seaux, nommĂ©s botnets, seront approfondis dans ce chapitre. Ils reprĂ©sentent aujour-dâhui une des plus grandes menaces sur Internet grĂące aux attaques diverses et surtout coordonnĂ©es quâilspeuvent rĂ©aliser.
Une fois de plus, pour mieux sâen dĂ©fendre, il est nĂ©cessairede les Ă©tudier car il est lĂ©gitime de sedemander quel est exactement leur potentiel dâattaque, lesmotivations qui se cachent derriĂšre ou encoreleur rĂ©el dĂ©ploiement actuel et son Ă©volution dans le futur.Ce chapitre va donc mettre lâaccent sur lestechniques et les modĂšles qui permettent de mieux les apprĂ©hender.
1.2 Théorie de la virologie informatique
1.2.1 Machine de Turing
Cette partie présente une formalisation des virus informatiques. Le lecteur intéressé pourra consulter[61] pour de plus amples détails sur la théorie des virus ainsi que leurs aspects pratiques.
Un virus étant un programme informatique, la formalisationde ces derniers, proposée par Alan Tur-ing [16], est rapidement rappelée ici. Une machine de Turingest souvent illustrée comme sur la figure1.1 :
â un rubantapeinfini (ou bande) contenant des symboles, en lâoccurrence des 0 ou des 1 ;â une tĂȘte de lecture et Ă©criture pointant sur une cellule de ce ruban ;â une fonction de contrĂŽleF qui correspond Ă un automate et dont les actions possibles sont le
dĂ©placement de la tĂȘte de lecture (Ă gauche ou Ă droite) et lâĂ©criture sur la bande Ă lâendroit oĂč estpositionnĂ©e la tĂȘte dâĂ©criture.
Son fonctionnement est assez simple, la tĂȘte de lecture lit un caractĂšre sur le ruban qui sert dâentrĂ©e Ă la fonctionF. Lâautomate change alors dâĂ©tat selon cette valeur lue et lâĂ©tat actuel et peut exĂ©cuter uneopĂ©ration (dĂ©placement, Ă©criture).
Bien que cette description et le langage utilisé (1 ou 0) soient relativement simples, ils permettent demodéliser tout programme informatique. Sa définition plus formelle est la suivante :
Définition 1 :Une machine de Turing est une fonction M définie par :
M : 0,1, . . . ,nĂ0,1 â 0,1ĂD,GĂ0,1, . . . ,n
oĂč 0,1, . . . ,n sont les Ă©tats possibles de lâautomate (Ă©tat courant dans lapartie gauche, Ă©tat aprĂšstransition dans la partie droite),0,1 les symboles pouvant ĂȘtre dans les cellules de la bande (lecturedans la partie gauche, Ă©criture dans la partie droite) etD,G reprĂ©sente les dĂ©placements possibles dela tĂȘte (droite ou gauche).
22
1.2. Théorie de la virologie informatique
FIGURE 1.1 â Machine de Turing
Il est important de noter quâune machine de Turing correspond Ă un programme donnĂ© seulement.Pour palier cette limite, une machine de Turing universelleest capable de simuler le fonctionnement denâimporte quelle machine de Turing dont la description serait stockĂ©e sur le ruban. Ainsi, une machinede Turing universelle se comporte comme un ordinateur capable dâexĂ©cuter divers programmes.
1.2.2 Formalisme de Fred Cohen
Dans les annĂ©es 70, les premiers travaux sur la sĂ©curitĂ© informatique mettent en Ă©vidence lâapparitionde programmes malveillants [80]. Dans les annĂ©es 80, plusieurs virus font leur apparition commeElkCloner[7] Ă©crit par Rich Skrenta alors ĂągĂ© 15 ans. Ce virus infectait les machines Apple et la seule actionquâil faisait Ă©tait dâafficher un poĂšme aprĂšs 50 dĂ©marrages.Ce virus se transmettait via des disquettes surlesquelles il se clonait.
Câest Ă cette Ă©poque que Fred Cohen [79] proposa une dĂ©finitondâun virus :
DĂ©finition 2 :Un virus est dĂ©crit par une sĂ©rie de symboles qui, lorsquâilssont interprĂ©tĂ©s dans unenvironnement convenable, peuvent modifier dâautres symboles de cet environnement en crĂ©ant une copieexacte ou modifiĂ©e dâeux-mĂȘmes.
Cohen propose alors une dĂ©finition dâune machine de Turing Ă©quivalente Ă la prĂ©cĂ©dente :
DĂ©finition 3 :Une machine de Turing est dĂ©finie par :â un ensemble dâĂ©tats S= s0,s1, . . . ,snâ un ensemble de symboles I= i0, i1, . . . , imâ des dĂ©placements possibles d= +1,0,â1â une fonction de sortie qui peut gĂ©nĂ©rer un symbole selon celui lu et lâĂ©tat courant O: SĂ I â Iâ une fonction de transition qui, selon le symbole lu, changelâautomate dâĂ©tat N: SĂ I â Sâ une fonction de dĂ©placement qui dĂ©termine le dĂ©placement Ă faire selon lâĂ©tat courant et le symbole
lu : D : SĂ I â d
Cohen introduit une notion temporelle aux machines de Turing. Il considĂšre lâĂ©tat courantstatede lamachine et la positionposde la tĂȘte de lecture/Ă©criture sur le ruban. Au tempst, une machine de TuringM est donc caractĂ©risĂ©e par le tupleÎt =< statet , post , tapet >. tape[ j] dĂ©note le je symbole du rubantapeetwrite(t,s, p) reprĂ©sente le rubant oĂč le symbolesa Ă©tĂ© Ă©crit Ă la positionp. On peut alors dĂ©finirle rĂ©sultat de la machine de Turing Ă lâinstantt :
23
Chapitre 1. Malwares et botnets
DĂ©finition 4 : Ătant donnĂ©e la configurationÎt Ă lâinstant t tel queÎt =< statet , post , tapet >, laconfiguration Ă lâinstant t+1 est dĂ©finie par :
Ît+1 =< N(statet , tapet [post ]), post +D(statet , tapet [post ]),write(tapet ,O(statet , tapet [post ]), post >
De plus, lâĂ©tat initial est dĂ©fini parÎ0 =< s0,0, tape0 > oĂč tape0 reprĂ©sente le programme donnĂ© enentrĂ©e.
Ces prĂ©cisions permettent alors Ă Cohen de spĂ©cifier lâensemble des virus pour une machine deTuring M et les programmesV quâelle peut interprĂ©ter. Supposons que la tĂȘte de lecture pointe sur lacellule c Ă lâinstant t, que M soit dans son Ă©tat initial et que le texte dâun virusv â V commence Ă lacellule j alors il existe un virusvâČ âV Ă lâinstantt âČ et Ă la positioncâČ si et seulement si :
â le texte du virusvâČ commence Ă la cellulecâČ ;â câČ > c tel que les textes considĂ©rĂ©s ne se superposent pas ;â ât âČâČ tel quet < t âČâČ < t âČ et quâĂ lâinstantt âČâČ, vâČ est Ă©crit par M
Cette dĂ©finition formelle signifie donc que toute machine de Turing dans son Ă©tat initial et ayant le dĂ©butdâun virus sous sa tĂȘte de lecture entraĂźne la crĂ©ation dâun autre virus, soit une copie soit une formemodifiĂ©e.
1.2.3 Formalisme de Leonard Adleman
Il est important de remarquer que le formalisation de Cohen ne fait en aucun cas intervenir la notionde contenu et dâaction du virus. Ici, un virus nâest donc pas forcĂ©ment un programme nuisible mais seule-ment un programme auto-reproducteur. Ă lâinverse certainsmalwares ne sont pas auto-reproducteurs etne peuvent donc pas ĂȘtre dĂ©finis grĂące Ă cette formalisation.Câest pour cette raison quâAdleman [78] enproposa une autre qui spĂ©cifie trois types dâactions des malwares :
â infection : le malware est capable dâinfecter dâautres programmes ;â nuisance : tout programme infectĂ© rĂ©alise une autre tĂąche que celle normalement prĂ©vue ;â furtivitĂ© : le malware effectue la tĂąche normalement prĂ©vue.
La formalisation dâAdleman, prĂ©sentĂ©e dans cette section,repose sur les fonctions rĂ©cursives limitĂ©es auxentiers naturels qui sont Ă©quivalentes aux machines de Turing. Par ailleurs, un systĂšme informatique estmodĂ©lisĂ© par le couple(s, t) oĂč s=< s1,s2, . . . ,sp > est une sĂ©quence dâentiers naturels reprĂ©sentant lesprogrammes du systĂšme ett, une sĂ©quence du mĂȘme genre, reprĂ©sentant les donnĂ©es (paramĂštres). LâexĂ©-cution dâun programme correspond Ă une fonctionf (s, t) et plus particuliĂšrement Ă la fonction partiellecorrespondanteÏ f (s, t) (câest-Ă -dire en la limitant au domaine oĂč elle est calculable). La formalisationest rĂ©sumĂ©e ci-dessous par lâintermĂ©diaire de quatre dĂ©finitions majeures :
Définition 5 : Pour tout programme p, il existe une forme infectéeIv(p) par le malware v.
DĂ©finition 6 : Pour tout systĂšme(s, t), un malware v est nuisible si deux programmes infectĂ©s, a etb, par celui-ci exĂ©cutent une mĂȘme tĂąche identique indĂ©pendante de celle normalement prĂ©vue :
ÏIv(a)(s, t) = ÏIv(b)(s, t)
Définition 7 : Pour tout systÚme(s, t), un malware v est infectieux si pour un programme a, la tùcheréalisée par la forme infectée est identique à celle réalisée par la forme normale, tout en ayant modifiécertains programmes du systÚme :
24
1.3. Taxonomie des malwares
Classe PathogĂšne ContagieuxBĂ©nin
Epien (Simple) Ă
DissĂ©minateur Ă
Malveillants Ă Ă
TABLE 1.1 â Les diffĂ©rentes classes de malwares selon Adleman
â ÏIv(a)(s, t) = g(sâČ, t)â Ïa(s, t) = g(sâČ, t) oĂč :
â âi,sâČi 6= si .â âi,sâČi = si âšsâČi = Iv(sâČi)
Définition 8 : Pour tout systÚme(s, t), un malware v est furtif si pour un programme a, la tùcheréalisée par la forme infectée est identique à celle réalisée par la forme normale et si les programmesdu systÚme restent inchangés :
â ÏIv(a)(s, t) = a(s, t)
Adleman considĂšre alors quâun malware est contagieux sâil possĂšde des capacitĂ©s infectieuses et ilest pathogĂšne sâil est nuisible. Quatre classes de malwaressont alors identifiables et reprĂ©sentĂ©es dans letableau 1.1. Il est important de noter que les programmes auto-reproducteurs de Cohen sont Ă©quivalentsĂ la classe des malwares dissĂ©minateurs.
1.3 Taxonomie des malwares
Alors que la section prĂ©cĂ©dente donnait les bases thĂ©oriques de la virologie informatique, des dĂ©f-initions plus pratiques sont introduites ci-dessous. Il existe plusieurs critĂšres de classification possibledes malwares. Cependant, malgrĂ© un critĂšre prĂ©cis, un malware peut se retrouver dans plusieurs classesdistinctes du fait de la variĂ©tĂ© des actions quâil peut mener. Une taxonomie des programmes infectieux,dont est dĂ©rivĂ©e la figure 1.2, est proposĂ©e dans [61].
Deux types distincts sont considĂ©rĂ©s. Les malwares qui ont infectĂ© dâautres fichiers tels que prĂ©cĂ©dem-ment introduits :
â ceux, dits simples, qui ne se propagent pas (voir formalisme dâAdleman),â ceux auto-reproducteurs (voir formalisme de Cohen)
Ă lâinverse, il existe des malwares dits non infectieux qui sont en fait les programmes contenus dans lesprĂ©cĂ©dents (payload) et les deux ainsi associĂ©s forment alors un malware dangereux. Ce type de malwarecorrespond alors Ă la classemalveillantedâAdleman. Câest vĂ©ritablement le programme annexe qui ala charge de lâaction malveillante. Ă titre dâexemple, on peut citer des publiciels ou adwares (logicielsaffichant de la publicitĂ©), des logiciels espions (enregistreur de frappe, rĂ©cupĂ©ration des mots de passe),des rootkits permettant de dissimuler les autres malwares et actions malveillantes ou encore des portesdĂ©robĂ©es (backdoor en anglais)... Ce dernier type est aussitrĂšs dangereux car lâattaquant peut rĂ©aliser denombreuses actions malveillantes : rĂ©cupĂ©ration ou destruction de donnĂ©es de la victime, rĂ©cupĂ©rationdes mots de passe, attaques vers dâautres machines, passerelles pour anonymiser sa connexion... Lesprogrammes infectieux sont donc associĂ©s la plupart du temps Ă un autre programme de nature diversemais le but ici nâest pas de dĂ©tailler les diverses possibilitĂ©s. Câest pourquoi seuls les types infectieuxsont dĂ©taillĂ©s ci-aprĂšs.
25
Chapitre 1. Malwares et botnets
Programme infectieux Programme non infectieux
Malware
Simple Autoâreproducteur
Bombe logique Cheval de Troie Virus Vers
Contenu (payload)
FIGURE 1.2 â Taxonomie gĂ©nĂ©rale des malwares, les vers et virus contiennent en gĂ©nĂ©ral un programmeannexe (payload) qui est lui aussi un malware
1.3.1 Bombe logique
Une bombe logique est un malware dont lâaction malveillanteest conditionnĂ©e par la satisfactionde certaines conditions : date, actions de lâutilisateur dela machine... Lâexemple le plus connu dâun telmalware est le virusTchernobylou CIH. Celui-ci a sĂ©vi Ă la fin des annĂ©es 90 et au dĂ©but des annĂ©es2000 et Ă©tait trĂšs virulent. Il est considĂ©rĂ© comme une bombelogique car il sâactivait uniquement le jourde lâanniversaire de la catastrophe nuclĂ©aire deTchernobyl.
Une bombe logique ne se propage pas dâelle mĂȘme et est la plupart du temps associĂ©e Ă un vers ouun virus pour pouvoir se rĂ©pandre Ă grande Ă©chelle.
1.3.2 Cheval de Troie
Les chevaux de Troie sont des logiciels en apparence bĂ©nin mais dont certaines fonctionnalitĂ©s sontcachĂ©es Ă lâutilisateur. Ainsi, en installant un logiciel tout Ă fait banal, celui-ci va effectuer des actionsnon conformes Ă ses spĂ©cifications, comme par exemple supprimer des fichiers ou redĂ©marrer la machine.Les chevaux de Troie sont en gĂ©nĂ©ral associĂ©s Ă des portes dĂ©robĂ©es qui permettent Ă un attaquant depouvoir prendre le contrĂŽle de la machine Ă distance. La nature du logiciel peut ĂȘtre trĂšs diffĂ©rente et selimiter simplement Ă ne rien faire. Par exemple, un programme qui serait tĂ©lĂ©chargĂ© et installĂ© dâaprĂšs sadescription et qui ne ferait rien hormis des actions malveillantes serait aussi considĂ©rĂ© comme un chevalde Troie.
Ils ont Ă©tĂ© popularisĂ©s parBack Orifice[13] qui fut intĂ©grĂ© et cachĂ© dans de nombreux malwares etqui permet de contrĂŽler une machine Windows Ă distance. Ce programme nâest pas un malware lorsquâilest installĂ© lĂ©gitimement et les auteurs ont dĂ©fendu lâintĂ©rĂȘt lĂ©gal de ce programme notamment pour lesadministrateurs rĂ©seaux. Plus rĂ©cemment, Silentbanker [2] visait Ă faire de la fraude bancaire.
26
1.3. Taxonomie des malwares
FIGURE 1.3 â Nombre de machines infectĂ©es par CodeRed le 19/07/2001
1.3.3 Virus
Un virus est un programme auto-reproducteur qui cherche Ă secloner dans diffĂ©rents endroits dâunsystĂšme informatique (fichiers, mĂ©moire...) (voir section1.2). La mĂ©thode la plus simple consiste Ă Ă©craser un fichier en partie ou en entier. De ce fait, lâexĂ©cution mĂȘme du programme ne pourra pasfonctionner convenablement et le virus sera facilement repĂ©rĂ©. Dâautres mĂ©thodes consistent Ă insĂ©rer levirus dans le fichier sans en altĂ©rer son comportement. La taille de ce dernier se retrouve donc augmentĂ©emais son comportement reste normal aux yeux de lâutilisateur.
1.3.4 Vers
Un vers est un malware infectieux qui se transmet via les rĂ©seaux de communication. Aujourdâhui,nombreux sont les vers qui ne se limitent pas Ă ce moyen de propagation et qui en incluent dâautreshabituellement utilisĂ©s par les virus tel quâConficker [20]qui se transmet aussi via les supports USB.Un bref aperçu des vers est donnĂ© ici et illustrĂ© par quelquesexemples. Historiquement, le vers Morris(1989) du nom de son auteur est considĂ©rĂ© comme le premier [77].
Les vers se propagent gĂ©nĂ©ralement grĂące Ă des failles prĂ©sentes sur les systĂšmes informatiques Ă lâinstar de CodeRed [73]. Ce ver, apparu en 2001, exploite une faille du serveur Web IIS de Microsoft[10]. Les Ă©tudes rĂ©alisĂ©es dans [10] montrent son efficacitĂ©et surtout sa vĂ©locitĂ© dâinfection commeillustrĂ© sur la figure 1.3 oĂč en une journĂ©e, le ver a contaminĂ©350.000 machines soit le maximum ob-servable avec la mĂ©thode utilisĂ©e. Ce ver se propageait de maniĂšre alĂ©atoire car chaque instance balayait100 adresses IPs Ă la recherche dâun serveur IIS. La mĂȘme mĂ©thode fut appliquĂ©e par Slammer mais demaniĂšre encore plus impressionnante car 90% des machines vulnĂ©rables furent infectĂ©es en 10 minutes[70]. Les auteurs de [64, 74] proposent des modĂšles plus Ă©voluĂ©s en attribuant Ă chaque hĂŽte infectĂ© uneliste dâadresses Ă tester prĂ©cise et diffĂ©rente, au moins enpartie, de celle dâune autre machine infectĂ©e.
27
Chapitre 1. Malwares et botnets
Les adresses Ă balayer sont ainsi distribuĂ©es tout au long dela propagation du vers. En outre, certainsvers peuvent aussi Ă©tablir des listes selon ce quâils recherchent (serveurs de mail, Web...) [74].
Cependant la recherche exhaustive de machines Ă infecter nâest pas trĂšs discrĂšte et est donc facile-ment dĂ©tectable. De nouvelles techniques de propagation plus ciblĂ©es ont alors vu le jour. Par exemple,ILoveYou [75] se propageait en envoyant des courriels vers les adresses des carnets dâadresses des ma-chines infectĂ©es. Aujourdâhui, grĂące au nombre de messageries diffĂ©rentes qui existent, les virus peuventpasser ou collecter des informations via de nombreux rĂ©seaux [57] qui ont lâavantage de fournir une listede victimes potentielles et leurs Ă©tats (connectĂ©es ou non).
Bien quâici seuls les aspects de propagation soient traitĂ©s, les vers comme les virus sont gĂ©nĂ©ralementassociĂ©s Ă un autre programme ou module dont les actions possibles sont diverses. A titre dâexemple, lesordinateurs infectĂ©s par CodeRed lançaient des attaques dedĂ©ni de service [74]. De plus, un vers peutcombiner plusieurs moyens de propagation [74].
1.4 Botnets
Une fois quâune machine est infectĂ©e par un malware, il peut installer un programme âbotâ. Lâensem-ble des machines rĂ©alisant cette tĂąche se retrouvent alors regroupĂ©es dans un grand rĂ©seau : un botnet.De maniĂšre plus formelle, il est possible de dĂ©finir les notions suivantes :
DĂ©finition 9 : Un programme bot est un logiciel permettant dâaccĂ©der et de contrĂŽler Ă distance lamachine oĂč il est installĂ©. Une telle machine se nomme alors un bot ou un robot.
DĂ©finition 10 : Un botmaster ou contrĂŽleur est la personne qui contrĂŽle un bot.
DĂ©finition 11 : Un botnet est un rĂ©seau de bots contrĂŽlĂ©s par le mĂȘme botmaster.
Cette section vise Ă dĂ©tailler lâarchitecture gĂ©nĂ©rique dâun botnet, ses fonctionnalitĂ©s ainsi que lesimplĂ©mentations rĂ©elles.
1.4.1 Architecture générale
La figure 1.4 reprĂ©sente les acteurs et le fonctionnement dâun botnet. Lâattaquant, le contrĂŽleur oubotmaster, contrĂŽle un grand nombre de machines qui sont ainsi qualifiĂ©es de zombies ou robots (bot).Celles-ci peuvent ĂȘtre de diverses natures car tout Ă©quipement sur Internet capable de communiquer peutse retrouver compromis pour ĂȘtre transformĂ© en zombie : ordinateurs, tĂ©lĂ©phones, serveurs, routeurs,imprimantes, modems... Cependant, la plupart dâentre eux sont des ordinateurs basiques de particuliersqui sont utilisĂ©s car ils constituent un rĂ©servoir Ă©norme demachines peu ou faiblement dĂ©fendues com-parĂ©es aux Ă©quipements professionnels. NĂ©anmoins, les ordinateurs dâentreprise sont aussi affectĂ©s parle phĂ©nomĂšne notamment lors du dĂ©ploiement dâun vers comme Conficker [20] en 2008. Cependant, lesentreprises se doivent dâĂȘtre plus rĂ©actives en mettant rapidement en Ćuvre des moyens de protection etde dĂ©contamination. Le canal de communication utilisĂ© pourenvoyer les ordres aux bots se nomme lecanal de commande et contrĂŽle (C&C).
Souvent, le dĂ©ploiement du botnet est rĂ©alisĂ© via la propagation dâun vers. Par exemple, pour Storm[31], on parlera du vers ou du botnet Storm.
28
1.4. Botnets
FIGURE 1.4 â Architecture gĂ©nĂ©rale dâun botnet
1.4.2 Menaces et impacts
La figure 1.4 met en lumiĂšre quelques actions possibles du botmaster parmis un panel indĂ©nombrable.Historiquement, Eggdrop [8], le premier robot IRC que lâon peut considĂ©rer comme point de dĂ©part dudĂ©veloppement des botnets, ne fut pas crĂ©Ă© Ă des fins malveillantes mais pour aider Ă lâadministrationdes canaux IRC. Les premiers botmasters ayant des buts malveillants qui suivirent Ă©taient alors plutĂŽtmotivĂ©s par lâaspect dĂ©monstratif et la reconnaissance parles autres pirates [45]. Rapidement lâintĂ©rĂȘtĂ©conomique [46] a pris le dessus et il devient possible aujourdâhui de louer des botnets [3].
Un botmaster qui a lâemprise sur des machines zombies peut installer diffĂ©rents modules ou applica-tions. Les menaces des botnets sont donc diverses voire infinies. Les exemples les plus courants sont citĂ©sdans [62] et peuvent ĂȘtre divisĂ©s en deux catĂ©gories : les menaces internes ou celles envers les utilisateursinfectĂ©s par le bot et les menaces externes envers dâautres machines. De plus, un bref aperçu de lâimpactfinancier des botnets conclura cette partie.
Menaces internes
Majoritairement, les menaces internes consistent Ă voler des informations en masse aux utilisateurssoit directement en tĂ©lĂ©chargeant certains fichiers ou donnĂ©es soit en les espionnant avec des logicielsespions (spyware en anglais) qui permettent entre autres devoir ce que font les utilisateurs sur leursordinateurs, sur quels sites ils naviguent ou ce quâils frappent au clavier grĂące Ă un enregistreur de frappe(keylogger en anglais) [6]. GrĂące Ă ces mĂ©canismes, le vol massif de mots de passe ou de numĂ©ros decarte de crĂ©dit est une tĂąche aisĂ©e.
Un attaquant peut aussi profiter dâune machine zombie pour gĂ©nĂ©rer des revenus notamment eninstallant des publiciels (adware en anglais) [46] incitant lâutilisateur Ă cliquer sur certains liens ou di-rectement en tĂ©lĂ©chargeant des publicitĂ©s par exemple. MalgrĂ© une rĂ©munĂ©ration individuelle faible, lebotnet permet alors de multiplier celle-ci par le nombre de bots utilisĂ©s.
Enfin, une fois la machine compromise, elle devient totalement contrĂŽlable notamment pour sup-primer des donnĂ©es, formater des disques durs... Ce derniertype dâaction nâest pas discret et profiterarement au botmaster exceptĂ© dans le cas oĂč lâutilisateur adĂ©couvert le bot et essaye de lâutiliser pourtraquer le botnet. Ă lâinverse, de nombreux programmes botsessayent de se montrer le plus discret
29
Chapitre 1. Malwares et botnets
nombre de zombies pour chaque campagne de spam 10 000 - 200 000nombre moyen de messages envoyés par un botnet 160 millions en 2 heuresnombre moyen de messages que peuvent envoyer plusieursbotnets coordonnées
1 milliard en quelques heures
TABLE 1.2 â Les botnets et le spam
possibles en se âcachantâ de lâutilisateur, du systĂšme et des logiciels de protection [45].
Menaces externes
Les menaces externes regroupent les attaques vers dâautresmachines sur Internet et sont difficilementdĂ©tectables car lâattaque est distribuĂ©e. En premier lieu,les botnets permettent de rĂ©aliser des attaquesde dĂ©ni de service distribuĂ©es (DDoS). Ce genre dâattaque fait partie des plus rĂ©pandues et est aussi levecteur de nombreuses autres attaques malgrĂ© leur lĂ©ger dĂ©clin [33]. Plus prĂ©cisĂ©ment, une attaque dedĂ©ni de service contre une machine est une action qui lui empĂȘche de rĂ©pondre normalement Ă celles quiessaieraient en vain de sây connecter. Cette dĂ©finition gĂ©nĂ©rale regroupe beaucoup dâattaques et dĂ©con-necter physiquement une machine du rĂ©seau en fait partie. Cependant, on sâaccorde gĂ©nĂ©ralement Ă selimiter aux attaque de dĂ©ni de service par saturation câest-Ă -dire celles qui envoient beaucoup de requĂȘtesĂ un serveur pour augmenter sa charge et ainsi le rendre inutilisable. LâintĂ©rĂȘt dâavoir un botnet est doncde pouvoir envoyer massivement ces requĂȘtes de diffĂ©rents endroits ce qui rend le filtrage beaucoup plusdifficile. Cette application est reprĂ©sentĂ©e dans la partiedroite de la figure 1.4. Avec cette mĂ©thode, desattaques gĂ©nĂ©rant plus de 40 GigaOctets de trafic ont Ă©tĂ© aperçues [33]. De plus amples dĂ©tails sur lesdiffĂ©rents types de DDoS ainsi que les mĂ©canismes de protection correspondants peuvent ĂȘtre consultĂ©sdans [66]. On a vu prĂ©cĂ©demment quâun vers peut aussi ĂȘtre capable de faire de telles attaques mais ladiffĂ©rence ici est que lâordre est donnĂ© par un contrĂŽleur (botmaster) alors pour les vers purs, personnene contrĂŽle le processus une fois dĂ©marrĂ©.
La deuxiĂšme attaque gĂ©nĂ©ralement rĂ©alisĂ©e par les botnets est lâenvoi massif de courriels indĂ©sirablesou spam dont lâintĂ©rĂȘt Ă©conomique sera dĂ©montrĂ© en 1.4.2. LâĂ©tude [1] constate que 85% du spam Ă©taitdĂ» aux botnets en 2006 tout en mettant en Ă©vidence les capacitĂ©s extraordinaires de tels rĂ©seaux. Celles-ci sont rĂ©sumĂ©es dans le tableau 1.2 dont les chiffres parlent dâeux-mĂȘmes. Par consĂ©quent, de plus enplus dâĂ©tudes sur les campagnes de spam via les botnets ont Ă©tĂ© faites [32, 21] dans lâobjectif de mieuxcomprendre les botnets en soi mais aussi de mieux combattre le spam. Par exemple, Xieet al. [32] pro-posentAutoRE, un systĂšme gĂ©nĂ©rant des signatures de spam Ă partir des nomsde domaines inclus dansles adresses transmises via les spams. Lâenvoi de courriersindĂ©sirables se faisant de maniĂšre distribuĂ©eĂ large Ă©chelle, il est difficile de les bloquer grĂące aux techniques classiques comme lâutilisation dâuneliste noire. Les travaux dans [21] montrent par exemple que les campagnes de spam durent classiquementplusieurs jours voire plusieurs mois. Toutefois, pour Ă©viter quâune adresse IP soit identifiĂ©e comme unbot et quâelle ne soit rajoutĂ©e dans une liste noire, chaque bot nâest impliquĂ© que quelques heures seule-ment. La charge dâemail Ă envoyer par chacun dâeux est elle aussi bien distribuĂ©e selon leurs capacitĂ©s.Ces observations montrent clairement la dangerositĂ© des botnets dans le cadre de lâenvoi de courrielsindĂ©sirables.
Enfin, un botnet est aussi une base solide pour chercher des vulnĂ©rabilitĂ©s sur dâautres machines (bal-ayage ou scanning) [62] ou lancer un nouveau malware, tel quâun vers, car un botnet permet dâinfecterrapidement de nombreuses machines en mĂȘme temps. De plus, ilpeut chercher lui mĂȘme Ă se âpropagerâ,câest-Ă -dire trouver de nouvelles machines Ă infester, pour agrandir la population du botnet. Dans [53],les auteurs observent deux types principaux de propagationde botnets :
â ceux qui cherchent automatiquement Ă trouver de nouvellesmachines ;
30
1.4. Botnets
â ceux dont le dĂ©clenchement de la propagation est dĂ©pendantdâun ordre du botmaster.
IntĂ©rĂȘts financiers
LâĂ©tude menĂ©e dans [46] met en lumiĂšre les intĂ©rĂȘts financiers que lâon peut tirer dâun botnet et plusparticuliĂšrement via la diffusion de publicitĂ©s : paiementpar affichage, par clic ou par vente. ConsidĂ©ronsle premier cas avecIr affichages rĂ©alisĂ©s sur la machine dâun utilisateur rĂ©el,I f ceux sur des machinescompromises (bots),Rc la probabilitĂ© de conclure une vente suite Ă un affichage dansle cas dâun util-isateur rĂ©el etP le gain que rapporte une vente. Du point de vue de lâacheteur,le prix Ci dâun affichage(dâoĂč est dĂ©rivĂ© le revenu du botmaster) doit alors ĂȘtre au plus Ă©gal Ă :
Ci =RcĂPĂ Ir
Ir + I f
Ainsi, quand le nombre dâaffichages non rĂ©elsI f augmente, ce prix a tendance Ă diminuer et oblige de cefait les annonceurs Ă rĂ©duire leur coĂ»ts.
Cependant, quand le botnet occupe une part trop importante des affichages, cet Ă©quilibre nâest pasrespectĂ©, ce qui oblige le client payant la publicitĂ© Ă renĂ©gocier son contrat avec lâannonceur. CetterenĂ©gociation peut avoir lieu plusieurs fois de suite et dĂ©boucher sur la rĂ©siliation du contrat qui nâestbĂ©nĂ©fique pour personne car plus aucun revenu nâest dĂ©gagĂ©. Il y a donc un certain Ă©quilibre Ă respecteret câest en jouant sur cet Ă©quilibre grĂące Ă un rĂ©seau de machines virtuelles que les auteurs proposent dedĂ©stabiliser le botnet.
Un modĂšle Ă©conomique plus Ă©voluĂ© est exposĂ© dans [28]. Sans rentrer dans les dĂ©tails, il inclut laparticipation de pots de miel au botnet ce qui rĂ©duit son efficacitĂ© lors dâune attaque et donc son attrait.Ainsi, un attaquant Ă la recherche de la location dâun botnetne paiera pas aussi cher si celui-ci contientdes pots de miel.
Alors que les Ă©tudes prĂ©cĂ©dentes avaient pour but dâĂ©tablirun modĂšle Ă©conomique, [29] Ă©value lâim-pact financier dâun botnet de maniĂšre pratique. En effet, Kanich et al. dĂ©tournent le contrĂŽle de Storm[31] pour lancer une campagne de spam proposant des produitspharmaceutiques. Les destinataires descourriels sont redirigĂ©s vers un site spĂ©cifique qui permet de comptabiliser rĂ©ellement le nombre dâutil-isateurs prĂȘts Ă payer. Sur 350 millions de spams envoyĂ©s en 26 jours, seulement 28 ventes auraient puaboutir, soit environ 2700 dollars. Cependant, seulement une partie du rĂ©seau de Storm a Ă©tĂ© dĂ©tournĂ©eet en extrapolant le rĂ©sultat prĂ©cĂ©dent, il semble que la campagne de spam aurait pu dĂ©gager entre 7000et 9500 dollars de bĂ©nĂ©fice. De plus, en corrĂ©lant ces rĂ©sultats avec lâĂ©volution du nombre de machinesinfectĂ©es, Storm aurait permis de gĂ©nĂ©rer 3,5 millions de dollars par an. Enfin, compte tenu des prix dumarchĂ© de la âlocationâ (80 dollars pour envoyer 1 million dâemails [11]), les auteurs concluent que seulsles opĂ©rateurs de Storm eux-mĂȘmes sont capables dâen tirer profit.
1.4.3 Botnets IRC
Historiquement, la renommĂ©e des botnets sâest faite grĂące aux rĂ©seaux IRC (Internet Relay Chat)[8]. Ce protocole, bien que lĂ©gĂšrement tombĂ© en dĂ©suĂ©tude, est une messagerie instantanĂ©e. Chaquepersonne connectĂ©e Ă un serveur peut alors joindre certainscanaux (channels en anglais) ou parler enprivĂ© avec une personne spĂ©cifique. Bien que ce systĂšme repose sur des serveurs, son fonctionnementassez simple permet facilement de dĂ©ployer une architecture robuste composĂ©e de multiples serveurs.Ainsi, on peut considĂ©rer que les rĂ©seaux IRC sont pseudo centralisĂ©s tel que le montre la figure 1.5(a) oĂčles serveurs forment un arbre de diffusion sur lesquels les clients, en lâoccurrence des machines zombies,
31
Chapitre 1. Malwares et botnets
(a) Architecture IRC (lâordre du botmatser est re-layĂ© par les serveurs qui se chargent de les dĂ©livreraux machines zombies)
(b) Architecture P2P (lâordre du botmatser est re-layĂ© de machine zombie en machine zombie
FIGURE 1.5 â Les deux principaux types dâarchitecture des botnets
sont connectĂ©s. Lorsque lâattaquant envoie un ordre, celui-ci est relayĂ© via les diffĂ©rents serveurs qui letransmettent Ă©galement Ă leurs clients.
[59] donne un historique de tels botnets. Le vers PrettPark [4] (1999) semble ĂȘtre le premier Ă avoir in-stallĂ© un client IRC sur une machine infectĂ©e pour rĂ©ceptionner des commandes. Ses actions se limitaientprincipalement Ă rĂ©cupĂ©rer des donnĂ©es de lâutilisateur. De nombreux botnets plus Ă©voluĂ©s, notammentgrĂące Ă la capacitĂ© de pouvoir lancer diverses attaques, sont apparus au dĂ©but des annĂ©es 2000 [14, 65].Câest Ă cette Ă©poque que les botnets se sont rĂ©vĂ©lĂ©s dangereux. Dâailleurs, la dĂ©tection et lâexclusion demachines zombies connectĂ©es sur des serveurs normaux a alors commencĂ©. Ainsi, les attaquants se sonttournĂ©s vers la crĂ©ation de rĂ©seaux IRC dĂ©diĂ©s.
[45] Ă©tudie en dĂ©tails diffĂ©rents botnets IRC Ă©voluĂ©s dont les caractĂ©ristiques communes sont :â leur modularitĂ© : il est facile pour un attaquant de coder unnouveau module pour un botnet ;â leur capacitĂ© Ă rĂ©cupĂ©rer des donnĂ©es sensibles : mots de passe, numĂ©ro de cartes de crĂ©dit, emails ;â leur capacitĂ© Ă mener des attaques de dĂ©ni de service (fonctionnalitĂ© âde baseâ) ;â la possibilitĂ© de trouver de nouveaux ordinateurs Ă infecter pour agrandir le botnet ;â leurs mĂ©thodes pour Ă©viter leur dĂ©tection.La modularitĂ© permet de crĂ©er rapidement de nouvelles variantes dâun bot [58]. Ainsi on estime Ă
plus de 4000 les variantes de SDBot.
1.4.4 Vers de nouveaux botnets
Quelques temps aprĂšs les botnets IRCs, les botnets HTTP apparurent Ă lâinstar de BlackEnergy [12,41]. Les commandes sont gĂ©nĂ©ralement postĂ©es Ă une adresse Web que le bot tĂ©lĂ©charge et celui-ciretourne des informations en se connectant Ă une certaine adresse Ă©galement. Certains botnets construitssur la base de messageries instantanĂ©es, autre que IRC, auraient vu le jour [41]. Cependant, ils restentanecdotiques parce quâils Ă©taient beaucoup moins souples et nâapportaient rien de plus par rapport auxbotnets IRC. Le vĂ©ritable changement intervient avec les botnets pair-Ă -pair (peer-to-peer ou P2P).
Contrairement Ă IRC, une architecture P2P se passe de lâutilisation de serveurs car les diffĂ©rents botssont directement interconnectĂ©s entre eux. Cependant, ce nouveau type dâarchitecture est plus compliquĂ©car ajouter ou enlever un bot du rĂ©seau, tout en prĂ©servant son efficacitĂ©, est plus difficile. Les ordres sontalors routĂ©s dans le rĂ©seau par les machines elles-mĂȘmes comme illustrĂ© sur la figure 1.5(b). En rĂ©alitĂ©,chaque machine est associĂ©e Ă un identifiant unique sur lequel se base lâalgorithme de routage. De lamĂȘme maniĂšre que pour les rĂ©seaux IRC, un botnet peut sâappuyer sur un rĂ©seau P2P prĂ©existant avec
32
1.5. DĂ©tection et mesure des botnets
des utilisateurs normaux ou alors créer son propre réseau.Slapper [67], considéré comme le premier vers et botnet de cetype, est apparu en 2003. Le réseau
P2P quâil constituait Ă©tait de type totalement maillĂ© signifiant quâun bot Ă©tait connu par tous les autres,ce qui rĂ©duit son passage Ă lâĂ©chelle et limite sa protectioncar, en prenant le contrĂŽle dâun seul nĆud,il est possible de dĂ©couvrir tout le rĂ©seau. Cependant, son routage alĂ©atoire dans le rĂ©seau via plusieursbots permet au contrĂŽleur dâĂȘtre indĂ©tectable.
Pour améliorer cela, le plus simple fut donc de se baser sur des protocoles P2P éprouvés commeStorm/Peacomm [43, 31] basé sur le protocole Kademlia [15].Ce type de réseau P2P est en fait basé surune table de hachage distribuée1. De plus, ces nouveaux botnets incluent des procédures de chiffrementpour se protéger.
Une approche hybride est proposĂ©e dans [42] oĂč un certain nombre de pairs du rĂ©seau sont considĂ©rĂ©scomme sĂ»rs, câest-Ă -dire possĂ©dant une adresse IP statiqueet joignable (sans pare-feu). Ces premiĂšresmachines forment alors une base solide sur laquelle peuventse greffer les autres bots plus volatiles. Dansle mĂȘme esprit Vogtet al. [36] proposent les super-botnets. Ils constatent que le point faible des botnetsdemeure le canal C&C dont la fragilitĂ© est accrue pour les trĂšs grands botnets trop visibles et dĂ©tectables.De plus, les botnets de petite taille sont plus intĂ©ressant Ă©conomiquement car plus facile Ă louer. Vogtetal. suggĂšrent ainsi de crĂ©er de multiples botnets indĂ©pendantset prouvent leur faisabilitĂ© en proposant unalgorithme de routage des messages Ă travers celui-ci. Cet algorithme est basĂ© sur de lâĂ©change partieldâinformation de routage entre botnets.
La force des rĂ©seaux P2P rĂ©side dans le fait que chaque bot ne connaĂźt quâune sous-partie du rĂ©seau(une liste de pairs), ce qui Ă©vite dâavoir un point critique dans le rĂ©seau (un serveur). De cette maniĂšre,tout le monde a le rĂŽle de serveur et il est possible de rendre inutilisable le botnet en sâinsĂ©rant puis enayant un comportement anormal : non routage des messages et surtout pollution des autres nĆuds pourles forcer Ă remplir leurs listes de pairs avec des faux bots (voir 1.5 pour plus de dĂ©tails). Ainsi un modĂšlede conception avancĂ© est Ă©voquĂ© dans [23] incluant les points suivants :
â une architecture P2P basĂ©e sur un nouveau rĂ©seau incluant le principe dâune relation de confianceentre 2 bots pour palier au problĂšme prĂ©cĂ©dent. Ainsi un bot se connecte prioritairement Ă dâautresqui ont gagnĂ© des points en ayant activement participĂ© au routage de requĂȘtes rĂ©elles de lâattaquant ;
â un chiffrement asymĂ©trique permettant dâauthentifier lesrequĂȘtes de lâattaquant ;â un masquage du trafic en lâencapsulant dans des protocoles standards (HTTP [7], FTP [11]...).Enfin, [17] combine les diffĂ©rentes innovations des travauxprĂ©cĂ©dents pour Ă©laborerlcbot basĂ© sur
une structuration de bots en groupes et un routage aléatoire.
1.5 DĂ©tection et mesure des botnets
Le phĂ©nomĂšne des botnets est devenu de plus en plus importantet mĂ©diatique de telle sorte que ledanger des botnets est directement corrĂ©lĂ© Ă leur taille impressionnante. En y regardant de plus prĂšs, il estdĂ©licat dâestimer cette taille. Le tableau 1.3 reprend notamment quelques chiffres que lâon peut trouver.La colonneAnnĂ©ereprĂ©sente la date de publication du papier et donc pas forcĂ©ment celle de lâĂ©tude (quinâest pas toujours renseignĂ©e). On distingue le nombre de bots actifs Ă un moment donnĂ© du nombre totalde bots diffĂ©rents durant lâensemble de la pĂ©riode dâobservation. Du fait que les botnets observĂ©s et lesmĂ©thodes utilisĂ©es soient diffĂ©rentes, les chiffres ne sont pas les mĂȘmes. En consĂ©quence, pour mieuxapprĂ©cier ceux-ci, la suite de cette section dĂ©crit les diffĂ©rentes mĂ©thodes possibles. Les rĂ©fĂ©rences pourlesquelles aucun descriptif dĂ©taillĂ© nâest exposĂ© sont en gĂ©nĂ©ral des rapports, ou des articles courts, plus
1. Chaque nĆud du rĂ©seau indexe une partie des informations contenues dans ce rĂ©seau
33
Chapitre 1. Malwares et botnets
Année Référence #botnets #bots actif #bots total2004 [65] 100 2000-10000 (400 000) 800 000 - 900 0002005 [62] 100 100 - 50 000 226 5852006 [1] 200 000 6 -8 millions2006 [53] 3 30002008 [31] 2 5 000 - 40 0002008 [9] 1 500 0002008 [32] 340 0002009 [16] 1 16 500 - 23 000 400 0002009 [21] 543 828
TABLE 1.3 â Taille des botnets
que des papiers de recherche et qui ne dĂ©crivent pas en dĂ©tailla mĂ©thode utilisĂ©e. Les auteurs de [44]Ă©voquent les difficultĂ©s pour mesurer la taille dâun botnet et particuliĂšrement pour la dĂ©finir.
Dans cette section, les diffĂ©rentes mĂ©thodes permettant dâĂ©valuer la taille des botnets mais aussi desurveiller leurs activitĂ©s seront Ă©voquĂ©es. Cette tĂąche est fortement corrĂ©lĂ©e Ă la dĂ©tection mĂȘme du botnetet câest pour cette raison que ces deux activitĂ©s sont traitĂ©es ici. Cependant, les mĂ©thodes de dĂ©tectionpures ne seront pas dĂ©taillĂ©es, câest-Ă -dire celles nâessayant pas dâĂ©valuer le botnet dans son ensembletelle que les mĂ©thodes appliquĂ©es au niveau des systĂšmes de dĂ©tection dâintrusions (Intrusion DetectionSystem ou IDS) [40]. Aussi, la dĂ©couverte du dĂ©ploiement du botnet, par lâintermĂ©diaire dâun vers ou detout autre mĂ©canisme, nâest pas approfondie ici, le lecteurintĂ©ressĂ© pourra consulter [63, 69]. Enfin, unrapide tour dâhorizon des mĂ©thodes de dĂ©tection utilisĂ©es est disponible dans [22].
1.5.1 Observer le botnet
Dans un premier temps, les diffĂ©rentes mĂ©thodes dâobservation des botnets sont dĂ©crites ici. Leursutilisations dans les diffĂ©rents travaux de recherche seront dĂ©taillĂ©es dans les deux sous-sections suiv-antes.
La premiÚre approche pour étudier et comprendre comment marche un botnet consiste simplementà se laisser infecter par le virus qui le transporte et à voir comment se comporte la machine qui dans cecas est un honeypot. Un honeypot ou pot de miel est une machineconnectée à Internet et délibérémentaccessible pour pouvoir attirer les attaquants et les vers de maniÚre à étudier les attaques menées.
Cette mĂ©thode est appliquĂ©e dans [62] oĂč les communicationsIRC dâune variante de SDBot sont in-spectĂ©es. Comme dans le cas dâun botnet IRC, celui-ci cherche Ă se connecter Ă un serveur, les premiĂšresinformations rĂ©cupĂ©rĂ©es sont donc les adresses IP ou les noms DNS [10] des serveurs. De plus, lors de laconnexion, le bot peut aussi fournir un mot de passe ou les noms des canaux sur lesquels se connecter. Cegenre de technique est Ă©galement utilisĂ© dans [53] qui dĂ©termine aussi bien les ports mais aussi le langageutilisĂ© en se basant sur la documentation publique de certains bots ainsi quâen fouillant dans les tracesdu honeypot Ă la recherche des diffĂ©rentes commandes utilisĂ©es. Une fois le langage du botnet appris,le comportement du botmaster peut ĂȘtre examinĂ© et le nombre de clients connectĂ©s Ă ce serveur permetdâestimer la taille du botnet. De plus, la liste des utilisateurs est partagĂ©e sur lâensemble des serveurs ; encomparant celles fournies par chacun dâeux, [62] arrive Ă Ă©valuer le nombre de serveurs utilisĂ©s et doncĂ mesurer plus justement la taille dâun botnet. En rĂ©alitĂ©, une fois que lâon participe activement au botneten injectant ses propres commandes, la machine nâest plus seulement un pot de miel mais une machinedâexpĂ©rimentation. Aussi, il est facile de directement contaminer une machine dâexpĂ©rimentation. Les
34
1.5. DĂ©tection et mesure des botnets
travaux [31, 15, 16, 19] utilisent ce type de techniques pourĂ©tudier un botnet. [58] utilisa Ă©galement lamĂ©thode du honeypot pour souligner la difficultĂ© dâextrairedes caractĂ©ristiques simples du canal C&Cpour identifier un bot.
Enfin, de nombreuses mĂ©thodes collectent tout simplement dutrafic et lâanalysent. Ce nâest efficaceque si le trafic collectĂ© est important et concerne plusieursmachines. Cette approche est utilisĂ©e dans[52, 54, 50, 39, 18, 38, 32, 1, 21, 27].
1.5.2 DĂ©tection et mesures passives
Identifiants des bots
Concernant les botnets IRC, des mĂ©thodes assez simples basĂ©es sur les noms des bots dans descanaux IRC ont vu le jour. Elles permettent facilement de dĂ©tecter la prĂ©sence dâun ou plusieurs botset donc de les compter. Dans [38], le nom dâun bot est repĂ©rĂ© par lâutilisation dâexpressions rĂ©guliĂšrestraduisant des chaĂźnes de caractĂšres suspectes : rĂ©fĂ©rences aux bots (âbotâ,âl33tâ), Ă la localisation (FR,USA), caractĂšres spĂ©ciaux ([, ], |) et utilisation de nombres. Lâapproche dans [18] dĂ©tecte les botnetsen mesurant la similitude entre les diffĂ©rents noms des utilisateurs de plusieurs canaux puisque les botsutilisent souvent des canaux IRC dĂ©diĂ©s.
Utilisation du DNS
Dans [53], les auteurs recommandent de traquer les botnets Ă partir des DNS. Effectivement, leserveur IRC sur lequel se connecte un bot est gĂ©nĂ©ralement identifiĂ© par un nom de domaine, et non uneadresse IP, pour permettre plus de flexibilitĂ© Ă lâattaquant. Ainsi, de nombreux serveurs DNS (environ8000) sont sondĂ©s pour savoir si le nom de domaine du serveur IRC est dans le cache, ce qui indique dansce cas quâau moins un bot a utilisĂ© ce serveur DNS. On peut ainsi avoir une vue globale de la rĂ©partitionet de lâĂ©volution des bots. Toutefois, une estimation prĂ©cise de la taille du botnet nâest pas envisageablecar il nâest pas possible dâĂ©valuer le nombre de zombies qui se sont connectĂ©s Ă un serveur donnĂ©.
[54] repose aussi sur le DNS en demandant Ă lâautoritĂ© responsable du domaine de changer lâadresseIP correspondante de maniĂšre Ă router toutes les demandes deconnexion au botnet vers une machinedâobservation. Lâobjectif de cette Ă©tude est de montrer lâaspect diurne de lâactivitĂ© dâun botnet qui sâ-explique par le fait que les machines compromises sont en grande partie des machines dâutilisateursparticuliers. Ce papier propose aussi le modĂšle correspondant (voir 1.6).
[50] Ă©tudie les requĂȘtes DNSBL (DNS-based blackhole) utilisĂ©es par les serveurs mail pour savoir silâadresse IP dâoĂč est Ă©mis lâemail est une source de spam. En fait, les attaquants vĂ©rifient que leurs botsne font pas partie de telles listes noires avant de commencerĂ les utiliser. En regardant de plus prĂšs lesrequĂȘtes DNSBL adressĂ©es, il est possible de distinguer celles lĂ©gitimes, provenant de serveurs de mail,de celles des bots. Celles-ci peuvent ĂȘtre exĂ©cutĂ©es sur uneseule machine ou de façon plus ou moinsdistribuĂ©e dans un botnet. Cependant, les auteurs relĂšventdeux propriĂ©tĂ©s clĂ©s qui permettent de faire ladistinction :
â un serveur mail envoie des requĂȘtes mais est aussi lâobjet de requĂȘtes contrairement Ă un bot ;â les requĂȘtes normales doivent avoir un trafic correspondant Ă celui des emails.
DĂšs quâune ou plusieurs entitĂ©s sont reconnues comme faisant partie du botnet, la liste des bots estfacilement rĂ©cupĂ©rĂ©e en regardant le contenu des requĂȘtes,câest-Ă -dire les IPs qui ont Ă©tĂ© vĂ©rifiĂ©es.
Il est clair que ces méthodes ne sont applicables que par des botnets utilisant des serveurs identifiéspar des noms de domaines, ce qui exclut les nouvelles générations de botnets.
35
Chapitre 1. Malwares et botnets
Activité du botnet
Un botnet actif tend Ă avoir des activitĂ©s caractĂ©ristiquescomme vu prĂ©cĂ©demment (envoi de spam,DDoS, balayage de ports...). Câest pourquoi [39] propose dans un premier temps de dĂ©celer les bots ef-fectuant ce genre dâactivitĂ©s. Ensuite, cet article propose de remonter jusquâau botmaster mais qui, dansle cas prĂ©sent, se limite seulement au serveur IRC utilisĂ©. Cette tĂąche commence par sauvegarder lesflux rĂ©seaux concernant les bots puis cherche Ă trouver des couples dâadresses IP et de ports associĂ©sĂ plusieurs bots, ce qui constitue des serveurs IRC de contrĂŽle potentiels. Ensuite, le trafic correspon-dant est considĂ©rĂ© comme un botnet ou non en calculant sa similitude avec le trafic normal. Enfin, lesauteurs mettent en Ă©vidence certains modĂšles pĂ©riodiques dans les communications au sein dâun botnet.LâinconvĂ©nient majeur de cette mĂ©thode est la nĂ©cessitĂ© de se trouver au niveau dâun opĂ©rateur de Tier 1pour corrĂ©ler suffisamment dâinformations. De ce fait, de nombreuses ressources pour capturer le traficou stocker ses caractĂ©ristiques sont nĂ©cessaires.
[52] utilise une mĂ©thode semblable puisque les canaux IRC debotnets potentiels sont dâabord dĂ©-couverts par rapport aux nombres dâutilisateurs qui semblent faire du balayage de ports. Pour raffiner ladĂ©tection, des statistiques sur le nombre et la nature des messages Ă©changĂ©s sont employĂ©es.
La reconnaissance de balayages de ports peut aussi se faire via un réseau de pots de miels et permet decalculer la population totale du botnet par extrapolation,en comparant les sources du balayage détectéespar chacune des deux moitiés du réseau de pots de miel [19].
Lâenvoi de courrier indĂ©sirable est aussi une activitĂ© prĂ©pondĂ©rante des botnets et les campagnes despam sont donc une source dâinformations importante pour mieux apprĂ©hender les botnets. Dans [32],Xie et al. dĂ©coupent les URLs incluses dans les emails pour les classer. Ă partir de chaque groupe, uneexpression rĂ©guliĂšre est gĂ©nĂ©rĂ©e et ceux dont les emails ontĂ©tĂ© envoyĂ©s en rafale sont associĂ©s Ă duspam. Leurs observations montrent que les campagnes sont decourte durĂ©e (5 jours). En observant plusde 7000 campagnes distinctes en 3 mois, environ 340 000 adresses IP ont envoyĂ© du spam. Enfin, lâĂ©tudeest complĂ©tĂ©e en mettant en Ă©vidence deux phases du botnet : une premiĂšre phase de balayage pourchercher de nouvelles machines Ă infecter puis le lancementdes campagnes de spam. Alors que cettetechnique montre un taux de faux positifs trĂšs rĂ©duit, [21] constate quâelle peut entraĂźner un nombre defaux nĂ©gatifs trĂšs Ă©levĂ© car le critĂšre dâun envoi en rafale sur 5 jours nâest pas significatif. Dans ce papier,les traces sont collectĂ©es via un relais MTA (Mail TransfertAgent) utilisĂ© par les bots pour Ă©viter dâĂȘtreeux mĂȘme dĂ©tectĂ©s. Les campagnes sont identifiĂ©es selon les URLs utilisĂ©es mais aussi selon dâautresidentifiants gĂ©nĂ©ralement insĂ©rĂ©s dans les emails (numĂ©ro de tĂ©lĂ©phone, identifiant skype...). MĂȘme si lenombre dâadresses IP ayant envoyĂ© du spam est comptabilisĂ© (plus dâun demi million), le but du papierest plutĂŽt dâĂ©tudier la durĂ©e des campagnes de spam. En bref,bien quâun bot individuel envoie du spam enrafale, le botnet lui-mĂȘme peut participer Ă la mĂȘme campagne de spam gĂ©nĂ©ralement pendant plusieursjours et notamment jusquâĂ 99 jours. Le travail [27] est complĂ©mentaire de [32] car il vise Ă classer ounon les emails comme spam, non plus dâaprĂšs le URLs contenues, mais plutĂŽt grĂące aux entĂȘtes utilisĂ©eset notamment leurs types et leur ordre dâapparition.
Comme les techniques prĂ©cĂ©dentes se basent uniquement sur lâanalyse dâactivitĂ©s malveillantes, ellesrisquent de considĂ©rer des botnets qui nâen sont pas rĂ©ellement. Câest notamment le cas pour le balayagede ports qui peut aussi ĂȘtre effectuĂ© par un vers. A lâinverse, BotMiner [30] inspecte aussi bien le traficde commande du botnet que celui des attaques correspondantes. En fait, le trafic des attaques est analysĂ©dâun cĂŽtĂ© ainsi que le trafic ânormalâ pour tenter de trouver des machines qui partagent le mĂȘme type decommunication. Ainsi, deux jeux de clusters sont identifiĂ©set mis en relation pour essayer de dĂ©tecter unbotnet.
36
1.5. DĂ©tection et mesure des botnets
1.5.3 DĂ©tection et mesures actives
Les mĂ©thodes prĂ©cĂ©dentes sont passives et ne cherchent pas Ă injecter de commandes dans les botnets.Leurs seules interactions avec celui-ci est leur participation au rĂ©seau via un pot de miel par exemple. Cetype de mĂ©thode fonctionne bien pour des rĂ©seaux centralisĂ©s tel que IRC car, une fois connectĂ©, lâaccĂšsĂ lâinformation est simple. NĂ©anmoins, il est quand mĂȘme possible sur ce type de rĂ©seau de cacher desinformations, notamment en rendant invisible les bots sur les canaux. De plus, les botnets dĂ©centralisĂ©s detype P2P sont rapidement apparus et ont focalisĂ© lâattention des chercheurs dans ce domaine. Alors quela premiĂšre Ă©tape reste la mĂȘme, câest-Ă -dire faire tournerle bot sur une machine dĂ©diĂ©e ou un honeypotqui aurait Ă©tĂ© contaminĂ©, il nâest pas aisĂ© de mesurer le botnet car le bot que lâon contrĂŽle nâa quâune vuepartielle du rĂ©seau.
[31] propose une premiĂšre approche pour contourner ce problĂšme dans le cadre de lâĂ©tude du bot-net Storm. La mĂ©thode utilisĂ©e, le crawling, exploite la connaissance partielle de plusieurs nĆuds. Enquelques mots, le bot est exĂ©cutĂ© puis rĂ©cupĂšre une liste de pairs. Ensuite, des commandes sont injectĂ©esdans le botnet pour rĂ©cupĂ©rer la liste des pairs de chacun dâeux et ainsi de suite. Un attaquant ne peut passupprimer un tel mĂ©canisme car il permet au rĂ©seau de se dĂ©velopper et de se renforcer. Enfin, commeStorm a utilisĂ© pendant un temps un rĂ©seau partagĂ© avec des utilisateurs normaux (Overnet), Holzet al.ont espionnĂ© le rĂ©seau en introduisant des sybils [72], câest-Ă -dire en crĂ©ant des pairs avec des identifiantsspĂ©cifiques et, dans le cas prĂ©sent, rĂ©partis dans la table dehachage distribuĂ©e de telle sorte que chaquerequĂȘte soit ensuite routĂ©e jusquâĂ un nĆud sybil. Ainsi, les pairs qui publient ou recherchent du contenucorrĂ©lĂ© Ă Storm peuvent ĂȘtre comptabilisĂ©s (entre 5000 et 6000). Dâun autre cĂŽtĂ©, la simple mĂ©thode decrawling permet dâĂ©valuer le nombre de pairs sur le rĂ©seau dĂ©diĂ© de Storm (Stormnet) (entre 25 000 et40 000).
La technique du crawling nâest possible que si les pairs peuvent recevoir des requĂȘtes, ce qui estimpossible lorsquâils sont derriĂšre un pare-feu ou un routeur NAT (Network Address Translator). Par-tant de ce problĂšme, [15] introduit la mĂ©thode PPM (Passive P2P Monitor) plus passive mais qui restecependant active puisquâelle nĂ©cessite dâinjecter des requĂȘtes. Dans un premier temps, des sybils sont in-troduits dans le rĂ©seau, observent le trafic et reçoivent ainsi des requĂȘtes. Les pairs Ă lâorigine de celles-cipeuvent ĂȘtre comptabilisĂ©s. Ce mĂ©canisme est simple mais sebase sur le fait que, en maintenant les sybilslongtemps actifs, ils seront prioritairement choisis. Cependant, un certain nombre dâadresses peuvent ĂȘtreusurpĂ©es (IP spoofing). Dans un second temps, les nĆuds sybils renvoient une requĂȘte pour voir si unnĆud est vraiment rĂ©el. Lorsquâun nĆud derriĂšre un pare-feuenvoie une requĂȘte, le pare-feu est capabledâidentifier le destinataire et donc de laisser passer les rĂ©ponses en sens inverse. Pour dĂ©terminer si unnĆud est derriĂšre un pare-feu, les auteurs proposent donc dâenvoyer la mĂȘme requĂȘte dâun autre nĆuddu rĂ©seau. Si une rĂ©ponse est Ă©mise alors il nây a pas de pare-feu. Dâautres problĂšmes sont aussi consid-Ă©rĂ©s dans cet article et rĂ©solus grĂące Ă lâutilisation assezlongue dans le temps des sybils qui permettentdâavoir des donnĂ©es plus dĂ©taillĂ©es sur les autres nĆuds (ils peuvent ĂȘtre testĂ©s Ă diffĂ©rents moments).Comme le montre la figure 1.6 reprise de lâarticle, la mĂ©thodePPM permet de dĂ©couvrir un nombre denĆuds beaucoup plus important par rapport Ă la mĂ©thode de crawling. Enfin, cette mĂ©thode est validĂ©eanalytiquement en montrant quâun nĆud du rĂ©seau est quasi sĂ»r dâĂȘtre identifiĂ© (98%) si celui-ci a envoyĂ©au moins 200 messages.
A lâorigine Storm utilisait Overnet et [16] introduit une mĂ©thode pour diffĂ©rencier les bots dans cerĂ©seau. GrĂące Ă la technique du crawling, deux phĂ©nomĂšnes sont corrĂ©lĂ©s pour les repĂ©rer :
â node-id aliasing qui met en Ă©vidence les adresses IPs dont lâidentifiant varie. Ceci est typique deStorm qui le fait Ă chaque redĂ©marrage contrairement Ă un client classique ;
â Ip-address aliasing qui observe les identifiants du rĂ©seauP2P partagĂ©s par plusieurs adresses IP.Ceci est aussi classique des premiĂšres versions de Storm dont lâalgorithme de gĂ©nĂ©ration alĂ©atoire
37
Chapitre 1. Malwares et botnets
FIGURE 1.6 â Nombres de machines infectĂ©es par Storm dĂ©couvertes selon la mĂ©thode classique decrawling ou PPM [15]
des identifiants Ă©tait biaisĂ©.Comme on peut le remarquer, cette technique nâest applicable quâaux premiĂšres versions de Storm etnâest possible que grĂące Ă une faille dans le dĂ©veloppement de ce dernier.
1.6 ModĂšles
1.6.1 Propagation dâun vers ou dâun botnet
[73] Ă©nonce un modĂšle mathĂ©matique permettant dâĂ©valuer lenombre de machines infectĂ©es par unvers et en lâoccurrence CodeRed. Il est dĂ©rivĂ© du modĂšle infectieux de Kermack-Mckendrick [81]. EtantdonnĂ© une population de victimes potentielles de tailleN, le but est de trouver le nombre de machinesinfectĂ©esI(t) au tempst. La capacitĂ© dâun vers Ă se propager est le taux dâinfection notĂ© ÎČ(t) et estdĂ©pendant du temps car les observations montrent que la propagation dâun vers a tendance Ă surchargerles infrastructures et ralentit donc sa propagation. La figure 1.7 schĂ©matise les diffĂ©rents Ă©tats possiblesdâune machine. Au dĂ©part elle est susceptible dâĂȘtre infectĂ©e puis elle peut le devenir. Ensuite, la machinepeut ĂȘtre dĂ©sinfectĂ©e. Cependant, si le vers ou la faille quâil exploite est dĂ©couvert Ă temps, des contre-mesures peuvent ĂȘtres mises en place et dans ce cas, la machine est directement protĂ©gĂ©e sans passer parlâĂ©tat infectĂ©. On considĂšre donc les quantitĂ©s suivantes au tempst :
â S(t), le nombre de machines potentiellement infectables considĂ©rĂ© comme inconnu ;â P(t), le nombre de machines protĂ©gĂ©es ;â D(t), le nombre de machines dĂ©sinfectĂ©es ;On obtient alors :
dI(t)dt
= ÎČ(t)[NâD(t)â I(t)âP(t)]I(t)âdD(t)
dt
Bien entenduP(t) et D(t) sont chacun dépendant de paramÚtres humains (réactivité) mais aussi deI(t)
38
1.6. ModĂšles
Susceptible
S(t)
Protégé
P(t)
Infecté
I(t)
Désinfecté
D(t)
FIGURE 1.7 â ModĂšle infectieux dâunvers
FIGURE 1.8 â Comparaison entre le modĂšle de[73] et le nombre rĂ©el de machines infectĂ©es parCodeRed
et S(t). De plus amples explications sur la rĂ©solution de cette Ă©quation sont consultables dans [73]. CemodĂšle, quant il est bien paramĂ©trĂ©, est rĂ©aliste comme le montre la figure 1.8 provenant de lâarticleen question et oĂč la courbe du modĂšle est proche de la rĂ©alitĂ©.Les auteurs ont dĂ©rivĂ© un autre modĂšledans [68] qui ajoute une Ă©tape de quarantaine obligatoire pour toutes les machines pendant un temps trĂšscourt. Ils explorent alors les diffĂ©rentes actions Ă prendre (protection, dĂ©sinfection, mise en quarantaine)dans le cas de lâapparition dâun nouveau vers et mesurent leurs effets.
Alors que CodeRed vise des serveurs Web, il nâest pas influencĂ© par lâactivitĂ© diurne humaine car cesderniers sont en permanence connectĂ©s. Les bots sont quant Ă eux majoritairement installĂ©s sur des ordi-nateurs âfamiliauxâ qui se retrouvent Ă©teints la nuit. Ainsi [54] Ă©tudie la propagation dâun botnet, maisplus gĂ©nĂ©ralement dâun vers, selon lâactivitĂ© diurne. Par ailleurs, les auteurs ont aussi pris en compte lesdiffĂ©rents fuseaux horaires pour avoir une modĂ©lisation prĂ©cise et aussi rĂ©aliste dâaprĂšs leurs expĂ©rimen-tations. Par ailleurs, ils montrent que, selon lâheure Ă laquelle la propagation commence, les effets nesont pas les mĂȘmes.
Partant du constat que de nombreux vers profitent de réseaux P2P préexistants pour se propager, Yuet al. [24] ont établi un modÚle mathématique associé et étudient notamment le nombre de machinesinfectées selon plusieurs paramÚtres importants des réseaux P2P :
â le nombre de pairs au total,â la connectivitĂ© des pairs (nombre de pairs connectĂ©s Ă un seul),â le type de topologie P2P (structurĂ©e2 ou non),â la vulnĂ©rabilitĂ© dâune machine (probabilitĂ©).
Le modĂšle est vĂ©rifiĂ© une fois de plus en le comparant avec une expĂ©rimentation rĂ©elle. De plus, lestests mettent en Ă©vidence une propagation Ă©pidĂ©mique plus rapide grĂące Ă lâutilisation des rĂ©seaux P2Pet aussi une plus grande rĂ©sistance des rĂ©seaux P2P structurĂ©s.
Alors que les modĂšles prĂ©cĂ©dents englobent dĂ©jĂ les effets des contre mesures comme la dĂ©sinfection,[25] incorpore encore dâautres paramĂštres significatifs dans un modĂšle stochastique. Par exemple, pourlimiter sa dĂ©tection, un botnet peut ne pas chercher Ă se propager en permanence comme prĂ©cĂ©demmentexpliquĂ©. Ainsi, la probabilitĂ© quâun bot soit actif ou non est prise en compte dans ce nouveau modĂšle.
2. Un rĂ©seau P2P est dit structurĂ© quand le choix des pairs dâun nĆud est dĂ©pendant de son emplacement dans le rĂ©seau,câest-Ă -dire son identifiant (table de hachage distribuĂ©e)
39
Chapitre 1. Malwares et botnets
De plus, le comportement de lâutilisateur, vis Ă vis de lâinstallation ou non du bot, est aussi introduit sansoublier le caractĂšre instable des connexions dans les rĂ©seaux P2P. Les auteurs Ă©tudient leurs modĂšlesselon ces paramĂštres et cherchent aussi Ă dĂ©terminer quel taux de dĂ©sinfection (rapiditĂ©) est nĂ©cessairepour vraiment contenir la propagation du botnet.
1.6.2 Structure dâun botnet
Contrairement Ă la partie prĂ©cĂ©dente qui mettait lâaccent sur la propagation dâun botnet, et qui sâap-parente Ă celle dâun vers, cette partie vise plutĂŽt Ă Ă©tudiersa structure une fois dĂ©ployĂ© mais aussi lorsde lâexĂ©cution de mesures de dĂ©fense. Lâarticle [37] introduit deux stratĂ©gies gĂ©nĂ©riques de dĂ©fense :alĂ©atoire, qui vise Ă supprimer des bots au hasard, ou ciblĂ©e, qui chercher Ă supprimer les bots qui ontune place clĂ© dans le rĂ©seau, câest-Ă -dire ceux par lesquelsde nombreux messages sont routĂ©s.
Dans ce papier, Dagonet al.proposent quatre types de mesures pour Ă©valuer la structuredâun botnet :â la capacitĂ© permettant de mesurer la taille du botnet et quicorrespond au nombre de bots com-
posant la plus grande partie composante connexe du rĂ©seau.â la bande passante disponible qui mesure le dĂ©bit que peut utiliser le contrĂŽleur pour mener une
attaque. Elle est définie comme suit :
B=3
âi=1
(MiâAi)PiWi (1.1)
oĂč i reprĂ©sente les 3 classes possibles de connexion (1 : modems,2 : DSl/cable, 3 : trĂšs haut dĂ©bit),P est la distribution des bots dans ces classes,M la bande passante disponible,A le dĂ©bit utilisĂ©pour lâusage normal etW un poids dĂ©pendant de lâactivitĂ© diurne.
â lâefficacitĂ© est synonyme de rapiditĂ© Ă transmettre des informations car elle mesure le nombre desauts moyens entre deux bots quelconques. Elle est basĂ©e surla longueur gĂ©odĂ©sique inverse :
lâ1 =1
N(Nâ1) âvâV
âw6=vâV
1d(v,w)
(1.2)
oĂčV est lâensembles des bots,N = |V| et d(a,b) est la distance minimale entrea et b (le nombrede sauts).
â la robustesse mesure la connectivitĂ© du rĂ©seau et donc sa redondance (nombre de chemins alternat-ifs) synonyme de meilleure rĂ©sistance aux dĂ©connexions. Elle est dĂ©finie comme le degrĂ© moyende la transitivitĂ© locale :
Îł =1N â
vâV
Îłv, Îłv =Ev
C2kv
(1.3)
oĂčEv est le nombre de connexions etkv le nombre de bots du graphe limitĂ© au botv et ses voisins.GrĂące Ă des Ă©tudes prĂ©cĂ©dentes [13], les effets de lâactivitĂ© diurne sont quantifiĂ©s ainsi :P= [0.3,0.6,0.1]etW = [0.0625,0.1875,0.75]. Plusieurs modĂšles de topologies de botnets sont explorĂ©s Ă©galement :
â graphe alĂ©atoire reposant sur le modĂšle dâErdös-RĂ©nyi [9]oĂč chaque bot est connectĂ© avec uneprobabilitĂ© Ă©gale Ă tout autre bot.
â le modĂšle de Watts-Strogatz [7] basĂ© sur le phĂ©nomĂšne des petits mondes oĂč chaque nouveau botse connecte aux bots existants (ou au moins Ă une partie de ceux-ci).
â le modĂšle âscale-freeâ de BarabĂĄsi-Albert [6] oĂč la probabilitĂ© quâun bot soit connectĂ© Ă un autrediminue au fur et Ă mesure de la croissance du botnet. Ce type de modĂšle crĂ©e des topologiesavec des nĆuds centraux ayant une grande connectivitĂ© et desnĆuds âterminauxâ avec peu deconnexions.
40
1.6. ModĂšles
FIGURE 1.9 â Effet des dĂ©fenses (alĂ©a-toire ou ciblĂ©e) dans un rĂ©seau P2P nonstructurĂ©
FIGURE 1.10 â Distribution des bots du vers Nu-gache selon leur degrĂ© de connectivitĂ©
â les modĂšles P2P non structurĂ©s (Ă©quivalents au modĂšle de BarabĂĄsi-Albert) et structurĂ©s (Ă©quiva-lents au modĂšle dâErdös-RĂ©nyi)
Sans rentrer dans les dĂ©tails des Ă©tudes menĂ©es sur ces modĂšles, la figure 1.9 montre que dans un rĂ©seaude type P2P non structurĂ© (modĂšle de BarabĂĄsi-Albert)), lesdĂ©connexions ciblĂ©es de bots, câest-Ă -direceux trĂšs connectĂ©s, sont trĂšs efficaces. De plus, la distribution des bots selon leur connectivitĂ© pourle botnet Nugache [5] illustre lâĂ©quivalence de ces rĂ©seauxP2P avec le modĂšle thĂ©orique de BarabĂĄsi-Albert (voir figure 1.10). Enfin, de maniĂšre gĂ©nĂ©rale, un attaquant qui disposerait dâun botnet de 50 000membres aurait en permanence au moins 1 GO de bande passante disponible pour mener des attaques.
[26] reprend les diffĂ©rents modĂšles prĂ©cĂ©dents et les instancie avec deux rĂ©seaux P2P rĂ©els : Gnutella[2] (non structurĂ©) et Overnet [6] (structurĂ©). De plus, lâarticle dĂ©finit dâautres mĂ©triques :
â lâatteignabillitĂ©Nk(x) est dĂ©finie comme le nombre de bots atteignables Ă un nombre maximal kde sauts Ă partir du botx :
Nk(x) = âȘki=0Îi(x), Îk(x) = yâV, d(x,y) = k (1.4)
Plus cette valeur est grande pour desk faibles, plus le réseau est performant car un grand nombrede bots sont proches.
â lâensemble des chemins les plus courts pour une longueur donnĂ©el est lâensemble des couples denĆuds (bots) sĂ©parĂ©s par cette distance minimale :
Ll(u,v) = (u,v), u,vâV, d(u,v) = l (1.5)
Cette mĂ©trique est complĂ©mentaire de la prĂ©cĂ©dente puisqueplus cet ensemble contient dâĂ©lĂ©mentspour desl faibles, plus un message est transmis Ă de nombreux bots en quelques sauts seulement.
â le diamĂštre du graphe ou de la topologie, qui est une mesure de la taille du botnet comparable Ă la longueur gĂ©odĂ©sique. Ici le diamĂštre de la topologie est le minimum entre tous les chemins lesplus courts entre deux nĆuds quelconques.
Une fois de plus, la premiĂšre stratĂ©gie de dĂ©fense utilisĂ©e est de type alĂ©atoire, câest-Ă -dire que dĂšsquâun bot est dĂ©couvert on le dĂ©sinfecte. Cependant, deux types de stratĂ©gies ciblĂ©es sont introduites.La premiĂšre consiste Ă rĂ©cupĂ©rer la liste des pairs dâun nĆudet ainsi dĂ©sinfecter ces nouveaux nĆuds(global info-based). La seconde est une approche Ă©quivalente Ă celle proposĂ©e dans [37] puisquâellecherche Ă dĂ©connecter en prioritĂ© les bots Ă forte connectivitĂ© (tree-like), câest-Ă -dire dont le nombrede pairs est Ă©levĂ©. Avec les mĂ©triques dĂ©finies ci-dessus, les conclusions sont semblables Ă [37] oĂč les
41
Chapitre 1. Malwares et botnets
FIGURE 1.11 â Effets similaires des dĂ©fenses (alĂ©atoires ou ciblĂ©es) dans Overnet
rĂ©seaux comme Gnutella sont les plus rĂ©sistants Ă la stratĂ©gie de dĂ©fense alĂ©atoire alors que les rĂ©seauxstructurĂ©s, comme Overnet, sont quant Ă eux extrĂȘmement rĂ©sistants aux dĂ©connexions ciblĂ©es. Enfin,comme le montre la figure 1.11, lâatteignabilitĂ© est quasi identique quelque soit la stratĂ©gie de dĂ©fensemise en place dans le cas dâOvernet. Les auteurs de [37] avaient dâailleurs remarquĂ© Ă juste titre que desdĂ©fenses plus compliquĂ©es mais probablement plus efficaces, tel que lâintroduction de pollution dans lesrĂ©seaux structurĂ©s (index poisoning en anglais) [49], sontsĂ»rement rĂ©alisables. Ce genre de technique adâailleurs Ă©tĂ© expĂ©rimentĂ© avec succĂšs sur le vers botnet Storm [31] (voir section 1.5).
1.7 Bilan
AprĂšs avoir rappelĂ© les fondements thĂ©oriques des virus, cechapitre a montrĂ© les aspects pratiques deces derniers et a mis en Ă©vidence les plus dangereux dâentre eux. Les vers sont, Ă lâheure actuelle, capa-bles en quelques heures voire quelques minutes de contaminer des millions de machines sur lâensemblede la planĂšte. En parallĂšle ils sont souvent amenĂ©s Ă installer un programme de bot sur les machines in-fectĂ©es et constituent alors une vĂ©ritable armĂ©e opĂ©rĂ©e parun ou plusieurs attaquants motivĂ©s aujourdâhuipar lâintĂ©rĂȘt Ă©conomique. Il existe diverses mĂ©thodes pourles Ă©tudier mais leurs limites ont souvent Ă©tĂ©dĂ©montrĂ©es puisque que comme dans toute guerre, lâattaquant et le dĂ©fenseur font preuve dâimaginationchacun leur tour. Câest ainsi que les botnets P2P sont en train de submerger les botnets IRC.
Les techniques de dĂ©tection et dâĂ©valuation les plus efficaces pour lutter contre ce phĂ©nomĂšne sontbasĂ©es sur deux principes : lâintroduction dâune ou plusieurs machines dans le botnet et lâinjection oula transformation des commandes dans ce dernier. Alors que la premiĂšre Ă©tape est une chose facile, laseconde est beaucoup plus ardue puisquâelle nĂ©cessite de faire de la rĂ©tro-ingĂ©nierie sur le protocoleutilisĂ©. Ce domaine dâapplication est introduit dans le chapitre suivant.
Enfin, la plupart des modĂšles proposĂ©s jusque lĂ se limitaient au dĂ©ploiement mĂȘme du botnet etpeu de travaux se sont intĂ©ressĂ©s Ă son efficacitĂ© une fois dĂ©ployĂ© car il est important dâestimer la taillegĂ©nĂ©rale du botnet mais aussi le nombre de machines auxquelles un ordre peut ĂȘtre transmis et Ă quellevitesse. Mes travaux sâattaqueront Ă cette problĂ©matique et sont complĂ©mentaires Ă ceux prĂ©cĂ©demmentcitĂ©s.
42
2
Rétro-ingénierie de protocoles
Sommaire2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 432.2 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
2.2.1 Les protocoles réseaux . . . . . . . . . . . . . . . . . . . . . . . . . .. 442.2.2 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.2.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3 Découverte des messages : types et syntaxe . . . . . . . . . . . .. . . . . . . . 502.3.1 à partir de traces réseaux . . . . . . . . . . . . . . . . . . . . . . . .. . 502.3.2 En observant la machine hÎte . . . . . . . . . . . . . . . . . . . . . .. . 52
2.4 Apprentissage de la machine Ă Ă©tats . . . . . . . . . . . . . . . . . .. . . . . 552.5 Le rejeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5.1 Cas de figure simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.5.2 ProblĂšme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.5.3 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.5.4 Autres applications . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 592.5.5 DĂ©finition formelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
2.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1 Introduction
En informatique, la rĂ©tro-ingĂ©nierie [28] consiste Ă Ă©tudier et observer lâimplantation dâun logicielpour en extraire les spĂ©cifications et les choix dâimplantations. Lâobjectif est alors de comprendre com-ment ce logiciel sâexĂ©cute :
â quels sont les modules de lâapplication ?â quel est le rĂŽle de chacun des modules ?â comment les modules interagissent-ils entre eux ?â quel est le pseudo-code ou code source de lâapplication ?Cette liste nâest pas exhaustive et les approches proposĂ©esne cherchent pas forcĂ©ment Ă rĂ©pondre Ă
toutes les questions Ă la foi. Le dernier point est assez intĂ©ressant car de celui-ci dĂ©coulent les applicationspratiques telles que la mise au point dâune application clone ou modifiĂ©e (notamment en enlevant les
43
Chapitre 2. Rétro-ingénierie de protocoles
parties relatives Ă la protection du logiciel) ou la dĂ©couverte de vulnĂ©rabilitĂ©s, dans lâapplication danslâobjectif de les corriger ou de les exploiter.
Il existe aujourdâhui de nombreux outils permettant de faire de la rĂ©tro-ingĂ©nierie dont les pluscourants sont les dĂ©sassembleurs tels que IDA [7]. Wine [1] est une mise en pratique assez spectacu-laire de rĂ©tro-ingĂ©nierie puisque son but est de fournir un Ă©quivalent de lâinterface de programmation(Application Programming Interface ou API en anglais) de Windows sous les systĂšmes Unix/Linux etquâil est aujourdâhui capable de faire tourner de nombreux logiciels Windows sous de tels systĂšmes. Latechnique la plus courante pour se prĂ©munir de la rĂ©tro-ingĂ©nierie est lâobscurcissement (obfuscation enanglais) qui consiste Ă rendre le code moins comprĂ©hensif tout en conservant les mĂȘmes fonctionnalitĂ©set le mĂȘme comportement du programme. Cela se fait gĂ©nĂ©ralement de maniĂšre automatique par lâin-termĂ©diaire dâoutils commeStunnix C++ Obfuscator [3] pour les langages C et C++. Des techniquesde chiffrement peuvent Ă©galement ĂȘtre employĂ©es. Une approche plus thĂ©orique de ces problĂšmes estabordĂ©e dans [25]. Les exĂ©cutables compliquĂ©s sont gĂ©nĂ©ralement analysĂ©s grĂące Ă des dĂ©buggers per-mettant de dĂ©couvrir la traces dâexĂ©cutions du programme (appel de fonctions). Ainsi, des techniquesdites anti-debugging cherche Ă dĂ©tecter lâutilisation dâun tel logiciel ou vise Ă lâinduire en erreur (voir[17] pour une courte introduction sur ce sujet).
La rĂ©tro-ingĂ©nierie des protocoles est un domaine particulier de la rĂ©tro-ingĂ©nierie en informatique.Un protocole est gĂ©nĂ©ralement dĂ©crit par un document normatif ce qui permet ensuite de dĂ©velopperdes applications utilisant ce protocole. Cependant, il arrive souvent que cette spĂ©cification nâexiste pasou seulement partiellement, notamment dans le cas de protocoles propriĂ©taires comme ceux utilisĂ©s parle fameux logiciel de VoIP Skype [4], ceci dans le but de garder le contrĂŽle sur le protocole et sonutilisation. La rĂ©tro-ingĂ©nierie des protocoles permet alors de contourner ce problĂšme. Hormis dans cetteintroduction, ce chapitre va exclusivement traiter de ce type de rĂ©tro-ingĂ©nierie.
Les techniques de rĂ©tro-ingĂ©nierie sont donc appropriĂ©es pour Ă©tudier les protocoles inconnus telsque ceux utilisĂ©s parfois par des logiciels malveillants comme les vers ou les botnets. Le chapitre prĂ©cĂ©-dent a clairement mis en Ă©vidence la nĂ©cessitĂ© de mieux les comprendre pour Ă©valuer plus prĂ©cisementle risque associĂ© et pour mieux sâen dĂ©fendre. La rĂ©tro-ingĂ©nierie est donc une Ă©tape essentielle dans lacomprĂ©hension dâun malware communiquant. Ă titre dâexemple, un grand nombre de mĂ©thodes dâanal-yse et de protection du chapitre prĂ©cĂ©dent nĂ©cessitait lâinjection de messages qui nâest rĂ©alisable que sile protocole est en partie compris et maĂźtrisĂ©.
2.2 Généralités
2.2.1 Les protocoles réseaux
Un protocole de communication est un ensemble de rĂšgles permettant Ă deux machines dâĂ©changerdes informations. Ces rĂšgles dĂ©finissent la syntaxe des messages Ă©changĂ©s, leur enchaĂźnement ainsi quela sĂ©mantique qui y est associĂ©e.
Dans les réseaux informatiques, le modÚle OSI (Open SystemsInterconnection) représenté sur lafigure 2.1(a) est considéré comme trop détaillé. Ainsi, un protocole est plus souvent associé à une couchedu modÚle Internet aussi appelée TCP/IP. Ce modÚle est représenté sur la figure 2.1(b). Les protocolesdes couches basses sont suffisamment documentés et ne nécessitent donc pas de rétro-ingénierie ; seulsles protocoles de la couche application sont concernés.
Dans la suite de ce chapitre, un message correspond au contenu (payload) TCP ou UDP. La dénom-ination unité de données applicativeest aussi généralement utilisée (ADUs ou Application-level Data
44
2.2. Généralités
(a) Le modĂšle OSI (b) le modĂšle Internet
FIGURE 2.1 â Les diffĂ©rents modĂšles en couches
[email protected] [email protected]
INVITE
100 Trying
180 Ringing
200 OK
ACK
Session multimédia
Session
FIGURE 2.2 â Un exemple de session duprotocole SIP
! INVITE
Etat initial
Etat final
? 100 Trying
? 180 Ringing
? 200 OK
ACK
? 407 Proxy
Auth Req.
? 302 moved
Temporarily
FIGURE 2.3 â Une sous-partie de la ma-chine Ă Ă©tat de SIP
Units en anglais). Une session est une sĂ©rie de messages entre deux machines dans le but dâaccomplirune tĂąche spĂ©cifique.
La figure 2.2 montre un exemple de session du protocole SIP [6]pour Ă©tablir la session multimĂ©diapermettant Ă user1de communiquer avecuser2. Le premier message initie la demande dâappel, les 3messages suivant envoyĂ©s par lâappelĂ© servent Ă acquitter ce message, informer que le tĂ©lĂ©phone sonneet finalement que lâutilisateur a dĂ©crochĂ©. Le dernier message consiste Ă acquitter ces informations.
Syntaxe des messages
La syntaxe des messages est gĂ©nĂ©ralement dĂ©finie Ă lâaide de la forme de Backus-Naur augmentĂ©e(ABNF) [2]. Un extrait de la syntaxe des messages SIP est donnĂ© dans la figure 2.4.
Sans entrer dans les dĂ©tails, les premiĂšres lignes spĂ©cifient quâun message commence par une pre-miĂšre ligne (start-line) qui peut ĂȘtre une requĂȘte (request-line) ou une rĂ©ponse (status-line). La suite estconstituĂ©e dâaucun ou de plusieurs en-tĂȘtes, une fin de ligne(retour chariot et saut Ă la ligne suivante).
45
Chapitre 2. Rétro-ingénierie de protocoles
FIGURE 2.4 â Extrait de la syntaxe de SIP
Enfin, le corps du message (message-body) est optionnel.Un message est en fait constitué de plusieurs champs qui peuvent prendre différentes formes. Bien
quâil nây ait pas de taxonomie officielle pour ces derniers, ce paragraphe va en proposer une dĂ©rivĂ©edes diffĂ©rents travaux sur la rĂ©tro-ingĂ©nierie de protocole. Les diffĂ©rents termes introduits seront ensuiterepris au cours de ce chapitre. La figure 2.5 rĂ©sume les diffĂ©rents types possibles. Certains protocolespeuvent envoyer des messages textuels, comme SIP [6], qui ont lâavantage de pouvoir ĂȘtre interprĂ©tĂ©sassez facilement par un humain. Dâautres sont binaires comme DNS [10]. Bien entendu, il arrive que lesdeux types de donnĂ©es cohabitent comme dans le cas dâHTTP [7], protocole textuel mais qui peut aussicontenir des donnĂ©es binaires lorsquâil est par exemple utilisĂ© pour transmettre une image dans une pageWeb. Parmis ces champs, certains ont une longueur fixe et dâautres une longueur variable. Ces dernierssont gĂ©nĂ©ralement classĂ©s comme ci-aprĂšs :
â des indicateurs de format permettant de prĂ©ciser le formatdu message. Plusieurs indicateurs peu-vent ĂȘtre combinĂ©s successivement dans le cas de communications encapsulĂ©es ;
â des identifiants des machines (adresses, ports...) ;â des positions dans le message :
â des pointeurs indiquant directement oĂč trouver une information ;â des longueurs indiquant soit la longueur totale du messagesoit celle dâune sous-partie comme
celle dâun champ (cela permet dans ce cas de retrouver la position de ceux-ci) ;â des dĂ©calages (offset en anglais) qui indiquent oĂč commence chaque champ Ă partir dâune posi-
tion de dĂ©part (gĂ©nĂ©ralement le dĂ©but du message) ;â des compteurs indiquant le nombre de champs du message entier ou dâune sous-partie et qui est
donc utile lors de lâanalyse du message et le classement des informations quâil contient ;â des cookies qui sont des identifiants partagĂ©s entre les diffĂ©rents protagonistes pour identifier une
session ;â des mots-clĂ©s qui appartiennent Ă la grammaire du protocole comme par exempleINVITE, ACK
pour SIP ;â des champs divers qui transportent des informations dĂ©pendantes du protocole.
Automate
La maniĂšre dont les messages doivent sâenchaĂźner, câest-Ă -dire quel message a besoin dâĂȘtre envoyĂ©lors de la rĂ©ception dâun autre, correspond Ă un automate ou une machine Ă Ă©tats finis. Par exemple, lafigure 2.3 est une reprĂ©sentation trĂšs minimale de quelques Ă©tats possibles pour le protocole SIP. Chaquetransition correspond Ă un type de message prĂ©fixĂ© par sa direction :
â ? : message reçuâ ! : message Ă©mis
46
2.2. Généralités
champs
binaire
identifiant
machine
llongueur variable
identificateur
de format
longueur
texte
pointeur décalage
position
longueur fixe
cookie mot clé
compteur
autre
FIGURE 2.5 â Classification des diffĂ©rents types de champs dâun message
Cet exemple reprend exactement les messages de la figure 2.2 ainsi que deux autres possibilitĂ©s :â Proxy Auth Req.informant lâutilisateur quâil doit sâidentifier, celui-cirĂ©Ă©met alors un message
INVITE avec son authentification incluse (une clĂ© secrĂšte par exemple) ;â Moved Temporarilyinformant lâutilisateur que la personne quâil cherche Ă contacter se trouve Ă
une autre adresse, celui-ci rĂ©Ă©met alors un messageINVITE Ă lâadresse quâil vient de recevoir.La dĂ©finition dâun type de message varie selon la granularitĂ©souhaitĂ©e mais il est facilement com-
prĂ©hensible quâil ne peut ĂȘtre dĂ©rivĂ© quâĂ partir de champs Ă©tant des mots clĂ©s ou trĂšs peu variables. Lecas suivant est une requĂȘte HTTP pour tĂ©lĂ©charger une page Web :
GET /index.html HTTP/1.1 Host: loria.fr
Ce message peut alors ĂȘtre identifiĂ© comme une requĂȘteGET ou une requĂȘte de typeGET HTTP/1.1sion dĂ©sire introduire la version. Cependant, ajouter Ă la dĂ©finition du type le chemin dâaccĂšs Ă la page oule domaine concernĂ© ne semble pas judicieux dans le contextede la rĂ©tro-ingĂ©nierie.
2.2.2 DĂ©finition
La rĂ©tro-ingĂ©nierie de protocoles se dĂ©finit comme la tĂąche qui consiste Ă retrouver la maniĂšre dontfonctionne un protocole Ă partir dâexemples dâexĂ©cution. Cette dĂ©finition reste assez vague car elle re-groupe plusieurs mĂ©thodes schĂ©matisĂ©es sur la figure 2.6. Tout dâabord, les exemples dâexĂ©cution ontdiffĂ©rentes formes comme des traces rĂ©seaux stockĂ©es dans un fichier (tcpdump [2]) ou directementcapturĂ©es sur un rĂ©seau local voire sur Internet. Dâun autrecĂŽtĂ©, si on dispose dâun accĂšs Ă une machineexĂ©cutant le protocole Ă Ă©tudier, alors on peut aussi analyser la machine : accĂšs Ă la mĂ©moire, aux fichiers,librairies utilisĂ©es, appels de fonction... Il est bien entendu possible de combiner ces diffĂ©rentes sourcesdâinformation. En effet, il est tout Ă fait imaginable de tester le protocole dâune nouvelle application enessayant ses diffĂ©rentes fonctionnalitĂ©s et en inspectantles messages engendrĂ©s.
Le cĆur de la rĂ©tro-ingĂ©nierie se divise en trois aspects quisont mis en lumiĂšre par un exemple decommande ICMP (Internet Control Message Protocol) [12] oĂč un utilisateur tente de faire un ping grĂąceĂ une requĂȘteECHO. La destination nâĂ©tant pas accessible, la rĂ©ponse est un message de typeDESTI-NATION UNREACHABLE. La premiĂšre Ă©tape consiste donc Ă retrouver le type des messages Ă©changĂ©s
47
Chapitre 2. Rétro-ingénierie de protocoles
FichiersMĂ©moire
ProcessusPrimitivesAffichage
...RĂ©seau
FIGURE 2.6 â La rĂ©tro-ingĂ©nierie de protocoles illustrĂ©e par un exemple sur unping ICMP [12]
car tous les protocoles reposent sur plusieurs types de messages. Une fois ces types identifiĂ©s, il est alorspossible dâen extraire la syntaxe comme pour le cas dâICMP oĂčles deux premiers octets correspondentau type du message ainsi quâĂ un code. Par exemple le messagex0305indique effectivement que le des-tinataire nâest pas atteignable et plus particuliĂšrement que le routage du message a Ă©chouĂ©. La derniĂšreĂ©tape vise quant Ă elle Ă reconstruire la machine Ă Ă©tats du protocole. Les types de messages ou unespĂ©cification plus prĂ©cise (contenu dâun champ par exemple)sont nĂ©cessaires pour cette construction.
On notera que la dĂ©couverte des types des messages et lâapprentissage de leurs syntaxes peuvent ĂȘtresimultanĂ©s. En effet, la syntaxe du protocole peut aussi servir Ă en dĂ©couvrir le type car elle peut rĂ©vĂ©lerlâexistence dâun ou plusieurs champs dâoĂč il est dĂ©rivĂ©.
Historiquement, les travaux de Lee et Sabnani [27] introduisent la notion de rĂ©tro-ingĂ©nierie de pro-tocoles de communication mais elle diffĂšre de celle introduite ici. Leur but Ă©tait de dĂ©tecter si le com-portement dâun programme Ă©tait conforme Ă celui dĂ©fini dans les spĂ©cifications du protocole concernĂ©.Cependant, dans la problĂ©matique Ă©tudiĂ©e ici, aucune spĂ©cification nâest disponible.
48
2.2. Généralités
2.2.3 Applications
Les applications de la rétro-ingénierie sont nombreuses etvariées dont les plus notables sont décritesci-aprÚs.
DĂ©veloppement dâapplications ânormalesâ
Il est Ă©vident que les spĂ©cifications dâun protocole dĂ©rivĂ©es grĂące Ă la rĂ©tro-ingĂ©nierie permettentde dĂ©velopper une application lâutilisant. Ce fut notamment le cas pour des applications libres clonescomme par exemple :
â le projet Samba [5] qui a dĂ©veloppĂ© un client libre pour le protocoleSMBde partageWindows;â le protocole de messagerie instantanĂ©e MSN dĂ©veloppĂ© initialement par Microsoft puis utilisĂ©
ensuite dans de nombreux clients alternatifs [8] ;â OSCAR, le protocole crĂ©Ă© par AOL pour AIM et ICQ [7] ;â Skype, logiciel de VoIP P2P bien connu, fut quant Ă lui aussilâobjet de tentatives de rĂ©tro-
ingénierie [4].
Découverte de vulnérabilités
GrĂące Ă la machine dâĂ©tats du protocole, il est alors possible de voir sâil nâexiste pas des moyens deparvenir dans un Ă©tat dâerreur ou de gĂ©nĂ©rer une sĂ©rie de tests pour chercher des vulnĂ©rabilitĂ©s [56]. Laconnaissance de la syntaxe du protocole permet de malformervolontairement des messages pour essayerde dĂ©couvrir des vulnĂ©rabilitĂ©s. Ces techniques sont regroupĂ©es sous le terme defuzzing[55] Ă lâinstarde [34].
DĂ©tection dâintrusion et supervision
La plupart des systĂšmes de dĂ©tection dâintrusion comme Snort [76] nĂ©cessitent dâinspecter les pa-quets de maniĂšre prĂ©cise et dâen extraire des informations selon le protocole utilisĂ©. Par exemple, unevĂ©rification Ă©lĂ©mentaire cherche Ă dĂ©terminer si les messages envoyĂ©s respectent bien le protocole. DemĂȘme, si on souhaite superviser le rĂ©seau et notamment obtenir des informations dĂ©taillĂ©es sur les ser-vices utilisĂ©s (ne fonctionnant pas forcĂ©ment sur les portsstandards) et leurs utilisateurs, on doit dans unpremier temps connaĂźtre les protocoles utilisĂ©s. Câest dans cette optique que GAPAL [14] a Ă©tĂ© proposĂ©.GAPAL permet de mettre au point automatiquement des analyseurs de protocole, pour en extraire lesdiffĂ©rentes informations, et ce Ă partir dâune spĂ©cification. Cette derniĂšre doit cependant ĂȘtre fournie ouĂȘtre dĂ©rivĂ©e grĂące Ă la rĂ©tro-ingĂ©nierie.
Autres applications
Il existe encore deux autres types dâapplications importantes :â le rejeu vise Ă rejouer une communication prĂ©cĂ©dente. PlusprĂ©cisement, le but est de rĂ©ussir Ă
se faire passer pour une entitĂ© implĂ©mentant le protocole sans vraiment le connaĂźtre. Il est doncnĂ©cessaire pour cela dâavoir extrait quelques Ă©lĂ©ments de la syntaxe pour Ă©viter dâenvoyer desmessages malformĂ©s. Cependant, la section 2.5 mettra en Ă©vidence que le rejeu peut ĂȘtre considĂ©rĂ©en soi comme de la rĂ©tro-ingĂ©nierie ;
â le fingerprinting cherche Ă identifier des Ă©quipements dâaprĂšs le contenu des messages envoyĂ©s.Le chapitre 3 lui est entiĂšrement dĂ©diĂ©.
49
Chapitre 2. Rétro-ingénierie de protocoles
â lâanalyse du fonctionnement dâun malware pour comprendrela maniĂšre dont il interagit avecdâautres entitĂ©s. Par exemple, la rĂ©tro-ingĂ©nierie dâun programme bot permet de savoir de quellemaniĂšre les ordres lui sont envoyĂ©s.
2.3 DĂ©couverte des messages : types et syntaxe
Une Ă©tape clĂ© dans la rĂ©tro-ingĂ©nierie de protocoles est la dĂ©couverte automatique des types de mes-sage et si possible la syntaxe associĂ©e. Comme prĂ©cĂ©demmentmises en Ă©vidence, certaines techniquesse basent uniquement sur les traces rĂ©seau alors que dâautres observent la machine hĂŽte en mĂȘme temps.Ces deux approches seront Ă©tudiĂ©es dans cette section.
2.3.1 à partir de traces réseaux
Initialement, la rĂ©tro-ingĂ©nierie de protocoles se faisait manuellement et Ă©tait donc une tĂąche dif-ficile et longue Ă rĂ©aliser. Le projet Samba [5] a demandĂ© 12 ans dâeffort pour avoir une spĂ©cificationutilisable. De ce fait, des mĂ©thodes automatiques sont rapidement apparues. Beaucoup dâentre elles etnotamment les premiĂšres se sont basĂ©es sur des travaux en bio-informatique visant Ă Ă©tablir des liensentre les diffĂ©rents gĂšnes selon leur ressemblance grĂące Ă des techniques dâalignement de sĂ©quences. [6]sâinspire de ces travaux en considĂ©rant que chaque paquet rĂ©seau correspond Ă une sĂ©quence. Deux typesdâalignements sont exploitĂ©s :
â un alignement local dont le but est dâextraire le type gĂ©nĂ©ral du message ;â un alignement global visant Ă retrouver la syntaxe du message.Lâalignement local cherche Ă trouver deux sous-sĂ©quences similaires avec un score maximal et est
notamment implantĂ© par le biais de lâalgorithme de Smith-Waterman [28]. Le score est calculĂ© Ă partir destransformations nĂ©cessaires pour passer dâune sĂ©quence Ă une autre. Chaque transformation â insertion,substitution ou suppression â dĂ©valorisera alors le score.Dâun autre cĂŽtĂ©, quand aucune transformationnâest nĂ©cessaire, le score sera augmentĂ©. Il mesure donc la similaritĂ© entre deux messages. Il devientalors possible de regrouper les messages selon leurs ressemblances.
La seconde Ă©tape dâalignement global, basĂ©e sur lâalgorithme de Needleman-Wunsch [29], est assezsimilaire mais ne peut sâappliquer quâĂ des messages identiques et donc de mĂȘme type. En effet, elleconsidĂšre les messages intĂ©gralement et ne se limite donc pas Ă chercher une sous-sĂ©quence seulementmais bel et bien une sĂ©quence globale. Par exemple, lâexemple suivant prĂ©sente deux messagesHTTP[7] rĂ©duits :
message 1 : GET /index.html HTTP/1.1 Host: loria.frmessage 2 : GET / HTTP/1.0 Host: www.google.com
On obtiendra alors lâalignement global suivant :
message 1 : GET /index.html HTTP/1.1 Host: ____lo_ria._frmessage 2 : GET /__________ HTTP/1.1 Host: www.google.com
Pour aligner les sĂ©quences, des trous ont Ă©tĂ© introduits et correspondent Ă des insertions ou des substitu-tions selon le message considĂ©rĂ©. De plus, certains caractĂšres sont diffĂ©rents dâun message Ă lâautre. Unconsensus est ensuite dĂ©rivĂ© oĂč lâensemble des trous et des caractĂšres diffĂ©rents sont remplacĂ©s par uncaractĂšre joker. Dans lâexemple prĂ©cĂ©dent, le consensus est :
50
2.3. DĂ©couverte des messages : types et syntaxe
GET /?????????? HTTP/1.1 Host: ??????????????
La syntaxe des messages HTTP est alors partiellement dĂ©voilĂ©e en ayant notamment mis en valeur leschamps fixes (HTTP/1.1) ou les mots clĂ©s du protocole (GET, Host) et les champs variables (domaine,chemin dâaccĂšs).
PEXT [16] propose dâidentifier les messages de mĂȘme type grĂące Ă un algorithme de classificationassez simple : la classification ascendante hiĂ©rarchique [27]. En quelques mots, la mĂ©thode considĂšretout dâabord chaque message comme un groupe Ă part entiĂšre. Les deux groupes les plus proches sontalors rĂ©unis en un seul et ainsi de suite jusquâĂ ce que la distance entre les groupes les plus prochessoit supĂ©rieure Ă un certain seuil. La distance entre deux groupes est la distance minimale entre deuxmessages de chacun dâeux. Cette derniĂšre est quant Ă elle fonction de la plus longue sĂ©quence de bits oudâoctets partagĂ©s en se basant sur un algorithme proche de ceux Ă©voquĂ©s lors des techniques dâalignementde sĂ©quences. La reconstruction de la machine Ă Ă©tats est aussi abordĂ©e dans ce papier et sera prĂ©sentĂ©edans la section suivante.
Lâobjectif de Discoverer [8] est de plus haut niveau puisquecette application ne cherche pas seule-ment Ă dĂ©couvrir les diffĂ©rents types de messages mais aussileurs formats. La premiĂšre Ă©tape de Dis-coverer vise Ă dĂ©limiter les champs binaires et les champs detexte. Les octets de texte correspondent Ă des valeurs ASCII (American Standard Code for Information Interchange) ou Unicode [1], le reste Ă©tantconsidĂ©rĂ© comme binaire. Un ou plusieurs champs textuels seretrouvent entre deux marqueurs binaires.Enfin, chaque segment de texte est divisĂ© selon la prĂ©sence ounon de sĂ©parateurs (espace, tabulation...).Chaque octet binaire est considĂ©rĂ© comme un champ Ă part entiĂšre puisque ce type de dĂ©coupage estimpossible. LâĂ©tape suivante regroupe les messages ayant la mĂȘme structure, câest-Ă -dire le mĂȘme en-chaĂźnement de champs de texte et de champs binaires. Cette premiĂšre classification incorpore aussi lanotion de direction introduite dans la structure des messages car dans les protocoles clients-serveur, la na-ture des messages envoyĂ©s par lâun ou lâautre est souvent trĂšs diffĂ©rente. Pendant cette phase, les champsdynamiques et statiques peuvent aussi facilement ĂȘtre repĂ©rĂ©s.
A partir de ce point la sémantique des champs est étudiée pourrepérer ceux de typelongueur, dé-calageetcookiegrùce à la méthode exposée dans [21] que les auteurs ont étendue (voir la section 2.5.3).Les décalagessont notamment repérés en comparant la différence entre la valeur numérique de deuxchamps par rapport à la différence de placement des champs suivants.
GrĂące Ă cette sĂ©mantique et Ă la diffĂ©renciation binaire/texte, les messages partageant exactement lamĂȘme sĂ©quence sont rassemblĂ©s dans un groupe. Si aucune sĂ©mantique ne peut ĂȘtre associĂ©e, le contenuest directement comparĂ©. Le nouveau format obtenu est donc de la forme :
format : champ*champ : type, variable, sémantiquetype : binaire | textevariable : statique | dynamiquesémantique : aucune | longueur | décalage | cookie
Ainsi Discoverer est capable dâinfĂ©rer les formats des messages. Cependant, des messages de mĂȘmeformat peuvent ĂȘtre de type distinct. On peut citer le cas du protocole SMTP [1] :
commande 1 : MAIL [email protected] 2 : RCTP [email protected]
Ces deux commandes sont bien de types diffĂ©rents (MAIL et RCTP) mais partagent le mĂȘme format :deux champs variables sans sĂ©mantique dans le cadre des dĂ©finitions prĂ©cĂ©dentes. Les identificateursde formats (IF) visent Ă diffĂ©rencier les deux types de messages. Ici le premier champ est un IF. Sanstrop entrer dans les dĂ©tails, un champ est assimilĂ© Ă un IF lorsquâun champ dynamique a un nombre de
51
Chapitre 2. Rétro-ingénierie de protocoles
GET /index.html HTTP/1.1 Host: loria.fr
FIGURE 2.7 â Analyse par tainting
valeurs possibles rĂ©duit. Ensuite pour chacune de ces valeurs, le groupe est sĂ©parĂ© en deux. Dans le cas delâexemple ci-dessus, il faut bien entendu que les traces capturĂ©es soient assez consĂ©quentes de maniĂšre Ă observer plusieurs messages MAIL et RCTP.
AprĂšs ces diffĂ©rentes phases de classification, DiscovererdĂ©couvre beaucoup plus de formats demessages quâil en existe rĂ©ellement. Cela provient de la classification initiale qui impose aux messagesdâun mĂȘme groupe dâavoir exactement la mĂȘme structure. Une ultime phase consiste donc Ă regrouperles groupes (ou formats) en utilisant lâalignement de sĂ©quences [29] non plus octet par octet mais champpar champ ou deux champs sont Ă©gaux si et seulement si ils sontde mĂȘme type (binaire ou textuel) etsâils partagent la mĂȘme sĂ©mantique ou ont au moins une valeurcommune.
Les deux principaux inconvĂ©nients de cette mĂ©thode sont lâabsence de sĂ©mantique associĂ©e auxchamps binaires (chaque octet est un champ Ă part entiĂšre) ainsi que lâutilisation supposĂ©e de sĂ©para-teurs prĂ©dĂ©finis (espaces, tabulations...), ce qui reprĂ©sente une condition assez forte.
Dans [19], lâapproche avancĂ©e est semi-automatique puisquâelle demande Ă lâutilisateur dâĂȘtre ca-pable dâidentifier manuellement au prĂ©alable le champ quâilsouhaite extraire du message, ce champpeut alors correspondre au type du message. La mĂ©thode dâapprentissage employĂ©e consiste Ă gĂ©nĂ©rerdes exemples reprĂ©sentant le champ extrait. Ils correspondent en fait Ă des conditions sur les octets dumessage. Par exemple, le champ dĂ©limitĂ© par lâutilisateur peut toujours ĂȘtre prĂ©cĂ©dĂ© par un octet Ă©gal Ă 00. Des contre-exemples sont gĂ©nĂ©rĂ©s Ă©galement. Lâensemble de ces exemples servent alors Ă extraire cechamp dans un autre message et lâutilisateur confirme si la rĂ©ponse est bonne ou mauvaise. Ce processuscontinue ainsi de maniĂšre incrĂ©mentale jusquâĂ ce que lâutilisateur considĂšre que le systĂšme est assezefficace.
2.3.2 En observant la machine hĂŽte
Caballeroet al. [15] constatent que les traces rĂ©seaux manquent de sĂ©mantique et la difficultĂ© pourassocier une sĂ©mantique aux diffĂ©rents champs dâun messagea Ă©tĂ© mise en Ă©vidence au paragrapheprĂ©cĂ©dent. Le systĂšme exposĂ© dans ce papier se nommePolyglot et lâapproche consiste Ă analyser dy-namiquement la maniĂšre dont un message est traitĂ©. La premiĂšre Ă©tape doit extraire une trace dâexĂ©cutionsystĂšme Ă partir dâun message et de lâanalyse du programme qui le traite grĂące Ă une technique detainting[14]. Cela demande de marquer chaque paquet arrivant sur lâinterface rĂ©seau de la machine et Ă propagerce marquage sur chaque rĂ©sultat dâopĂ©ration appliquĂ©e sur les donnĂ©es de celui-ci. Une opĂ©ration peutĂȘtre arithmĂ©tique, logique ou un dĂ©placement de donnĂ©es. Lemarquage indiquera quelle partie des don-
52
2.3. DĂ©couverte des messages : types et syntaxe
nĂ©es originales sont utilisĂ©es. Par exemple, lorsquâun champ est extrait du message et stockĂ© dans unregistre, ce registre se retrouve marquĂ©. Le cas simple dâune requĂȘte HTTP et la maniĂšre dont elle peutĂȘtre traitĂ©e sont proposĂ©s sur la figure 2.7. En fait diffĂ©rents champs sont extraits et le but de lâanalysepartainting est de garder en mĂ©moire dâoĂč proviennent ces diffĂ©rents champs.
De maniĂšre rĂ©sumĂ©e et en reprenant la nomenclature des typesde champs prĂ©cĂ©demment introduite,Polyglot procĂšde de la maniĂšre suivante. Pour les champs de positionstels que les pointeurs ou lesdĂ©calages, il suffit de voir quâune donnĂ©e marquĂ©e est employĂ©e pour effectuer un dĂ©placement (commepar exemple une boucle pour avancer dans les donnĂ©es). Les donnĂ©es pointĂ©es par ces positions sontlogiquement considĂ©rĂ©es comme des champs de longueurs variables. Intuitivement, un protocole utilisantdes sĂ©parateurs ou des mots clĂ©s va effectuer des comparaisons qui sont comptabilisĂ©es parPolyglot. Dansle cas dâune requĂȘte HTTP comme sur la figure 2.7, lâapplication bouclera sur les octets en comparantleur contenu aux diffĂ©rents sĂ©parateurs possibles (espace, tabulation...). Enfin, tout autre donnĂ©e marquĂ©emais non traitĂ©e par une de ces techniques correspond Ă un champ de longueur fixe.
Cette premiĂšre approche reste toutefois limitĂ©e Ă lâanalyse dâun message Ă la fois et aucune mĂ©thodede classification ne permet de faire des regroupements commeavant pour essayer dâinfĂ©rer les diffĂ©rentstypes de messages ainsi que leurs formats.
AutoFormat[10] a pour ambition de retrouver, en plus des diffĂ©rents champs, la structure hiĂ©rarchiquequi leur est associĂ©e câest-Ă -dire dâĂȘtre capable de retrouver une spĂ©cification semblable Ă celle fourniepar une grammaire ABNF. Effectivement, sur lâexemple ci-dessous extrait de la grammaire du protocoleHTTP, il est clair que le champRequest-Lineest divisĂ© en plusieurs autres telle une relation hiĂ©rarchique :
Request = Request-Line*(( general-header | request-header | entity-header ) CRLF ) CRLF[message-body]
Request-Line = Method SP Request-UTI SP HTTP-Version CRLF
Il existe aussi une relation sĂ©quentielle entre certains champs comme sur la derniĂšre ligne de cet exem-ple. De plus, les champs interchangeables, tout en respectant la grammaire, respectent une relation diteparallĂšle Ă lâinstar des diffĂ©rentes entĂȘtes (headers) dans lâexemple. La mĂ©thode appliquĂ©e est proche dela prĂ©cĂ©dente (Polyglot) mais introduit en plus la notion de pile dâexĂ©cution. La trace dâexĂ©cution corre-spond aux diffĂ©rentes opĂ©rations sur les donnĂ©es marquĂ©es (tainting) tout en conservant en mĂ©moire unereprĂ©sentation de la pile Ă lâexĂ©cution. Ensuite, toutes les actions successives avec la mĂȘme pile sont re-groupĂ©es en une seule pour crĂ©er un nĆud. Dans le cas contraire (pile diffĂ©rente), un nĆud Ă part est crĂ©Ă©et rattachĂ© Ă un autre prĂ©cĂ©demment crĂ©Ă© qui contient en partie les mĂȘme donnĂ©es ou, Ă dĂ©faut, au nĆudracine. Par exemple, si le texte âGET /index.htmlâ a Ă©tĂ© dĂ©placĂ© Ă un endroit de la mĂ©moire et ensuiteseulement âGETâ, le nĆud induit par le second dĂ©placement sera un fils de celui gĂ©nĂ©rĂ© par le premiercar âGETâ est une donnĂ©e marquĂ©e contenue dans âGET /index.htmlâ. AprĂšs un affinement secondairede lâarbre, un historique des piles dâexĂ©cution est adjointĂ chaque nĆud et correspond Ă lâĂ©volutionde celle-ci Ă travers lâensemble des ancĂȘtres du nĆud en question. Deux nĆuds partageant un historiquesimilaire sont supposĂ©s parallĂšles car ils se sont exĂ©cutĂ©sdans le mĂȘme contexte. Ă partir de ces relationshiĂ©rarchiques et parallĂšles, les relations sĂ©quentiellessont alors facilement extraites.
AutoFormatest donc capable dâextraire ces diffĂ©rentes structures surun message pour notamment endĂ©river une structure hiĂ©rarchique. Le seul inconvĂ©nient est quâil nâest pas pour lâinstant capable dâinfĂ©rerla syntaxe du protocole puisque seul un message est utilisĂ©.Câest dans cette optique que Wondraceketal. ont proposĂ© [12]. En utilisant des techniques similaires Ă Polyglot [15], la sĂ©mantique associĂ©e auxchamps est mise en exergue. Les auteurs arrivent notamment Ă extraire deux types de champs : leschemins dâaccĂšs Ă des fichiers et les donnĂ©es communes Ă une requĂȘte et Ă sa rĂ©ponse, ce qui est seule-ment possible en utilisant de multiples messages. Une structure hiĂ©rarchique est aussi induite en repĂ©rant
53
Chapitre 2. Rétro-ingénierie de protocoles
Message 1
MotâclĂ© X MotâclĂ© Y
SĂ©parateur "/"
MotâclĂ© K Token
Message 2
MotâclĂ© X MotâclĂ© Z
SĂ©parateur "/"
Token
(a) Alignement de deux messages
Message
MotâclĂ© X MotâclĂ©
alternatif Y | Z
SĂ©parateur "/"
MotâclĂ©
optionnel K
Token
(b) Arbre général
FIGURE 2.8 â DĂ©duction du format gĂ©nĂ©ral dâun message
les donnĂ©es marquĂ©es (tainting) qui sont des sous-parties dâautres donnĂ©es marquĂ©es elles aussi. Un ar-bre gĂ©nĂ©ral est dĂ©duit en exploitant les techniques dâalignement de sĂ©quences [29] sur plusieurs arbres.Lâalignement est dâabord appliquĂ© sur les feuilles des arbres dâaprĂšs leurs sĂ©mantiques. Par exemple,des champs de longueurs correspondent si leurs tailles sontidentiques, si les champs quâils dĂ©limitentcorrespondent aussi. Le score de chaque alignement est propagĂ© aux nĆuds pĂšres et ainsi de suite pourobtenir un score global. Lâexemple donnĂ©e dans la figure 2.8 repris de [12] donne un aperçu du fonc-tionnement de lâalignement et surtout de son rĂ©sultat. Au premier niveau (le plus bas), untoken(champssans sĂ©mantique associĂ©e) est dĂ©limitĂ© par le caractĂšre sĂ©parateur â\\â mais le premier message comporteen plus le mot-clĂ© K, lâalignement va donc insĂ©rer un blanc (suppression) Ă cet endroit. En appliquant ceprocessus rĂ©cursif en remontant lâarbre, il apparaĂźt que lastructure des messages est identique exceptĂ©epour les mots clĂ©s Y et Z, le rĂ©sultat de lâalignement dans ce cas lĂ est donc une substitution. LâĂ©tapefinale consiste alors Ă traduire cet alignement en format de messages oĂč une suppression concorde avecquelque chose dâoptionnel tandis quâune substitution reprĂ©sente une alternative comme prĂ©sentĂ© dans lafigure 2.8(b)
Cui et al. [11] sâinspirent des travaux prĂ©cĂ©dents basĂ©s sur lâanalyse partainting tout en mettant enlumiĂšre leurs limitations. Tout dâabord, les messages ne comportent pas uniquement des champs maisaussi des donnĂ©es de taille variable, comme par exemple un fichier multimĂ©dia. DeuxiĂšmement, lesvaleurs des diffĂ©rents champs peuvent ĂȘtre contraints entre eux Ă lâinstar des vĂ©rifications par somme decontrĂŽle (checksum en anglais) ou les numĂ©ros de sĂ©quences et dâacquittements TCP. Ces informationssont essentielles pour produire efficacement des signatures pour les attaques de type 0-jour (ou 0-day enanglais) [35]. Le systĂšme proposĂ©,Tupni, recherche les diffĂ©rentes sĂ©quences de donnĂ©es en cherchantles boucles permettant de les lire, câest-Ă -dire des boucles telles que chaque itĂ©ration traite une nouvellepartie du message. En se basant sur la trace dâexĂ©cution dâune application et notamment les diffĂ©rentesconditions testĂ©es, Tupni dĂ©duit les diffĂ©rentes contraintes par rapport aux donnĂ©es marquĂ©es, câest-Ă -direle message original.
Enfin, on peut citerReFormat[13] qui, pour la premiÚre fois, cherche à inférer la syntaxede messages
54
2.4. Apprentissage de la machine Ă Ă©tats
chiffrĂ©s. Intuitivement, les fonctions de dĂ©chiffrement font appel Ă de nombreuses opĂ©rations arithmĂ©-tiques et logiques.ReFormatcommence donc par dĂ©tecter les phases oĂč ces instructions sont grandementutilisĂ©es, ce qui correspond Ă la phase de dĂ©chiffrement. Puis, un retour Ă la normale indique que le pro-gramme commence Ă traiter le message dĂ©chiffrĂ©. Une deuxiĂšme phase sâappuie surAutoFormat[10]mais il est nĂ©cessaire de savoir oĂč a Ă©tĂ© stockĂ© le message dĂ©chiffrĂ©. Par consĂ©quent, les auteurs sug-gĂšrent dâobserver le temps de vie des zones de la mĂ©moire tampon câest-Ă -dire le temps pendant lequelelles sont allouĂ©es.ReFormatrepĂšre lâendroit oĂč le message dĂ©chiffrĂ© est localisĂ© car ildoit se trouverdans des zones qui sont en vie pendant la phase de dĂ©chiffrement et la phase de traitement du message.
2.4 Apprentissage de la machine Ă Ă©tats
Peu de travaux sâattellent Ă dĂ©finir la machine Ă Ă©tats du protocole alors que la plupart se focalisentsur lâinfĂ©rence des types de message ou de la syntaxe de ces derniers. Supposons que chaque messagesoit associĂ© Ă un type grĂące Ă une des mĂ©thodes prĂ©cĂ©demment dĂ©taillĂ©es, il est donc possible dâobserverlâenchaĂźnement des types de messages. GrĂące Ă ces exemples dâexĂ©cution, le but est de reconstruirelâautomate le plus petit tout en Ă©tant cohĂ©rent avec les exemples. A proprement parler, ce problĂšmenâest pas spĂ©cifique au domaine de la rĂ©tro-ingĂ©nierie et estfortement liĂ© aux problĂšmes dâinfĂ©rencede grammaire dâun langage Ă partir dâexemples. Ce problĂšme est connu pour ĂȘtre NP-complet [31] etlâensemble des algorithmes pour le rĂ©soudre sont des approximations qui demandent souvent des contre-exemples [26]. Dans ce contexte, il faudrait ĂȘtre capable dedistinguer les enchaĂźnements qui aboutissentĂ un Ă©tat acceptable et inversement. Ensuite, de nombreux travaux permettaient de tester lâautomate entemps rĂ©el [30, 29]. Dans ce cas, cela correspondrait Ă envoyer activement des messages vers lâapplicationet en observer le comportement rĂ©sultant pour en dĂ©duire la machine Ă Ă©tats. Ce type dâapproche estaussi difficile Ă mettre en Ćuvre. Les mĂ©thodes les plus rĂ©centes sont basĂ©es sur des arbres et plusparticuliĂšrement des arbres APTA (Augmented Prefix Tree Acceptor en anglais) [24]. Par exemple, surla figure 2.9(a), deux sĂ©quences de messages sont reprĂ©sentĂ©es puis sont regroupĂ©es dans un arbre surla figure 2.9(b) tout simplement en rajoutant un nĆud racine.Enfin, lâarbre APTA de la figure 2.9(c) estobtenu en groupant les prĂ©fixes communs. Les mĂ©thodes actuelles cherchent alors Ă simplifier ces arbresen regroupant des Ă©tats. Nombre dâentre elles sont dĂ©critesdans [24].
La rĂ©tro-ingĂ©nierie peut donc sâappuyer sur ces travaux pour produire la machine Ă Ă©tats. Deux pa-piers dĂ©taillent ces aspects de la rĂ©tro-ingĂ©nierie [9, 16]. Prospex [9] repose sur les travaux [15, 12] pourinfĂ©rer le format des messages mais propose dans un premier temps de dĂ©couper une session entiĂšre enplusieurs messages. En effet, il peut arriver quâun messagesoit dĂ©coupĂ© en plusieurs paquets rĂ©seaux etil est alors plus simple dâĂ©tudier lâensemble de la communication câest-Ă -dire la session. Pour dĂ©couperune telle session, Prospex repĂšre Ă partir de quel moment, une rĂ©ponse est Ă©mise. Par exemple, si aprĂšsavoir lu deux paquets, une rĂ©ponse est envoyĂ©e alors ces deuxpaquets correspondent Ă un message.Ensuite, un algorithme de classification est appliquĂ© pour trouver les diffĂ©rentes classes ou types de mes-sages. Celui-ci repose sur une mesure de distance entre deuxmessages, elle-mĂȘme basĂ©e sur plusieurscaractĂ©ristiques :
â les formats des messages ;â le comportement de lâapplication lors du traitement dâun message : fonctions appelĂ©es, librairies
chargĂ©es...â ce que lâapplication produit en sortie : messages envoyĂ©s,donnĂ©es Ă©crites sur le systĂšme de fichiers.
Selon les caractĂ©ristiques Ă©tudiĂ©es, la similitude est unefois de plus mesurĂ©e grĂące Ă la technique delâalignement de sĂ©quences [29] ou alors grĂące Ă lâindice de Jaccard [30] qui est le quotient entre lâinter-section et lâunion de deux ensembles. Dans le cas prĂ©sent, les librairies chargĂ©es peuvent constituer un
55
Chapitre 2. Rétro-ingénierie de protocoles
A
B
B
A
C
SĂ©quence 1 SĂ©quence 2
A
A
B
C
(a) SĂ©quences initiales
A
A
B
C
A
B
B
A
C
(b) Groupementdes séquences
A
A
B
C
B
B
A
C
(c) Arbre APTA
FIGURE 2.9 â Construction de lâarbre APTA
tel ensemble. Une fois les messages classĂ©s, un arbre APTA est construit et un algorithme de regroupe-ment dâĂ©tats est appliquĂ©. Sans entrer dans les dĂ©tails, il est nĂ©cessaire que chaque Ă©tat soit Ă©tiquetĂ©. Ensupposant que tous sont des Ă©tats dâacceptation, lâarbre serĂ©duirait Ă un seul Ă©tat. Chaque Ă©tat est doncĂ©tiquetĂ© par les conditions nĂ©cessaires pour y parvenir.
PEXT [16] construit quant Ă lui lâautomate gĂ©nĂ©ral dâune application qui peut utiliser plusieurs con-nexions comme câest le cas pour FTP [11]. La mĂ©thode commencedâabord par dĂ©couper la sĂ©quencede messages selon les diffĂ©rents flux puis recherche les sĂ©quences de messages identiques ou similairesqui ont pu ĂȘtre observĂ©es. Ce dĂ©coupage crĂ©e donc des Ă©tats qui peuvent inclure plusieurs messages.Pour chaque Ă©tat, il existe donc une sĂ©quence de messages, les Ă©tats identiques sont regroupĂ©s. Lâauto-mate ainsi dĂ©fini est alors transformĂ© notamment pour rendreles transitions dĂ©terministes. La mĂ©thodeproposĂ©e est donc simple mais risque dâĂȘtre mise Ă mal avec des protocoles complexes oĂč la mĂȘmesĂ©quence de messages peut apparaĂźtre plusieurs fois mais dans des contextes diffĂ©rents, ce qui nâest paspris en compte ici.
2.5 Le rejeu
2.5.1 Cas de figure simple
Le rejeu consiste Ă pouvoir communiquer avec une autre machine Ă partir dâobservations dâĂ©changesentre deux entitĂ©s rĂ©elles. Il nâest pas forcĂ©ment nĂ©cessaire de retrouver toute la syntaxe dâun protocoleou sa machine Ă Ă©tats. Le but du rejeu nâest pas unique et peut prendre diffĂ©rentes formes.
A titre dâexemple, lâattaque par rejeu peut permettre dâoutrepasser certains droits en usurpant lâiden-titĂ© dâune tierce personne qui possĂšde rĂ©ellement ces droits. Sur la figure 2.10(a), Charlie commence parfaire une attaque de typelâhomme du milieuappelĂ©e plus communĂ©ment en anglaisman in the middle.Plusieurs choix sâoffrent Ă lui selon la situation ; par exemple, il pourra espionner les communications
56
2.5. Le rejeu
(a) Dans un premier temps, Charlie, lâhomme du milieu,intercepte la communication
(b) Dans un second temps, Char-lie souhaite mettre Ă jour sa listede mots de passe, il envoie donc lemessage quâil a capturĂ© prĂ©cĂ©dem-ment
FIGURE 2.10 â Attaque par rejeu simple
sur le rĂ©seau local de Bob ou Alice ou utiliser lâARP spoofing pour se faire passer pour Alice auprĂšs deBob et inversement. De ce fait il est capable dâobserver la requĂȘte dâAlice et le fichier confidentiel queBob lui envoie. Quelques jours aprĂšs, Charlie veut mettre Ă jour la liste de mots de passe quâil a rĂ©ussiĂ dĂ©rober auparavant. Cependant, lâattaque delâhomme du milieuĂ©choue [47], il dĂ©cide alors de mimerAlice et de renvoyer la requĂȘte quâil avait capturĂ©e sans aucune idĂ©e de son sens exact ou de sa syntaxe.Finalement, Bob lui envoi le nouveau fichier de mots de passe.
2.5.2 ProblĂšme
Lâattaque prĂ©cĂ©dente est extrĂȘmement simple et peut facilement ĂȘtre Ă©vitĂ©e grĂące Ă lâutilisation dâuncookie qui permet dâidentifier une session. Comme illustrĂ©esur la figure 2.11(a), Alice va dans un pre-mier temps rĂ©cupĂ©rer un cookie auprĂšs de Bob quâelle pourra alors inclure dans la requĂȘte suivante pourobtenir les mots de passe. Bob vĂ©rifiera alors que câest bien la mĂȘme session grĂące au cookie. Lors delâattaque sur la figure 2.11(b), Charlie rejoue les paquets mais ne tient pas compte de la rĂ©ponse de Bob.En consĂ©quence, il demande le fichier avec un mauvais cookie que Bob dĂ©tecte facilement.
Dans cet exemple, il suffirait donc de repĂ©rer la prĂ©sence dâun identifiant (le cookie) et de remplacersa valeur par celle reçue dans le premier message. Dans le casdâune application rĂ©elle, les modificationsĂ apporter peuvent ĂȘtre beaucoup plus nombreuses et en dĂ©finir la liste exhaustive est impossible :
â le message peut contenir par exemple des informations relatives Ă des couches rĂ©seaux infĂ©rieures(adresses IP, ports) voire le domaine rĂ©seau de la machine ;
â toute sorte dâidentifiants de session comme les cookies ;â des compteurs Ă lâinstar des numĂ©ros de sĂ©quence TCP ;â lâheure courante ;â ...
TCPReplay et TCPRewrite [2] permettent de modifier des paquets puis de les rejouer mais il est nĂ©ces-saire de fournir manuellement les rĂšgles de rĂ©Ă©criture. Un cas plus complexe mais bien rĂ©el est celui duprotocole de transfert de fichiers FTP [11]. Une premiĂšre connexion est nĂ©cessaire pour Ă©changer lescommandes et une deuxiĂšme pour transfĂ©rer les donnĂ©es identifiĂ©e par un numĂ©ro de port sur lequel seconnecter. Cette information est donc envoyĂ©e par le clientou le serveur selon le mode (passif ou actif)par lâintermĂ©diaire de la premiĂšre connexion dite de commande. Pour rejouer un Ă©change FTP du cĂŽtĂ©
57
Chapitre 2. Rétro-ingénierie de protocoles
(a) Dans un premier temps, Charlie, lâhomme du milieu,intercepte la communication
(b) Lors du rejeu, Charlie nâen-voie pas le bon cookie, lâattaqueĂ©choue
FIGURE 2.11 â Protection de lâattaque par rejeu par lâutilisation dâun cookie
de lâhĂŽte recevant le numĂ©ro de port, lâextraire du message de commande est donc obligatoire.
2.5.3 Solution
Dans le cadre de lâamĂ©lioration de leur honeypot, C. Leitaet al. ont conçu ScriptGen [23], un outilpermettant de gĂ©nĂ©rer automatiquement des rĂ©ponses Ă des requĂȘtes sans avoir Ă priori connaissancedu protocole utilisĂ©. Comme de nombreux services sont attaquables et pas forcĂ©ment implantĂ©s sur lamachine du pot de miel, ce dernier doit les Ă©muler grĂące Ă des scripts spĂ©cifiant leur fonctionnement.Ăcrire un script pour chaque service est alors une tĂąche ardue, notamment dans le cas de protocolesnon documentĂ©s, dâoĂč lâintĂ©rĂȘt de ScriptGen. Son fonctionnement se base sur [6] oĂč lâalignement desĂ©quences local aide Ă dĂ©tecter les diffĂ©rents types de messages. Une deuxiĂšme Ă©tape consiste Ă identifierles rĂ©gions semblables dans un message par rapport Ă la prĂ©sence ou non de celles-ci, aux types dedonnĂ©es (ascii, binaire...), leurs valeurs habituelles ouleurs variabilitĂ©s. Contrairement Ă la recherchedâun consensus comme dans [6], le but est de trouver ici les messages de mĂȘme type qui font Ă peu prĂšsla mĂȘme chose. Par exemple, ScriptGen arrive facilement Ă observer diffĂ©rents types de tĂ©lĂ©chargementsselon le type de fichier demandĂ© (html, gif...). La limitation actuelle de cette approche comme toutescelles basĂ©es sur lâapprentissage Ă partir dâun jeu de donnĂ©es est la complĂ©tude de celui-ci.
Le problĂšme soulignĂ© dans la section prĂ©cĂ©dente met en Ă©vidence la nĂ©cessitĂ© de chercher dansles messages les champs statiques, qui nâauront pas besoin dâĂȘtre modifiĂ©s, et les champs dynamiques,qui nĂ©cessiteront des modifications pour exĂ©cuter un rejeu correct. RolePlayer[21] a pour ambitionde rĂ©soudre ce problĂšme. Dans ce cas, un message dĂ©signe le contenu du segment TCP ou UDP. Toutdâabord, il y a un certain nombre dâinformations classiquescommunes Ă beaucoup de protocoles commeles adresses IP les ports TCP ou les noms dâhĂŽtes. Ces diffĂ©rents Ă©lĂ©ments sont extraits de la config-uration de la machine oĂč va ĂȘtre rejouĂ©e la communication mais aussi fournis par lâutilisateur en cequi concernent les machines distantes.RolePlayerentreprend alors de repĂ©rer ces diffĂ©rentes informa-tions dans les messages Ă©changĂ©s et de les dĂ©couper en fonction. Chaque paire de segments de messageest alors testĂ©e en utilisant la mĂ©thode dâalignement dĂ©jĂ proposĂ©e dans [6]. Ainsi, il peut repĂ©rer deschamps redondants comme les cookies. De plus, les protocoles spĂ©cifient souvent un champ contenantla longueur du message, [21] recherche ce type de champ en utilisant la taille totale du message et lestailles des diffĂ©rents champs quâil a dĂ©tectĂ©es prĂ©cĂ©demment.
58
2.5. Le rejeu
2.5.4 Autres applications
Bien que lâexemple de lâattaque par rejeu soit simple mais suffisant pour expliquer le principe durejeu et ses problĂšmes, le domaine dâapplication du rejeu est bien entendu plus Ă©tendu dans [21]. Pourcontinuer dans le domaine de la sĂ©curitĂ©, lors de lâapparition dâun nouveau vers sur Internet, il peutĂȘtre intĂ©ressant de voir si celui est totalement nouveau ou dĂ©rivĂ© dâun autre plus ancien. Dans ce cas,essayer de rejouer un dialogue de lâancien vers avec le nouveau est une investigation possible. De plus,il peut alors ĂȘtre intĂ©ressant de commencer le rejeu jusquâĂ atteindre un point oĂč il devient impossible(les rĂ©ponses diffĂšrent trop de la trace capturĂ©e) et dans cecas, passer la main Ă un pot de miel de hauteinteraction [51]. GrĂące Ă ce mĂ©canisme, la charge du pot de miel est rĂ©duite et le traitement des attaquesest accĂ©lĂ©rĂ©.
Dâun autre cĂŽtĂ©, lors de la dĂ©couverte dâune faille dans une application, le rejeu permet de tester cettefaille avec dâautres versions du logiciel en rejouant simplement lâattaque contre celui-ci. De plus, rejouerlâattaque est une maniĂšre de vĂ©rifier si la correction de la faille est vraiment efficace. Plus gĂ©nĂ©ralement,si on dispose dâun jeu dâattaques, lâefficacitĂ© dâun IDS comme Snort [76] peut ĂȘtre Ă©valuĂ©e avant de ledĂ©ployer sur son rĂ©seau.
De plus, effectuer une batterie de tests par rejeu peut sâappliquer Ă nâimporte quel domaine tel que lâĂ©-tude du comportement dâun serveur face Ă une charge Ă©levĂ©e derequĂȘtes valides. Supposant un protocoledonnĂ©, le rejeu peut aussi servir Ă valider si une nouvelle application le mettant en pratique fonctionnecorrectement Ă partir dâune capture rĂ©alisĂ©e grĂące Ă un logiciel prĂ©existant.
Enfin, le rejeu permet de crĂ©er rapidement une petite application clone grĂące Ă quelques exĂ©cutionsdâune autre. Reprenons lâexemple rĂ©duit du chargement dâune page Web :
message 1 : GET /index.html HTTP/1.1 Host: loria.frmessage 2 : GET / HTTP/1.0 Host: www.google.com
[21] doit rĂ©ussir Ă dĂ©tecter les diffĂ©rents champs statiques et dynamiques dâautant plus que lâutilisa-teur peut lui renseigner un certains nombres dâinformations comme lâadresse quâil a tapĂ© dans la barrede recherche. Il est alors clair quâune requĂȘte est de la forme :
GET chemin HTTP/1.1 Host: domaine
Une application simple sera donc capable de remplir les champscheminetdomaineĂ partir dâune adressedonnĂ©e par lâutilisateur.
Ces exemples dâapplications montrent clairement que le rejeu est assimilable Ă la rĂ©tro-ingĂ©nieriede protocole car il permet de dĂ©tecter des Ă©lĂ©ments de syntaxe du protocole et ses applications sonssimilaires Ă celles de la rĂ©tro-ingĂ©nierie de protocole. Dela mĂȘme maniĂšre, une bonne connaissance duprotocole par lâintermĂ©diaire de cette derniĂšre aide Ă effectuer un rejeu plus efficace. La limite entre cesdeux domaines reste donc floue. Une diffĂ©rence notable restela construction de la machine Ă Ă©tats car lerejeu se limite Ă rejouer une mĂȘme sĂ©quence vu auparavant alors que la machine Ă Ă©tats doit permettrede jouer des sĂ©quences Ă partir dâun mĂ©lange dâautres.
2.5.5 DĂ©finition formelle
J. Newsomeet al. [20] ont proposé une définition formelle du rejeu. Ils définissent les élémentssuivants :
â un ensemble dâĂ©tats du processusS;
59
Chapitre 2. Rétro-ingénierie de protocoles
â un Ă©tatsâ Scontient toutes les informations systĂšmes Ă propos du processus : pointeur sur lâin-struction suivante, valeurs des registres, de la mĂ©moire...
â un ensemble dâentrĂ©es sur lâinterface rĂ©seau câest-Ă -dire les messages possiblesI ;â P : SĂ I â SreprĂ©sente lâexĂ©cution dâun programmeP Ă partir dâun Ă©tatsâ Set dâune entrĂ©ei â I
rĂ©sultant dans un Ă©tat finalÏâS. Cet Ă©tat final correspond aussi Ă la sortie sur le rĂ©seau câest-Ă -direaux messages envoyĂ©s ;
â un ensemble de postconditionsQ dont lâintĂ©rĂȘt va ĂȘtre dĂ©taillĂ© ci-dessous.Supposons quâun processus sur la machineA exĂ©cute le programmeP Ă partir de lâĂ©tat initialsa.
ia lui est alors transmis et son Ă©tat devientÏa tel quâil existeq â Q avecq(Ïa) = Vrai oĂč Q = B|B :Sâ Vrai,Faux. Cela correspond Ă trouver une condition vraie aprĂšs que lâhĂŽteA soit passĂ© dans lenouvel Ă©tat. ConsidĂ©rons maitenant une deuxiĂšme machineB exĂ©cutant le mĂȘme programmeP auquelon transmet la mĂȘme entrĂ©eia, le rejeu rĂ©ussira si lâĂ©tat final deB, Ïb, satisfait la mĂȘme postconditionque celle deÏa, câest-Ă -direq(Ïb) =Vrai. DâaprĂšs les indications des sections prĂ©cĂ©dentes, il est clairquâil est trĂšs peu probable dâobtenir ce rĂ©sultat car, en rĂšgle gĂ©nĂ©ral, lâĂ©tat initial de B nâest pas le mĂȘmeque A (adresse IP, cookie...) et ainsiq(P(sb, ia)) = Faux. De maniĂšre formelle, le problĂšme du rejeuconsiste donc Ă trouverib tel queq(P(sb, ib)) = Vrai avecq(Ïa) = Vrai. Les postconditions sont doncessentielles dans ce problĂšme et sont Ă dĂ©finir selon les cas dâapplications. La fonctionΊ : SâQ gĂ©nĂšreune postcondition Ă partir dâun Ă©tat dâentrĂ©e. La plus basique est la suivante oĂč la postcondition est vraiepour des Ă©tats totalement identiques :
Ί(s) = (q(x) : s== x?)
Il ne faut pas oublier quâun Ă©tat regroupe tous les Ă©lĂ©ments du systĂšme et une telle fonction est inapplica-ble. A lâinverse, une dĂ©finition plus gĂ©nĂ©rale imposerait que seule la sortie (le ou les messages envoyĂ©s)soit la mĂȘme :
Ί(s) = (q(x) : sortie(s) == sortie(x)?)
Enfin, le rejeu sert aussi Ă tester et vĂ©rifier la dĂ©couverte dâune vulnĂ©rabilitĂ© en rĂ©ussissant Ă reproduirelâattaque. Supposonsp la propriĂ©tĂ© transgressĂ©e danss, elle doit alors lâĂȘtre dansx.
Ί(s) = (q(x) : (sâÂŹp)â (xâÂŹp)?)
GrĂące Ă ce modĂšle, J. Newsomeet al. ont implantĂ©Replayer[20], un outil de rejeu basĂ© sur unhaut niveau dâabstraction. Une des suppositions fondamentales est dâavoir accĂšs au programme utilisantle protocole et pas seulement des traces dâexĂ©cution.Replayercommence alors par dĂ©sassembler leprogramme pour le traduire en GCL (Guarded Command Language) [32], un langage de haut niveaubasĂ© sur la logique. Le programme sâĂ©crit alors sous forme deformules pour identifier quelles sont lesvaleurs attendues pour produire une sortie identique. Ces valeurs peuvent ĂȘtre fixĂ©es, provenir du systĂšmeou ĂȘtre directement liĂ©es Ă une entrĂ©e utilisateur.
2.6 Bilan
Ce chapitre a mis en Ă©vidence les nombreuses applications dela rĂ©tro-ingĂ©nierie de protocole ainsique ses nombreuses difficultĂ©s. Deux types majeurs dâinformations peuvent ĂȘtre dĂ©couverts :
â les diffĂ©rents types de messages qui symbolisent les genres principaux des opĂ©rations rĂ©alisablesainsi que les rĂ©ponses associĂ©es Ă un protocole donnĂ© ;
â la syntaxe des messages qui, en plus du type des messages, met en avant les diffĂ©rents champs quile composent et qui peuvent ĂȘtre vus comme les options du message.
60
2.6. Bilan
Approches Cas dâutilisation Avantages InconvĂ©nientsAnalysedes tracesrĂ©seaux
â installationinterditeou risquĂ©edâun logicielutilisant leprotocole
â captures detraces rĂ©ellespossibles
â acquisition / installation fac-ultative dâun logiciel âmoins de risques, moins coĂ»-teux
â captures dâutilisationsrĂ©elles souvent assez com-plĂštes â pas besoin detester manuellement touteles fonctionnalitĂ©s delâapplication
extraction de la syntaxe diffi-cile et souvent partielle
Analyse partainting
installation possi-ble dâun logicielutilisant le proto-cole + instrumen-tation dâune ma-chine
extraction plus complÚte (sé-mantique, structure), praticableavec des messages chiffrés
â coĂ»t plus elevĂ© : acqui-sition/installation/tests dâunlogiciel utilisant le protocole+ instrumentation de la ma-chine
â plus risquĂ© car comporte-ment non connu Ă lâavance
TABLE 2.1 â Techniques de rĂ©tro-ingĂ©nierie de protocoles
DĂ©tecter le type des messages est une Ă©tape essentielle pouravoir un aperçu gĂ©nĂ©ral du fonctionnement duprotocole. La machine Ă Ă©tats est dâailleurs souvent induite Ă partir de ces derniers. La syntaxe introduitune granularitĂ© plus fine qui devient intĂ©ressante lorsque lâon souhaite utiliser le protocole en tant que tel.Cependant, les mĂ©thodes de rejeu montrent que pour mimer uneapplication rĂ©elle, dĂ©couvrir lâensemblede la syntaxe nâest pas forcĂ©ment nĂ©cessaire.
Par ailleurs, il existe aussi deux types de donnĂ©es Ă partir desquelles sont infĂ©rĂ©es ces informations :â les traces rĂ©seaux ;â les traces dâexĂ©cutions systĂšmes.
Comme le montre le tableau rĂ©capitulatif 2.1, le deuxiĂšme type a permis lâĂ©laboration des outils lesplus performants mais requiert dâavoir une application implantant le protocole Ă©tudiĂ© tournant sur unemachine spĂ©cialement instrumentĂ©e. Dans le cas de lâĂ©tude dâun malware, cette approche est plus diffi-cilement rĂ©alisable car le malware tentera de dĂ©tecter une telle instrumentation pour lâinduire en erreur.De plus, exĂ©cuter un malware comporte Ă©videmment des risques.
RĂ©cupĂ©rer des traces rĂ©seaux est plus facile et beaucoup plus discret. Le plus simple consiste Ă Ă©couterle trafic dâune machine infectĂ©e ce qui pose une fois de plus leproblĂšme dâinstaller et dâexĂ©cuter unmalware. Cependant, il est possible dâimaginer quâune foisquâune machine compromise est dĂ©tectĂ©e, letrafic est rapidement capturĂ© avant sa dĂ©sinfection. De mĂȘmeun opĂ©rateur a la capacitĂ© de rĂ©cupĂ©rer cetype de trafic sans devoir installer le malware puisque celui-ci peut dĂ©jĂ sĂ©vir sur les machines de sesclients.
61
3
Fingerprinting
Sommaire3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 633.2 MĂ©thodes de fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . .. . . 64
3.2.1 Fingerprinting passif . . . . . . . . . . . . . . . . . . . . . . . . . .. . 64
3.2.2 Fingerprinting actif . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 65
3.2.3 Fingerprinting semi-passif . . . . . . . . . . . . . . . . . . . . .. . . . 66
3.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 663.3.1 SystĂšmes dâexploitation . . . . . . . . . . . . . . . . . . . . . . . .. . . 67
3.3.2 Protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.3.3 Ăquipement, pile protocolaire . . . . . . . . . . . . . . . . . . .. . . . . 75
3.3.4 Comptage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.4 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.1 Introduction
Le fingerprinting est un terme anglais difficilement traduisible dans le contexte des rĂ©seaux. Unetraduction parfois rencontrĂ©e dans la littĂ©rature estprise dâempreinte. Effectivement, le fingerprintingvise Ă rĂ©cupĂ©rer lâempreinte, aussi dĂ©nommĂ©e fingerprint ousignature, dâune donnĂ©e pour retrouverlâidentitĂ© correspondante.
Une fois de plus, ce domaine nâest pas purement informatiquecomme le montre la racine du motrelatif Ă la prise dâempreintes digitales pour identifier une personne. En ce qui concerne lâinformatique,le fingerprinting nâest pas cantonnĂ© aux rĂ©seaux puisque ce concept fut appliquĂ© Ă diffĂ©rentes sources dedonnĂ©es telles que des documents quelconques pour identifier leur provenance et surtout contrĂŽler leurdiffusion. Un exemple courant est lâadjonction dâune signature spĂ©cifique dans des contenus multimĂ©diasprotĂ©gĂ©s par les droits dâauteurs [35] pour vĂ©rifier la lĂ©galitĂ© dâune copie.
Bien entendu, ce chapitre ne couvre que le fingerprinting dans le cadre des réseaux informatiques,domaine dans lequel de nombreux travaux ont été réalisés. Dans ce cadre, la définition suivante estdonnée :
Définition 12 : Le fingerprinting est la capacité à identifier une machine à distance.
63
Chapitre 3. Fingerprinting
Actif PassifSystĂšme dâexploitation [41, 6, 21, 12, 14, 1, 7, 22] [40, 2, 12, 37, 29, 22]Protocole, Application [6, 5] [34, 38, 31, 32, 10, 36]
Ăquipement [13, 4, 23, 22] [14, 4, 24, 8, 22]Comptage [39, 30, 9]
TABLE 3.1 â Les approches traditionnelles de fingerprinting
Cette dĂ©finition est volontairement vague car de nombreusestechniques de fingerprinting existent etlâidentification dâune machine peut se rĂ©vĂ©ler sous diffĂ©rentes formes selon le contexte dont les princi-pales sont :
â identification unique (comptage du nombre de machines),â dĂ©tection du systĂšme dâexploitation,â dĂ©termination du ou des protocoles utilisĂ©s,â identification de la version du logiciel ou de lâĂ©quipementutilisĂ©.En outre, le fingerprinting repose sur la dĂ©finition dâune signature :
DĂ©finition 13 : La signature dâune machine est la reprĂ©sentation dâun sous-ensemble de donnĂ©esquâelle a Ă©mises ou quâelle a reçues et qui permettent de lâidentifier.
Lâidentification dâune machine peut prendre diffĂ©rentes formes comme auparavant. De plus, les don-nĂ©es peuvent correspondre intĂ©gralement ou en une partie Ă un paquet, ou Ă un ensemble de paquets. Enoutre, ce chapitre va mettre en Ă©vidence la variĂ©tĂ© des reprĂ©sentations correspondantes : valeurs fixes,probabilitĂ©s, chaĂźnes de Markov, arbres syntaxiques, graphes... Le but de ce chapitre est donc de prĂ©ciserces dĂ©finitions selon les cas Ă©tudiĂ©s et les diffĂ©rents travaux en essayant dâapporter une vue globale Ă cedomaine.
Le rapport entre le fingerprinting et les malwares se rĂ©vĂšle sous diffĂ©rentes formes. PremiĂšrement,un malware peut sâattaquer Ă un type de machines bien prĂ©cis que le fingerprinting peut chercher Ă identifier pour les protĂ©ger ensuite. DeuxiĂšmement, le fingerprinting peut ĂȘtre appliquĂ© Ă un malwareafin de lâidentifier plus prĂ©cisement. Identifier la version dâun malware se rĂ©vĂšle intĂ©ressant lors de lamise en place de protections contre celui-ci ou tout simplement pour lâĂ©tudier. Par exemple, la prĂ©sencedâune version prĂ©dominante est significative dâune meilleure robustesse de celle-ci.
3.2 MĂ©thodes de fingerprinting
Deux classes de fingerprinting sont gĂ©nĂ©ralement distinguĂ©es : active et passive. Un rĂ©capitulatif despublications sâappuyant sur des mĂ©thodes de ce type est donnĂ© dans le tableau 3.1. Dans tous les cas, unemachine dite dâobservation capturant du trafic est nĂ©cessaire.
3.2.1 Fingerprinting passif
Le fingerprinting passif consiste Ă capturer des Ă©changes demessages sur le rĂ©seau puis Ă identifier lesmachines impliquĂ©es comme le montre la figure 3.1(a). Cette technique est non intrusive puisquâaucuneinteraction additionnelle nâest nĂ©cessaire. Cette âdiscrĂ©tionâ est son principal avantage car elle Ă©vite Ă celui qui rĂ©alise cette opĂ©ration dâĂȘtre dĂ©masquĂ© voire, par la suite, attaquĂ©. Cependant, les techniques
64
3.2. MĂ©thodes de fingerprinting
(a) Approche passive (b) Approche active
FIGURE 3.1 â Les deux approches traditionelles de fingerprinting
passives sont exclusivement dĂ©pendantes du trafic observĂ© et si une machine nâenvoie que quelquespaquets de temps en temps, son identification risque dâĂȘtre trĂšs difficile. Il est alors souvent nĂ©cessairede capturer le trafic pendant un temps relativement long pourobtenir un nombre de paquets suffisants Ă analyser. De mĂȘme, si le systĂšme de fingerprinting est Ă©tablisur la base dâun modĂšle de communicationbien prĂ©cis, câest-Ă -dire celui observĂ© pendant la capture, et que celui-ci Ă©volue avec le temps, il ne pourrapas forcer les machines Ă rĂ©exĂ©cuter le modĂšle prĂ©cĂ©dent caril ne doit pas interagir.
3.2.2 Fingerprinting actif
Contrairement au fingerprinting passif, les mĂ©thodes actives requiĂšrent dâinteragir avec la machine Ă identifier pour ensuite pouvoir analyser les rĂ©ponses Ă©mises par celle-ci comme le montre la figure 3.1(b).La difficultĂ© de telles approches rĂ©side donc principalement dans la dĂ©termination des requĂȘtes Ă envoyeret dans lâanalyse des rĂ©ponses obtenues. Une technique ne sera efficace que si pour une mĂȘme requĂȘte,les rĂ©ponses obtenues de diffĂ©rentes machines diffĂšrent. Bien entendu, une seule requĂȘte ne permet pasdâavoir une identification prĂ©cise mais permet de rĂ©duire lâespace de recherche et ainsi de choisir plusprĂ©cisement les requĂȘtes suivantes.
LâinconvĂ©nient majeur de cette approche est lâobligation dâenvoyer des messages, ce qui implique lanĂ©cessitĂ© de comprendre le protocole et de pouvoir gĂ©nĂ©rer des messages acceptables, mĂȘme si lâintro-duction volontaire dâerreurs dans la dĂ©finition du message est une mĂ©thode de fingerprinting possible.En effet, les rĂ©actions des hĂŽtes face Ă de tels messages sontde bonnes indications sur leur identificationmais cela nĂ©cessite quand mĂȘme de respecter en grande partiela grammaire du protocole pour ne jouerque sur une partie de celle-ci.
Bien entendu, lâinjection de messages rend la machine qui fait le fingerprinting dĂ©tectable. Ainsi,le challenge principal est la rĂ©duction du nombre de messages Ă envoyer tout en gardant une bonneprĂ©cision. Pour cela, chaque requĂȘte envoyĂ©e doit identifier trĂšs clairement le plus de machines possibles.
Le tableau 3.1 met en Ă©vidence le peu de ce type de fingerprinting pour identifier un protocole. Eneffet, pour utiliser ce type de mĂ©thode, la connaissance du protocole employĂ© est obligatoire alors quedans le cas prĂ©sent il doit justement ĂȘtre identifiĂ©. En rĂ©alitĂ©, ces mĂ©thodes envoient un grand nombre derequĂȘtes de diffĂ©rents protocoles pour dĂ©terminer laquelle est acceptĂ©e par lâentitĂ© Ă identifier, ce qui lesrend trĂšs facilement dĂ©tectable.
65
Chapitre 3. Fingerprinting
Application (FTP, HTTP, SIP...)
Internet (IP, ARP...)
Transport (TCP, UDP, ICMP)
AccÚs réseau (Ethernet, ATM...)
FIGURE 3.2 â DiffĂ©rents types de fingerprinting Ă diffĂ©rents niveaux de la pile TCP/IP (Beaucoup demĂ©thodes se basent Ă©galement sur les dĂ©lais entre les messages qui dĂ©pendent en partie de la coucheAccĂšs RĂ©seau)
3.2.3 Fingerprinting semi-passif
A cĂŽtĂ© de ces approches traditionnelles, Kohnoet al. Ă©voquent une technique intermĂ©diaire quâilsqualifient de semi-passive [30]. Dans ce cas, la machine dâobservation peut interagir mais seulementaprĂšs avoir Ă©tĂ© elle-mĂȘme contactĂ©e par la machine Ă identifier. Cette approche est reprise dans [16]. Pourpouvoir mettre en Ćuvre ce genre de techniques, il est prĂ©fĂ©rable dâoffrir un service qui pourrait intĂ©resserles machines Ă identifier. Cependant, un autre procĂ©dĂ© vise Ă sâimmiscer au milieu de la communicationde deux machines pour pouvoir modifier les messages transmis(attaqueman in the middle, opĂ©rateurrĂ©seau).
3.3 Applications
JusquâĂ prĂ©sent, aucune dĂ©finition de lâidentification dâune machine nâa Ă©tĂ© donnĂ©e. Selon le but visĂ©,celle-ci peut prendre diffĂ©rentes formes qui vont ĂȘtre introduites dans la suite de cette section. La figure3.2 reprĂ©sente les grands types de fingerprinting et le niveau dâinformation que chacun dâeux utilise.Ainsi, les caractĂ©ristiques que lâon souhaite identifier sont de diverses natures :
â systĂšme dâexploitation ;â protocoles utilisĂ©s ;â logiciel ou Ă©quipement utilisĂ© ;â un âidentifiantâ unique par machine.
Il est important de bien comprendre que les flĂšches de la figure3.2 indiquent quelles sont les informationsextraites par les diffĂ©rentes techniques et non ce quâellescherchent Ă dĂ©duire.
66
3.3. Applications
3.3.1 SystĂšmes dâexploitation
Lâidentification du systĂšme dâexploitation dâune machine distante se rĂ©vĂšle trĂšs important pour Ă©val-uer les risques dâattaques car certains systĂšmes sont plus vulnĂ©rables et plus visĂ©s par celles-ci. Cetteapproche est dâautant plus intĂ©ressante lorsquâelle est capable de prĂ©ciser la version exacte du systĂšmedâexploitation ainsi que les mises Ă jour installĂ©es. Bien entendu, câest aussi un formidable outil derepĂ©rage de victimes potentielles pour les attaquants. De plus, le fingerprinting permet de dĂ©celer unemachine essayant de se faire passer pour un autre systĂšme telquâun honeypot. Enfin, dans le cas desystĂšmes propriĂ©taires, il peut aider Ă repĂ©rer les machines lâutilisant et qui ne sont apparemment pascensĂ©es avoir obtenu une licence dâutilisation.
InfĂ©rence de rĂšgles Ă partir dâobservations
Les systĂšmes dâexploitation fournissent les couches rĂ©seaux nĂ©cessaires aux applications pour com-muniquer. Leurs diffĂ©rences dâimplantation sont donc significatives du systĂšme dâexploitation utilisĂ©.Comeret al. [41] proposent alors de dĂ©couvrir ce dernier en envoyant desmessages bien prĂ©cis pourobserver le comportement en rĂ©sultant. En fait, ce sont les couches rĂ©seaux directement gĂ©rĂ©es par le sys-tĂšme dâexploitation comme illustrĂ© sur la figure 3.2. Par exemple, la complexitĂ© et lâĂ©volution du standardde TCP [12] a occasionnĂ© des diffĂ©rences dâimplantation. Deux types de diffĂ©rences sont recherchĂ©es :
â celles induites par la marge de libertĂ© de la spĂ©cification du protocole ;â celles Ă©manant du non respect du protocole.
Dans le premier cas, la spĂ©cification impose, par exemple, seulement un minimum de 10 ms pour le timerde retransmission3. Pour explorer le second cas, la mĂ©thode cherche Ă gĂ©nĂ©rer des cas trĂšs particulierscomme lorsque la fenĂȘtre de rĂ©ception dĂ©croĂźt jusquâĂ un,Solaris 2.1se trompe alors dans les numĂ©ros desĂ©quences TCP. Le fingerprinting de systĂšmes dâexploitation se base donc gĂ©nĂ©ralement sur le contenudes entĂȘtes des protocoles des couchesInternetetTransportdu modĂšle TCP/IP.
La premiĂšre approche passive apparue en 1997 [40] souligne dâimportantes divergences dans lâim-plantation du contrĂŽle de congestion malgrĂ© lâapparition de nombreux standards. Pour rappel, lâĂ©metteura une fenĂȘtre dâĂ©mission reprĂ©sentant le nombre de paquets pouvant ĂȘtre Ă©mis sans acquittement mais quiest Ă©galement limitĂ©e par une fenĂȘtre de congestion comme lemontre la figure 3.3. Paxsonet al.rĂ©vĂšlentque les mĂ©canismes habituellement prĂ©conisĂ©s pour Ă©viter la congestion et dĂ©finir cette fenĂȘtre ne sontpas forcĂ©ment totalement et identiquement implantĂ©s (slowstart, congestion avoidance... [12]). De plus,selon les versions des piles TCP, la retransmission des paquets est gĂ©rĂ©e diffĂ©remment de mĂȘme que lagestion des segments TCP arrivant dans le mauvais ordre.
Actuellement, les outilsNMAP[6] et p0f [2] sont les plus rĂ©pandus dans le domaine de la dĂ©couvertedes systĂšmes dâexploitation. p0f est capable de le faire de maniĂšre passive. Les auteurs distinguent quatreclasses de machines selon le rapport qui existe entre celles-ci et une autre machine dans le rĂ©seau :
â celles qui se connectent Ă la machine, les connexions entrantes (paquets SYN) ;â celles sur lesquelles la machine se connecte, les connexions sortantes (retour dâun paquet SYN+ACK) ;â les machines sur lesquelles on ne peut pas se connecter (retour dâun paquet RST) ;â toutes les autres machines dont on peut observer les communications ;
Pour chaque paquet,p0f observe les diffĂ©rentes valeurs des champs et les compare Ă une base de donnĂ©esde fingerprints car selon le systĂšme dâexploitation, elles sont initialisĂ©es Ă diffĂ©rentes valeurs. A titredâexemple, p0f rĂ©cupĂšre les informations suivantes pour les paquets SYN :
win:TTL:MSS:DF:wscale:sackOK:nop:taille
3. Un paquet est considĂ©rĂ© comme perdu lorsquâaucun acquittement nâest reçu aprĂšs un certain dĂ©lai
67
Chapitre 3. Fingerprinting
Dernier paquet acquitté
FenĂȘtre d'Ă©mission
Paquets envoyés
FenĂȘtre de congestion
FIGURE 3.3 â FenĂȘtres TCP de lâĂ©metteur
oĂčwin reprĂ©sente la taille de la fenĂȘtre de rĂ©ception,TTL le time-to-live... Sans entrer dans les dĂ©tails, lasignature5840 :64 :1460 :1 :0 :1 :1 :60correspond Ă un noyau Linux 2.4. Enfin,p0f a beaucoup Ă©voluĂ©et propose aujourdâhui des fonctions plus avancĂ©es comme ladĂ©couverte de pare-feux ou de routeursNAT.
NMAP[6] utilise quant Ă lui des mĂ©thodes actives et inclut plus defonctionnalitĂ©s tel que le balayagede ports. Dans le cadre du fingerprinting,NMAPenvoie 16 requĂȘtes spĂ©cifiques (TCP, UDP et ICMP).Les rĂ©ponses reçues sont alors analysĂ©es individuellementmais aussi conjointement car les valeurs decertains champs TCP peuvent par exemple ĂȘtre incrĂ©mentĂ©es linĂ©airement pour certains systĂšmes. Cestests (environ une trentaine dans la version 5) sont effectuĂ©s aussi bien sur les protocoles de transportque sur IP par rapport Ă une base de donnĂ©es de fingerprints.Xprobe[1] cherche quant Ă lui Ă engendrermoins de trafic et repose essentiellement sur des requĂȘtes ICMP.
NMAPest aujourdâhui un outil trĂšs rĂ©pandu et complĂšte parfaitementp0f dans le cas oĂč la machine Ă identifier ne communique pas puisquâil se charge de sonder cetype de machines. Cependant, il est aisĂ© derepĂ©rer un utilisateur deNMAPdâautant plus que celui-ci est souvent obligĂ© en premier lieu dâeffectuerun balayage de ports. Câest dans cette optique que [21] mesure lâefficacitĂ© des diffĂ©rents tests selondiffĂ©rents systĂšmes dâexploitation et conclut que seulement trois ou quatre requĂȘtes sont suffisantes pourobtenir un bon taux de dĂ©couverte. De plus, seuls des paquetsvalides Ă©tablissant le 3-way handshakesont gĂ©nĂ©rĂ©s.
Câest aussi la technique mise en Ćuvre parSinFP[12] qui nâutilise que trois requĂȘtes pour identifierun systĂšme dâexploitation. Son intĂ©rĂȘt est dâavoir une basede signatures beaucoup plus petite. En effet,des masques de dĂ©formation, dĂ©finis par des expressions rĂ©guliĂšres, sont appliquĂ©s sur les signatures carpour un mĂȘme systĂšme dâexploitation, il peut y avoir certaines variations dĂ»es Ă lâenvironnement rĂ©seau.SinFP suggĂšre aussi dâutiliser ces mĂȘme signatures pour du fingerprinting passif en les adaptant, câest-Ă -dire en les transformant, car dans ce cas, capturer exactement les bonnes requĂȘtes nâest pas Ă©vident.
Apprentissage
Les systĂšmes prĂ©cĂ©dents reposent sur un ensemble de signatures dont la mise au point est une tĂącheardue. Ainsi, FIG [14] gĂ©nĂšre automatiquement les signatures adĂ©quates. Pour fonctionner, cette mĂ©thodenĂ©cessite une phase de test oĂč de nombreuses requĂȘtes sont envoyĂ©es, elles constituent lâensemble initialdes requĂȘtes et doit reprĂ©senter de maniĂšre assez exhaustive les diffĂ©rentes possibilitĂ©s. Toutefois, destests exhaustifs seraient beaucoup trop longs et la plupartdâentre eux inutiles. Les auteurs proposent doncde gĂ©nĂ©rer ces requĂȘtes en modifiant uniquement les champs sĂ©mantiquement riches (comme les flagsTCP par exemple). Ensuite, grĂące aux rĂ©ponses induites et Ă des techniques dâapprentissage automatique,les requĂȘtes permettant de distinguer efficacement les diffĂ©rents systĂšmes dâexploitation sont extraites.
68
3.3. Applications
Ainsi, Ă partir de 305 requĂȘtes initiales possibles, FIG en dĂ©duit que seuls 66 sont propices.Lâapproche passive Ă©noncĂ©e dans [37] se base sur une classification naĂŻve bayĂ©sienne [17]. Cette
technique sâappuie sur les probabilitĂ©s conditionnelles de maniĂšre Ă dĂ©terminer la probabilitĂ© dâavoir laclasseCk pour un vecteurv : P(Ck|v). Sachant quev est composĂ© de diffĂ©rentes valeurs caractĂ©ristiquesdu paquet (time-to-live, flag SYN...), cette probabilitĂ© secalcule en fonction de celles observĂ©es pendantla phase dâapprentissage :
P(Ck|v) = P(Ck)ĂÎ jP(v j |Ck)
La classe considĂ©rĂ©e comme juste est celle coĂŻncidant avec la plus forte probabilitĂ©. Cette approcheest ditenaĂŻvepuisque les composantes des vecteurs caractĂ©ristiques sont supposĂ©es indĂ©pendantes cequi nâest gĂ©nĂ©ralement pas le cas. Il est donc nĂ©cessaire dans un premier temps de calculer les valeursP(v j |Ck) pendant lâapprentissage.
Les rĂ©seaux neuronaux sont une autre voie possible Ă©tudiĂ©e par Sarrauteet al. [7]. Lors dâune phasedâentraĂźnement, ils construisent un rĂ©seau multi-couche de neurones qui prend ensuite en entrĂ©e les rĂ©sul-tats dâune requĂȘte sur une machine Ă tester. Leur premiĂšre mĂ©thode repose sur des requĂȘtes RPC (RemoteProcedure Call) [9] qui permettent de dĂ©couvrir les services distants proposĂ©s par une machine Windows.Cette technique permet dâidentifier prĂ©cisement la versionde Windows mais aussi une Ă©dition prĂ©cise(familiale, professionnelle) ainsi que les mises Ă jours principales (service packs). De plus, un rĂ©seau deneurones est bĂąti grĂące aux signatures deNMAPoĂč chaque rĂ©ponse, voire type de rĂ©ponse reçue (valeursdes champs TCP), est associĂ©e Ă un neurone. Ainsi, il nây a plus besoin de dĂ©finir des rĂšgles prĂ©cises(basĂ©es sur les valeurs des diffĂ©rents champs) puisque le rĂ©seau de neurones se charge dâapprendre unefonction Ă©quivalente. Les travaux dans [29] mettent aussi en Ćuvre les rĂ©seaux neuronaux mais se basentpour sa part sur les signatures dep0f.
3.3.2 Protocole
Identifier un protocole est un autre aspect du fingerprintingvisant des buts variĂ©s. Par exemple, ilest intĂ©ressant pour des raisons de sĂ©curitĂ© de repĂ©rer lâinstallation et lâutilisation de logiciels prohibĂ©sau sein dâune entreprise. En effet, Skype fut banni des rĂ©seaux universitaires [3] malgrĂ© son utilisationcroissante, principalement du fait de ses aspects P2P et propriĂ©taires qui empĂȘchaient de mesurer rĂ©elle-ment les risques de sĂ©curitĂ©. Sans forcĂ©ment interdire lâutilisation dâun logiciel et selon les besoins Ă unmoment donnĂ©, il peut sâavĂ©rer opportun de limiter le trafic annexe par rapport au trafic principal. Par ex-emple, une entreprise de vente en ligne doit en prioritĂ© privilĂ©gier son trafic Web plutĂŽt que le trafic P2Pou les messageries instantanĂ©es de ses employĂ©s. Ainsi, le fingerprinting dâapplications ou de protocolessont des termes Ă©quivalents.
Dans cette partie, le fingerprinting pur (classification desprotocoles) sera distinguĂ© de la classifica-tion de trafic qui est corrĂ©lĂ©e mais qui prĂ©sente une granularitĂ© moins fine. A titre dâexemple, le tableau3.2 montre quâune catĂ©gorie de trafic regroupe plusieurs protocoles. Cependant, la derniĂšre catĂ©gorie,malware, peut contenir des protocoles standards tels quâintroduits dans le chapitre 1 et un protocole demessagerie instantanĂ©e comme IRC peut donc se retrouver Ă©galement dans cette catĂ©gorie. De plus, lagranularitĂ© de ces catĂ©gories peut varier selon lâutilisation visĂ©e, de la plus simple (bĂ©nin / malware) Ă laplus compliquĂ©e (chaque protocole comme dans la section suivante).
De maniĂšre gĂ©nĂ©rale, le fingerprinting de protocoles donne un aperçu des services employĂ©s et deleurs utilisateurs. Cette supervision permet ensuite de modifier le rĂ©seau pour mieux supporter la chargepar exemple. Cela permet aussi dâĂ©tablir simplement des statistiques pour savoir si un service est en-core utilisĂ© ou si les ressources associĂ©es peuvent ĂȘtre libĂ©rĂ©es (rĂ©seau en partie dĂ©diĂ©, abonnement...).
69
Chapitre 3. Fingerprinting
Catégorie de trafic Exemples de protocolesWeb httpP2P Gnutella, BitTorrent, Kazaa, FastTrack, Kademelia/Kad, eDonkey
Email pop3, imap, smtpServices réseaux dns, snmp, ldap, ntp, netbios
Messagerie instantanée IRC, MSN, AIM, JabberJeux HalfLife, Age of Empire
Base de données sqlnet, oracleStreaming mms, quicktime, shoutcastMalware vers, attaques, botnet
Transfert de grands volumes (Bulk) ftp
TABLE 3.2 â GranularitĂ© de lâidentification de trafic
Bien que la IANA [3] a dĂ©fini des ports standards pour les applications, il est trĂšs facile dâutiliser unport classique tel que celui pour le Web (80) pour transmettre tout autre type de donnĂ©es. De mĂȘme cer-tains protocoles se partagent les mĂȘmes ports et de nombreuses applications assignent un port de façondynamique Ă chaque utilisation.
Pour distinguer les diffĂ©rents trafics, il existe deux typesde mĂ©thodes :â les mĂ©thodes par paquet qui tentent de classer chaque paquet indĂ©pendamment [34, 38] ;â les mĂ©thodes qui traitent un ensemble de paquets Ă la fois, comme par exemple ceux qui forment
un flux [34, 36, 31, 18, 32, 25, 33, 10, 19, 20, 22, 26, 27, 18, 17,28, 2].Dans le premier cas, il est possible dâextraire le contenu dupaquet pour lâanalyser [38]. Dans le secondcas, il est aussi possible de prĂ©lever le contenu du flux ou tout du moins partiellement [34, 22, 18].Cependant, de nombreuses caractĂ©ristiques plus gĂ©nĂ©ralessont Ă©tudiĂ©es [36, 31, 18, 32, 25, 10, 19, 26,27, 17, 28, 2] :
â taille dâun paquet ;â temps entre deux paquets ;â taille du flux dans son ensemble ;â entĂȘtes des paquets ;â durĂ©e du flux ;â ports utilisĂ©s ;â etc...
Plusieurs de ces caractéristiques sont dérivées selon leurs valeurs statistiques : moyenne, écart type,minimum, maximum...
Pour rappel, un flux se caractĂ©rise au minimum par une adresseIP source et destination. Cependantcette dĂ©finition se retrouve Ă©galement au niveau des protocoles de transport et un flux se caractĂ©rise alorspar le 5-uplet suivant : <protocole,adresse IP source, adresse IP destination, port source, port destina-tion>. Concernant TCP, un flux est facilement dĂ©limitĂ© grĂąceaux paquets de contrĂŽle permettant dâouvriret de fermer une connexion. Dans le cas dâUDP, la spĂ©cification dâun dĂ©lai maximal entre deux paquetsest obligatoire pour repĂ©rer la fin dâun flux. Cette mĂ©thode est aussi appliquĂ©e avec TCP lorsquâuneconnexion ne sâest pas terminĂ©e normalement.
Classification de trafic
Moore et al. dĂ©cidĂšrent dâinspecter plus en dĂ©tails les flux de donnĂ©es [34]. Ainsi la mĂ©thode pro-posĂ©e consiste Ă analyser chaque communication avec un degrĂ© de dĂ©tail variant du plus simple jusquâauplus compliquĂ© quand câest nĂ©cessaire. Par exemple, la suite de tests cherche dâabord Ă dĂ©terminer sâil
70
3.3. Applications
existe une signature connue concordant avec le premier paquet. Dans le cas contraire, il faut rechercherune signature qui correspond aux premiers octets du flux TCP voire chercher dans lâensemble du contenu(payload). Cette Ă©tude met en Ă©vidence lâobligation de rechercher lâinformation dans le contenu mĂȘmedu paquet pour rĂ©ussir Ă diffĂ©rencier certaines applications tout en soulignant lâimpact sur la complexitĂ©et le besoin dâavoir une base de signatures.
De ce fait, des techniques dâapprentissage ou de classification supervisĂ©es sont apparues car ellesne nĂ©cessitent pas dâĂ©laborer manuellement des signatures. Elles apprennent directement Ă identifier letrafic aprĂšs avoir Ă©tĂ© entraĂźnĂ©es grĂące Ă un jeu de donnĂ©es oĂč le trafic est supposĂ© connu. La contrainteessentielle rĂ©side donc dans la complĂ©tude de ce jeu de donnĂ©es ainsi que dans sa justesse quant Ă lâĂ©tiquetage des flux ce qui requiĂšre une intervention manuelle prĂ©alable.
Moore et al. introduisent lâutilisation de classification naĂŻve bayesienne dans [31] se basant exclu-sivement sur les caractĂ©ristiques des flux. Lâapproche est amĂ©liorĂ©e par lâusage de deux mĂ©canismes. Lepremier estime chaque probabilitĂ© conditionnelleP(c|y) dâavoir la classec selon le discriminanty grĂąceĂ une distribution gaussienne pour lisser celle-ci. Le second, dĂ©rivĂ© de [12], sĂ©lectionne les meilleursdiscriminants, câest-Ă -dire les champs des en-tĂȘtes Ă analyser. Lâobjectif est de se cantonner Ă des dis-criminants qui sĂ©parent bien les diffĂ©rentes classes et, enmĂȘme temps, ne pas avoir deux discriminantsdont le rĂ©sultat est redondant. Cette sĂ©lection se fait via des mesures entropiques qui vĂ©rifient quâun dis-criminant ajoute de lâinformation, câest-Ă -dire quâil permet de mieux distinguer deux classes diffĂ©rentes,et que deux discriminants sont suffisamment indĂ©pendants. LâĂ©tude [18] tire parti des caractĂ©ristiquesclassiques des flux et applique la mĂ©thode des K-means [4].
Les mĂ©thodes non supervisĂ©es, sans phase dâapprentissage,ont aussi vu le jour et classent les dif-fĂ©rents flux sans savoir exactement Ă quoi ils correspondent. Ce fut notamment le cas de [36] qui visaitĂ discerner quatre grandes classes de trafic en utilisant diffĂ©rentes caractĂ©ristiques parmis lesquelles :taille moyenne dâun paquet, durĂ©e dâun flux, temps entre deuxpaquets, nombre de paquets... Lâap-proche est quant Ă elle validĂ©e grĂące Ă deux techniques de classification rĂ©pandues dont celle des plusproches voisins et les rĂ©sultats furent encourageants. Ainsi, de nombreuses recherches ont suivi en util-isant dâautres caractĂ©ristiques, dâautres mĂ©thodes ou aussi en essayant dâaffiner les diffĂ©rentes catĂ©gories.Comme [31], [32] sâappuie sur un classificateur bayĂ©sien mais qui se diffĂ©rencie par son aspect non su-pervisĂ© et donc sa capacitĂ© Ă apprendre automatiquement lesclasses du trafic.
En rĂ©alitĂ©, beaucoup dâalgorithmes de classification furent employĂ©s et [25] met en exergue la multi-tude de caractĂ©ristiques possibles ainsi que des performances similaires pour diffĂ©rents algorithmes. Dece fait, le papier se focalise sur les diffĂ©rences de temps decalcul entre eux et souligne lâintĂ©rĂȘt de rĂ©duirele nombre de caractĂ©ristiques qui nâinfluent que trĂšs peu surles performances.
BLINC [33] se singularise grĂące Ă lâintroduction de nouvelles caractĂ©ristiques basĂ©es sur les relationsinter-machines permettant de tester ensuite diffĂ©rentes heuristiques afin de classer les flux. Ainsi, lapremiĂšre mĂ©trique calcule la popularitĂ© dâun hĂŽte, câest-Ă -dire le nombre de machines avec lesquelles ilcommunique. Par exemple, un protocole P2P implique dâinteragir avec de nombreux participants pendantun court intervalle de temps. Par ailleurs, les groupes de machines interagissant entre-eux sont dĂ©finiscomme des communautĂ©s telles que les communautĂ©s de machines de mĂȘme domaine qui implique, laplupart du temps, le mĂȘme service offert. Aussi, le nombre deports associĂ©s Ă chaque machine permetdâidentifier le rĂŽle de celle-ci comme le montre la figure 3.4(a) oĂč un point reprĂ©sente chaque IP selon lenombre de flux et le nombre de ports. Comme illustrĂ© dans le casdu P2P, les points sont rĂ©partis car toutle monde joue le rĂŽle de serveur et de client alors que pour le Web, certains sont les clients et utilisentbeaucoup de ports diffĂ©rents (points proches de la diagonale) et dâautres sont les serveurs utilisant un ouplusieurs ports (lignes horizontales). Enfin, une base de donnĂ©es de petits graphes basĂ©s sur les adressesIP et les ports aide ensuite Ă identifier le comportement dâune machine. A titre dâexemple, un balayagede port dâune machine se schĂ©matise par le graphe reprĂ©sentĂ©sur la figure 3.4(b).
Bien que [10] tire aussi parti de diverses techniques dâapprentissage, son principal intĂ©rĂȘt est lâutili-
71
Chapitre 3. Fingerprinting
(a) DiffĂ©rence entre un serveur Web et un client P2P au niveaudes ports utilisĂ©s (b) Graphe dâinteractionreprĂ©sentant un balayage deports
FIGURE 3.4 â Exemples de caractĂ©ristiques utilisĂ©es dans BLINC
sation dâun nouveau type de donnĂ©es Ă Ă©tudier, lesApplication Rounds, aussi bien diffĂ©rents des paquetsque des flux. Ils sont constituĂ©s de deux sĂ©ries de messages, ceux envoyĂ©s et ceux reçus juste aprĂšs, etreprĂ©sentent en fait les diffĂ©rentes nĂ©gociations intervenant gĂ©nĂ©ralement au commencement dâune com-munication. Chaque sĂ©rie de messages unidirectionnels sâappelle unTalk. Sur ces diffĂ©rents ensembles,plusieurs mĂ©triques (nombre de messages, dĂ©lais, tailles...) servent dâentrĂ©e aux algorithmes dâappren-tissage.
Alors que les mĂ©thodes supervisĂ©es citĂ©es prĂ©cĂ©demment ontlâavantage de pouvoir prĂ©ciser exacte-ment la classe dâun trafic et pas seulement de regrouper les flux entre eux, Ermanet al. remarquent quecelles-ci sont fortement contraintes [19] :
â obtenir un jeu dâapprentissage avec beaucoup de flux Ă©tiquetĂ©s est difficile ;â certaines classes ne sont pas forcĂ©ment connues Ă priori etdâautres types de trafic peuvent appa-
raĂźtre.Câest pourquoi, la mĂ©thode Ă©noncĂ©e dans cet article est ditenon supervisĂ©e puisquâelle considĂšre unephase dâapprentissage oĂč des groupes de flux sont crĂ©Ă©s. Ces derniers peuvent contenir des flux Ă©tiquetĂ©sou non et le groupe lui mĂȘme se voit Ă©tiquetĂ© avec le type de fluxle plus frĂ©quent. Cependant, un groupepeut ne contenir aucun flux connu. Ainsi, lors de la phase de test, chaque nouveau flux est associĂ© aucluster le plus proche et peut donc ĂȘtre considĂ©rĂ© comme du trafic inconnu. De plus, les auteurs ont conçuun systĂšme de classification grĂące Ă diffĂ©rents jalons qui sont spĂ©cifiĂ©s par le nombre de paquets transmisdans le flux (2,4,8,16 ou 32).
Au vu du nombre important de mĂ©thodes et de caractĂ©ristiquesemployĂ©es, [20] combine diffĂ©rentesmĂ©thodes. Enfin, [11] est un bon Ă©tat de lâart des diffĂ©rentestechniques car en plus dâĂ©valuer leursperformances de classification, il mesure la complexitĂ© de chacune dâelle.
Classification de protocoles
Les dĂ©marches prĂ©cĂ©dentes essayent de classer le trafic selon une granularitĂ© plus ou moins fine.La sous-section courante se focalise essentiellement sur la classification de protocoles qui nâa pas Ă©tĂ©prĂ©sentĂ©e avant. Cependant, beaucoup des techniques misesen Ćuvre et des caractĂ©ristiques des fluxutilisĂ©es sont semblables.
Tout dâabord, les techniques actives telles que NMAP [6] ou AMAP [5] se connecte Ă un port ouvert(dĂ©tectĂ© souvent grĂące Ă un balayage de ports) avant dâenvoyer des requĂȘtes de diffĂ©rents protocoles pourdĂ©terminer celle qui est comprise par la machine Ă identifierindiquant ainsi le protocole utilisĂ©. NMAP
72
3.3. Applications
[6] peut Ă©galement nâouvrir quâune connexion TCP sans envoyer de requĂȘtes. En effet, dans certains casil peut arriver quâun serveur se prĂ©sente lui mĂȘme Ă son correspondant grĂące Ă un message dâaccueil.Dans ce cas, il est parfois possible dâidentifier le logicielutilisĂ©.
Les premiĂšres approches passives sâefforçaient, comme dans la section prĂ©cĂ©dente, dâĂ©tablir manuelle-ment des signatures. Par exemple, [38] se focalise sur la dĂ©tection des flux P2P de diffĂ©rents types(Gnutella, BitTorrent...) dans les rĂ©seaux trĂšs haut dĂ©bit. La technique prĂ©sentĂ©e est efficace en termede prĂ©cision et rapiditĂ© grĂące Ă des tests âsimplesâ et ordonnĂ©s pour rapidement Ă©tiqueter un flux. Laseule ombre au tableau est la nĂ©cessitĂ© dâune Ă©tape manuelledâĂ©tude des protocoles pour identifier lesformats correspondants et gĂ©nĂ©rer une signature.
En consĂ©quence, Ă©tablir des signatures est primordial maisest une tĂąche fastidieuse lorsquâelle estmanuelle. ACAS [22] est un systĂšme permettant de dĂ©river automatiquement une signature pour chaqueprotocole Ă©tudiĂ© Ă partir dâun jeu dâapprentissage et dâunemĂ©thode de classification appropriĂ©e, tellequâAdaBoost, [23] appliquĂ©e sur le contenu du paquet : plus de 99% des flux sont correctement identifiĂ©sgrĂące aux 64 premiers octets seulement, sans chercher Ă en extirper des informations prĂ©cises (entĂȘtes,champs...). De plus, les signatures sont relativement stables puisque six mois aprĂšs, elles permettentdâidentifier encore 94% du trafic.
Les travaux de la rĂ©fĂ©rence [26] emploient la mĂ©thode des K-means [4] en se basant uniquement sur lataille des cinq premiers messages et leurs directions pour distinguer les protocoles. En effet, les premierspaquets transmis lors dâune communication sâapparentent Ă la nĂ©gociation de ses paramĂštres alors queles paquets suivants sont plutĂŽt dĂ©pendants du comportement de lâutilisateur. Bien que la mĂ©thode desK-means demande de renseigner le nombre de clusters, les auteurs prĂŽnent une mĂ©thode non supervisĂ©een fixant arbitrairement ce nombre Ă une valeur arbitrairement Ă©levĂ©e. Ainsi, mĂȘme si diffĂ©rents clusterspartagent le mĂȘme protocole, chacun dâeux restera consistant, câest-Ă -dire ne contiendra quâun seul typede flux dâautant plus que les caractĂ©ristiques de ce dernier peuvent varier selon les actions faites parlâutilisateur. Toutefois, en augmentant artificiellementle nombre de clusters et en autorisant plusieursclusters de mĂȘme type, la prĂ©cision du classement se retrouve surĂ©valuĂ©e puisque les clusters sont plusprĂ©cis voire, dans le cas extrĂȘme, ne contiennent quâun flux.De maniĂšre Ă affiner le choix du nombrede clusters, les travaux qui succĂ©dĂšrent dans [27] mettent en pratique le calcul dâun coefficient mesurantla qualitĂ© du regroupement pour Ă©viter de trop Ă©clater les clusters. Par ailleurs, lâutilisation des modĂšlesde Markov [13] cachĂ©s, qui tient compte de lâordre dâarrivĂ©edes messages, fut Ă©galement testĂ©e tout enramenant le nombre minimal de paquets Ă seulement quatre pour obtenir une bonne prĂ©cision.
Bien que lâapproche dĂ©taillĂ©e dans [18] nĂ©cessite une phasedâapprentissage, elle permet dâidentifierun flux connu, comme vu auparavant, ou dâidentifier un nouveautrafic encore inconnu. De la mĂȘmemaniĂšre que [22], seuls les 64 premiers octets de chaque flux sont utilisĂ©s dans le but de crĂ©er des clustersde sessions. DâaprĂšs les auteurs, la distribution de ces octets caractĂ©rise suffisamment les protocolesmais son exploitation et son stockage ont besoin de beaucoupde ressources car il faut ĂȘtre capable deles comparer rapidement et aussi de les fusionner entre elles pendant la phase dâapprentissage. Ainsiplusieurs formalisations Ă©quivalentes sont suggĂ©rĂ©es :
â la premiĂšre considĂšre chaque distribution de maniĂšre indĂ©pendante et elles sont comparĂ©es grĂąceĂ lâentropie relative ;
â lâutilisation de processus de Markov qui Ă©tablissent des graphes probabilistes entres les diffĂ©rentesvaleurs des octets et une mesure dĂ©rivĂ©e de lâentropie relative pour comparer deux processus dif-fĂ©rents ;
â lâalignement de sĂ©quences [28] sâillustre une fois de plusici et permet dâĂ©tablir un graphe pondĂ©rĂ©de sous-chaĂźnes reprĂ©sentant les enchaĂźnements possiblespour un protocole. Par exemple, la figure3.5 schĂ©matise diffĂ©rentes possibilitĂ©s de flux SSH [3] possibles oĂč les nĆuds les plus sombres sontceux qui sont les plus courants.
Bien sûr chacune des méthodes précédentes est complétée parun mécanisme de regroupement dont les
73
Chapitre 3. Fingerprinting
FIGURE 3.5 â Graphe de sous-chaĂźnes possibles pour le protocole SSH
dĂ©tails peuvent ĂȘtre consultĂ©s dans [18]. Pendant la phase dâapprentissage, descellulessont crĂ©Ă©es etchacune dâelle regroupe les flux partageant le mĂȘme protocole de transport, le mĂȘme port et la mĂȘmeadresse de destination. Selon les auteurs, cette dĂ©finitionde cellule est suffisante pour regrouper les ses-sions dâun mĂȘme protocole. De plus, tout flux partageant le mĂȘme port de destination et la mĂȘme machinesource pendant un temps trĂšs court sont aussi regroupĂ©s dansla mĂȘme cellule. Une fois cette premiĂšreclassification gĂ©nĂ©rale crĂ©Ă©e, les cellules sont reprĂ©sentĂ©es grĂące aux diffĂ©rents formalismes prĂ©cĂ©dentset comparĂ©es entre-elles de maniĂšre Ă les regrouper. AprĂšs cette phase dâapprentissage, chaque nouveauflux est alors comparĂ© Ă chaque groupe de maniĂšre Ă dĂ©terminersadistancevis Ă vis de chaque protocolepour lui en attribuer un. Lâapparition dâun nouveau protocole est alors repĂ©rĂ©e si la distance minimalecalculĂ©e est anormalement Ă©levĂ©e.
La taille des paquets, notamment pour les premiers, est une statistique significative que Crottiet al.[17] complĂštent par le temps entre chaque paquet tout en exploitant leur ordre dâarrivĂ©e. Ainsi chaqueflux unidirectionnel se dĂ©finit comme une sĂ©quence ordonnĂ©e de pairesPi = si ,âi oĂč si est la taille duie paquet etâi le temps Ă©coulĂ© entre son arrivĂ©e et celle du suivant. Lors dela phase dâapprentissage, unedensitĂ© de probabilitĂ©s est calculĂ©e pour chaque pairePi. Lâensemble de ces densitĂ©s forme la signature duprotocole. Ensuite, les distances entre la distribution dâun nouveau flux et chaque signature sont Ă©valuĂ©esen fonction des valeursPi mais aussi en fonction dâun filtre gaussien qui permet de lisser les dĂ©laisdes paquets et ainsi de limiter les erreurs de classificationdues aux variations du RTT dans le rĂ©seau.La deuxiĂšme innovation dans ce papier est la dĂ©finition dâun seuil par protocole reprĂ©sentant la distancemaximale autorisĂ©e pour dĂ©tecter un nouveau protocole. Ainsi, il existe autant de seuils que de protocoles
74
3.3. Applications
(a) Apache 1.3.23 (b) IIS 5.0
FIGURE 3.6 â DiffĂ©rence dâordonnancement des champsDateetServerdans les entĂȘtes HTTP
et ne sont pas fixĂ©s manuellement mais automatiquement grĂąceau mĂȘme filtre gaussien appliquĂ© sur lesvaleursPi de maniĂšre Ă calculer ensuite la moyenne globale et lâĂ©cart type.
Bien entendu, la dĂ©finition de nouvelles caractĂ©ristiques fut aussi un autre axe de recherche, commela taille du contenu (hors entĂȘtes) ou la taille totale du fluxĂ lâinstar de [28] qui compare lâefficacitĂ© dediffĂ©rents algorithmes de clustering. Une autre possibilitĂ© est lâutilisation de chaĂźnes de Markov Ă lâinstarde [2] se basant sur les sĂ©quences de paquets de contrĂŽles (SYN, ACK, SYN-ACK...). Ainsi, Ă partirdâun ensemble de flux dâun protocole, une chaĂźne de Markov estconstruite dont les Ă©tats correspondentaux types de paquets de contrĂŽles et les transitions Ă la probabilitĂ© dâenchaĂźnement de ces derniers.Ensuite, une probabilitĂ© est calculĂ©e pour chaque nouveau flux en parcourant la chaĂźne de Markov selonles paquets rencontrĂ©s tout en multipliant les probabilitĂ©s rencontrĂ©es.
3.3.3 Ăquipement, pile protocolaire
Ătant donnĂ© un protocole, de nombreuses variantes dâimplantations sont possibles. Par exemple,bien que le protocole HTTP soit dĂ©fini dans le RFC [7], chaque navigateur utilise sa propre implanta-tion (pile protocolaire). Ces diffĂ©rences peuvent ĂȘtre dues ou non Ă des erreurs de programmation oudes libertĂ©s permises par les spĂ©cifications (volontairement ou par manque de clartĂ©). Le fingerprintingdâĂ©quipements ou de piles protocolaires a donc pour but dâidentifier quelle version dâun protocole im-plantĂ© est utilisĂ©e. Une version sâidentifie par le nom du logiciel ainsi que la version utilisĂ©e. Cependant,certaines implantations sont spĂ©cifiques Ă des Ă©quipements(tĂ©lĂ©phone SIP [6] par exemple) dont le nomet la version identifient la version du protocole. En rĂ©alitĂ©, les fingerprintings de systĂšmes dâexploitationet dâĂ©quipements sont similaires Ă la diffĂ©rence prĂšs que lepremier se limite Ă lâidentification des proto-coles implantĂ©s directement par les systĂšmes dâexploitations (couche Internet ou Transport) alors que lesecond opĂšre au niveau de la couche application. Logiquement, ces mĂ©thodes de fingerprinting reposentsur les donnĂ©es Ă©changĂ©es au niveau de la couche applicationmais aussi au niveau de la couche dâaccĂšsau rĂ©seau comme le souligne la figure 3.2. Effectivement, cette couche est gĂ©nĂ©ralement opĂ©rĂ©e par despilotes spĂ©cifiques selon les Ă©quipements comme par exempledans le cas de rĂ©seaux sans fil.
En premier lieu, ce type de fingerprinting aide Ă faire un inventaire des Ă©quipements rĂ©seaux dĂ©ployĂ©s.Pour une entreprise, câest trĂšs important puisque ça lui permet de voir si le matĂ©riel actif sur son rĂ©seauconcorde bien Ă celui quâelle a dĂ©ployĂ©. Ainsi, elle peut contrĂŽler lâinsertion dâordinateurs ou dâautresĂ©quipements Ă©trangers. De plus, elle peut contrĂŽler si les machines sont bien mises Ă jours ou localisercertains Ă©quipements potentiellement vulnĂ©rables lors dela publication dâune vulnĂ©rabilitĂ©. Ainsi, ellepeut rapidement rĂ©agir et mettre Ă jour ces machines en prioritĂ©. Finalement, les attaques par usurpation
75
Chapitre 3. Fingerprinting
(a) Cisco-Linksys WRT54g (b) HostAP
FIGURE 3.7 â Tests des piles protocolaires sans fil 802.11 grĂące aux bits de contrĂŽle
peuvent ĂȘtre plus facilement dĂ©tectĂ©es si lâattaquant nâutilise pas exactement la mĂȘme pile protocolaire.Il arrive que lâidentifiant de lâĂ©quipement mĂȘme soit contenu dans les informations Ă©changĂ©es notam-
ment lors de lâĂ©tablissement dâune session entre deux hĂŽtes. Par exemple, les serveurs HTTP [7] incluentdans les entĂȘtes leurs identifiant [4] comme le montre la figure 3.6. Cette technique est trĂšs simple maisnâest valable que si aucune technique de masquage nâest employĂ©e. En effet, il suffit de ne pas envoyercette entĂȘte voire mĂȘme dâen envoyer une fausse pour se fairepasser pour un autre type de serveur. Ilest important de noter que ces techniques de masquage reprĂ©sentent aussi des moyens lĂ©gitimes lorsquâilsâagit de cacher de lâinformation sans intĂ©rĂȘt aux utilisateurs normaux mais cruciale pour les attaquants.Effectivement, lors de la dĂ©couverte dâune vulnĂ©rabilitĂ© envers un programme spĂ©cifique, les attaquantsvont en prioritĂ© chercher de tels programmes pour cibler leurs attaques.
Pour palier ces problĂšmes, des mĂ©thodes plus Ă©laborĂ©es sontnĂ©cessaires. Lâexemple de la figure 3.6repris de [4] illustre par exemple des diffĂ©rences dans lâordre des entĂȘtesserveret date. De plus, enenvoyant des requĂȘtes spĂ©cifiques les rĂ©ponses peuvent diffĂ©rer. Comme dans les approches vues dans lecas du fingerprinting de systĂšme dâexploitation, ces requĂȘtes sont soient malformĂ©es soit peu courantes.En effet, les erreurs dâimplantation ou le manque de spĂ©cifications exactes se prĂ©sentent souvent pour cescas. Lâoutil [4] observe que lors de lâenvoi dâune requĂȘteDELETE, pour supprimer une ressource sur leserveur et donc gĂ©nĂ©ralement interdit, les codes dâerreurstransmis varient.
Alors que les rĂ©seaux sans fil 802.11 se sont popularisĂ©s ces derniĂšres annĂ©es, leur sĂ©curisation nâacessĂ© dâĂȘtre amĂ©liorĂ©e. De maniĂšre gĂ©nĂ©rale, le premier paspour pĂ©nĂ©trer un tel rĂ©seau est de se fairepasser pour un utilisateur lĂ©gitime en lui volant son âidentitĂ©â sur ce rĂ©seau. Câest dans cette optique que[13] cherche Ă identifier les points dâaccĂšs en se basant uniquement sur les bits de contrĂŽle de trame. Surla figure 3.7, chaque ligne reprĂ©sente un de ses bits et chaquecolonne un test effectuĂ© dont la largeurdĂ©pend de la frĂ©quence de rĂ©ponse. Plus une case est noire, plus elle est frĂ©quente. La diffĂ©rence estflagrante entre un point dâaccĂšs Cisco-Linksys WRT54g 3.7(a) et HostAP 3.7(b).
Le protocole SIP [6] est largement employĂ© aujourdâhui notamment pour la gestion des sessions deVoIP. En parallĂšle Ă lâessor de cette technologie, les attaques se sont dĂ©veloppĂ©es et notamment le SpIT(Spam over Internet Telephony) Ă©quivalent multimĂ©dia du spam (appels vocaux, vidĂ©os...). Ce problĂšmeest traitĂ© dans [23] introduisant du fingerprinting actif grĂące Ă deux types de messages :
â des messages malformĂ©s (par exemple avec un numĂ©ro de version de protocole impossible) entraĂź-nant diffĂ©rents types de rĂ©ponses ;
â les requĂȘtesOPTIONSpour rĂ©cupĂ©rer la liste des opĂ©rations permises et qui varient selon lesĂ©quipements.
De plus, de nombreux champs dans lâentĂȘte sont optionnels etleur prĂ©sence ou non sont des indicesutiles pour le fingerprinting de mĂȘme que lâordre dans lequelils apparaissent.
Un point faible souvent adoptĂ© dans les techniques de fingerprinting est lâutilisation de gĂ©nĂ©rateurde nombres alĂ©atoires qui sont souvent mal implantĂ©s. En effet, il arrive souvent que la distribution deces nombres ne suive pas une loi de distribution uniforme. Ainsi Scholzet al. [24] parviennent Ă identi-fier les diffĂ©rents Ă©quipements SIP Ă partir des identifiantsdâappel devant normalement ĂȘtre dĂ©terminĂ©s
76
3.3. Applications
alĂ©atoirement Ă chaque nouvel appel Ă©mis.Toujours dans le cadre de SIP, [8] prĂ©sente une mĂ©thode reposant sur la construction de lâarbre
syntaxique dâun message par rapport Ă la grammaire ABNF du protocole. Chaque Ă©lĂ©ment de lâarbre estun champ terminal (valeur dĂ©finie) ou non terminal (rĂ©pĂ©tition, sĂ©quence...). Plus prĂ©cisement, lors de laphase dâentraĂźnement du systĂšme, les arbres syntaxiques provenant du mĂȘme Ă©quipement sont comparĂ©sentre eux de maniĂšre Ă identifier les champs invariants ou dynamiques. Ensuite, les diffĂ©rences entre lesarbres de deux Ă©quipements distincts sont identifiĂ©es. Il devient alors possible de faire de la discriminationdes messages basĂ©s sur ces diffĂ©rences.
Dans le cadre du fingerprinting actif, FIG [14], prĂ©cĂ©demment introduit dans la section 3.3.1, estaussi capable dâidentifier spĂ©cifiquement les versions implantĂ©es dâun protocole toujours en testant denombreuses requĂȘtes possibles pour en dĂ©gager le sous-ensemble qui permet dâidentifier efficacementles Ă©quipements.
Enfin, Shuet al. introduisent un modĂšle formel pour le fingerprinting dans [22]. Bien quâici, il soittestĂ© avec TCP et corresponde plutĂŽt Ă du fingerprinting de systĂšmes dâexploitation, il est clairementapplicable Ă tout autre protocole. Le modĂšle repose sur la dĂ©finition de machines Ă Ă©tats finis Ă©tenduesparamĂ©trĂ©es oĂč chaque transition entre deux Ă©tats dĂ©pend dâune partie du contenu dâun paquet. GrĂące Ă cette formalisation, le but est de trouver une sĂ©quence dâentrĂ©e (messages reçus) qui permet de gĂ©nĂ©rerdeux sorties diffĂ©rentes (messages Ă©mis) pour deux machines Ă Ă©tats Ă discerner.
3.3.4 Comptage
Le comptage de machines est un autre genre de fingerprinting qui a pour objectif de diffĂ©rencierchaque machine unique. Dans le pire des cas, deux machines identiques ayant exactement les mĂȘmeslogiciels installĂ©s doivent ĂȘtre diffĂ©rentiables. La technique la plus simple consiste tout simplement Ă compter le nombre dâadresses IP diffĂ©rentes mais est totalement inefficace pour deux raisons majeures :
â lâusurpation dâadresses IP ou lâutilisation dâadresses IP dynamiques impliquant une surĂ©valuationdu nombre de machines ;
â le partage dâune adresse IP publique via un routeur NAT entraĂźnant une sous-Ă©valuation du nombrede machines.
LâintĂ©rĂȘt de ce fingerprinting est le comptage prĂ©cis des machines permettant de mieux gĂ©rer un rĂ©seau,notamment pour prĂ©voir les ressources Ă allouer. Par ailleurs, les attaques par usurpation dâadresses IPsont plus facilement dĂ©tectĂ©es. De mĂȘme, si une signature est attribuĂ©e Ă chaque machine, sa traque et lesuivi de sa localisation sur Internet sont envisageables.
Pour rĂ©soudre le problĂšme des machines derriĂšre un NAT, Bellovin suggĂ©ra dâutiliser le champId delâentĂȘte IP [39]. Ce champ permet dâidentifier de maniĂšre unique chaque paquet mais sa gĂ©nĂ©ration estgĂ©nĂ©ralement implantĂ©e via un compteur. Ainsi, un hĂŽte est identifiĂ© en repĂ©rant des sĂ©quences linĂ©airesde ce champ.
Une technique plus gĂ©nĂ©rale consiste Ă Ă©tudier les gigues des horloges TCP voire ICMP [30]. En effet,ces paquets contiennent un timestamp Ă partir duquel la machine dâobservation est capable de dĂ©river lagigue de lâhorloge qui mesure son dĂ©calage avec le temps rĂ©el. En rĂ©alitĂ©, câest lâĂ©volution de ce dĂ©calageau cours du temps qui permet de diffĂ©rencier chaque machine.Cette approche sâapplique Ă©galement Ă ladistinction des machines virtuelles de machines rĂ©elles. Fink Ă©labora une technique similaire dans [16].Plus rĂ©cemment, [9] se focalise sur la distinction dâĂ©quipements sans fil 802.11 de maniĂšre totalementpassive en se basant sur le dĂ©lai entre deux paquets servant Ă sonder la prĂ©sence dâun point dâaccĂšs. Enfait, les auteurs observent que ce temps dĂ©pend bien entendudu pilote sans fil, du systĂšme dâexploitationmais aussi de la gigue de lâhorloge ou encore du bruit environnant.
77
Chapitre 3. Fingerprinting
Approches Avantages InconvénientsSignaturesmanuelles
â simple Ă appliquerâ souvent bien testĂ©e et Ă©prou-
vée
â signatures spĂ©cifiquesâ bases dedonnĂ©es devant ĂȘtre mises Ă jour
â nombre de signatures Ă©levĂ©es devantĂȘtre optimisĂ©
â crĂ©ation manuelle des signatures
Apprentissage(signatures au-tomatiques)
â gĂ©nĂ©riquesâ rapidement ap-plicables dans diffĂ©rents con-textes
â pas de mises Ă jour manuellesâ peu dâinterventions humaines
â nĂ©cessitĂ© dâavoir un jeu dâappren-tissage complet et correctement Ă©ti-quetĂ©
â nombreux choix de mĂ©thodes sou-vent plus complexes que de simplessignatures Ă comparer
â paramĂ©trage parfois difficile
TABLE 3.3 â Techniques de fingerprinting
3.4 Bilan
Le fingerprinting est un domaine vaste qui ne vise pas forcĂ©ment Ă obtenir toujours le mĂȘme typedâidentification. Ce chapitre a prĂ©sentĂ© les applications majeures ainsi que les techniques associĂ©es. Il estimportant de remarquer que les caractĂ©ristiques Ă©tudiĂ©es sont souvent similaires (taille dâun paquet, dâunflux, temps entre deux paquets) malgrĂ© la mise en valeur de nouvelles plus rĂ©cemment. Cependant, lesrĂ©elles diffĂ©rences se situent au niveau des reprĂ©sentations de ces donnĂ©es et de leur traitement. Le tableau3.3 rĂ©capitule les deux grandes classes de fingerprinting que lâon peut trouver actuellement. MalgrĂ© leursimplicitĂ©, les bases de signatures manuelles sont aujourdâhui gĂ©nĂ©ralement employĂ©es du fait de leursimplicitĂ© dâutilisation Ă lâinstar de p0f [2] ou NMAP [6].
Alors quâhistoriquement, lâobjectif souhaitĂ© Ă©tait la classification des machines selon leur systĂšme dâ-exploitation et la classification du trafic, celui-ci a plus rĂ©cemment Ă©voluĂ© vers le fingerprinting dâĂ©quipements.En fait, un objectif principal est la distinction du trafic normal et du trafic malveillant qui pouvait, parle passĂ©, ĂȘtre rĂ©alisĂ©e Ă un niveau assez macroscopique (classification de trafic, de protocoles). Aujour-dâhui, les malwares ne nĂ©cessitent plus forcĂ©ment de protocoles spĂ©cifiques. De plus, les attaquants ontfait dâĂ©normes progrĂšs dans la dissimulation de leur trafic.Par exemple, une machine qui envoyait duspam (beaucoup de flux similaires) ou effectuait une attaquede dĂ©ni de service (temps inter-paquets trĂšscourts) Ă©tait facilement repĂ©rable. Actuellement, avec ledĂ©veloppement des botnets, ces actions sontdistribuĂ©es et deux alternatives sont envisageables pour amĂ©liorer leur dĂ©tection :
â avoir une vue plus globale sur le rĂ©seau ce qui oblige les diffĂ©rents acteurs Ă collaborer mais aussiĂ Ă©changer et stocker beaucoup de donnĂ©es ;
â associer une signature prĂ©cise au malware.
La seconde mĂ©thode est clairement moins coĂ»teuse, rĂ©alisable grĂące au fingerprinting dâĂ©quipements.Par exemple, dans le cas de lâenvoi de Spam, les programmes bots utilisent gĂ©nĂ©ralement leur propreimplantation dâun client SMTP souvent plus lĂ©gĂšre pour gagner en rapiditĂ© et en discretion. Le finger-printing ne doit plus seulement ĂȘtre capable de dĂ©tecter du trafic SMTP mais aussi la version utilisĂ©e,câest-Ă -dire le logiciel bot. Ce petit exemple montre lâintĂ©rĂȘt du fingerprinting dâĂ©quipements dans le
78
3.4. Bilan
domaine de la sĂ©curitĂ©. NĂ©anmoins, ce type de fingerprintingdemeure pour le moment trĂšs peu explorĂ©.Enfin, de nouveaux types de fingerprinting Ă©mergent tels que [15] oĂč lâobjectif est de dĂ©terminer
automatiquement le langage dâutilisateurs rĂ©els dans des communications VoIP chiffrĂ©es.
79
4
Modélisation des botnets
Sommaire4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 834.2 Cas dâĂ©tude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.1 Supervision des réseaux et services . . . . . . . . . . . . . . .. . . . . . 84
4.2.2 Supervision dâun pot de miel distribuĂ© . . . . . . . . . . . . .. . . . . . 85
4.2.3 Techniques existantes . . . . . . . . . . . . . . . . . . . . . . . . . .. . 86
4.3 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .864.3.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.3.2 MĂ©triques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.4 ModĂšles Internet Relay Chat . . . . . . . . . . . . . . . . . . . . . . . .. . . 884.4.1 Topologie Internet Relay Chat . . . . . . . . . . . . . . . . . . . .. . . 88
4.4.2 Premier modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.4.3 Second modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.4.4 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5 ModÚles P2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.5.1 Totalement maillé, Slapper . . . . . . . . . . . . . . . . . . . . . .. . . 97
4.5.2 Table de hachage distribuée, Chord . . . . . . . . . . . . . . . .. . . . . 99
4.5.3 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.1 Introduction
Le chapitre 1 a prĂ©sentĂ© les botnets, ces rĂ©seaux de machinescompromises contrĂŽlĂ©es par un at-taquant. Leurs tailles en font de redoutables moyens dâattaque dont personne ne peut douter aujourdâhuiau vue des nombreuses attaques rĂ©alisĂ©es et observĂ©es. Cependant, les connaissances actuelles se lim-itent principalement Ă des observations rĂ©elles qui ont lâavantage dâĂȘtre rĂ©alistes mais lâinconvĂ©nientdâĂȘtre limitĂ©es Ă un botnet particulier Ă un moment prĂ©cis. Pour pouvoir Ă©tudier les botnets de maniĂšreplus gĂ©nĂ©rique et selon de nombreux paramĂštres pour diversifier les cas, lâĂ©laboration de modĂšles est uneĂ©tape primordiale.
Les modélisations actuelles introduites dans la section 1.6 sont de deux types :
83
Chapitre 4. Modélisation des botnets
â celles visant Ă modĂ©liser le dĂ©ploiement du botnet, câest-Ă -dire sa propagation sur Internet [54, 25] ;â celles cherchant Ă Ă©tudier les performances dâun botnet une fois dĂ©ployĂ© [37, 26].Le dĂ©ploiement dâun botnet est comparable Ă la propagation dâun vers qui fut Ă©tudiĂ©e dans de nom-
breux travaux (voir section 1.6). LâĂ©tude des performancesdâun botnet dĂ©ployĂ© est un domaine encorepeu explorĂ© mais dont les avantages sont multiples. En premier lieu, dans le cadre de lâĂ©laboration decontre-mesures face Ă un botnet, de tels modĂšles aident Ă mieux estimer sa puissance potentielle et ainsiprĂ©voir son impact. Par exemple, des outils introduits dansla section 1.6 parviennent Ă acquĂ©rir des in-formations sur un botnet rĂ©el (nombre de machines infectĂ©es, architecture sous-jacente...) pouvant alorsservir Ă instancier un modĂšle et ainsi Ă prĂ©voir les effets nĂ©fastes lors du lancement dâune attaque. Parailleurs, il devient possible dâexpertiser la robustesse du botnet et de voir si le fait de dĂ©connecter certainsbots est vraiment efficace. A premiĂšre vue, le modĂšle le plus simple considĂ©rerait que lâefficacitĂ© et larobustesse dâun botnet sont linĂ©aires par rapport Ă sa taille. Bien entendu, cette idĂ©e est bien trop simpleet nĂ©cessite dâĂȘtre affinĂ©e car rien nâassure que tous les bots puissent ĂȘtre contactĂ©s et, qui plus est, enmĂȘme temps.
Outre lâaspect malveillant dâun botnet, ses performances restent extraordinaires alors que le passageĂ lâĂ©chelle reste le point faible de nombreuses applications communicantes. Sâinspirer de tels malwarespeut ainsi contribuer Ă une meilleure conception des applications. Cependant cela implique dâĂȘtre sĂ»r desperformances rĂ©alisables pour dĂ©terminer si elles sont suffisantes dans le cas dâune application donnĂ©e.Ce chapitre commencera donc par introduire une telle application oĂč la mise en Ćuvre dâune architecturesimilaire Ă un botnet semble ĂȘtre justifiĂ©e.
De plus, ce chapitre dĂ©finira les diffĂ©rentes caractĂ©ristiques dâun botnet intĂ©ressantes Ă mesurer ainsique des modĂšles associĂ©s (IRC ou P2P). Enfin, ceux-ci seront comparĂ©s par rapport aux autres existants[37, 26].
4.2 Cas dâĂ©tude
4.2.1 Supervision des réseaux et services
La supervision des rĂ©seaux et services est une application dont le passage Ă lâĂ©chelle est primordialet oĂč les botnets semblent ĂȘtre une architecture de support intĂ©ressante. Plusieurs domaines composent lasupervision des rĂ©seaux : gestion de dĂ©faut, gestion de configuration, gestion comptable, gestion dâexĂ©-cution et gestion de sĂ©curitĂ©. Une supervision optimale doit pouvoir opĂ©rer sur des Ă©quipements variĂ©s(ordinateurs, pare-feux, routeurs, tĂ©lĂ©phones, imprimantes, serveurs...) et se faire Ă travers Internet malgrĂ©les nombreux Ă©quipements qui pourraient bloquer le trafic lĂ©gitime de supervision tels que les pare-feuxou encore les routeurs NAT (Network Addresses Translator). Câest ce que montre la figure 4.1 oĂč uneentreprise peut avoir plusieurs sites voire des machines hors du rĂ©seau (mobilitĂ©) ou dĂ©lĂ©guer la gestionde son rĂ©seau Ă un partenaire.
Il est alors clair quâadapter les botnets pour la supervision des rĂ©seaux est une solution envisageableĂ large Ă©chelle puisque les attaquants ont dĂ©jĂ surmontĂ© lesproblĂšmes prĂ©cĂ©dents en les utilisant. ParconsĂ©quent, les modĂšles permettront de dĂ©terminer si une telle supervision est possible ou non. PlusprĂ©cisement, lâobjectif visĂ© est la configuration de masse avec les propriĂ©tĂ©s suivantes :
â passage Ă lâĂ©chelle : un grand nombre de machines Ă configurer,â efficacitĂ© : nouvelle configuration dĂ©ployĂ©e rapidement,â anonymat : un attaquant ne doit pas pouvoir dĂ©couvrir les machines supervisĂ©es ainsi que celles
qui contrĂŽlent le systĂšme pour Ă©viter un dĂ©tournement de lâusage du botnet,
84
4.2. Cas dâĂ©tude
...
...
Entreprise A - Site ARĂ©seaux publics
Superviseur
Superviseur
Entreprise B (partenaire)
...
Entreprise A - Site B
FIGURE 4.1 â Supervision des rĂ©seaux Ă large Ă©chelle
Plateforme de supervision
Distr ibuted honeypot
configurer les mots clés
récupérer la l istedes machines suspectes
RĂ©seau P2P de partage de fichiers
Cyber-criminel Cyber-criminel
annoncerdes mots clés
rechercher des mots clés
FIGURE 4.2 â Cas de figure du honeypot distribuĂ©
â sĂ©curitĂ© : une machine supervisĂ©e ne doit pas pouvoir lancer de fausses requĂȘtes de supervisionsur le rĂ©seau,
â garantie dâatteignabilitĂ© : lâadministrateur doit pouvoir savoir quel est le rĂ©sultat potentiel de lâen-voi dâune requĂȘte et notamment le nombre de machines qui lâauront correctement reçu. Cela per-met ensuite de prĂ©voir des mesures supplĂ©mentaires si ce nombre nâest pas satisfaisant.
4.2.2 Supervision dâun pot de miel distribuĂ©
Bien que de maniĂšre gĂ©nĂ©rale le but soit de proposer une solution globale de supervision Ă largeĂ©chelle, lâĂ©tude dâun cas prĂ©cis extrĂȘment contraignant donnera de bonnes indications valables pour laplupart des autres cas. Ainsi, lâapplication visĂ©e doit permettre de traquer les cyber-criminels sur lesrĂ©seaux pair-Ă -pair dâĂ©change de fichiers comme proposĂ© dans [2]. Pour cela, des mots-clĂ©s spĂ©cifiquessont annoncĂ©s sur le rĂ©seau et il suffit alors de rĂ©cupĂ©rer lespersonnes qui recherchent ces mots-clĂ©s. DemaniĂšre Ă amĂ©liorer la dĂ©tection de ces personnes, il faudrait quâun grand nombre de pairs annoncentces mots-clĂ©s. Lâarchitecture de type honeypot distribuĂ© de la figure 4.2, oĂč tout utilisateur du rĂ©seau quile souhaite peut participer, est donc envisageable. Dans lecas prĂ©sent, la supervision se focalise sur laconfiguration des honeypots en leur fournissant les diffĂ©rents mots-clĂ©s, ce qui correspond bien Ă fairede la configuration en masse.
Les propriĂ©tĂ©s Ă©noncĂ©es prĂ©cĂ©demment sont ainsi plus prĂ©cisĂ©ment dĂ©finies :â passage Ă lâĂ©chelle : tout utilisateur doit pouvoir participer, Ă©quivalent Ă des centaines de milliers
de machines,â efficacitĂ© : les mots-clĂ©s sont spĂ©cifiques mais pas forcĂ©ment en lien avec le contenu et peuvent
donc changer assez rapidement,â anonymat : un attaquant ne doit pas pouvoir attaquer une partie du systĂšme pour se protĂ©ger lors
dâĂ©ventuels tĂ©lĂ©chargements,â sĂ©curitĂ© : un attaquant ne doit pas pouvoir annoncer une liste de faux mots-clĂ©s,â garantie dâatteignabilitĂ© : lâadministrateur doit ĂȘtre en mesure dâĂ©valuer le pourcentage de ma-
chines qui a bien la liste de nouveaux mots-clés à chaque miseà jour.
85
Chapitre 4. Modélisation des botnets
4.2.3 Techniques existantes
Dans une solution classique de supervision, le superviseurcommunique directement avec chaqueĂ©quipement Ă superviser. Comme lâarchitecture centralisĂ©e limite le passage Ă lâĂ©chelle, plusieurs so-lutions dĂ©centralisĂ©es sont apparues. On peut par exemple citer la supervision par dĂ©lĂ©gation [11] ouencore lâutilisation de niveaux hiĂ©rarchiques et de superviseurs en cascade [1]. En fait, chaque super-viseur intermĂ©diaire doit transformer les requĂȘtes de supervision de maniĂšre Ă ce que celles-ci soientadaptĂ©es aux diffĂ©rents Ă©quipements dont ils sont responsables. Les rĂ©ponses doivent aussi ĂȘtre transfor-mĂ©es ou agrĂ©gĂ©es comme dans [7]. Dans ces cas, les requĂȘtes pour les diffĂ©rents Ă©quipements ne sontpas identiques. Dans le contexte de la configuration de masse, oĂč la mĂȘme requĂȘte est transmise Ă tousles Ă©quipements, il nây a plus besoin dâavoir des superviseurs intermĂ©diaires sensibles Ă des pannes ouĂ des attaques supplĂ©mentaires. Une extension de la supervision hiĂ©rarchique basĂ©e sur les rĂ©seaux pair-Ă -pair est proposĂ©e dans [6]. [4] propose de rĂ©soudre des recherches dans les rĂ©seaux pair-Ă -pair avecdes caractĂšres gĂ©nĂ©riques en se basant sur des techniques dâagrĂ©gation et de rĂ©plication.Echo Pattern[8] est un modĂšle proche des rĂ©seaux pair-Ă -pair qui promet de bonnes performances. Il existe aussi dessolutions de supervision utilisant les rĂ©seaux actifs [9].Dans ce cas une requĂȘte est un programme lĂ©gertransmis entre les diffĂ©rents hĂŽtes du rĂ©seau. Cependant, leur dĂ©ploiement est trĂšs limitĂ© car il nĂ©cessitedes Ă©quipements dĂ©diĂ©s. Certaines solutions sont dĂ©diĂ©es aux rĂ©seaux Ad-Hoc comme [5] oĂč le rĂ©seauest dĂ©coupĂ© en groupes avec pour chacun dâeux un responsableĂ©lu. Pour un botnet, aucune machine spĂ©-cifique nâa besoin dâĂȘtre utilisĂ©e hormis la plateforme de management car tout le monde peut participeret les ressources nĂ©cessaires sont faibles contrairement Ă la plupart des autres solutions.
Cependant, lâadaptation de logiciels malveillants Ă des fins bienveillantes nâest pas nouvelle Ă lâinstarde [10] qui exposait lâutilisation dâun vers patrouillant sur les machines Ă superviser avant de retourner Ă la plateforme de management. Malheureusement, les Ă©tudes demeurent trĂšs limitĂ©es. Le vers Code-Green[60] est aussi trĂšs connu car il dĂ©sinfectait les machines infectĂ©es par Code-Red. Le problĂšme de ce typede vers est la lĂ©galitĂ© car sa propagation reste souvent incontrĂŽlĂ©e. Dans une Ă©tude prĂ©cĂ©dente [3], unepremiĂšre Ă©bauche plus gĂ©nĂ©rale de lâadaptation de logiciels malveillants pour la supervision des rĂ©seauxfut introduite.
4.3 Terminologie
Cette section introduit les différentes notations et métriques qui seront ensuite reprises et adaptéesaux différents modÚles.
4.3.1 Notations
La figure 4.3 illustre un exemple de botnet quelconque oĂč aucune architecture prĂ©cise nâest pourle moment spĂ©cifiĂ©e, câest-Ă -dire que les diffĂ©rentes machines reprĂ©sentĂ©es peuvent aussi bien ĂȘtre desmachines dâutilisateurs que des serveurs. Dans le cadre de la modĂ©lisation et du fait de la reprĂ©sentationpar des graphes, ces machines sont aussi nommĂ©es nĆuds. Les deux paramĂštres les plus importants durĂ©seau sont :
â m : le facteur de branchement maximal qui reprĂ©sente le nombremaximal de voisins dâun nĆud,â N : le nombre total de nĆuds dans le rĂ©seau.Pour avoir une modĂ©lisation plus rĂ©aliste, deux contraintes sont ajoutĂ©es sur les nĆuds :
86
4.3. Terminologie
FIGURE 4.3 â Notations gĂ©nĂ©rales utilisĂ©es pour la modĂ©lisation des botnets
â ÎČ : la probabilitĂ© dâĂȘtre compromis illustrĂ©e sur la figure 4.4(a). Un attaquant qui a compromis unnĆud est seulement capable dâĂ©couter lâensemble des communications et donc de dĂ©couvrir lesvoisins.
â α(m) est le facteur de disponibilitĂ© mis en Ă©vidence sur la figure 4.4(b). Un nĆud disponible estcapable de faire suivre les requĂȘtes de supervision. Ce facteur reprĂ©sente donc le fait quâun nĆudnâa plus assez de ressources pour rĂ©ussir Ă le faire correctement. Ce facteur sera alors modĂ©lisĂ© parune fonction dĂ©croissante demcar plus un nĆud doit maintenir de connexions plus il risque dâĂȘtresurchargĂ©.
4.3.2 MĂ©triques
Cette section dĂ©finit les diffĂ©rentes mĂ©triques dâĂ©valuation des performances du botnet.Dans lâobjectif du passage Ă lâĂ©chelle, la mĂ©trique principale est lâatteignabilitĂ©.
DĂ©finition 14 : LâatteignabilitĂ© est la proportion moyenne de bots atteints Ă une distance maximaled du botmaster, ce qui est un bon indicateur de passage Ă lâĂ©chelle. Elle se note att(d).
La figure 4.3 illustre cette mĂ©trique.LâatteignabilitĂ© prĂ©cĂ©demment dĂ©finie est dĂ©pendante dâune distance donnĂ©e et il est Ă©vident quâune
mesure plus gĂ©nĂ©rale doit permettre dâestimer le nombre de bots atteignables quelque soit leur distancepar rapport au botmaster.
DĂ©finition 15 : LâatteignabilitĂ© moyenne, avg_att, est lâatteignabilitĂ©moyenne de toutes les distancespossibles.
Il est aussi parfois profitable de connaĂźtre le nombre exact de bots atteints et pas seulement la pro-portion :
DĂ©finition 16 : LâatteignabilitĂ© absolue est le nombre de bots atteints Ă une distance maximale d dubotmaster. Elle se noteatt(d).
Par consĂ©quent, certains modĂšles calculeront lâatteignabilitĂ© absolue et lâatteignabilitĂ© normale oupas mais leur Ă©quivalence est Ă©vidente puisqueatt(d) = NĂatt(d).
De mĂȘme lâatteignabilitĂ© moyenne absolue est dĂ©finit : Il estaussi parfois profitable de connaĂźtre lenombre exact de bots atteints et pas seulement la proportion:
87
Chapitre 4. Modélisation des botnets
(a) Attaque permettant Ă lâattaquant de surveiller les con-nexions dâune machine
(b) Surcharge, la requĂȘte r1 entraĂźne une surcharge sur lenĆud qui lui empĂȘche de transmettre la requĂȘte suivante(r2)
FIGURE 4.4 â Contraintes sur les nĆuds du rĂ©seau
DĂ©finition 17 : LâatteignabilitĂ© absolue moyenne(avg_att) est lâatteignabilitĂ© absolue moyenne surtoutes les distances possibles.
Hormis ces métriques visant à calculer le nombre de bots, uneautre métrique annexe est le délainécessaire pour transmettre un ordre aux bots.
DĂ©finition 18 : temps(d) est le temps nĂ©cessaire pour que la requĂȘte envoyĂ©e par le botmaster arrivejusquâaux bots atteignables Ă une distance maximale d.
LâintĂ©rĂȘt dâune telle estimation est Ă©vident lors de la quantification du temps nĂ©cessaire pour quâunordre soit exĂ©cutĂ© sur un nombre donnĂ©s de bots. En effet, en calculant lâatteignabilitĂ© Ă une distancedet en calculant le temps nĂ©cessaire pour leur transmettre une requĂȘte, il est facile de dĂ©terminer le dĂ©laipour atteindre un certain nombre de bots.
Par ailleurs, dans le cas oĂč plusieurs requĂȘtes indĂ©pendantes doivent ĂȘtre transmises, cette mĂ©triqueest trĂšs utile pour apprĂ©cier leur ordre dâĂ©mission selon leur prioritĂ© car certaines opĂ©rations nĂ©cessitentdâĂȘtre effectuĂ©es avant un certain temps telles que des mises Ă jour de sĂ©curitĂ© importantes.
4.4 ModĂšles Internet Relay Chat
4.4.1 Topologie Internet Relay Chat
Pour rappel, un rĂ©seau IRC est composĂ© de plusieurs serveursinterconnectĂ©s de maniĂšre Ă formerun arbre de diffusion. Les diffĂ©rents bots sont alors connectĂ©s sur ces derniers. Lorsque le superviseursouhaite envoyer une requĂȘte aux bots, il la transmet au serveur sur lequel il est connectĂ© qui la fait alorssuivre aux autres via lâarbre de diffusion. Chacun de ces serveurs est aussi responsable de lâenvoyer versles bots connectĂ©s. La racine de lâarbre de propagation est donc le serveur sur lequel le superviseur estconnectĂ©. Ătant donnĂ© que le cĆur du rĂ©seau se situe au niveaudes serveurs et que leurs caractĂ©ristiques etcelles des bots sont forcĂ©ment diffĂ©rentes (disponibilitĂ©, connectivitĂ©...), les modĂšles IRC se focaliseronten premier lieu sur lâarbre de diffusion pour, dans un secondtemps, prendre en compte les bots. Tout aulong de cette section, les termesnĆudsetserveurssont donc Ă©quivalents.
88
4.4. ModĂšles Internet Relay Chat
j ik
P(i,k,1)
= 1 / (iâ1)P(k,j,dâ1)
Distance d
ik
P(kâ,j,dâ1)
Distance d â 1
kâ
P(k,kâ,1)
= 1 / (kâ1) ...
ik*
Distance 1
P(k*,i,1)
= 1 / (k*â1)
FIGURE 4.5 â Calcul des probabilitĂ©s de distance exacte dans un arbre alĂ©atoire rĂ©cursif
4.4.2 Premier modĂšle
Ce premier modĂšle considĂšre une construction alĂ©atoire de celui-ci. En rĂ©alitĂ©, un administrateurdâun rĂ©seau IRC aura plutĂŽt tendance Ă placer des nĆuds centraux fiables, câest-Ă -dire des serveurs quiauront peu de chances dâĂȘtre dĂ©connectĂ©s car une dĂ©connexion centrale coupera clairement le rĂ©seau endeux contrairement Ă une dĂ©connexion pĂ©riphĂ©rique. Cependant, dans le cadre de cette modĂ©lisation, lafiabilitĂ© des nĆuds est constante et similaire. Ainsi, modĂ©liser le graphe des serveurs IRC par un arbrealĂ©atoire est justifiĂ©. Ce modĂšle et son Ă©valuation furent publiĂ©s dans [4].
Distance entre deux nĆuds
Les travaux exposĂ©s dans [8] soulignent la possibilitĂ© de considĂ©rer un arbre alĂ©atoire construit pas Ă pas de maniĂšre rĂ©cursive oĂč chaque nĆud est numĂ©rotĂ©. Ă chaque fois quâun nĆud est rajoutĂ© dans lâarbrecelui-ci a des chances Ă©quiprobables dâĂȘtre connectĂ© Ă un prĂ©cĂ©dent. Dans le cas prĂ©sent, lâensembleordonnĂ© des nĆuds estL = n1,n2, . . . ,nN oĂč âi, 1†i †Nâ1, le nĆudni a Ă©tĂ© ajoutĂ© avant le nĆudni+1.
Ainsi, lorsque le nĆudsn j est ajoutĂ© Ă lâarbre, celui-ci peut ĂȘtre reliĂ© Ă toutni avec 1†i < j demaniĂšre Ă©quiprobable. Par consĂ©quent, la probabilitĂ© que le nĆudn j soit connectĂ© au nĆudni se dĂ©finitde la maniĂšre suivante :
pi, j =
1jâ1
pour 1†i < j
0 sinon(4.1)
La probabilitĂ© que le nĆudni soit Ă une distanced du nĆudn j avec 1†i < j â€N se dĂ©noteP(i, j,d)et est calculable rĂ©cursivement. En effet, lorsque la distance sĂ©parant deux nĆuds est Ă©gale Ă un, celarevient Ă utiliser directement la formule 4.1 qui indique laprobabilitĂ© pour ce nĆudj de se connecter
89
Chapitre 4. Modélisation des botnets
Ă un nĆudk aveck < i. Il suffit alors de la multiplier par la probabilitĂ© que ce dernier soit connectĂ© aunĆudi Ă une distancedâ 1 et ainsi de suite. Ce principe est illustrĂ© sur la figure 4.5 oĂč pour aller dei Ă j end sauts, il est nĂ©cessaire de traverserdâ1 nĆuds intermĂ©diaires. GrĂące Ă cette reprĂ©sentation,P(i, j,d) est dĂ©finit comme suit :
P(i, j,d) =
pi, j pour d = 1jâ1
âk=1
p(k, j)ĂP(k, i,dâ1) =1
jâ1
jâ1
âk=1
P(k, i,dâ1) sinon(4.2)
Les indices de la somme varient entre 1 etj â1 car la construction rĂ©cursive de lâarbre au moment delâajout du nĆudn j implique la crĂ©ation dâun chemin entre ce nĆud et le nĆudni . A lâinverse lors delâajout dâun nĆudnk aveck> j, sâil existait un autre chemin possible passant park, ce ne serait plus unarbre dâoĂč un indice maximal Ă©gal Ă jâ1.
Distance entre un nĆud et plusieurs autres
Dans le cadre de cette Ă©tude, câest-Ă -dire lâenvoi massif dâune commande via le rĂ©seau, il est plusintĂ©ressant de dĂ©terminer la probabilitĂ©P(o,d,S) pour un nĆudo dâavoir un ensembleSde nĆuds Ă unedistance maximaled. Soit 1†i †Nâ1 le nombre de nĆuds que lâon considĂšre directement connectĂ©sau nĆud dâorigineo, ceux-ci forment lâensemble :
CHOIX= c1, . . . ,ci â S
Son complĂ©mentaire spĂ©cifie les nĆuds qui devront ĂȘtre joignables au deuxiĂšme ou au plus au de
saut :RESTE= NâCHOIX= r1, . . . , rp
Cet ensemble doit ĂȘtre divisĂ© entre les diffĂ©rents nĆuds deCHOIX sur lesquels ils seront raccordĂ©sdirectement ou indirectement. En clair, les nĆuds deCHOIX reprĂ©sentent les racines des sous-arbresau deuxiĂšme saut et il est nĂ©cessaire dâassigner chaque nĆudrestant Ă un de ces sous-arbres. Ainsi,lâensembleSUITEsymbolise lâaffectation des nĆuds Ă partir du second niveau:
SUITE= < s11,s12 >,. . . ,< sp1,sp2 >
avec :â j,sj1 âCHOIX,sj2 â RESTEet âk 6= j,sk2 6= sj2. La premiĂšre condition impose que chaquenĆud racine des sous arbres appartienne bien Ă un nĆud de la combinaison choisie (CHOIX). La secondecontrainte signifie que les sous arbres ne peuvent ĂȘtre engendrĂ©s quâĂ partir des nĆuds restants et nepeuvent bien entendu pas partager un nĆud commun (sinon des cycles sont introduits).
Par exemple, si< cx, ry > signifie que le nĆudry fait partie du sous arbre enracinĂ© sur le nĆudcx.Un exemple est donnĂ© sur la figure 4.6(a) avec 7 nĆuds eto = 4. La premiĂšre Ă©tape choisit de
connecter directement Ă o les nĆudsCHOIX= 2,5,6. Chacun des nĆuds restants (RESTE= 1,3,7)est alors assignĂ© Ă un sous arbre engendrĂ© par un de ces nĆuds choisis. Ici, 1 et 3 sont greffĂ©s sur le sousarbre de 2 et 7 sur le sous arbre de 5. Ensuite, lâarbre est complĂ©tĂ© rĂ©cursivement en appliquant le mĂȘmeprocessus sur les sous-arbres. Un rĂ©sultat possible est tracĂ© sur la figure 4.6(b).
Bien Ă©videmment, ces ensembles doivent ĂȘtre construits au hasard et le calcul de probabilitĂ© nĂ©cessitede prendre en compte tous les cas possibles. Ainsi, lâensemble CHOIX(S) regroupe lâensemble descombinaisons possibles de 1 ou au maximum le nombre de nĆuds restants. Par consĂ©quent,CHOIXsera instanciĂ© avec une de ces combinaisons. Plus formellement, CHOIX(S) est construit Ă partir delâensembleSdes nĆuds possibles du sous arbre considĂ©rĂ© :
CHOIX(S) = âȘ(c1, . . . ,ci,âk, l ,k 6= l ,ck 6= cl ,ck â S,cl â S),1†i †|S|
90
4.4. ModĂšles Internet Relay Chat
4
2
31
5
7
6
4 12
3
5
6
7
2 65
4
2 5 6 CHOIX=
1 3 7RESTE =
2 25SUITE =
1 7 3
(a) PremiÚre itération du choix des différents ensembles
4
2
31
5
7
6
(b) RĂ©sultat final
FIGURE 4.6 â Calcul des probabilitĂ©s de distances minimales dans unarbre alĂ©atoire
Ainsi pour toute combinaisonc deCHOIX(S), lâensemble ordonnĂ©RESTE(S,c) est dĂ©finit commeprĂ©cĂ©demment, câest-Ă -dire :
RESTE(S,c) = Sâc
De plus,SUITE(c, r) dĂ©finit lâensemble des affectations des nĆuds der aux sous-arbres dont lesnĆuds racines appartiennent Ă c. Cet ensemble a donc une taille identique Ă r :
SUITE(c, r) = âȘ< s11,s12 >,. . . ,< sp1,sp2 >,â j,sj1 â c,sj2 â r,âk 6= j,sk2 6= sj2, p= |r|
Finalement, la probabilitĂ© quâun nĆudo soit Ă une distance au plus Ă©gale Ă d dâun ensembleN sâĂ©critsous la forme suivante :
P(o,d,N) =
âcâCHOIX(N)
âsâSUITE(c,RESTE(S,c))
[âniâc
PâČ(o,ni)ĂP(ni,dâ1,Ί(s,ni))] si d> 0
0 sinon(4.3)
oĂč Ί(s,ni) = âȘsj2 tel que< sj1,sj2 >â c et sj1 = ni , câest-Ă -dire lâensemble des nĆuds comprisdans le sous arbre ayant pour racineni .
PâČ(i, j) est la probabilitĂ© que le nĆudi soit connectĂ© au nĆudj directement. En fait, cette probabilitĂ©est similaire Ă Pi j Ă la diffĂ©rence prĂšs quâelle dĂ©pend du nĆud dont lâindice estle plus Ă©levĂ©, câest Ă direcelui ajoutĂ© en second :
PâČ(i, j) =1
max(i, j)â1
Dans lâĂ©quation (4.3), il sâagit donc bien de sommer les diffĂ©rentes probabilitĂ©s de configurationsde sous arbres possibles. Pour chacun dâeux, la probabilitĂ©que les nĆuds qui lui sont assignĂ©s soit Ă une distance diminuĂ©e de 1 est alors calculĂ©e rĂ©cursivement. Il est donc nĂ©cessaire de multiplier cesprobabilitĂ©s pour obtenir celle de la configuration dans sonensemble. De plus, le second cas avec unedistance nĂ©gative symbolise le cas oĂč lâensemble des nĆuds originaux,N, nâauraient pas Ă©tĂ© atteint.
91
Chapitre 4. Modélisation des botnets
Atteignabilité
Il est important de remarquer que lâatteignabilitĂ© nâest pas encore formellement dĂ©fini. Pour rappellâatteignabilitĂ© est la proportion moyenne de nĆuds atteints Ă une distanced. Par construction, ce nombrepeut varier entre 1 etN (nombre total de nĆuds) et le calcul exact de lâatteignabilitĂ© exige de former tousles ensembles de nĆuds possibles de taille variant entre 1 etN. Soit So
i , lâensemble des combinaisonspossibles de nĆuds de taillei, exceptĂ© le nĆudo, lâatteignabilitĂ© Ă partir dâun nĆudo se dĂ©finit donccomme :
att(d,o) =
N
âi=1
âsâSo
i
P(o,d,s)
N.
Cependant, selon le nĆudo choisi, lâatteignabilitĂ© sera diffĂ©rente car les premiersnĆuds serontplus centraux que les derniers par construction. Ainsi, lâatteignabilitĂ© gĂ©nĂ©rale se calcule en faisant lamoyenne sur tous les nĆuds dâorigine possibles :
att(d) =
âoâ[1,...,N]
att(d,o)
N.
ProblĂšmes et limitations de ce modĂšle
Le problĂšme majeur de ce modĂšle est lâobligation de calculerde nombreux ensembles commeCHOIX(S), RESTE, SUITEouSo
i Ă cause de la numĂ©rotation des nĆuds qui impose dâexaminer tous lescas possibles. De plus, chacun dâeux est souvent construit grĂące Ă des combinaisons ce qui implique laconstruction de nombreux ensembles similaires. Par exemple, sur la figure 4.6(b), une permutation quel-conque des nĆuds donne une structure similaire et des performances similaires tant que le nĆud dâoriginereste positionnĂ© au mĂȘme endroit quelque soit son numĂ©ro. Par consĂ©quent, les calculs se retrouvent trĂšslongs et ce modĂšle nâest donc pas adaptĂ© Ă des tests exhaustifs.
De plus, les diffĂ©rentes contraintes comme la disponibilitĂ© dâun nĆud ou encore le risque dâattaquene sont pas encore prises en compte dans ce modĂšle. Ainsi, lâĂ©valuation dans le chapitre 7 de ce modĂšlesera succincte.
Enfin, ce modĂšle nâest quâune approximation puisque la construction de lâarbre entraĂźne une certainedĂ©pendance dans lâordre dâinsertion des nĆuds et donc leur placement. Par exemple il est impossibledâavoir une branche constituĂ©e successivement du nĆud 2 puis du nĆud 3 et enfin du nĆud 1 puisquele nĆud 2 est insĂ©rĂ© avant le nĆud 3 et aurait donc forcĂ©ment Ă©tĂ© liĂ© au premier. Ainsi il est en plusnĂ©cessaire dâintroduire une fonction de vĂ©rification de cohĂ©rence, par rapport Ă la construction, pendantle calcul rĂ©cursif deP(o,d,N) (Ă©quation (4.3)).
4.4.3 Second modĂšle
Face aux problĂšmes prĂ©cĂ©dents, il fut inĂ©vitable de concevoir un nouveau modĂšle qui les contour-naient. En y regardant de plus prĂšs, les difficultĂ©s rencontrĂ©es dĂ©coulent essentiellement de la construc-tion alĂ©atoire et rĂ©cursive de lâarbre qui imposait une numĂ©rotation des nĆuds contraignant fortement la
92
4.4. ModĂšles Internet Relay Chat
d = 0
d = 1
Distances
FIGURE 4.7 â Second modĂšle pour les botnets IRC avec des nĆuds non numĂ©rotĂ©s, propagation dâunerequĂȘte
structure de lâarbre. Au final, le modĂšle prĂ©cĂ©dent revient Ă produire tous les arbres possibles. Par con-sĂ©quent, ce second modĂšle nâutilise plus de numĂ©rotation demaniĂšre Ă Ă©viter ces problĂšmes. Ce modĂšleainsi que les expĂ©rimentations ont Ă©tĂ© publiĂ©s dans [3, 1]
Pour rappel, chaque serveur a un nombre maximumm de voisins : câest le facteur de branchementmaximal. Le nombre de connexions quâun serveur maintient avec dâautres est donc compris entre 1et m. Cette limitation recentre le modĂšle sur les rĂ©seaux IRC oĂč un serveur est connectĂ© Ă quelquesautres seulement. La figure 4.7 montre la topologie dâun rĂ©seau de serveurs IRC ainsi que le calcul desdiffĂ©rentes distances par rapport au nĆud du superviseur. Celui-ci peut dâailleurs ĂȘtre connectĂ© via unlien du mĂȘme type que les bots ou agir directement sur le serveur. Ătant donnĂ© la nature spĂ©ciale de cetteconnexion, le nĆud serveur sera considĂ©rĂ© comme le nĆud dâorigine.
[5] expose un moyen simple pour estimer le nombre de nĆuds Ă une distance quelconque basĂ©e surles fonctions gĂ©nĂ©ratrices qui furent notamment employĂ©esdans [48].
En premier, un rappel des notions sur les fonctions génératrices et certaines propriétés est donné ci-dessous et le lecteur intéressé pourra consulter [5] pour deplus amples détails notamment les différentespreuves et leur utilité dans les graphes.
DĂ©finition 19 : Ătant donnĂ© une fonction de probabilitĂ© pk = P(X = k), sa fonction gĂ©nĂ©ratrice sedĂ©finit comme :
G0(x) =â
âk=0
pkxk
PropriĂ©tĂ© 1: LâespĂ©rance dâune fonction de probabilitĂ© est Ă©gale Ă la dĂ©rivĂ©e de sa fonction gĂ©nĂ©ra-trice instanciĂ©e avec x= 1 :
E(X) = GâČ0(1)
PropriĂ©tĂ© 2: Si la distribution dâune propriĂ©tĂ© k dâun objet est gĂ©nĂ©rĂ©e par la fonction gĂ©nĂ©ratriceG0(x) alors la somme de m rĂ©alisations indĂ©pendantes de lâobjet est gĂ©nĂ©rĂ©e par la fonction gĂ©nĂ©ratrice[G0(x)]m.
Nombre de voisins dâun nĆud
La probabilitĂ©pk est la probabilitĂ© pour un nĆud dâavoirk serveurs comme voisins (connectivitĂ©) :un nĆud a donc une probabilitĂ© constante dâĂȘtre connectĂ© Ă nâimporte quel autre. Cette modĂ©lisationest Ă©quivalente Ă la prĂ©cĂ©dente Ă lâexception prĂšs que, prĂ©cĂ©demment, lâordre des nĆuds imposait aux
93
Chapitre 4. Modélisation des botnets
......
d = 1
d = 2
lien
dâarrivĂ©e
liens
de sortie
......
(2)(3)
(4)
...
(1)
... (5)
FIGURE 4.8 â Calcul du nombre de voisins au second saut pour le secondmodĂšle de botnets IRC
premiers une connectivitĂ© plus Ă©levĂ©e ce qui obligeait ensuite le calcul de lâatteignabilitĂ© en considĂ©ranttout nĆud comme origine avant dâen faire la moyenne. Avec le nouveau modĂšle, il nây a plus besoindâutiliser cet artifice car chaque nĆud est directement considĂ©rĂ© dans lâensemble du rĂ©seau.
Concernantpk, p0 signifie que le serveur est dĂ©connectĂ© (hors-service) soitp0 = 1âα(m). Ensuite,il est impossible dâavoirk > m dâoĂč pk = 0 pourk > m. Enfin, sans aucun connaissance Ă priori, dans
les autres cas ânormauxâ, la distribution est alĂ©atoire et uniforme doncpk = α(m)Ă 1m =
α(m)
mpour
1†kâ€m. Cette distribution ne suppose donc aucune topologie spĂ©cifique meilleure quâune autre.La fonction gĂ©nĂ©ratrice de la fonctionpk est alors calculable :
G0(x) =â
âk=0
pkxk =
m
âk=0
pkxk = p0+
m
âk=1
pkxk = p0+
α(m)
mĂ
m
âk=1
xk (4.4)
Par dĂ©finition, la moyenne depk, câest-Ă -dire le nombre moyen de voisins, est directement dĂ©duit :E(k) = GâČ0(1).
Voisins au second saut
Le modĂšle doit aussi permettre de calculer le nombre de voisins Ă nâimporte quelle distance. A titredâexemple, les diffĂ©rentes Ă©tapes du calcul pour le second saut sont dĂ©taillĂ©es ici et schĂ©matisĂ©es sur lafigure 4.8. La premiĂšre Ă©tape consiste Ă trouver la distribution de probabilitĂ©s des voisins directs ce quicorrespond ainsi Ă pk comme le montre la premiĂšre Ă©tape sur la figure.
Ensuite il faut Ă©valuer la probabilitĂ©Îœ(k) dâatteindre un nĆud (serveur) ayant une connectivitĂ© Ă©galeĂ k liens en se servant de lâun dâentre eux. Câest la seconde Ă©tape reprĂ©sentĂ©e sur la figure 4.8. En fait,il y a k liens et donck façons dâarriver Ă ce serveur qui a lui-mĂȘme une probabilitĂ©pk dâavoir k voisins
94
4.4. ModĂšles Internet Relay Chat
dâoĂč :
Μ(k) =kpkm
âi=0
ipi
Le dĂ©nominateur divise le cas prĂ©cis oĂč il yk voisins par lâensemble des cas possibles.La fonction gĂ©nĂ©ratrice en rĂ©sultant est :
GÎœ(x) =â
âk=0
Μ(k)xk =m
âk=0
Îœ(k)xk =âm
k=0 kpkm
âk=0
kpk
= xGâČ0(x)
GâČ0(1)
ConsidĂ©rant un nĆud choisi au hasard et un lien dââarrivĂ©eâ sur ce dernier, la distribution du nombrede ses voisins atteignables par les liens de âsortieâ est lâobjet de la troisiĂšme Ă©tape. La fonction gĂ©nĂ©ra-trice correspondante de cette distribution est Ă©quivalente Ă GÎœ(x) moins une puissance dex pour ne pasprendre en compte le nĆud dâorigine :
G1(x) =GâČ0(x)GâČ0(1)
Ătant donnĂ© un ensemble del nĆuds au premier saut,plk est la probabilitĂ© pour que ces derniers
soient connectĂ©s Ă k autres nĆuds au total (voisins au second saut par rapport au nĆud dâorigine). Ladistribution du nombre de voisins au second saut est alors calculĂ©e Ă partir de la probabilitĂ© dâavoirlvoisins directs ayantk voisins au total comme schĂ©matisĂ© par la quatriĂšme Ă©tape surla figure 4.8 :
plk =
m
âi=0
pi Ă pik
La fonction génératrice associée est donc :
G2(x) =â
âk=0
m
âi=0
pi Ă pikx
k =m
âi=0
pi
â
âk=0
pikx
k
Hors,ââk=0 pi
kxk est la fonction génératrice depi
k qui est facilement Ă©tablie grĂące Ă la propriĂ©tĂ© (2),câest-Ă -dire[G1(x)]k (Ă©tape (4) sur la figure 4.8)dâoĂč :
G2(x) =m
âi=0
pi [G1(x)]i = G0(G1(x))
La distribution du nombre de nĆuds au second saut est ainsi clairement Ă©tablie (Ă©tape (5) sur la figure4.8)
En rĂ©pĂ©tant ce processus rĂ©cursif, la fonction gĂ©nĂ©ratricede la distribution du nombre de nĆuds Ă une distancej se dĂ©finit alors comme suit :
G j(x) =
G0(x) pour j = 1G jâ1(G1(x)) pour j â„ 2
(4.5)
Atteignabilité
GrĂące Ă lâĂ©quation 4.5 et Ă la propriĂ©tĂ© (1), le nombre moyen de nĆuds,zj Ă une distancej du nĆuddâorigine est calculable dâune maniĂšre similaire Ă celle prĂ©sentĂ©e dans [48]. Effectivement en appliquant
95
Chapitre 4. Modélisation des botnets
Serveurs
non pris
en compte
N = 9
FIGURE 4.9 â Limitation du nombre maximal de serveurs atteignables
la formule (4.5) et grùce à un raisonnement par récurrence, le résultat suivant est obtenu :
zj =
GâČ0(1) , j = 1GâČâČ0(1) , j = 2
[
z2z1
] jâ1z1 , sinon
(4.6)
La difficultĂ© restante consiste donc Ă calculerz1 etz2 dans le modĂšle dĂ©crit ici. A partir de lâĂ©quation(4.4), les dĂ©rivĂ©es sont facilement obtenues en remarquantque p0 est constant par rapport Ă la variablealĂ©atoirek :
GâČ0(x) =α(m)
m
m
âk=1
kxkâ1 GâČâČ0(x) =α(m)
m
m
âk=1
k(kâ1)xkâ2
La formule (4.6) souligne trĂšs clairement lâavantage de ce nouveau modĂšle par rapport au prĂ©cĂ©dent.En effet, la formule nâest plus rĂ©cursive ce qui va trĂšs nettement rĂ©duire les temps de calcul et les dif-fĂ©rentes topologies ne sont pas gĂ©nĂ©rĂ©es car le modĂšle se base uniquement surpk pour mesurer le nombrede nĆuds Ă une distanced quelconque.
Pour calculer lâatteignabilitĂ©, il reste encore Ă prendre en compte le risqueÎČ pour un nĆud dâĂȘtreattaquĂ©. Dans le cas dâun rĂ©seau IRC, les serveurs occupent un rĂŽle central et un seul serveur compromisest souvent catastrophique. Notamment, la configuration dâun serveur comprend gĂ©nĂ©ralement la liste detous les autres pour parer aux problĂšmes de connectivitĂ© pouvant survenir ou faciliter les opĂ©rations demaintenance. Ainsi les rĂ©seau sera jugĂ© opĂ©rationnel si aucun des nĆuds nâest compromis. La proportiondâentre eux atteints est modĂ©rĂ©e par la probabilitĂ© dâavoirle rĂ©seau non dĂ©couvert qui est(1âÎČ)N câest-Ă -dire quâaucun desN nĆuds nâest compromis. LâatteignabilitĂ© peut alors ĂȘtre complĂštement dĂ©finie :
att(d) =(1âÎČ)NĂmin(âd
j=1zj ,N)
N(4.7)
Il est important de remarquer que, contrairement au modĂšle prĂ©cĂ©dent qui introduisait un ensemble denĆuds du rĂ©seau et limitait donc automatiquement la taille du rĂ©seau, il est nĂ©cessaire ici de mettre unseuil maximal. En effet, le modĂšle se base uniquement sur la probabilitĂ© que chaque nĆud puisse ĂȘtreconnectĂ© Ă dâautres peu importe si il en existe dâautres ou non et il est donc primordial de ne pas prendreen compte plus de serveurs quâil en existe tel quâillustrĂ© dans la figure 4.9.
Atteignabilité des bots
LâatteignabilitĂ© des bots/Ă©quipements est Ă©quivalente Ă celle des serveurs. En effet, sans aucune con-naissance Ă priori, une rĂ©partition alĂ©atoire des bots sur les serveurs est justifiĂ©e. Ătant donnĂ© un nombretotal de botsB, le nombre dâentre eux atteints Ă une distancek est doncbots(k) = att(k)ĂB. La propor-
tion de bots est donc logiquement identique Ă lâatteignabilitĂ© : attbots(k) =bots(k)
B= att(k). Il est alors
clair quâĂ©tudier lâatteignabilitĂ© des serveurs est reprĂ©sentatif.
96
4.5. ModĂšles P2P
Atteignabilité moyenne
LâatteignabilitĂ© moyenne est lâatteignabilitĂ© moyenne detoutes les distances possibles sachant que laplus courte des distances est 1 et la plus longue estN lorsque lâarbre nâest en fait quâune chaĂźne :
avg_att(k) =âN
k=1 att(k)N
(4.8)
4.4.4 DĂ©lais
Le temps nĂ©cessaire pour envoyer une requĂȘte de supervisionest un Ă©lĂ©ment dĂ©terminant dans lechoix dâune solution de supervision car les contraintes temporelles sont souvent fortes. Pour pouvoirĂ©valuer le temps de transmission dâune requĂȘte il faut considĂ©rer deux paramĂštres : le tempsth pourenvoyer un message vers un Ă©quipement final et le tempsts pour envoyer un message vers un autreserveur. Dans le cas dâune solution centralisĂ©e, la plateforme de supervision va envoyer successivementles messages vers lâensemble des machines :
tempscentral =CĂ th (4.9)
oĂč C est le nombre de machines. Dans le cas dâun botnet IRC, les serveurs peuvent transmettre lesmessages aux serveurs avant de les transmettre aux machines. ConsidĂ©ronsCserveur, le nombre moyendâĂ©quipements connectĂ©s Ă un mĂȘme serveur, le temps total est donc composĂ© du temps pour atteindre ledernier serveur Ă une distancedmaxplus le temps pour ce serveur de transmettre les requĂȘtes Ă lâensembledes machines connectĂ©es :
tempsbotnet= dmaxĂ ts+CserveurĂ th (4.10)
Ainsi, en dĂ©terminant lâatteignabilitĂ© Ă la distancedmax, le temps pour transmettre une requĂȘte Ă unnombre de machines dĂ©terminĂ©es peut ĂȘtre estimĂ©.
4.5 ModĂšles P2P
Comme introduit dans le chapitre 1, les botnets de nouvelle gĂ©nĂ©ration ont tendance Ă fonder leursarchitectures sur des rĂ©seaux P2P du fait de leur robustesseet leur efficacitĂ© intrinsĂšque. Les modĂšlesqui vont ĂȘtre proposĂ©s devront donc pouvoir vĂ©rifier ces propriĂ©tĂ©s dans le cas prĂ©cis de lâenvoi dâunerequĂȘte en broadcast, ce qui correspond Ă la fonctionnalitĂ©principale dâun botnet. De maniĂšre gĂ©nĂ©rale,un rĂ©seau P2P est totalement dĂ©centralisĂ© sans aucun serveur une fois dĂ©ployĂ©. Les modĂšles vont doncexplorer deux types de topologie P2P, câest-Ă -dire deux types dâinterconnexions entre les nĆuds. Enfin,dans cette section, les termes nĆuds, pairs et bots sont Ă©quivalents. Les publications relatives Ă cestravaux sont [2, 1].
4.5.1 Totalement maillé, Slapper
Le vers Slapper [67] est apparu pour la premiĂšre fois en 2002.Il ne se limite pas au seul rĂŽle dâun verpuisquâil est accompagnĂ© dâun programme annexe sophistiquĂ© permettant la construction dâun botnet.En effet, chaque machine infectĂ©e Ă©tait contrĂŽlable Ă distance par lâattaquant pour envoyer des courrielsindĂ©sirables par exemple.
97
Chapitre 4. Modélisation des botnets
Fonctionnement général
Le botnet formĂ© Ă©tait en fait un rĂ©seau pair-Ă -pair de type totalement maillĂ©, avec chaque machineconnaissant toutes les autres. Lâattaquant peut alors envoyer un message vers lâune dâentre elle spĂ©ci-fiquement par lâintermĂ©diaire des autres. Pour cela, un nombre maximal de sauts est dĂ©fini. Lorsquâunemachine reçoit le message, si le nombre de sauts est zĂ©ro alors le message est directement envoyĂ© Ă la destination puisque le rĂ©seau est entiĂšrement maillĂ©. Sinon plusieurs nĆuds choisis au hasard sontsĂ©lectionnĂ©s pour transmettre le message et dans ce cas, le nombre de sauts est dĂ©crĂ©mentĂ©. Ce protocolepermet Ă lâattaquant de rester cachĂ© puisque plusieurs nĆuds intermĂ©diaires sont utilisĂ©s. Il se prĂ©serveainsi de toute dĂ©tection par une sonde car aucune machine nâest capable dâidentifier si celle qui lui aenvoyĂ© le message est lâĂ©metteur initial, câest-Ă -dire lâattaquant. Enfin pour permettre une rĂ©ponse de lapart de la destination, chaque machine qui route un message garde en mĂ©moire lâĂ©metteur de ce mes-sage ainsi quâun identifiant contenu dans le message. Cela permet alors de router la rĂ©ponse en sensinverse. Bien quâil soit basĂ© sur le protocole UDP, une autrefonctionnalitĂ© de Slapper est quâil proposeun mĂ©canisme dâacquittement permettant dâamĂ©liorer les performances du protocole.
Broadcast
Dans le contexte de la configuration de masse et des botnets, Slapper est dotĂ© dâun mĂ©canisme debroadcast appelĂ©broadcast segmentation. MĂȘme si le contrĂŽleur ou lâattaquant Ă©tait capable dâenvoyerdirectement un message Ă tous les hĂŽtes du rĂ©seau formĂ© par Slapper, cela pose deux problĂšmes :
â passage Ă lâĂ©chelle : initialisation dâune connexion et Ă©change avec chaque machine,â sĂ©curitĂ© : le superviseur, câest-Ă -dire le nĆud dâorigine, est forcĂ©ment lâĂ©metteur du message.Pour palier ces problĂšmes, le superviseur dĂ©cide dâenvoyerle message Ă deux machines choisies au
hasard. Celles-ci rĂ©pĂštent la mĂȘme procĂ©dure et ainsi de suite. De maniĂšre Ă arrĂȘter la propagation infiniedu message, un nombre de sauts maximal est fixĂ©. Cependant comme les nĆuds sont choisis au hasard,il est clairement possible que certains nĆuds ne reçoivent jamais le message. La figure 4.10(a) illustrece mĂ©canisme oĂč les nĆuds sont visuellement placĂ©s de la mĂȘmemaniĂšre que Chord afin de faciliter lacomparaison dans la section suivante. De plus la numĂ©rotation des nĆuds nâest en aucun cas corrĂ©lĂ© Ă laconstruction du rĂ©seau comme câĂ©tait le cas pour le premier modĂšle IRC. Le seul intĂ©rĂȘt de celle-ci estde distinguer les diffĂ©rents nĆuds et correspond en rĂ©alitĂ©Ă une adresse IP.
Le contrĂŽleur se situe sur le nĆud 0 et il envoie un message Ă deux pairs alĂ©atoires : 4 et 8. Cesderniers rĂ©pĂštent le mĂȘme processus. Le non dĂ©terminisme deSlapper est prĂ©sentĂ© par lâintermĂ©diaire dedeux cas de figures possibles pour ce deuxiĂšme saut car les nĆuds sont choisis au hasard. Ainsi, il estimpossible dâĂȘtre sĂ»r dâatteindre tous les nĆuds quelque soit le nombre dâitĂ©rations. Par exemple, tousles nĆuds sont atteints Ă partir du troisiĂšme saut prĂ©sentĂ© sur la figure 4.10(a) mais cela ne signifie pasque ce sera toujours le cas.
Comme chaque nĆud en choisit deux autres, le facteur de branchement de Slapper est fixĂ© Ă m= 2.Dans une optique plus gĂ©nĂ©rale, celui-ci sera paramĂ©trabledans le modĂšle dĂ©voilĂ© ici.
Supposons quet nĆuds aient dĂ©jĂ reçus le message sur un total deN nĆuds. Ils vont alors transmettrec messages identiques Ă leur tour Ă dâautres pairs. On peut alors dĂ©terminer la probabilitĂ©p(N, t,c, j)dâenvoyer ces messages Ă j pairs qui ne les ont pas encore reçus :
p(N, t,c, j) =C j
Nât ĂÎcâ jt+ j
ÎcN
(4.11)
avecÎkn =Ck
n+kâ1 la combinaison avec rĂ©pĂ©tition dek Ă©lĂ©ments parmin.Dans cette Ă©quation, le premier terme au numĂ©rateur est le nombre de possibilitĂ©s de choisir lesj
nĆuds nouvellement contactĂ©s parmi lâensemble câest-Ă -dire Nâ t. Parmi lâensemble desc messages, il
98
4.5. ModĂšles P2P
y en a doncj qui sont utilisĂ©s pour ĂȘtre envoyer Ă ces nĆuds prĂ©cisĂ©ment.Le second terme reprĂ©sentele nombre de destinations possibles descâ j messages restants. Ces derniers peuvent alors ĂȘtre transmisĂ nâimporte quel pair parmi ceux dĂ©jĂ contactĂ©s auparavant ainsi que ceux nouvellement contactĂ©s soitt + j. Le dĂ©nominateur reprĂ©sente quant Ă lui le nombre total de possibilitĂ©s de choisir la destination desc messages parmi lâensemble des nĆuds. Cette probabilitĂ© nâest calculable que pour un nombre cohĂ©rentde pairs câest-Ă -dire pourj †Nâ t.
Le fonctionnement du broadcast implique quâau de saut, le nombre de messages dupliquĂ©s reçus soitmd. Cependant, la disponibilitĂ© dâun nĆud et donc sa capacitĂ© Ă participer au rĂ©seau est contrainte par lefacteurα(m). Ainsi, chacun des nĆuds a une probabilitéα(m) de fonctionner normalement et le nombrede messages expĂ©diĂ©s rĂ©ellement au ie saut est donc :
msgd = (mĂα(m))d
Ce nombre limite donc aussi le nombre de nouveaux nĆuds qui vont recevoir lâinformation. Cedernier est Ă©galement limitĂ© par le nombre de nĆuds qui nâontpas encore reçu de message. On peut doncdĂ©finir le nombre maximal de nouveaux pairs pouvant recevoirle message :
pairsd = min(msgd,Nâatt(N,m,dâ1))
oĂč att(N,m,dâ1) reprĂ©sente le nombre de nĆuds ayant reçu un message au saut prĂ©cĂ©dent,dâ1,câest-Ă -dire lâatteignabilitĂ© absolue et Ă©quivalent au nombret dans les explications prĂ©cĂ©dentes. Pour lecasd = 0, seul le nĆud dâorigine est considĂ©rĂ© comme dĂ©jĂ atteint dâoĂč att(N,m,0) = 1.
GrĂące Ă la formule (4.11), le nombre moyen de nouveaux nĆuds atteints Ă une distanced est Ă©valuĂ©en tenant compte des diffĂ©rents cas possibles câest-Ă -direde 0 Ă maxmsg :
r(N,m,d) =pairsd
âk=0
p(N,att(N,m,dâ1),msgd,k)Ăk
LâatteignabilitĂ© absolue sâobtient de maniĂšre rĂ©cursive en gardant Ă lâesprit que lâatteignabilitĂ© Ă unedistanced est le nombre de nouveaux pairs recevant le message et ceux lâayant dĂ©jĂ reçus :
att(N,m,d) =
1 sid = 0att(N,m,dâ1)+ r(N,m,d) sinon
(4.12)
Enfin, de maniĂšre similaire au second modĂšle IRC, lâatteignabilitĂ© doit ĂȘtre tempĂ©rĂ©e par le faitquâune partie des nĆuds soit compromise. Effectivement, dĂšs quâun nĆud est compromis, lâattaquant estcapable de dĂ©couvrir tout le rĂ©seau du fait de lâarchitecture totalement maillĂ©e. Cela est estimĂ© par leparamĂštreÎČ grĂące auquel la formule finale dâatteignabilitĂ© est :
att(N,m,d) =
1 sid = 0att(N,m,dâ1)+ (1âÎČ)Nr(N,m,d) sinon
(4.13)
4.5.2 Table de hachage distribuée, Chord
Un rĂ©seau totalement maillĂ© tel que Slapper le construit prĂ©sente des limites en termes de passageĂ lâĂ©chelle car chacun doit connaĂźtre tous les autres et identifier lâensemble des machines le composantest donc aisĂ© en espionnant une seule dâentre elles. Une Ă©volution en cours des logiciels malveillants estlâutilisation des rĂ©seaux pair-Ă -pair structurĂ©s tel que ceux reposant sur une table de hachage distribuĂ©e.
99
Chapitre 4. Modélisation des botnets
Connexions Message
0
1
3
4
6
8
9
11
13
14
0
1
3
4
6
8
9
11
13
14
Saut 3 (d = 3)
0
1
3
4
6
89
11
13
14
0
1
3
4
6
89
11
13
14
Saut 2 (d = 2) Saut 2â (d = 2)Saut 1 (d = 1)
(a) RĂ©seau totalement maillĂ© (Slapper), la numĂ©rotation etle placement spĂ©cifique des nĆuds nâest lĂ que pour faciliterla comparaison avec Chord
Message
0 1
3
4
8
6
9
11
13
140 1
3
4
8
6
9
11
13
14
Identifiant non utilisé
Pas encore reçu
Déjà reçu
i 0 1 2 3
noeud 1 3 4 8
Table de routage
du noeud 0
0 1
3
4
8
6
9
11
13
14
Saut 3 (d = 3)Saut 2 (d = 2)Saut 1 (d = 1)
(b) Table de hachage distribuée (Chord)
FIGURE 4.10 â MĂ©canisme de broadcast dans les rĂ©seaux P2P Ă partir dunĆud 0
Ce type de rĂ©seau P2P est prĂ©dominant aujourdâhui pour des raisons de robustesse et dâefficacitĂ©. Cepen-dant, cette popularitĂ© a entraĂźnĂ© la conception de beaucoupde rĂ©seau de ce genre ayant chacun leurscaractĂ©ristiques particuliĂšres (degrĂ© de redondance, mĂ©canisme dâindexation des donnĂ©es...). Par con-sĂ©quent, le modĂšle prĂ©sentĂ© dans cette section reposera surChord [3] qui est un des pionniers dans cedomaine et dĂ©crit les fondements de ce type dâarchitecture.Chord est donc assez gĂ©nĂ©rique pour approx-imer lâensemble des rĂ©seaux P2P de ce genre et a montrĂ© de bonnes performances dans de nombreusesĂ©tudes [3, 4].
Fonctionnement général
Sur un rĂ©seau Chord, chaque nĆud ou pair participant est associĂ© Ă un identifiant tel que 0†id <NMAX oĂč NMAX = 2k,k â I+â. NMAX est le nombre maximal de nĆuds participants ainsi que la taille delâespace des identifiants. Contrairement Ă un nĆud Slapper qui connaĂźt lâensemble des autres nĆuds, unnĆud Chord nâa quâune vue partielle. La taille de la table de routage dâun nĆud est delog2(NMAX). LaiemeentrĂ©e du nĆud dâidentifiantid1 contient le nĆud dont lâidentifiantid2 est le premier successeur deid1+2iâ1, câest-Ă -dire :
id1+2iâ1†id2⧠(âidâČ2, idâČ2 < id2⧠id1+2iâ1 < idâČ2) (4.14)
La figure 4.11(a), oĂč les nĆuds sont reprĂ©sentĂ©s selon le sensdes aiguilles dâune montre, met enlumiĂšre deux tables de routage, celles des nĆuds 0 et 9.
En rĂ©alitĂ©, les identifiants rĂ©sultent de lâapplication dâune fonction de hachage sur les adresses IP.Lorsquâun nĆudid1 cherche Ă contacter le nĆudid2, il commence par le rechercher dans sa table deroutage. Si ce nâest pas le cas, il repĂšre le nĆud dans sa tablede routage dont lâidentifiant est infĂ©rieur
100
4.5. ModĂšles P2P
0 1
3
4
8
6
9
11
13
14
(a) Tables de routage
0 1
3
4
8
6
9
11
13
14
12
5
2
710
15
(b) Localisation du nĆud 15 par le nĆud 0
FIGURE 4.11 â Fonctionnement gĂ©nĂ©ral de Chord
Ă id2 et tel quâil soit le plus grand possible. Ce nĆud est alors contactĂ© pour localiserid2 qui rĂ©pĂšte lemĂȘme processus et ainsi de suite. Sur lâexemple de la figure 4.11(a), le nĆud 0 localisera le nĆud 13 parlâintermĂ©diaire de 9. Un tel mĂ©canisme de routage permet, dans le pire des cas, de localiser un autre pairen log2(NMAX) sauts. Ce cas est illustrĂ© sur la figure 4.11(b).
Il est important de voir que, dans un esprit de simplification, le nĆud 0 est considĂ©rĂ© ici comme lenĆud dâorigine, ce qui nâest pas forcĂ©ment le cas. Cependant, il est Ă©vident que le systĂšme fonctionneexactement de la mĂȘme façon quelque soit le nĆud et cela correspond Ă une simple transposition desidentifiants. En pratique, un calcul modulo est effectuĂ© pour rechercher le ie successeur du nĆudid :id1+2iâ1 mod(NMAX).
Des dĂ©tails plus prĂ©cis sont disponibles dans [3]. Dâun point de vue plus gĂ©nĂ©ral, ce type de rĂ©seaufut conçu pour le partage de fichiers eux-mĂȘmes identifiĂ©s parun numĂ©ro calculĂ© grĂące Ă la fonctionde hachage. Ainsi, un nĆud et la ressource quâil partage nâauront pas forcĂ©ment le mĂȘme identifiant.Cependant, le premier successeur de lâidentifiant de la ressource lâindexe et permet alors de faire lacorrespondance. Enfin, comme prĂ©cĂ©demment introduit, il existe une multitude de rĂ©seaux P2P struc-turĂ©s mais Chord a lâavantage dâĂȘtre assez gĂ©nĂ©rique sans ajouter de mĂ©canismes supplĂ©mentaires plusavancĂ©s. Beaucoup dâentre eux sont notamment dĂ©diĂ©s aux phases de dĂ©ploiement et de maintenance durĂ©seau alors quâici, seul le rĂ©seau est supposĂ© dĂ©ployĂ©. De plus, la plupart des autres types de rĂ©seauxet les plus performants dâentre eux sont basĂ©s sur des tablesde hachage et le broadcast dans une tellestructure est Ă©quivalent quelque soit le rĂ©seau sous-jacent.
Broadcast
Pour rester le plus gĂ©nĂ©ral possible, lâĂ©tude prĂ©sentĂ©e icisuppose que les identifiants des nĆudssoient alĂ©atoirement et uniformĂ©ment rĂ©partis dans cet espace et que la distance moyenne entre deuxidentifiants consĂ©cutifs soitd dâoĂč NMAX = NĂd.
Par consĂ©quent, les premiĂšres entrĂ©es de la table de routagesont identiques car le successeur esttoujours le mĂȘme. En moyenne, la premiĂšre entrĂ©ei qui est diffĂ©rente est celle telle que 2(iâ1) > d. Lenombre total dâentrĂ©es diffĂ©rentes est donc :
#routes= log2(NMAX)â log2(d) = log2
(
NMAX
d
)
= log2(N) (4.15)
Il est important de noter que ce nombre correspond au facteurde branchement maximalm.Les auteurs de [1] suggĂ©rĂšrent un mĂ©canisme de broadcast efficace grĂące auquel un nĆud de Chord
ne reçoit quâune seule fois le message. Câest cette mĂ©thode qui va servir Ă diffuser une requĂȘte au sein dubotnet. Dans ce cas, un message contient une limite dâexploration. Le superviseur amorce le processus enenvoyant le message Ă chaque pair diffĂ©rent de sa table de routage en spĂ©cifiant une limite dâexploration
101
Chapitre 4. Modélisation des botnets
pour chacun dâeux qui est en fait lâentrĂ©e suivante de cette table (ou le nĆud superviseur pour la derniĂšreentrĂ©e). Chaque nĆud rĂ©pĂšte ce processus sauf quâun nĆudp nâenverra jamais un message au nĆud dontlâidentifiant est supĂ©rieur Ă la limite dâexploration. De mĂȘme, le dernier nĆud qui vĂ©rifie cette conditionse verra attribuer une limite dâexploration identique Ă celle du nĆudp.
Ce mĂ©canisme est illustrĂ© sur la figure 4.10(b). Le contrĂŽleur est le nĆud 0, il envoie le message auxdiffĂ©rentes entrĂ©es de sa table de routage : 1, 3, 4 et 8 avec respectivement comme limite dâexploration3, 4, 8 et 0. Il est important de souligner que cette limite estexclusive et câest pourquoi, Ă la deuxiĂšmeitĂ©ration (deuxiĂšme saut), le nĆud 4 transmet le message au nĆud 6 seulement car sa limite est 8. La tablede routage dâun nĆud contient au pluslog(NMAX) entrĂ©es. Chaque nĆud transmettra donc le messagebroadcast Ă log(NMAX) autres nĆuds tout au plus. Le facteur de branchement est directement dĂ©pendantdeNMAX, câest-Ă -direm= log(NMAX) avec normalementNMAX qui est une puissance de 2.
A partir de ces diffĂ©rentes hypothĂšses et conclusions, lâalgorithme 1 calcule, pour un identifiantdonnĂ©, le nombre de sauts nĂ©cessaires pour lâatteindre Ă partir du nĆud 0. Cet algorithme ne peut ĂȘtreappliquĂ© que pour les identifiants valides câest-Ă -dire queid
d doit ĂȘtre une valeur entiĂšre et positive. Si cetidentifiant est une puissance de 2 alors le nĆud peut ĂȘtre atteint directement (ligne 5), ce qui correspondĂ la puissance de 2 dans la formule (4.14).
Cette formule signifie en fait quâon sĂ©lectionne un successeur. Ainsi sâil nây a aucun identifiant valideentre lâidentifiant du nĆud Ă contacter et lâidentifiant thĂ©orique le plus grand, câest-Ă -dire une puissancede 2 (ligne 10), alors le nĆud visĂ© est Ă©galement joignable enun seul saut (ligne 11).
Dans tous les autres cas, il existe un nĆud intermĂ©diaire. Ilest donc nĂ©cessaire de calculer le nombrede sauts pour ce nĆud intermĂ©diaire et dâappliquer ce processus successivement jusquâĂ pouvoir attein-dre directement le nĆud concernĂ©. Pour cela, la boucle itĂšreune nouvelle fois en âavançantâ dans lesidentifiants grĂące aux lignes 14 et 10.
Une fois de plus, le nĆud 0 est toujours considĂ©rĂ© comme le nĆud dâorigine (le superviseur) maisĂ©tudier les autres cas est inutile car ils Ă©quivalent Ă transposer lâensemble des identifiants des nĆuds.
Algorithme 1 Nombre de sauts1: id = dĂk lâidentifiant du nĆud2: entier(x) retourne la partie entiĂšre dex3: l = log(id)4: si l â N alors5: retourner 16: sinon7: totalâ 08: compteurâ 19: tantque l 6= entier(l) faire
10: totalâ total+2entier(l)
11: si idâ total < d alors12: retournercompteur13: sinon14: l â log(idâ total)15: finsi16: fin tantque17: finsi
Cet algorithme est exĂ©cutĂ© pour chaque identifiant possibleet permet de dĂ©finir simplement lâat-teignabilitĂ© :
102
4.5. ModĂšles P2P
DĂ©finition 20 : LâatteignabilitĂ© au ieme saut avec N nĆuds au total est le nombre de nĆuds Ă unedistance i du nĆud dâorigine.
De maniĂšre Ă pouvoir comparer les diffĂ©rents modĂšles, lâintĂ©gration des diffĂ©rents types de pannesse rĂ©vĂšle obligatoire. Dans le pire des cas, il y a une panne qui empĂȘche la communication normaleavec un nĆud au premier saut. Dans ce cas, un autre nĆud avec unidentifiant plus petit est choisi pourle remplacer. Celui-ci se retrouve alors plus prĂšs du nĆud injoignable prĂ©cĂ©demment et est donc aussicapable de le contacter. On rĂ©itĂšre ce processus en considĂ©rant que si un nĆud est Ă une distancehalors il y a au plush pannes. Pour chacune dâentre elles, un saut supplĂ©mentairesera nĂ©cessaire dansle pire cas. La probabilitĂ©p( f < h) dâavoir f < h pannes est dĂ©finie par une loi binomiale. Il suffitalors dâĂ©valuer cette probabilitĂ© puis de la multiplier parle nombre de nĆuds atteints Ă la distanceh demaniĂšre Ă rajouter ce rĂ©sultat au nombre de nĆuds atteints Ă une distanceh+ f . Lâalgorithme 2 fait doncces diffĂ©rents calculs par ordre croissant des distancesh.
Algorithme 2 Effets des pannes1: n le nombre de nĆuds Ă la distanceh2: totalâ 03: MAX_HOPest la distance maximale Ă laquelle se situe un nĆud par rapport au superviseur4: att[x] est le nombre moyen de nĆuds atteints Ă la distancex (atteignabilitĂ© absolue)5: pour hâ 1 toMAX_HOP faire6: pour iâ 1 toh faire7: pâ nĂâCi
hâα(m)kâi â (1âα(m))i
8: att[h+ i]â att[h+ i]+ p9: total = total+ p
10: fin pour11: att[h]â att[h]â total12: fin pour
Contrairement Ă Slapper et Ă un rĂ©seau IRC, un nĆud compromispar un attaquant nâimplique pasque lâensemble du rĂ©seau soit inutilisable. En effet, seulela capacitĂ© dâespionnage des communicationsest prise en compte, câest-Ă -dire quâun attaquant nâest passupposĂ© dotĂ© des capacitĂ©s suffisantes pourcontrĂŽler le nĆud et donc injecter des requĂȘtes (problĂšmes pouvant ĂȘtre rĂ©glĂ©s en ajoutant une couchede cryptographie). Dans le pire des cas, un attaquant peut dĂ©couvrir tout le rĂ©seau sâil a compromis
n_compromis=N
log(N)nĆuds car chacun des nĆuds connaĂźtlog(N) autres nĆuds. Bien entendu, le
pire cas est envisagĂ© car en rĂ©alitĂ©, il y a de fortes chances dâobtenir de lâinformation redondante. Ensupposant que la probabilitĂ© quâun nĆud soit compromis estÎČ, la loi binomiale est utilisĂ©e pour calculerla probabilitĂ© que le rĂ©seau soit entiĂšrement vulnĂ©rable câest-Ă -dire quâil y aitn_compromisnĆuds com-promis. Cette loi est approximĂ©e par celle de Poisson avecλ = NĂÎČ. La probabilitĂ© que le rĂ©seau soitentiĂšrement dĂ©couvert est donc :
eâλN
âi=n_compromis
λi
i!
Les diffĂ©rentes valeurs dâatteignabilitĂ© sont alors multipliĂ©es par la probabilitĂ© inverse qui permet deprendre en compte la robustesse du systĂšme si un attaquant essaie de dĂ©tourner lâusage du rĂ©seau Ă sonpropre compte.
103
Chapitre 4. Modélisation des botnets
...
...
...
...
...
...
...
...
...
k = 0 k = 1 k = 2 k = 3 k = dâ2 k = dâ1 k = d
Ord
re d
âen
vo
i
sur
chaq
ue
no
eud
Temps le plus long
FIGURE 4.12 â DĂ©lai de diffusion dâune requĂȘte broadcast dans les rĂ©seaux P2P (m= 3)
4.5.3 DĂ©lais
Ătant donnĂ© le tempsth pour envoyer un message dâun nĆud Ă lâautre et une distance ded sauts, letemps nĂ©cessaire pour transmettre le message aux nĆuds du premier saut estmĂ th, câest Ă dire le tempsindividuel par bot multipliĂ© par leur nombre (le facteur de branchement). Ce processus peut ĂȘtre rĂ©itĂ©rĂ©pour chaque saut et la formule suivante est alors obtenue :
mĂkĂ th (4.16)
La figure 4.12 illustre ce calcul pour une distanced. Il est Ă noter que lâarbre reprĂ©sentĂ© ne peut servirquâau calcul des dĂ©lais. En effet, dans le cas de Slapper, un mĂȘme nĆud peut correspondre Ă plusieurssur la figure et dans le cas de Chord, un pair nâenvoie pas systĂ©matiquementm messages du fait de lalimite dâexploration (m est le facteur de branchement maximal). Ainsi, le cas considĂ©rĂ© ici est le pirecas pour Chord. Dans le cas du calcul des dĂ©lais, cette figure montre clairement que le nĆud recevantla requĂȘte en dernier est celui issu du chemin composĂ© des nĆuds recevant Ă chaque fois le message endernier (pour chaquek). En consĂ©quence, les dĂ©lais sont bien Ă©gaux Ă la formule (4.16)
4.6 Bilan
Comme il existe plusieurs types dâarchitectures de botnets, plusieurs modĂšles ont Ă©tĂ© crĂ©Ă©s :â des modĂšles IRC (ou pseudo-centralisĂ©s),â des modĂšles P2P.
Ces derniers possĂšdent diffĂ©rents paramĂštres pour modĂ©liser la connectivitĂ© des nĆuds, leur disponibil-itĂ© ou encore leur rĂ©sistance face aux attaques. Ainsi, le chapitre 7 aura pour objectif de mesurer les
104
4.6. Bilan
performances des botnets dans de nombreux cas et selon plusieurs configurations de maniĂšre Ă rĂ©aliserune Ă©tude complĂšte et complĂ©mentaire des autres modĂšles existants. En effet, ceux prĂ©sentĂ©s dans cechapitre cherchent Ă dĂ©terminer le nombre de bots joignables lors de lâenvoi dâune requĂȘte de broadcastcontrairement Ă la plupart des modĂšles existants. Bien que cela puisse sembler restrictif Ă premiĂšre vue,une telle requĂȘte est lâĂ©lĂ©ment essentiel de la phase dâutilisation dâun botnet pour coordonner une actionsimultanĂ©e de plusieurs milliers voire centaines de milliers de machines en mĂȘme temps.
Les travaux les plus analogues sont [37, 26]. Le premier dĂ©finit diffĂ©rentes mĂ©triques complĂ©men-taires Ă celles exposĂ©es ici telles que le diamĂštre du botnet(distance entre les bots les plus Ă©loignĂ©s),la bande passante utilisable, la redondance dans le rĂ©seau ou encore le partitionnement du botnet (plusgrand nombre de bots interconnectĂ©s). [26] est quant Ă lui beaucoup plus proche des modĂšles dĂ©tail-lĂ©s dans ce chapitre en calculant notamment les chemins les plus courts entre des bots ou encore lâat-teignabilitĂ© dĂ©finie similairement Ă celle exposĂ©e dans lessections prĂ©cĂ©dentes. Cependant, seuls lesrĂ©seaux P2P sont Ă©tudiĂ©s et la publication de ces travaux suivit de peu ceux prĂ©sentĂ©s ici. Enfin, les deuxarticles [37, 26] se limitent Ă des simulations pour gĂ©nĂ©rerdes graphes et en Ă©tudier les propriĂ©tĂ©s tandisque les modĂšles prĂ©cĂ©demment dĂ©taillĂ©s ne nĂ©cessitent pas de simuler plusieurs topologies et de fairela moyenne des rĂ©sultats. En effet, ces modĂšles gĂ©nĂ©raux permettent directement dâĂ©tablir vers quellevaleur la moyenne tenderait dans le cas de la rĂ©alisation dâune infinitĂ© de simulations.
105
5
Nouvelles représentations et méthodespour la rétro-ingénierie
Sommaire5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 107
5.2 Mini protocole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
5.3 Distances entre deux messages . . . . . . . . . . . . . . . . . . . . . .. . . . 110
5.3.1 Longueur dâun message . . . . . . . . . . . . . . . . . . . . . . . . . . .110
5.3.2 Distribution des caractĂšres . . . . . . . . . . . . . . . . . . . . .. . . . 111
5.3.3 Positions des caractĂšres . . . . . . . . . . . . . . . . . . . . . . . .. . . 113
5.3.4 Positions pondérées des caractÚres . . . . . . . . . . . . . . .. . . . . . 114
5.3.5 Distribution ordonnée des caractÚres . . . . . . . . . . . . .. . . . . . . 115
5.3.6 Alignement de séquences . . . . . . . . . . . . . . . . . . . . . . . . .. 117
5.4 Partitionnement des données . . . . . . . . . . . . . . . . . . . . . . .. . . . 118
5.4.1 DĂ©finition du problĂšme . . . . . . . . . . . . . . . . . . . . . . . . . . .118
5.4.2 Méthodes utilisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 119
5.4.3 MĂ©thode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.5 Architecture générale . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 120
5.5.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.1 Introduction
Le chapitre 2 a dressĂ© un Ă©tat de lâart des diffĂ©rentes techniques de rĂ©tro-ingĂ©nierie des protocolesdont une Ă©tape essentielle est la comprĂ©hension des messages Ă©changĂ©s. Alors que certaines techniquesessayent de retrouver lâintĂ©gralitĂ© de la syntaxe dâun message, certaines se limitent Ă dĂ©terminer seule-ment le type de celui-ci. Comme expliquĂ© dans le chapitre 2, ce type peut varier selon sa granularitĂ© maisil est gĂ©nĂ©ralement acceptĂ© quâun type dĂ©signe une classe dâactions particuliĂšres : tĂ©lĂ©charger, envoyerdes donnĂ©es, initialiser, acquitter... En se basant sur cestypes, la construction de la machine Ă Ă©tats duprotocole est rĂ©alisable.
107
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
SĂ©quence de messages
Nombreux chemins possibles
FIGURE 5.1 â Attaque ciblĂ©es Ă diffĂ©rents moments de la communication
Comme la rĂ©tro-ingĂ©nierie vise Ă dĂ©terminer automatiquement ces Ă©lĂ©ments (types, machines Ă Ă©tats)dâun protocole inconnu, aucune connaissance nâest disponible Ă priori forçant lâensemble des mĂ©thodesĂ ĂȘtre totalement non supervisĂ©es. Par ailleurs, les logiciels malveillants emploient des protocoles spĂ©ci-fiques ou des adaptations de protocoles connus et leur Ă©tude est un rĂ©el atout pour mieux les apprĂ©hender.Par exemple, la machine Ă Ă©tats aide Ă identifier les Ă©tapes essentielles de la communication dâun bot-net et permet donc de mieux adapter ses dĂ©fenses. De plus, lestechniques de fuzzing qui envoient desmessages plus ou moins alĂ©atoires pour dĂ©tecter des faillespeuvent ĂȘtre mieux ciblĂ©es en envoyant lemessage Ă un moment critique pour le bot comme lâillustre la figure 5.1 oĂč il y a deux types dâenvois demessages (une sĂ©quence et un envoi plus alĂ©atoire). Il semble alors plus opportun dâattaquer la commu-nication entre deux Ă©tats tels quâil nâexiste aucun chemin alternatif possible. Par ailleurs, de nombreusestechniques de dĂ©fense contre les botnets du chapitre 1 reposent sur la participation active Ă celui-ci eninjectant des requĂȘtes et nĂ©cessitent donc la comprĂ©hension du protocole.
Les mĂ©thodes de rĂ©tro-ingĂ©nierie actuelles sâappuient surles messages eux-mĂȘmes ou sur la maniĂšredont ils sont analysĂ©s et interprĂ©tĂ©s par la machine. Cependant, ce chapitre sâefforcera dâintroduire unenouvelle mĂ©thode de dĂ©couverte des types de messages basĂ©e exclusivement sur les traces rĂ©seaux carexĂ©cuter un malware comporte naturellement des risques et un tel logiciel est capable de biaiser les outilsdâobservation installĂ©s sur une machine.
La difficultĂ© dâune telle approche est la relative pauvretĂ© sĂ©mantique des messages car, sans la gram-maire du protocole, leur interprĂ©tation est impossible. Par le passĂ©, peu dâoutils de ce type ont Ă©tĂ© pro-posĂ©s et seront comparĂ©s, dans la conclusion, Ă la nouvelle mĂ©thode prĂ©sentĂ©e dans ce chapitre.
Cette derniĂšre repose dâun cĂŽtĂ© sur lâĂ©laboration de reprĂ©sentations simplifiĂ©es des messages et surlâapplication de techniques rĂ©centes de classification dâun autre cĂŽtĂ©. Les contraintes strictes Ă respectersont les suivantes :
â protocole totalement inconnu,â rĂ©tro-ingĂ©nierie de lâapplication impossible, câest-Ă -dire que lâinstrumentation dâune machine dĂ©diĂ©e
est proscrit,â le nombre de types de messages est inconnu,â aucun jeu dâapprentissage disponible.De plus, lâutilisation de chiffrement dans les messages peut Ă©normĂ©ment altĂ©rer le bon fonction-
nement des outils de rĂ©tro-ingĂ©nierie. A lâinstar de Storm [31] effectuant un chiffrement octet par octetgrĂące Ă un simple OU exclusif (XOR), la contrainte souple suivante est ajoutĂ©e : la dĂ©couverte des typesdoit pouvoir rĂ©sister Ă un chiffrement par XOR.
Enfin, la publication [1] est relatif Ă ce chapitre.
108
5.2. Mini protocole
FIGURE 5.2 â Illustration du mini protocole utilisĂ©
5.2 Mini protocole
Un protocole simple permettra dâillustrer clairement les diffĂ©rentes mĂ©triques. Ce protocole esttextuel et spĂ©cifie trois types de messages : un pour poser unequestion (typeinterrogation), un pourrĂ©pondre Ă une question (typerĂ©ponse) et un pour terminer la communication (typestop). Une commu-nication dĂ©bute Ă la premiĂšre requĂȘte envoyĂ©e et se termine avecstop. De plus, chaque participant a unrĂŽle spĂ©cifique et inĂ©changeable pour une session :
â le client posant des questions,â le serveur rĂ©pondant aux questions.Un message commence par le type en toute lettre suivi dâun espace et de la question ou la rĂ©ponse
en clair. Pour des raisons de simplicitĂ©, seuls les caractĂšres ASCII (sans accents) sont utilisĂ©s et aucuneponctuation nâest possible. Un messagestoppeut quant Ă lui avoir un contenu optionnel tel que la raisonde la terminaison de la session par exemple. La grammaire estdonc dĂ©crite de la maniĂšre suivante :
message = (type SP phrase) / stoptype = "interrogation" / "reponse"stop = "stop" [SP phrase]phrase = 1*(alpha / chiffre / SP)alpha = A-Zchiffre = 0-9SP = " "
La figure 5.2 illustre un exemple de messages Ă©changĂ©s oĂč un utilisateur pose deux questions auserveur avant de se dĂ©connecter. Ces messages illustrerontles diffĂ©rents exemples de ce chapitre et serontindicĂ©s et « regroupĂ©s» par type de la maniĂšre suivante :
â m0 : interrogation quelle langue parles tu,â m1 : interrogation quel est le temps de demain,â m2 : reponse francais anglais ou allemand,â m3 : reponse oups impossible de repondre a cette interrogation,â m4 : stop.
109
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
message 0 1 2 3 40 0 6 1 20 331 6 0 7 14 392 1 7 0 21 323 20 14 21 0 534 33 39 32 53 0
TABLE 5.1 â Distances entre les messages basĂ©es sur la longueur â Pour chaque message en ligne, lescases rouges indiquent une incohĂ©rence de distance par rapport Ă deux autres messages
5.3 Distances entre deux messages
Dans lâobjectif dâun classement rapide de nombreux messages, cette section vise Ă dĂ©terminer desreprĂ©sentations abrĂ©gĂ©es dâun messagem pour calculer simplement et rapidement la distanced(m1,m2)entre deux dâentre eux. Pour pouvoir Ă©valuer lâefficacitĂ© dâune distance, cette section cherchera Ă rĂ©duireau maximum le nombre dâincohĂ©rences se dĂ©finissant de la maniĂšre suivante :
DĂ©finition 21 : Il existe une incohĂ©rence de distance entre d(m,n) et d(m,k) si et seulement si lesmessages m et n sont de mĂȘme type distinct de celui de k et tel que d(m,n)> d(m,k).
5.3.1 Longueur dâun message
La reprĂ©sentation concise extrĂȘme dâun messagem se rĂ©sume Ă sa longueurl(m). Elle possĂšde lespropriĂ©tĂ©s suivantes :
â elle rĂ©siste Ă un chiffrage par unXOR: l(m) = l(mâk) â key k,â son calcul est trĂšs rapide.La distance entre deux messagesm1 et m2 est alors reprĂ©sentĂ©e par la diffĂ©rence absolue entre les
deux longueurs :dist(m1,m2) = |l(m1)â l(m2)|
Les distances entre les messages de la figure 5.2 figurent dansle tableau 5.1. Pour un message, lescases rouges indiquent une incohĂ©rence de distance par rapport Ă deux autres messages. Par exemple,le messagem0 de typeinterrogation a une distance plus Ă©levĂ©e avec le second de mĂȘme type quâavecle troisiĂšme de typerĂ©ponse. Ces diffĂ©rences sont remarquables aussi bien par ligne quepar colonnepuisquâune matrice de distance est symĂ©trique mais seules les incohĂ©rences en ligne sont reportĂ©es dansce type de tableau pour garder une bonne lisibilitĂ©. Le typestop est clairement identifiĂ© par sa faiblelongueur car, comme mentionnĂ© par la grammaire, le mot clĂ©stop nâest pas forcĂ©ment suivi par unautre contenu. Cependant, si la raison de la dĂ©connexion estajointe au message, en dĂ©duire le type serabeaucoup plus ardu. De mĂȘme, la longueur des questions ou desrĂ©ponses nâest en aucun cas imposĂ©eet accentue le faible intĂ©rĂȘt de lâutilisation de la longueur comme caractĂ©ristique significative dâautantplus que, dans les protocoles rĂ©els, beaucoup de champs sontde taille variable, impliquant des messagesde longueurs diverses. Par exemple, la distance entre les messages 0 et 2 est trĂšs faible malgrĂ© leurstypes distincts. Plus gĂ©nĂ©ralement, cette mĂ©trique distingue uniquement les grandes classes de messagessouvent existantes dans la plupart des protocoles telles que :
â les messages contenant de lâinformation dont la taille estassez longue et trĂšs variable,
110
5.3. Distances entre deux messages
0
0.05
0.1
0.15
0.2
0.25
SP a b c d e f g i l m n o p q r s t u
message 0message 1message 2message 3message 4
FIGURE 5.3 â Distribution des caractĂšres entre tous les messages â SP est le caractĂšre dâespacement
â les messages dâacquittements ou dâerreurs souvent assez courts.
5.3.2 Distribution des caractĂšres
Distribution
La distribution de caractĂšrescar(m) dâun messagem reprĂ©sente la frĂ©quence dâapparition de chacundâeux. Ainsi car(m)a = 0.2 exprime que 20% du messagem est composĂ© du caractĂšre «a». Intuitive-ment, les messages de mĂȘme type doivent comporter des informations du mĂȘme genre et donc ĂȘtre com-posĂ©s avec des donnĂ©es similaires. Dans lâexemple, deux messages de typeinterrogation commencentinĂ©luctablement par le mot clĂ© correspondant suivi dâune question se construisant gĂ©nĂ©ralement Ă partirde pronoms interrogatifs tels que :qui, que, quel... De mĂȘme, si la rĂ©tro-ingĂ©nierie repose sur des sessionsdâun seul utilisateur, ce dernier aura tendance Ă formuler des requĂȘtes semblables. Cette hypothĂšse estdâautant plus forte que les donnĂ©es introduites dans les messages par une machine ont une formulationencore plus systĂ©matique (noms dâhĂŽte, adresses...).
Cette mĂ©trique est la distribution des caractĂšres ou des valeurs dâoctet et rĂ©duit ainsi la reprĂ©sentationdâun message Ă un vecteur de 256 composantes. De plus, elle peut ĂȘtre facilement compressĂ©e en estimantque les valeurs non reprĂ©sentĂ©es sont celles Ă©quivalant Ă 0 :
car2(m)i = car(m)i , car(m)i > 0
Ce format condensĂ© permet de facilement retrouver toutes les valeurs originales au besoin.Les histogrammes des frĂ©quences des diffĂ©rents messages delâexemple sont exposĂ©s sur la figure
5.3 mettant trĂšs visiblement en Ă©vidence la singularitĂ© du message 4 (stop) par rapport aux autres. Dif-fĂ©rencier les deux autres types de messages demeure nĂ©anmoins difficile. La figure 5.4 reprend les his-togrammes de deux messages seulement Ă chaque fois. Les messagesm0 et m1 sont de mĂȘmes types etprĂ©sentent bien une forte similaritĂ©. Cependant, les messagesm0 et m2 se ressemblent Ă©galement et sedistinguent principalement par des caractĂšres diffĂ©rents(frĂ©quences Ă©gales Ă zĂ©ro). Il est donc nĂ©cessairede dĂ©finir une mĂ©trique arrivant Ă diffĂ©rencier de telles distributions.
111
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
SP a d e g i l m n o p q r s t u
message 0message 1
(a) Messagem0 (interrogation) et messagem1 (interrogation)
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
SP a c d e f g i l m n o p q r s t u
message 0message 2
(b) Messagem0 (interrogation) et messagem2 (réponse)
FIGURE 5.4 â Comparaison des distributions des caractĂšres de deux messages particuliers â SP est lecaractĂšre dâespacement
Divergence de Kullback-Leibler
La distance entre deux distributions sâĂ©value de diffĂ©rentes sortes telles que la distance euclidienne :
dist(m1,m2) =
â
255
âi(car(m1)i âcar(m2)i)2
Cependant, lâutilisation de la divergence Kullback-Leibler est particuliĂšrement efficace. Elle mesurela diffĂ©rence de quantitĂ© dâinformation entre deux distributions. Son utilisation dans le cas prĂ©sent ac-centue les diffĂ©rences en fonction du ratio entre les distributions. Ainsi la distance entre la probabilitĂ© 0.2et 0.4 comparĂ©e avec celle entre 0.7 et 0.9 sera plus importante malgrĂ© une mĂȘme diffĂ©rence absolue. Ladivergence de Kullback-Leibler entre deux distributionsd1 et d2 se dĂ©finit mathĂ©matiquement commesuit :
KL(d1,d2) = âi
d1i log
(
d1i
d2i
)
(5.1)
La base du logarithme nâest pas spĂ©cifiquement fixĂ©e. Dans ce cadre, la valeur habituelle de deux estemployĂ©e. Ainsi, cette distance est une quantitĂ© en bits.
Alors que les algorithmes de classification reposent en gĂ©nĂ©ral sur une notion de distance, cettedivergence nâen nâest pas une puisquâelle nâest pas symĂ©trique, câest-Ă -direKL(d1,d2) 6= KL(d2,d1). Sa
112
5.3. Distances entre deux messages
message 0 1 2 3 40 0.000 1.812 3.721 2.349 15.4431 1.812 0.000 3.177 1.171 14.9262 3.721 3.177 0.000 2.490 19.4253 2.349 1.171 2.490 0.000 12.2154 15.443 14.926 19.425 12.215 0.000
TABLE 5.2 â Divergence de Kullback-Leibler symĂ©trique entre les messages (lissage des distributions descaractĂšres avecΔ = 10â6) â Pour chaque message en ligne, les cases rouges indiquent une incohĂ©rencede distance par rapport Ă deux autres messages
définition symétrique est alors généralement appliquée :
KL2(d1,d2) =KL(d1,d2)+KL(d2,d1)
2(5.2)
En conséquence, la distance reposant sur la distribution decaractÚres est spécifiée par :
dist(m1,m2) =255
âi=0
car(m1)i log
(
car(m1)i
car(m2)i
)
+255
âi=0
car(m2)i log
(
car(m2)i
car(m1)i
)
(5.3)
Le dernier problĂšme demeurant est le domaine de dĂ©finition decette distance. Effectivement, ellerisque de calculer une division par zĂ©ro quand il existecar(m1)i ou car(m2) j valant zĂ©ro. Une solutionenvisageable consiste Ă lisser les donnĂ©es pour transformer les frĂ©quences Ă©gales Ă zĂ©ro en de trĂšs petitesvaleursΔ. DĂšs lors, rĂ©duire lĂ©gĂšrement les autres frĂ©quences sâavĂšre essentiel pour garder une sommedes frĂ©quences Ă©gale Ă un :
car3(m)i =
car(m)i âλΔ , si car(m)i > 0Δ sinon
(5.4)
Dans cette Ă©quationλ est le nombre de frĂ©quences Ă©gales Ă zĂ©ro de la distribution dâorigine. Le lis-sage des distributions nâest pas seulement spĂ©cifique Ă la divergence de Kullback-Leibler et rĂ©duit leseffets trop nĂ©gatifs des valeurs nulles mĂȘme entre deux messages du mĂȘme type. Les distances corre-spondantes de lâexemple sont donnĂ©es dans le tableau 5.2. Par rapport aux diffĂ©rences de longueur entreles messages (le tableau 5.1), moins dâincohĂ©rences de distance apparaissent mais dâautres problĂšmespersistent. En effet, bien quâelle reflĂšte la prĂ©sence ou nonde certains mots-clĂ©s, le contenu mĂȘme dumessage ajoute beaucoup de bruit Ă celle-ci. Par exemple, lemessagem3, en incluant le motinterrogationdans sa rĂ©ponse, devient similaire Ă ce type de requĂȘte.
5.3.3 Positions des caractĂšres
Une autre caractĂ©ristique des messages est la distributionde la position de leurs caractĂšres. En effet,certains mots-clĂ©s se retrouvent souvent positionnĂ©s Ă la mĂȘme place tels que ceux dĂ©limitant les premierschamps. Ainsi, cette reprĂ©sentation calcule la position moyenne de chaque caractĂšre ASCIIc pour unmessagem :
pos(m)c =âi=k
i=1 pm(ci)
k
113
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
message 0 1 2 3 40 0.000 3.714 7.510 4.989 12.3801 3.714 0.000 3.023 3.427 13.9912 7.510 3.023 0.000 3.288 20.6403 4.989 3.427 3.288 0.000 14.8604 12.380 13.991 20.640 14.860 0.000
TABLE 5.3 â Distances entre les distributions des positions des caractĂšres (lissage des distributions avecΔ = 10â6) â Pour chaque message en ligne, les cases rouges indiquent une incohĂ©rence de distance parrapport Ă deux autres messages
oĂč i itĂšre sur les diffĂ©rents caractĂšres valantc et dont le nombre total estk. pm(ci) retourne la position duie caractĂšre de valeurc.
Lâusage de la distance de Kullback-Leibler symĂ©trique nĂ©cessite une distribution de probabilitĂ©, câest-Ă -dire des valeurs entre zĂ©ro et un dont la somme est Ă©gale Ă un. En consĂ©quence, les positions moyennessont divisĂ©es par la somme de celles-ci, câest-Ă -dire :
pos2(m)c =pos(m)c
â255i=0 pos(m)i
(5.5)
Une fois de plus, cette caractérisation des messages implique le stockage de 256 valeurs correspon-dant aux codes ASCII des caractÚres. Similairement à la distribution des caractÚres, elle est facilementcompressible en ne gardant que les valeurs non nulles.
Cependant, le tableau 5.3 atteste du faible bĂ©nĂ©fice de cettemĂ©trique comparĂ©e Ă la prĂ©cĂ©dentepuisque, malgrĂ© la disparition de certaines incohĂ©rences,dâautres sont apparues. En rĂ©alitĂ©, le problĂšmesous-jacent reste le mĂȘme car, malgrĂ© lâexistence de mots-clĂ©s, le contenu associĂ© est souvent variableentraĂźnant un dĂ©calage des positions. Pour exemple, un protocole plus complexe aurait un message dĂ©finicomme suit :
type champs1 valeur_champs1 champs2 valeur champs2...
Dans ce cas, la position dechamps2 contenant probablement un mot-clé est entiÚrement tributaire de lavaleur du premier et notamment de sa longueur.
5.3.4 Positions pondérées des caractÚres
Face aux difficultĂ©s prĂ©cĂ©dentes, cette sous-section dĂ©voile une nouvelle reprĂ©sentation dâun mes-sage : la distribution des positions pondĂ©rĂ©es. LâhypothĂšse clĂ© rĂ©side dans la corrĂ©lation entre le typedâun message et le contenu des premiers octets de celui-ci. En effet, la majoritĂ© des protocoles dĂ©finissentun mot-clĂ© reprĂ©sentatif du type du message dans les premiers octets pour en faciliter sa comprĂ©hensiontout en simplifiant et en accĂ©lĂ©rant la tĂąche de lâanalyseur syntaxique. En quelques mots, les premierschamps indiquent comment le message doit ĂȘtre interprĂ©tĂ© mais aussi la maniĂšre dont il doit ĂȘtre analysĂ©et dĂ©coupĂ©.
Par consĂ©quent, lors du calcul des positions des caractĂšres, un poids plus fort sera attribuĂ© aux pre-miĂšres dâentre elles. En consĂ©quence, cette nouvelle distribution se formalise comme ci-aprĂšs :
ppα(m)c =ppα
2(m)c
â255i=0 ppα
2(m)i(5.6)
114
5.3. Distances entre deux messages
oĂč ppα2(m)c =
âi=ki=1 pm(ci)
âα
k. Cette définition est équivalente à la précédente (formule (5.5)) à ceci prÚs
quâun facteurα supĂ©rieur Ă un pondĂšre chacune des positions. Dans le cas prĂ©sent,α= 1 correspond doncĂ prendre lâinverse. De ce fait, les premiers caractĂšres auront un poids plus important que les suivants.Cette reprĂ©sentation des messages contient une fois de plusautant de valeurs que de caractĂšres possibleset est compressible toujours en Ă©liminant les valeurs nulles.
Cependant, le calcul de lâinverse des positions peut impliquer des valeurs petites voire trĂšs petitespour certains caractĂšres (notamment siα >> 1) et le lissage de cette distribution pour pouvoir appliquerla distance symĂ©trique de Kullback-Leibler requiert de prendre des prĂ©cautions pour fixer la valeurΔ.Ăviter de prendre des risques est faisable en remarquant quâune probabilitĂ© valant 0 engendrera le termesuivant dans la formule 5.2 pour chaque autre valeurxi :
0log
(
0xi
)
+xi log(xi
0
)
Bien que cette somme soit clairement indĂ©terminĂ©e, elle correspond Ă la somme de deux termes, unentre 0 etââ et un autre qui tend versâ. Il paraĂźt lĂ©gitime de remplacer les valeurs nulles par unΔ petitrĂ©sultant en une somme dâun terme trĂšs petit et dâun terme trĂšs grand. Malheureusement, la courbe dulogarithme ne croĂźt pas de façon identique pour des valeurs proches de zĂ©ro et des valeurs trĂšs grandescausant une trĂšs grande ou trĂšs petite valeur dans la formuleprĂ©cĂ©dente. DĂ©finirΔ est donc une tĂąchecomplexe pour deux raisons :
â ne pas trop dĂ©sĂ©quilibrer le calcul de la distance de Kullback-Leibler avec unΔ trop petit ;â ne pas avoir trop dâimpact en ayant un epsilon trop grand et trop proche de valeurs rĂ©elles de la
distribution.Cependant, une autre solution est dâenvisager que dans le cas prĂ©cis dâune probabilitĂ© Ă©gale Ă zĂ©ro, ladistance de Kullback-Leibler sâapproxime aussi par zĂ©ro, câest-Ă -dire que les deux termes de la sommeprĂ©cĂ©dente sâannulent.Δ nâa donc plus besoin dâĂȘtre paramĂ©trĂ© et ce procĂ©dĂ© diminue la complexitĂ©gĂ©nĂ©rale en Ă©liminant lâĂ©tape du lissage des distributions.
La divergence de Kullback-Leibler se redéfinit alors comme :
KL(d1,d2) = âi, d1
i 6=0, d2i 6=0
d1i log
(
d1i
d2i
)
(5.7)
Cette nouvelle formulation nâest applicable que pour la dĂ©finition symĂ©trique de la distance de Kullback-Leibler de la formule (5.2).
Le rĂ©sultat de lâusage de cette nouvelle dĂ©finition et de la distribution des positions pondĂ©rĂ©es descaractĂšres est rapportĂ© dans le tableau 5.4 oĂč aucune incohĂ©rence ne persiste. Cette nouvelle distributionest donc un atout majeur dans la diffĂ©renciation des diffĂ©rents types de messages. Toutefois, ce tableaunâest quâun exemple particulier permettant dâobtenir ce cas parfait mais pas constamment atteignable.Ainsi, la bonne interprĂ©tation gĂ©nĂ©rale de cette mĂ©trique et des autres doit ĂȘtre soumise Ă des algorithmesde partitionnement des donnĂ©es pour vraiment pouvoir Ă©valuer leurs intĂ©rĂȘts. Toutefois, ce petit exem-ple dĂ©montre la supĂ©rioritĂ© de cette derniĂšre mĂ©trique sur les autres qui sera encore confirmĂ©e grĂące Ă lâĂ©valuation complĂšte prĂ©sentĂ©e dans le chapitre 8.
5.3.5 Distribution ordonnée des caractÚres
Hormis la distance entre la longueur de deux messages, les métriques précédentes ne sont pas adap-tées à des messages chiffrés avec un XOR différent. En effet,si chaque message est chiffré (XOR) avec
115
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
message 0 1 2 3 40 0.000 0.664 3.000 4.444 2.1131 0.664 0.000 1.439 2.528 2.1032 3.000 1.439 0.000 1.371 3.3043 4.444 2.528 1.371 0.000 5.2384 2.113 2.103 3.304 5.238 0.000
TABLE 5.4 â Distances entre les distributions des positions pondĂ©rĂ©es des caractĂšres â Pour chaquemessage en ligne, les cases rouges indiquent une incohĂ©rence de distance par rapport Ă deux autresmessages
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
0x00x1
0x20x3
0x40x6
0x70x8
0x90xa
0xb0xd
0xe0xf
0x100x11
0x120x13
0x140x15
0x160x17
0x410x46
message 0message 1
FIGURE 5.5 â Distribution des caractĂšres entre les messages chiffrĂ©sm0ââČaâČ et m1â
âČ f âČ â la valeurhexadĂ©cimale des caractĂšres est utilisĂ©e
la mĂȘme clĂ©, les distributions prĂ©cĂ©demment dĂ©finies sont envisageables car cela ne correspond quâĂ une transition des caractĂšres. NĂ©anmoins, si la clĂ© change pour chaque message, un caractĂšre est en faitreprĂ©sentĂ© par plusieurs diffĂ©rents, ce qui empĂȘche de comparer les distributions.
A titre dâexemple, la figure 5.5 montre la distribution des caractĂšres des deux premiers messages demĂȘme type chiffrĂ©s avec deux clĂ©s diffĂ©rentes dâoĂč une dissemblance Ă©vidente. Dâailleurs, la distanceentre ces deux messages a Ă©tĂ© multipliĂ©e par plus de 10 en passant des versions non chiffrĂ©es Ă celleschiffrĂ©es.
[71] définit la distribution ordonnée inverse des caractÚres telle que :
âi, j, i < j, ord(m)i > ord(m) j â§ord(m)i â car(m)â§ord(m) j â car(m)
Plus simplement, cette nouvelle distribution correspond Ă car(m) (distribution des caractĂšres) ordonnĂ©ede la plus grande Ă la plus petite valeur. Ainsi, le stockage dâun message sous une forme ou lâautre estĂ©quivalent en terme dâespace. Elle est rĂ©sistante face Ă un chiffrement par XOR impliquant un chiffrementunique pour chaque caractĂšre. Ainsi, la frĂ©quence dâun tel caractĂšre est Ă©quivalente Ă sa version nonchiffrĂ©e et donc Ă sa position dans lâordonnancement :
ord(mâk) = ord(m)â key k
La figure 5.6 dĂ©coule de cet ordonnancement sur trois messages. Les messages de mĂȘme type (m0 etm1) sont bien isolĂ©s du messagem3 de mĂȘme que les distances de Kullback-Leibler associĂ©es.
116
5.3. Distances entre deux messages
0
0.05
0.1
0.15
0.2
0.25message 0message 1message 4
FIGURE 5.6 â Distribution ordonnĂ©e des caractĂšres entre les messages chiffrĂ©sm0ââČaâČ, m1â
âČ f âČ etm4â
âČkâČ
5.3.6 Alignement de séquences
Le chapitre 2 a mis en exergue les nombreux travaux de rĂ©tro-ingĂ©nierie tirant partie de lâalignementde sĂ©quences local grĂące Ă lâalgorithme de Smith-Waterman [28]. Bien que cet algorithme ne soit pasredĂ©taillĂ© ici, les mĂ©triques prĂ©cĂ©dentes sont complĂ©mentaires Ă ces travaux pour deux raisons princi-pales :
â ce sont des alternatives pouvant se rĂ©vĂ©ler efficace ;â la complexitĂ© de leur calcul est plus faible.Le second point mĂ©rite dâĂȘtre dĂ©taillĂ©. En effet lâalgorithme de Smith-Waterman est connu pour avoir
une complexitĂ© enO(nm) oĂč n et m sont les tailles respectives de deux messages. Pour diminuer cettecomplexitĂ©, la simplification via lâemploi dâheuristique est une direction possible [25]. Une autre solu-tion consiste simplement Ă envisager dâautres moyens de comparer deux messages tels que ceux dĂ©taillĂ©sauparavant. Il est clair que la diffĂ©rence de longueur entredeux messages est trĂšs rapide puisquâelle nenĂ©cessite quâune opĂ©ration. Cependant, les meilleures reprĂ©sentations sont celles basĂ©es sur des distri-butions. Dans ce cas, la distance de Kullback-Leibler est appliquĂ©e. En examinant les formules (5.1) et(5.7), la formule (5.2) peut se simplifier aisĂ©ment en une seule somme :
KL2(d1,d2) =12 â
i
[
d1i log
(
d1i
d2i
)
+d2i log
(
d2i
d1i
)]
(5.8)
Plus exactement, lâindice de la somme varie entre 0 et 255 au maximum dans le cas des distributions.La complexitĂ© de ce calcul ne dĂ©pend donc pas de la taille des messages souvent bien plus grande que lenombre de caractĂšres employĂ©s. Ainsi, cette complexitĂ© estenO(1) par rapport Ă la taille des messages.
Cependant, une étape de caractérisation des messages est obligatoire pour former les distributions.Sans optimisation, elle nécessite trois itérations :
â une premiĂšre sur lâensemble du message pour rĂ©cupĂ©rer la caractĂ©ristique de chaque caractĂšre(valeur, position) ;
â une seconde permettant de calculer les moyennes sur les diffĂ©rents caractĂšres ;â une troisiĂšme optionelle qui permet, selon la reprĂ©sentation utilisĂ©e, dâobtenir rĂ©ellement une dis-
tribution, câest-Ă -dire dont la somme des valeurs est Ă©galeĂ un.
117
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
Alors que les deux premiers points vont nĂ©cessiter dâexaminer le message intĂ©gralement, la derniĂšreest une opĂ©ration globale rĂ©alisable en une passe sur celle-ci (256 valeurs au maximum) car la sommede toutes les valeurs peut ĂȘtre calculĂ©e Ă la seconde Ă©tape. Ainsi, la complexitĂ© de lâanalyse de chaquemessage se limite Ă O(2n) = O(n) oĂčn est la taille du message. De plus, cet examen nâest rĂ©alisĂ© quâuneunique fois par message. Seul le calcul de la distance en complexitĂ© constante est pratiquĂ© pour chaquecouple de messages contrairement Ă lâalgorithme dâalignement nĂ©cessitant dâĂȘtre entiĂšrement rĂ©exĂ©cutĂ©pour chacun dâeux.
5.4 Partitionnement des données
5.4.1 DĂ©finition du problĂšme
Le partitionnement de donnĂ©es ou clustering vise Ă construire des clusters Ă partir dâun ensemble depointsX = xi , i = 1. . .n. De plus, le nombre de clusters ou classes nâest pas connu Ă priori. Ătant donnĂ©que chaque point appartient Ă une classe donnĂ©eC = ci , i = 1. . .m, Ti = xi1, . . . ,xip est lâensembledes points deX appartenant Ă la classei. Il est important de noter que chaquex est indexĂ© par un uniqueindice (ik) et non deux, avecik â 1. . .n. Par consĂ©quent il faut prĂ©ciser queâ Ti, â xâ Ti xâ X, câest-Ă -direâxkp,1< kp< n. Ces notations seront utilisĂ©es dans lâensemble de cette section.
Un algorithme de clustering sâassimile Ă une fonctionÏ : Xâ K oĂč K = ki , i = 1, . . . , t câest-Ă -direune fonction qui associe une classeki Ă chaque pointxi . LâensembleK est diffĂ©rent de lâensembleC etleurs cardinalitĂ©s peuvent diverger selon lâefficacitĂ© de lâalgorithme utilisĂ©. Obtenir des ensemblesC etK similaires est lâobjectif Ă atteindre pour une technique declustering performante.
Une bonne similitude est synonyme dâun nombre de classes proches voire identiques avec des clus-ters consistants, câest-Ă -dire ne contenant quâun seul type de messages en majoritĂ©. Un algorithme departitionnement a donc deux objectifs dont le premier se dĂ©finit simplement :
min(|card(C)âcard(K)| (5.9)
La notationcard(A) désignant le cardinal deA est ici employée pour ne pas la confondre avec la notation|x| représentant la valeur absolue dex.
Lâobjectif de consistance se spĂ©cifie grĂące Ă lâensembleRi = xi1, . . . ,xip contenant les points affec-tĂ©s Ă la classei parΚ. Chaque classe trouvĂ©e se voit Ă©tiqueter par le type rĂ©el majoritaire :
âkâ K, type(k) = ck âC,âcl âC,card(x,Ï(x) = k,xâ Tl)†cardx,Ï(x) = k,xâ Tk
En dĂ©finissant chaque cluster comme un unique point de donnĂ©e, une grande prĂ©cision est possible(pas de types mĂ©langĂ©s) mais implique une faible consistance car plusieurs points de mĂȘme types sontĂ©parpillĂ©s dans diffĂ©rents clusters. De ce fait, lâobjectif est dâobtenir les plus gros clusters pour chaquetype rĂ©el avec le moins de messages de type invalide au sein dechacun dâeux :
max
(
âcâC
maxkâK,type(k)=c
(card(x,Ï(x) = k,xâ Tc))
)
(5.10)
Bien Ă©videmment, remplir ces deux objectifs simultanĂ©mentnâest pas toujours rĂ©alisable mais ilsdĂ©finissent exactement et formellement le but visĂ© par les algorithmes de clustering. Dans le cadre de larĂ©tro-ingĂ©nierie, les points de donnĂ©es coĂŻncident avec les messages.
118
5.4. Partitionnement des données
TT
TT
(a) Points initiaux
T
T
T
T*
*
*
*
(b) Projection dans lâespacede re-description
R
T
T
T
*
*
T**
a
(c) Recherche de lâhyper-sphĂšre englobante
TT
T
T*
*
**
(d) Projection de lâhyper-sphĂšre dans lâespace dâorig-ine
FIGURE 5.7 â Les Ă©tapes de SVC (Les Ă©toiles symbolisent les vecteurssupports)
5.4.2 Méthodes utilisées
Plusieurs mĂ©thodes sont applicables et deux dâentre elles ont Ă©tĂ© sĂ©lectionnĂ©es : le clustering hiĂ©rar-chique ascendant[27] et SVC (Support Vector Clustering). Ces mĂ©thodes sont briĂšvement dĂ©crites ici etdĂ©taillĂ©es dans lâannexe A.
Le clustering hiĂ©rarchique ascendant [27] est une mĂ©thode de partitionnement trĂšs connue. Sonprincipe rĂ©side dans la notion de distance entre deux pointstelles que celles dĂ©crites dans la sectionprĂ©cĂ©dente. En effet, la premiĂšre Ă©tape construit un cluster pour chaque message individuel. Ensuite, lesplus proches sont regroupĂ©s entre eux Ă chaque Ă©tape jusquâĂ regrouper lâensemble des points dans unmĂȘme cluster.
Bien que les fondements des machines Ă vecteurs de support ousĂ©parateurs Ă vaste marge (SVMou Support Vector Machines en anglais) datent des annĂ©es 60-70, ce nâest quâau cours des annĂ©es 90quâelles furent vĂ©ritablement explorĂ©es dâabord dans le domaine de la classification pure avant dâĂȘtreĂ©tendues Ă de nombreux domaines. Cette popularitĂ© dĂ©coule de leurs performances surpassant les autresalgorithmes de classification dans de nombreux cas [7]. Plusieurs mĂ©thodes mettant en Ćuvre les SVMexistent et le choix dĂ©pend de lâapplication visĂ©e. GĂ©nĂ©ralement basĂ©e sur de lâapprentissage et doncinadaptĂ© au problĂšme Ă©noncĂ© au dĂ©but cette section, une autre mĂ©thode demeurant peu exploitĂ©e maisdonnant de bons rĂ©sultats sans apprentissage a Ă©tĂ© proposĂ©epar Ben-Huret al. initialement dans [19]avant dâĂȘtre affinĂ©e dans [18] sous le nom deSupport Vector Clustering(SVC) dont les grandes Ă©tapessont synthĂ©tisĂ©es dans la figure 5.7.
LâintĂ©rĂȘt des SVM est la sĂ©paration de points de donnĂ©es non sĂ©parables dans lâespace dâorigine(figure 5.7(a)). Ceux-ci sont donc initialement au sein de clusters de formes arbitraires difficilementsĂ©parables. Lâastuce des SVM projette ces points dans un espace de plus grande dimension (figure 5.7(b)),appelĂ© espace de re-description, dans lequel les points seront facilement dissociables. Intuitivement, unespace plus grand caractĂ©risera les donnĂ©es plus prĂ©cisĂ©ment pour mieux les sĂ©parer. Dans le cadre deSVC, les contours des clusters de lâespace dâorigine se rĂ©duisent Ă une hypersphĂšre dans lâespace de plusgrande dimension. Son objectif est donc de trouver cette sphĂšre (figure 5.7(c)) puis de la repasser danslâespace dâorigine pour dĂ©couvrir les clusters quâelle forme (figure 5.7(d)).
Les dĂ©tails de la mĂ©thode sont mentionnĂ©s dans lâannexe A et aboutissent sur le problĂšme dâoptimi-sation suivant :
W = âi
Ί(xi)2ÎČiââ
i, j
ÎČiÎČ jK(xi ,x j) (5.11)
119
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
(a) SVC (b) Partitionnement hiérarchique
FIGURE 5.8 â MĂ©thode globale
avec comme contraintes :
0†ÎČi â€C ; âi
ÎČi = 1 (5.12)
K est une fonction noyau permettant de sâaffranchir de lâutilisation dâune fonction de projection (figure5.7(b)). Le noyau Gaussien fut choisi et se dĂ©finit par :
K(xi ,x j) = eâqâxiâxjâ2
(5.13)
5.4.3 MĂ©thode globale
Au cours des premiĂšres expĂ©rimentations de lâapplication de SVC pour la dĂ©couverte des types demessages, de nombreux clusters ne furent pas dĂ©couverts. Plus prĂ©cisĂ©ment, SVC trouvait effectivementdes clusters de donnĂ©es assez diverses correspondant gĂ©omĂ©triquement Ă des formes arbitraires. Dâunautre cĂŽtĂ©, le partitionnement hiĂ©rarchique se rĂ©vĂ©lait encore plus mauvais en terme dâefficacitĂ©. LâidĂ©emaĂźtresse introduite dans [1] est dâappliquer le partitionnement hiĂ©rarchique sur chaque cluster dĂ©cou-vert par SVC. En effet, les expĂ©rimentations rĂ©alisĂ©es ont montrĂ© que les formes irrĂ©guliĂšres des clustersproduits renferment plusieurs petits clusters diffĂ©rentsen rĂ©alitĂ©. Bien Ă©videmment, ce cas dĂ©pend desdonnĂ©es Ă classer mais les bĂ©nĂ©fices dâune telle approche pour lâidentification des messages sont sansĂ©quivoque dans le chapitre 8. La figure 5.8 illustre de tels clusters nĂ©cessitant lâapplication dâune classi-fication Ă double niveau :
â application de SVC,â partitionnement hiĂ©rarchique pour redĂ©couper chacun desclusters dĂ©couverts par SVC en utilisant
la mĂ©thode du barycentre puisque SVC sâest dĂ©jĂ chargĂ© de trouver les formes arbitraires.
5.5 Architecture générale
Il est maintenant possible de dĂ©crire prĂ©cisĂ©ment comment les techniques et les reprĂ©sentations desmessages expliquĂ©es prĂ©cĂ©demment vont ĂȘtre mises en Ćuvre.
120
5.5. Architecture générale
Base de donnéesde messages
SVC
ClusteringHierarchique Ascendant
ClusteringHierarchique Ascendant
Clustering
RĂ©seau
FIGURE 5.9 â Architecture gĂ©nĂ©rale
5.5.1 Fonctionnement
La figure 5.9 expose les diffĂ©rentes Ă©tapes de la nouvelle approche de classification des types demessages. La premiĂšre Ă©tape consiste Ă rĂ©cupĂ©rer un ensemble de messages. La mĂ©thode Ă©tant totalementnon supervisĂ©e, aucun message nâest Ă©tiquetĂ© et ils doiventĂȘtre directement partitionnĂ©s en diffĂ©rentsclusters.
Dans un premier temps, ils sont stockĂ©s sous une des reprĂ©sentations simplifiĂ©es introduite prĂ©cĂ©dem-ment. Plus prĂ©cisĂ©ment, trois dâentre elles seront considĂ©rĂ©es :
â la distribution des caractĂšres reflĂ©tant le contenu du message et servant de points de comparaisonavec les autres ;
â la distribution des positions pondĂ©rĂ©es des caractĂšres serĂ©vĂ©lant plus profitable par rapport auxautres ;
â la distribution ordonnĂ©e des caractĂšres prĂ©sentant une rĂ©sistance au chiffrement par un XOR etmesurant ainsi lâefficience de la mĂ©thode suggĂ©rĂ©e avec un protocole faisant usage dâun tel chiffre-ment.
Il nâest donc plus obligatoire de stocker le message intĂ©gralement. La base de donnĂ©es ainsi construitealimente les diffĂ©rentes mĂ©thodes de clustering telles quele partitionnement hiĂ©rarchique (en utilisant ladistance de Kullback-Leibler symĂ©trique), SVC ou la mĂ©thode globale combinant les deux. Les diffĂ©rentsclusters regroupent alors les messages de mĂȘme type. Du faitdu caractĂšre non supervisĂ©, aucun typerĂ©el ne peut ĂȘtre assignĂ© Ă un cluster sans pour autant invalider la mĂ©thode puisquâelle vise Ă aider laconstruction de la machine Ă Ă©tats pour laquelle le nom exactdâun type nâest dâaucune utilitĂ©.
Paramétrage automatique de SVC
La mĂ©thode de reconnaissance des types est non supervisĂ©e etne peut donc ĂȘtre prĂ©alablement en-traĂźnĂ©e alors que beaucoup de paramĂštres existent et doivent ĂȘtre fixĂ©s. Concernant le partitionnementhiĂ©rarchique, la dĂ©finition du paramĂštre principalÏ indiquant la distance maximale autorisĂ©e pour rassem-bler deux clusters fut dĂ©jĂ lâobjet de travaux par le passĂ© [11]. SVC nĂ©cessite beaucoup plus de paramĂštresmais les expĂ©rimentations rĂ©alisĂ©es sur plusieurs protocoles dans le chapitre 8 mettent en Ă©vidence que
121
Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie
peu dâentre eux ont un impact important et ont besoin dâĂȘtre redĂ©finis pour chaque protocole utilisĂ©. Enoutre, ils sont souvent dĂ©pendants de contraintes limitantleurs valeurs possibles telles que la constanteC :
ÎČ_init i <C< 1 (5.14)
oĂč ÎČ_init i sont les valeurs initiales deÎČi dans la forme duale (5.11) ajustĂ©es lors de la rĂ©solutiondu problĂšme dâoptimisation. En rĂ©alitĂ©, la valeur de ces variables nâa pas dâimpact particulier sur lerĂ©sultat de lâoptimisation mais joue un rĂŽle dans le nombre dâitĂ©rations nĂ©cessaires pour la rĂ©solution.Effectivement, si ces valeurs sont proches de leurs valeursfinales alors la rĂ©solution sera trĂšs rapide. SVCimpose nĂ©anmoins la contrainte suivante :
âi
ÎČ_init i = 1
Sans connaissance à priori, une affectation uniforme est préférable :
ÎČ_init i =1N
oĂč N est le nombre de points ou messages Ă classer. De plus, les expĂ©rimentations montrent le faibleimpact de la valeur deC tant quâelle correspond Ă une valeur proche deÎČ_init i :
ÎČ_init i /C
Cependant, lâutilisation du noyau gaussien demande de fixerjustement le paramĂštreq de la formule(5.13). Une technique, proposĂ©e dans cette thĂšse, a donc Ă©tĂ©mise au point pour le dĂ©terminer automa-tiquement. Pour rappel, le rĂŽle de SVC (premier niveau de classification) est dâobtenir des clusters as-sez grands mĂȘme si ils contiennent des messages de diffĂ©rents types. Lâapprentissage automatique duparamĂštreq repose alors sur deux mĂ©triques dĂ©crivant des caractĂ©ristiques gĂ©nĂ©rales sur les groupes demessages dĂ©finis sans pour autant prendre en compte le type rĂ©el de ces derniers (mĂ©thode non super-visĂ©e).
Tout dâabord la largeur dâun clusterkâ K se dĂ©finit par la distance maximale entre deux points :
largeur(k) = maxxiâk,yiâk
dist(xi ,yi)
La premiĂšre caractĂ©ristique dâune classificationKq (ensemble des clusters construits) dĂ©pendant duparamĂštreq est donc sa largeur Ă©gale Ă celle du cluster le plus large :
largeur(q) = maxkâKq
largeur(k)
La seconde caractĂ©ristique gĂ©nĂ©rale dâun partitionnementest le nombre de clusters dĂ©couverts :card(Kq)Le paramĂštreq a un rĂŽle majeur dĂ©finissant le degrĂ© de sĂ©paration des donnĂ©es dans lâespace de
re-description. Ainsi, une faible valeur deq nâentraĂźnera que des diffĂ©rences limitĂ©es entre les pointscomme le montre lâĂ©quation (5.13) engendrant ainsi un fort regroupement des messages dans un seulou peu de clusters. Plusq augmente, mieux les messages sont sĂ©parĂ©s et plus de clusters sont alorsconstruits. En partant dâun cluster unique, lorsque SVC dĂ©coupe les messages en grands groupes, lalargeur maximale doit dĂ©croĂźtre assez significativement sinon cela signifie plus probablement que seulsquelques messages ont Ă©tĂ© sĂ©parĂ©s du cluster initial. Toutefois, la soustraction dâun unique message Ă uncluster peut grandement modifier sa largeur dâoĂč la nĂ©cessitĂ© dâobserver deux changements parallĂšles :
â une augmentation significative du nombre de clusters,â une augmentation significative de la largeur.
122
5.6. Bilan
LâapprĂ©ciation du paramĂštreq demande de suivre lâĂ©volution de ces valeurs en parallĂšle. Ătant donnĂ©pvaleurs deq (q1,q2, . . . ,qp), lâensemble des largeurs associĂ©es est notĂ©< largeur(q1), . . . , largeur(q2)>et< card(q1 >,. . . ,card(q2) > reprĂ©sente le nombre de clusters dĂ©couverts. Ainsi, en se basant sur ladiffĂ©rence de ces valeurs entre deuxqi etq j consĂ©cutifs, lâĂ©volution du nombre de clusters et de la largeurdu plus grand cluster est observable :
evol_c(qi) =card(qi)âcard(qiâ1)
maxi(card(qi))
si i > 1, 0 sinon (5.15)
evol_w(qi) =largeur(qiâ1)â largeur(qi)
maxi(largeur(qi ))
si i > 1, 0 sinon (5.16)
Les divisions ne servent quâĂ ramener les valeurs calculĂ©esente 0 et 1 pour une comparaison plusaisĂ©e. La condition quand Ă elle permet de fixer la premiĂšre valeur Ă 0 lorsquâil nây a pas de rĂ©fĂ©ren-tiel prĂ©cĂ©dent. De plus, comme le nombre de clusters augmente et la largeur diminue, lâopposĂ© decette derniĂšre est prise en compte pour faciliter la comparaison parallĂšle de ces mĂ©triques sur un mĂȘmegraphique. Le chapitre 8 rĂ©vĂ©lera lâintĂ©rĂȘt pratique et efficace de ces mĂ©triques dans un cas rĂ©el.
5.6 Bilan
Ce chapitre a expliquĂ© en dĂ©tail une nouvelle mĂ©thode de dĂ©couverte automatique des types de mes-sages dâun protocole. Elle se singularise par deux aspects :
â la reprĂ©sentation des messages,â les mĂ©thodes de partitionnement.Le premier point a notamment mis en Ă©vidence quâun message peut facilement ĂȘtre substituĂ© par une
distribution comprenant au plus 256 valeurs alors que plusieurs techniques actuelles bien connues analy-sent intĂ©gralement le message [16, 6] grĂące Ă des techniquesdâalignement de sĂ©quences impliquant unecomplexitĂ© trĂšs Ă©levĂ©e par rapport Ă celles induites par lesnouvelles mĂ©triques proposĂ©es ici. Par ailleurs,la distribution ordonnĂ©e des caractĂšres permet de les reprĂ©senter indĂ©pendamment dâun chiffrement parXOR.
[8] est aussi une mĂ©thode totalement automatique analysantuniquement les messages pour en extraireĂ©galement la syntaxe. MalgrĂ© cet intĂ©rĂȘt non nĂ©gligeable, les auteurs sâappuient sur une hypothĂšse forteconsidĂ©rant que les champs textuels sont forcĂ©ment sĂ©parĂ©spar des caractĂšres sĂ©parateurs prĂ©Ă©tablis(espace, tabulation...). La mĂ©thode prĂ©alablement proposĂ©e dans ce chapitre ne formule en aucun cas unehypothĂšse de ce type de maniĂšre Ă rester le plus gĂ©nĂ©ral possible pour pouvoir ĂȘtre appliquĂ©e sur desprotocoles totalement inconnu Ă lâinstar de certains malwares (vers, botnets...).
Le second point important de la mĂ©thode suggĂ©rĂ©e est lâemploi de SVC, une technique rĂ©cente quise base sur le paradigme des machines Ă vecteurs de support prĂ©sentant de trĂšs bons rĂ©sultats dans lesdiffĂ©rents domaines oĂč elles furent employĂ©es mais Ă©galement dans le cadre de la rĂ©tro-ingĂ©nierie commele montre le chapitre 8. Enfin, il a Ă©tĂ© nĂ©cessaire de coupler cette mĂ©thode avec celle du partitionnementhiĂ©rarchique ascendant beaucoup plus connue et ancienne.
Enfin, au vue du nombre important de paramĂštres, un procĂ©dĂ© dâapprentissage automatique de cesderniers complĂšte ce nouveau systĂšme de dĂ©couverte des types de messages.
123
6
Nouvelles techniques de fingerprinting
Sommaire6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1256.2 DĂ©finitions des problĂšmes . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 126
6.2.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266.2.2 Fingerprinting supervisé . . . . . . . . . . . . . . . . . . . . . . .. . . 1266.2.3 Fingerprinting non supervisé . . . . . . . . . . . . . . . . . . . .. . . . 127
6.3 Machines Ă vecteur de support multi-classes . . . . . . . . . .. . . . . . . . . 1276.4 Fingerprinting comportemental et temporel . . . . . . . . . .. . . . . . . . . 128
6.4.1 ModĂ©lisation formelle . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1296.4.2 GĂ©nĂ©rations des signatures . . . . . . . . . . . . . . . . . . . . . .. . . 1306.4.3 Mise en Ćuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
6.5 Fingerprinting syntaxique . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 1346.5.1 Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1346.5.2 Distances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366.5.3 Technique supervisée . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1406.5.4 Technique non supervisée . . . . . . . . . . . . . . . . . . . . . . . .. . 141
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.1 Introduction
De nombreuses techniques de fingerprinting furent introduites dans le chapitre 3 mais peu dâentreelles cherchent Ă dĂ©terminer le nom et la version dâun Ă©quipement (logiciel ou physique). La plupart decelles qui se focalisent sur ce problĂšme caractĂ©risent un Ă©quipement par la valeur de quelques champs oulâordre dans lequel ils apparaissent dans le message [4, 24,23].
Ainsi, peu dâinformation est utilisĂ©e alors que des travauxrĂ©cents soulignent clairement lâavantagedâun nouveau type dâinformation :
â le comportement dâun Ă©quipement [22],â la structure syntaxique des messages Ă©mis par un Ă©quipement [8].Ce chapitre prĂ©sentera donc deux nouvelles mĂ©thodes de fingerprinting :â le fingerprinting comportemental,
125
Chapitre 6. Nouvelles techniques de fingerprinting
â le fingerprinting syntaxique.
La premiĂšre se base sur [22] en Ă©tudiant les messages Ă©mis parune machine ainsi que la maniĂšre dont ellerĂ©pond Ă ceux reçus tout en tenant compte du temps nĂ©cessairepour Ă©mettre un message. Cette approchenĂ©cessite une nouvelle formalisation Ă©quivalente Ă un arbre qui fut lâobjet dâune publication Ă©galement[1].
La seconde utilise les arbres syntaxiques introduits dans [8]. Toutes les deux mettent en Ćuvre lâu-tilisation de machines Ă vecteurs de support nĂ©cessitant une phase dâapprentissage, impliquant donc unfingerprinting supervisĂ©. Cependant, une autre contribution majeure est la classification automatique nonsupervisĂ©e des arbres syntaxiques grĂące Ă lâadaptation dâun nouvel algorithme. Enfin, la publication [2]traite du fingerprinting syntaxique.
6.2 DĂ©finitions des problĂšmes
6.2.1 Terminologie
Lâobjectif du fingerprinting est de rĂ©ussir Ă identifier un Ă©quipement Ă partir des messages quâil envoieen les comparant avec une empreinte ou fingerprint. La dĂ©finition exacte de celle-ci dans cette Ă©tude seraprĂ©cisĂ©e selon les diffĂ©rents cas. De maniĂšre gĂ©nĂ©rale, lâobjectif est dâassocier la reprĂ©sentation dâun ouplusieurs messages dâune machine Ă un type dâĂ©quipement.
Toutes les mĂ©thodes proposĂ©es reposent sur une dĂ©finition arborescente de lâempreinte dâoĂč un en-semble de testsT composĂ©s deN arbres :T = t1, . . . , tN. Le fingerprinting tentera dâassocier Ă chacundâeux un type dâĂ©quipement parmisK : D = d1, . . . ,dK. Le fingerprinting supervisĂ© est entraĂźnĂ© grĂąceĂ jeu dâapprentissage dĂ©fini par un ensemble deM arbresL = l1, . . . , lM.
La fonction real(ti) : T âȘ Lâ D retourne le type correspondant Ă lâarbreti . Une fois le systĂšmedĂ©ployĂ©, cette fonction nâest, bien entendu, pas disponible. Cependant, sa dĂ©finition sur lâensembleTservira Ă identifier les objectifs des approches proposĂ©es.
6.2.2 Fingerprinting supervisé
Le fingerprinting supervisĂ© comporte deux phases. La premiĂšre recherche la fonctionΩL : Lâ Dvisant Ă identifier correctement le plus dâarbres du jeu de test :
ΩL = argmaxΩ
card(l i â L,Ω(l i) = real(l i)) (6.1)
Lâobjectif ultime est alors dâobtenir :âl i â L, ΩL(l i) = real(l i).
Dans un second temps, cette mĂȘme fonction prend en entrĂ©e lesarbresti â T pour distinguer les ma-chines du jeu de test. Un bon apprentissage doit alors aider Ă associer chacune dâelle au type dâĂ©quipementconvenable, câest-Ă -direΩL(ti) = real(ti). Cette fonction sera simplement notĂ©eΩ par la suite.
126
6.3. Machines Ă vecteur de support multi-classes
6.2.3 Fingerprinting non supervisé
Ătant non supervisĂ©, ce genre de technique repose exclusivement sur le jeu de test pour infĂ©rer unclassifieur :
ΚT : Tâ P
Il est important de remarquer que cette fonction nâassocie pas prĂ©cisĂ©ment un arbre Ă un typedâĂ©quipement mais Ă une valeur dâun autre ensembleP, correspondant aux diffĂ©rents types dĂ©couvertspar Κ, pouvant ĂȘtre diffĂ©rent deD. En effet, sans ensemble dâapprentissage, la nomenclatureinconnuedes Ă©quipements suscite la crĂ©ation dâune nouvelle arbitraire similaire Ă la rĂ©alitĂ©. En quelques mots,la similitude se dĂ©finit dâabord par un nombre de classes ou detypes dâĂ©quipements trouvĂ©s proche dunombre rĂ©el :
min(|card(C)âcard(K)|) (6.2)
De plus, les classes trouvĂ©es doivent ĂȘtre consistantes, câest-Ă -dire ne contenant en majoritĂ© quâun seultype. Les formules ci-dessous sont construites de la mĂȘme maniĂšre que dans la section 5.4 oĂč chaquecluster trouvĂ© se voit Ă©tiquetĂ© par le type de lâĂ©quipement reprĂ©sentant la majoritĂ© des arbres quâil con-tient :
âpâ P, type(k) = dl âD,âdmâ D,card(t,Κ(t) = p, real(t) = dm)†cardt,Κ(t) = p, real(t) = dl
max
(
âdâD
maxpâP,type(p)=d
(card(t,Κ(t) = p, real(t) = d))
)
(6.3)
avecRi = ti1, . . . , tip les arbres affectĂ©s au clusteri.Lâobjectif ultime est de crĂ©er des groupes dâarbres du mĂȘme type totalement consistants :
|Κ[T]|= K
â< ti , t j >, real(ti) = real(t j )âΚT(ti) = Κ(t j)
â< ti , t j >, real(ti) 6= real(t j )âΚT(ti) 6= Κ(t j)
6.3 Machines Ă vecteur de support multi-classes
Dans le cadre dâune classification supervisĂ©e, les machinesĂ vecteurs de support ou SVM seront unefois de plus employĂ©es vu leurs bonnes performances dans de nombreux domaines [7]. Contrairementau chapitre prĂ©cĂ©dent, la technique mise en Ćuvre est supervisĂ©e et est qualifiĂ©e, plus exactement, deun-contre-un (one-versus-one) [10] car elle offre un bon compromis entre complexitĂ© et performances[16].
Cette mĂ©thode de segmentation multi-classes est dĂ©rivĂ©e dela mĂ©thode plus classique prenant encompte deux classes seulement qui recherche un sĂ©parateur Ă vaste marge, câest-Ă -dire un hyperplansĂ©parant au mieux les deux types de donnĂ©es. La mĂ©thode un-contre-un Ă©tablit un tel sĂ©parateur pourchaque paire de classes. Les grandes Ă©tapes de cette technique sont les suivantes :
â apprentissage :â projection des points dans un espace de plus grande dimension,â dĂ©couverte des hyperplans sĂ©parateurs.
â tests :
127
Chapitre 6. Nouvelles techniques de fingerprinting
X
XX
X
X
X
XX O
OO
OO
O
HXâO
*
*
*
Marge
wxo
1
(a) Hyperplan séparateur entre 2 classes(les points étoilées sont les vecteurs sup-ports)
TT
TT
X
XX
X
X
X
XX
T
O
OO
OO
O
HXâOHOâT HXâT
(b) Hyperplan par couple de classe
HXâOHOâT HXâT
= O= T
= T
(c) Classification dâun nouveau pointpar Ă©lection
FIGURE 6.1 â Classification multi-classes avec les SVM
â chercher de quel cĂŽtĂ© de chaque hyperplan le point Ă tester se trouve,â dĂ©terminer quelle est la classe (type) la plus probable.
En effet, un des points-clĂ©s des SVM est la projection de points non linĂ©airement sĂ©parables dans unespace de plus grande dimension, dit de re-description, oĂč ils le seront. La figure 6.1(a) illustre lâhyper-plan sĂ©parateur entre deux classes. SVM vise Ă ce quâil soit le plus Ă©loignĂ© de chacun dâelle. La margedĂ©note donc cet «espace» vide de toute donnĂ©e et sa largeur est dĂ©finie par rapport Ă lâhyperplan. Touthyperplan se caractĂ©rise par un vecteur orthogonal~w Ă celui-ci et un scalaireb reprĂ©sentant son dĂ©calagepar rapport Ă lâorigine de lâespace en suivant le vecteur~w. ConsidĂ©rant deux classes,l et k, lâhyperplannotĂ©Hlâk est spĂ©cifiĂ© par le vecteurwlk et le scalaireblk. Le cas un-contre-un dĂ©finit lâensemble des hy-perplans comme sur la figure 6.1(b). Enfin, tout point Ă testerest projetĂ© dans le mĂȘme espace et comparĂ©Ă chaque hyperplan pour identifier la classe la plus appropriĂ©e, puis la plus plĂ©biscitĂ©e est sĂ©lectionnĂ©e.Ainsi dans lâexemple de la figure 6.1(c), la classe T est choisie car :
â HOâT «vote» T,â HXâT «vote» T,â HXâO «vote» O.La description formelle des SVM est consultable dans lâannexe B et il est important de noter quâune
fonction noyauK permet de sâaffranchir de la projection des points originaux dans un espace de plusgrande dimension.
6.4 Fingerprinting comportemental et temporel
Pour diffĂ©rencier les Ă©quipements sur un rĂ©seau, le fingerprinting comportemental suppose un pro-tocole donnĂ© et un systĂšme capable de dĂ©finir le type des messages correspondants. Cette tĂąche estrĂ©alisable en sâappuyant sur les spĂ©cifications du protocole ou grĂące au systĂšme proposĂ© dans le chapitre5 lorsquâelle ne sont pas disponibles.
Ce genre de fingerprinting diffĂ©rencie les types dâĂ©quipements selon les types de messages quâilsenvoient ainsi que leurs maniĂšres pour y rĂ©pondre. Lâobservation des dĂ©lais dâenvoi des rĂ©ponses est unindice supplĂ©mentaire pour affiner lâidentification. De ce fait, il est obligatoire de dĂ©finir une sessioncâest-Ă -dire une suite de messages envoyĂ©s et reçus englobant lâensemble dâune communication entreplusieurs entitĂ©s. Plus spĂ©cifiquement, une session peut sedĂ©limiter grĂące Ă un champ spĂ©cifique de type
128
6.4. Fingerprinting comportemental et temporel
1 2
3
FIGURE 6.2 â Illustration dâun arbre TR-FSM
cookie lorsque la syntaxe est connue sinon elle se ramĂšne Ă ladĂ©finition dâun flux TCP ou UDP. Dans lecas dâUDP, elle est jugĂ©e terminĂ©e aprĂšs une pĂ©riode relativement longue dâinactivitĂ©.
6.4.1 Modélisation formelle
La caractĂ©risation comportementale repose sur lâĂ©laboration dâune nouvelle formalisation appelĂ©e«Random Tree Parametrized Extended Finite State Machines»(TR-FSM) ou machine Ă Ă©tats finisparamĂ©trĂ©e Ă variables alĂ©atoires temporelles. Ce nouveaumodĂšle est dĂ©rivĂ© de [22] en y ajoutant :
â des variables alĂ©atoires temporelles reprĂ©sentant un gain dâinformation,â une contrainte topologique imposant une structure arborescente Ă la machine Ă Ă©tats.La figure 6.2 illustre les diffĂ©rentes notations introduites ci-aprĂšs. Un TR-FSM est un tupleM =<
S,sinit , I ,O,~X,T,~Y > :â Sun ensemble fini dâĂ©tats|S|= n,â sinit lâĂ©tat initial,â I = i0(~v0), i1(~v1), . . . , ipâ1( ~ipâ1) est lâalphabet pour les entrĂ©es dont le cardinal estp. Chaque
symbole possĂšde un vecteur de paramĂštres,â O= o0(~w0),o1(~w1), . . . ,oqâ1( ~wqâ1) est lâalphabet pour les sorties dont le cardinal estq. Chaque
symbole possĂšde un vecteur de paramĂštres,â ~X est un vecteur de variables reprĂ©sentant la configuration dela machine,â T est un ensemble fini de transitions, tel que :
ât â T, t =< s1,s2, i(~v),o(~w),P(~X, i(~v)),Q(~X, i(~v),o(~w))>
avec :â s1 ets2 sont respectivement lâĂ©tat initial et final,â i â I le symbole qui a dĂ©clenchĂ© la transition,â oâO le symbole produit par la transition,â P(~X, i(~v)) est la condition globale Ă satisfaire pour rĂ©aliser la transition (une entrĂ©e et une con-
figuration bien dĂ©finie),â Q(~X, i(~v),o(~w)) reprĂ©sente lâaction dĂ©coulant de lâexĂ©cution de la transition en se basant sur les
diffĂ©rents paramĂštres.â ~Y est un vecteur alĂ©atoire de dimensionnâ 1 oĂč chaque valeur exprime le temps moyen pour
effectuer une des transitions.
129
Chapitre 6. Nouvelles techniques de fingerprinting
La topologie de la machine Ă Ă©tats doit respecter une structure arborescente dont la racine est lâĂ©tatinitial. Par consĂ©quent, il existe un enchaĂźnement unique de transitions entre cet Ă©tat et nâimporte quelautre :
âsâ S | s 6= sinit ,â ! r states si1,si2, . . . ,sir , si1 = sinit â§sir = s
â j,1†j < r, ti j â T, ti j =< si j ,si( j+1), i i j (~vi j ),o(~w),Pi j (~X, i(~v)),Qi j (~X, i i j (~v),oi j (~w))>(6.4)
oĂč la notationi j reprĂ©sente un index. Cette topologie entraĂźne lâexistencedâune seule transition pourarriver dans un quelconque Ă©tat dâoĂč|T| = nâ1 : T = t1, . . . , tnâ1. De plus, en tant quâarbre, un TR-FSM a deux attributs importants : sa hauteur ou profondeur ainsi que sa cardinalitĂ© Ă©quivalente Ă |S|.
6.4.2 Générations des signatures
A titre dâexemple, le protocole SIP est employĂ© ici [6] mais ne sera dĂ©taillĂ© que dans le chapitre8. Par la suite, les termes «état» et « transition» sont respectivement synonymes de «nĆud» (sommet)et «arc» (arĂȘte). Un arbre comportemental sâĂ©difie Ă partir dâun nombre fini de sessions dâun mĂȘmeĂ©quipement agrĂ©gĂ©s tel que ceux de la figure 6.3(b) La signature se reprĂ©sente donc comme un TR-FSMĂ partir de plusieurs sessions auxquelles il a participĂ©. Chaque Ă©tat est associĂ© au type dâun message prĂ©-fixĂ© par! lorsquâil est Ă©mis et prĂ©fixĂ© par? lorsquâil est reçu par lâĂ©quipement en question. Par exemple,les messages prĂ©fixĂ©s par! sur la figure 6.3(b) sont ceux envoyĂ©s par un Ă©quipement de type Asteriskalors que les autres sont ceux quâil reçoit et peuvent donc provenir de diffĂ©rents Ă©quipements. Une tran-sition se matĂ©rialise par un arc entre deux Ă©tats et le vecteur ~Y de dĂ©lai moyen correspond aux attributsdes arcs. La signature de la figure 6.3(b) est dĂ©rivĂ©e des sessions capturĂ©es sur la figure 6.3(a). Chaquesession reprĂ©sente une sĂ©quence de transitions dont les prĂ©fixes communs sont fusionnĂ©s. Par exemple,les session trois et quatre prĂ©sentent deux premiers messages identiques dâoĂč une partie de lâarbre encommun symbolisĂ©e en rouge sur la figure. En outre, un nĆud racine gĂ©nĂ©rique est volontairement in-troduit pour que lâensemble des sessions ait au moins un nĆuden commun permettant de respecter lacontrainte structurelle arborescente.
La construction des signatures est rĂ©alisĂ©e par lâalgorithme 3 oĂč, pour des raisons de simplicitĂ©, ledĂ©lai dâune transition est directement contenue dans le nĆud dâarrivĂ©e de celle-ci car chaque nĆud nâestatteignable que par une unique transition. BriĂšvement, lâalgorithme maintient un pointeur sur le nĆudcourant rĂ©initialisĂ© Ă la racine gĂ©nĂ©riqueROOT pour analyser chaque session. Pour chaque messagedâune session (ligne 13), lâalgorithme dĂ©termine si le nĆudcourant possĂšde un fils du mĂȘme type que lemessage (lignes 16-18). Dans ce cas, le dĂ©lai de la transition correspondante est mise Ă jour avec le nou-veau. Sinon, un nouveau nĆud et une transition sont crĂ©Ă©s. LenĆud courant pointe alors sur ce nouveaunĆud ou sur le nĆud prĂ©cĂ©demment trouvĂ©. Comme le dĂ©lai dâunetransition est une moyenne, construireune liste des dĂ©lais dâune transition est prĂ©fĂ©rable avant dâen calculer la moyenne aprĂšs lâexĂ©cution decet algorithme.
Ătant donnĂ©n messages rĂ©partis ens sessions avecni = |Si |, le nombre dâentre-eux appartenant Ă lasessionSi , lâalgorithme 3 boucle sur lâensemble des messages de toutes les sessions (lignes 11 et 13) soitun total den itĂ©rations. Dans le pire des cas, chaque message devra ĂȘtre comparĂ© avec lâensemble des filsdu nĆud courant qui sont, au plus, aussi nombreux que le nombre de sessions examinĂ©es prĂ©cĂ©demment,dâoĂč un nombre dâitĂ©rations Ă©gal Ă it = âs
i=1 iĂni . Le maximum de cette valeur estit = s(nâ (sâ1))+âsâ1
i=1 i = ns+1.5sâ0.5s2 < ns+1.5s lorsque toutes les sessions ne contiennent quâun message exceptĂ©ela derniĂšre. Comme le nombre de session utilisĂ©e pour chaquesignature est un paramĂštre constant, lacomplexitĂ© gĂ©nĂ©rale de cette algorithme est enO(n).
130
6.4. Fingerprinting comportemental et temporel
Algorithme 3 GĂ©nĂ©ration dâune signature1: Sune liste de sessions2: Sj
i est je message de la ie session3: l .len est le nombre dâĂ©lĂ©ment dans la listel4: m.typerenvoie le type du messagemprĂ©fixĂ© par ! ou ?5: m.timeretourne le dĂ©lai du messagem6: n.childrenest la liste des nĆuds fils den7: create_node(t) crĂ©er un nouveau nĆud de typet8: n.update(d) met Ă jour le dĂ©lai de la transition versn grĂące au dĂ©laid9: n.add_child(n2,d) ajoute le nĆudn2 comme fils den avec une transition de dĂ©laid
10: nROOT est le nĆud racine de la signature11: pour iâ 1. . . length(S) faire12: current_nodeâ nROOT
13: pour j â 1. . . length(Si) faire14: child = current_node.children15: kâ 116: tantque k< child.lengthâ§childk.type 6= Sj
i .typefaire17: kâ ind+118: fin tantque19: si k> child.lengthalors20: newâ create_node(Sj
i .type)21: current_node.add_child(new,Sj
i .time)22: current_nodeâ new23: sinon24: childk.update(Sj
i .time)25: current_nodeâ childk
26: finsi27: fin pour28: fin pour
131
Chapitre 6. Nouvelles techniques de fingerprinting
Asterisk Autre
OPTIONS
4050.00158
0.0
INVITE
100
180
486
ACK
REGISTER
100
200
REGISTER
100
401
REGISTER
100
200
0.03828
0.0
0.30202
3.11656
0.00054
0.00053
0.0
0.00048
0.00378
0.00053
0.00318
0.00071
0.0
0.00302
S1
S2
S3
S4
(a) Sessions (valeur à gauche = délai (sec.))
(b) Signature
FIGURE 6.3 â Exemple de gĂ©nĂ©ration dâune signature pour un Ă©quipement de type Asterisk (SIP)
6.4.3 Mise en Ćuvre
Fonction noyau
La classification SVM est appliquĂ©e dans le cadre du fingerprinting comportemental exigeant alorsla formulation dâune fonction noyauK spĂ©cifique car la plupart dâentre elles sont limitĂ©es aux valeursnumĂ©riques et non Ă des arbres. De nouvelles fonctions spĂ©cifiques aux arbres furent mises au pointrĂ©cemment en recherchant les structures similaires [14, 15, 3] . Dans cette Ă©tude, ce concept est Ă©tenduaux TR-FSM en se basant sur des travaux prĂ©cĂ©dents [8] Ă©valuant la similaritĂ© entre deux arbres demaniĂšre Ă©quivalente Ă [8]. la similaritĂ© doit ĂȘtre Ă©gale Ă unpour deux TR-FSM identiques et zĂ©rolorsquâils sont totalement diffĂ©rents.
Pour un arbreti , lâensemble des chemins de la racine Ă chaque nĆud est dĂ©signĂ© parcheminsi =chemini1, . . . ,cheminim oĂč chacun des Ă©lĂ©ments est un chemin unique vers un nĆud spĂ©cifique. La fonctionnoeuds(cheminsi ) renvoie la topologie de lâarbre sans les attributs des arcs,câest-Ă -dire les dĂ©lais destransitions. Par analogie,noeuds(cheminij ) en fait de mĂȘme pour un chemin donnĂ©. Lâintersection entredeux arbres se dĂ©finit alors comme :
Ii j = noeuds(cheminsi )â©noeuds(cheminj ) (6.5)
La figure 6.4 illustre lâintersection de deux signatures symbolisĂ©e par les couleurs (une couleur parchemin commun). Pour tous les chemins partagĂ©s, la similaritĂ© sâobtient en se basant sur les diffĂ©rencesde dĂ©lais des transitions par lâintermĂ©diaire de la fonction poids:
inter_sim= âpâIi j
noeuds(cheminik)=p
noeuds(cehminjl )=p
poids(cheminsik,cheminsjl ) (6.6)
132
6.4. Fingerprinting comportemental et temporel
(a) Twinkle 1.10 (logiciel) (b) Cisco 7940 firmware 8.93 (télé-phone)
FIGURE 6.4 â Signature de deux Ă©quipements diffĂ©rents. Les attributs des arcs sont les dĂ©lais moyens.Les chemins partagĂ©s sont colorĂ©s
Sans considération des transitions,cheminjl et cheminik sont identiques. La fonctionpoidscompare les
dĂ©lais de chaque transition commune sâappuyant sur un noyauLaplacien :
poids(p1, p2) = ânâp1
eâα| fdelai(n,p1)â fdelai(n,p2)| (6.7)
En rĂ©alitĂ©, seuls les dĂ©lais induits par lâĂ©quipement considĂ©rĂ© sont Ă prendre en compte câest-Ă -dire ceuxdes messages envoyĂ©s. Ainsifdelai(n, p) retourne le dĂ©lai moyen associĂ© au nĆudn dans le cheminp sile message reprĂ©sentĂ© par ce nĆud est Ă©mis et vaut zĂ©ro sinon.
ThéorÚme La fonction suivante est une fonction noyau valide respectant les conditions du théorÚme deMercer (chapitre 3 de [20]) :
K(ti, t j) = âpâIi j
noeuds(cheminik)=p
noeuds(cheminjl )=p
ânâp
eâα| fdelai(n,p1)â fdelai(n,p2)| (6.8)
Preuve : LâĂ©quation (6.7) est un noyau valide construit Ă partir de celui de LaplaceKl . En effetfdelai(n, p) est une fonction Ă valeur rĂ©elle dĂ©ductible Ă partir deti puisque les cheminsp sont des sous-arbres deti ett j qui contiennent Ă©galement les nĆudsn. Les termes de la somme dĂ©finie pourK sâĂ©criventalors sous la formeKl( f (ti), f (t j) et sont donc un noyau valide par construction. De plus, la somme denoyaux est Ă©galement un noyau prouvant ainsi queK remplit bien toutes les conditions nĂ©cessaires. Lelivre [20] donne de plus amples dĂ©tails sur les façons de combiner des fonctions des noyaux ainsi que lespreuves associĂ©es.
Classification
Sur la figure 6.4 le logiciel de tĂ©lĂ©phonie envoie les messages dix fois plus rapidement que le tĂ©lĂ©-phone grĂące Ă des capacitĂ©s matĂ©rielles plus Ă©levĂ©es (processeur, mĂ©moire...). Cette observation confirmelâhypothĂšse que lâajout dâinformation temporelle grĂące aux TR-FSM procure un avantage certain sur lefingerprinting dâun Ă©quipement. Bien entendu, les dĂ©lais sont largement contraints par lâendroit oĂč lesmessages sont capturĂ©s et il est nĂ©cessaire, en pratique, demodĂ©rer ces dĂ©lais selon le temps aller-retour
133
Chapitre 6. Nouvelles techniques de fingerprinting
Extraction des sessionset construction des TR-FSM
Messages pour l'apprentissage
Messages Ă tester
Apprentissage SVM
FIGURE 6.5 â Fingerprinting comportemental supervisĂ©
induit par le rĂ©seau. Cependant, ce nâest pas nĂ©cessaire si le systĂšme est entraĂźnĂ© dans le mĂȘme envi-ronnement que celui oĂč il sera utilisĂ© car les latences sont alors directement prises en compte dans ladĂ©finition des signatures.
De façon générale, le fingerprinting comportemental proposé suit les étapes de la figure 6.5 :
1. les messages du jeu dâapprentissage sont regroupĂ©s en session qui sont ensuite agrĂ©gĂ©es dans desTR-FSM,
2. la similarité entre chaque TR-FSM est calculée grùce à la fonction de noyauK,
3. SVM prend en entrée ces différentes similarités,
4. SVM en déduit la fonction de classification,
5. cette fonction classe alors un par un chaque nouvel TR-FSMconstruit.
Alors que la signature dâun Ă©quipement est un ensemble de TR-FSM gĂ©nĂ©rĂ© Ă partir de sessions danslesquelles il a participĂ©, lâempreinte ou le fingerprint dâun type dâĂ©quipement est lâensemble des TR-FSMdes Ă©quipements de ce type construits pendant la phase dâapprentissage.
6.5 Fingerprinting syntaxique
6.5.1 Représentation
Grammaire ABNF
La syntaxe des messages dâun protocole est gĂ©nĂ©ralement dĂ©crite grĂące Ă la forme de Backus-NauraugmentĂ©e (ABNF) [2]. La figure 6.6 prĂ©sente les Ă©lĂ©ments principaux dâune telle reprĂ©sentation. Lesbriques de bases sont les Ă©lĂ©ments terminaux qui reprĂ©sentent des valeurs rĂ©elles, câest-Ă -dire des carac-tĂšres. Deux types existent :
â les terminaux fixes Ă©quivalent Ă une chaĂźne constante de caractĂšres,â les plages de caractĂšres spĂ©cifiĂ©es par les bornes infĂ©rieure et supĂ©rieure en hexadĂ©cimal.
Une rĂšgle dĂ©termine la façon dont un non terminal est dĂ©rivĂ©.Un non-terminal est donc un Ă©lĂ©mentconstruit Ă partir dâautres hormis trois cas particuliers :
â une alternative est un choix entre plusieurs Ă©lĂ©ments,â une sĂ©quence est une suite ordonnĂ©e dâun nombre fixe dâĂ©lĂ©ments,
134
6.5. Fingerprinting syntaxique
Alternatives = ( "Alt1" / "Alt2") 2*4%x20 Mot
Mot = *%x41-5A
RĂšgle de production d'un non terminal
Non terminal
Terminal : plage de caractĂšre
Terminal Fixe
Répétition de zéro ou plus de caractÚres entre A et Z
Répétiton entre 2 et 4 espaces
Choix entre Alt1 et Alt2
Séquence de 3 éléments
FIGURE 6.6 â Ălement de dĂ©finition dâune grammaire
â une rĂ©pĂ©tition est une sĂ©quence dâun nombre variable, maisdĂ©finie par une plage de valeur, dumĂȘme Ă©lĂ©ment.
Un non terminal doit forcĂ©ment se situer dans la partie gauche dâune rĂšgle pour pouvoir le dĂ©river touten pouvant apparaĂźtre de la sorte Ă plusieurs reprises. Un message dĂ©coule de la dĂ©rivation rĂ©cursive dela premiĂšre rĂšgle de la grammaire.
Il existe Ă©galement plusieurs autres types dâĂ©lĂ©ments non dĂ©taillĂ©s ici car Ă©manant directement deceux prĂ©cĂ©demment exposĂ©s tels que des Ă©lĂ©ments optionnels, une rĂ©pĂ©tition dâun nombre exact dâĂ©lĂ©-ments, des dĂ©finitions dĂ©cimale ou binaire dâun terminal...
Les exemples de cette section seront illustrés grùce à la mini-grammaire de la figure 6.7(b) contenanttrÚs peu de rÚgles basiques.
Arbre syntaxique
LâidĂ©e majeure de cette nouvelle approche de fingerprintingrepose sur les diffĂ©rences significativesdu contenu dâun message ainsi que sa structure hiĂ©rarchiqueinfĂ©rĂ©e par la grammaire. En effet, le contenuest clairement une source dâinformation mais souvent facilement modifiable alors que lâorganisation decette information dans un arbre syntaxique est plus difficilement altĂ©rable tout en gardant un messagevalide sĂ©mantiquement proche. De plus, la forme dâun message est logiquement dĂ©pendante de la maniĂšredont le logiciel utilisant le protocole construit le message car les spĂ©cifications dâun protocole nâimposentpas forcĂ©ment tout (ordre des champs laissĂ©s libres, champsoptionnels,...)
Un message se reprĂ©sente donc par un arbre syntaxique construit sur la base des rĂšgles de dĂ©rivationutilisĂ©es en partant de la rĂšgle initiale. Les nĆuds sont alors crĂ©Ă©s de la maniĂšre suivante selon le typedâĂ©lĂ©ment qui a Ă©tĂ© dĂ©rivĂ© dans le message :
â un terminal est un nĆud de lâarbre annotĂ© par son nom ne contenant quâun seul nĆud reprĂ©sentantla valeur rĂ©elle correspondante dans le message,
â un non terminal est un nĆud interne annotĂ© par son nom ayant un unique nĆud fils correspondantĂ celui crĂ©Ă© par la partie droite de la rĂšgle utilisĂ©e,
â une sĂ©quence est un nĆud interne avec un nombre fixe de nĆuds fils correspondants Ă ceux crĂ©Ă©spar chacun des Ă©lĂ©ments composant la sĂ©quence,
â une rĂ©pĂ©tition est un nĆud interne avec un nombre variable mais dĂ©fini de nĆuds fils correspon-dants Ă ceux crĂ©Ă©s par lâĂ©lĂ©ment rĂ©pĂ©tĂ©,
â une alternative ne crĂ©e aucun nĆud car lâĂ©lĂ©ment sĂ©lectionnĂ© dans lâalternative constitue directe-ment le nĆud.
135
Chapitre 6. Nouvelles techniques de fingerprinting
(a) Arbres syntaxiques
(b) Mini-grammaire
FIGURE 6.7 â Construction des arbres syntaxiques Ă partir dâune grammaire
La figure 6.7(a) clarifie ce mécanisme de construction sur deux messages à partir de la mini-grammairede la figure 6.7(b).
6.5.2 Distances
Sous-arbres et isomorphismes
Les mĂ©thodes de classification telles que celles proposĂ©es ici reposent gĂ©nĂ©ralement sur la notionde distance ou similaritĂ© entre deux points de donnĂ©es. Une fois les arbres syntaxiques des messagesconstruits, mesurer la distance entre deux dâentre eux demeure essentielle. Les arbres ne sont pas desdonnĂ©es numĂ©riques et peuvent ĂȘtre qualifiĂ©s de donnĂ©es catĂ©goriques puisque chaque nĆud a un typequi lui est attribuĂ© (catĂ©gorie) et les liens entre les nĆudsĂ©galement peuvent sâĂ©noncer de la sorte.Par consĂ©quent, les distances numĂ©riques classiques sont impraticables. De nouvelles sont apparues etse basent pour la plupart sur la distance dâĂ©dition [9] apprĂ©ciant la distance entre un arbret1 et unarbret2 comme le nombre dâopĂ©rations (ajout, suppression, substitution de nĆuds) pour transformer lâunen lâautre. Malheureusement, les auteurs de [6] notent Ă juste titre que ce calcul, considĂ©rĂ© comme unproblĂšme NP-complet [24], impose dâajouter des contraintes telles que lâordre des fils dâun nĆud pourpouvoir ĂȘtre rĂ©alisable en un temps polynomial. Ils proposent alors de nouvelles distances nâajoutantaucune contrainte spĂ©cifique et prĂ©sentant Ă©galement une complexitĂ© polynomiale.
136
6.5. Fingerprinting syntaxique
Elles reposent sur la notion dâisomorphisme entre deux arbres t1 et t2. Il est donc nĂ©cessaire derappeler dans un premier temps quelques notions essentielles sur les arbres qui sont un sous ensembledes graphes :
â un graphe est le tuple<V,E > oĂčV correspond aux nĆuds ou sommets etE lâensemble des arĂȘtes,â deux nĆudsu et v sont dits adjacents et notĂ©su⌠v si et seulement si ils sont reliĂ©s par une arĂȘte,â un chemin entre deux nĆudsu0 etun est notĂ©uââ v et correspond aux nĆuds entreu0 etun inclus,
câest-Ă -direâ 0< i †n, uiâ1⌠ui ,â G=<V,E > est arbre si et seulement siâuâV,vâV,u 6= vâ!âuââ v.Un homomorphisme de graphe est une fonction qui transforme un graphe en un autre, respectant la
connectivité initiale des sommets :
DĂ©finition 22 : Soit G1 =<V1,E1 >, G2 =<V2,E2 > deux graphes, f: G1âG2 est un homomor-phisme de graphe si f= ( fV , fE) oĂč fV : V1âV2 et fE : E1â E2 tel que sâil existe une arĂȘte entre lessommets u et v de G1, câest-Ă -dire u⌠v, alors fV(u)⌠fV(v) oĂč fV(u) et fV(v) sont des sommets de G2.
Deux graphes sont isomorphes sâils comportent le mĂȘme nombre de nĆuds et quâils sont connectĂ©sde la mĂȘme maniĂšre :
DĂ©finition 23 : f est un isomorphisme si f est un homomorphisme injectif et surjectif.
Torselloet al.dĂ©finissent ainsi la notion dâisomorphisme de sous-arbres [6] :
DĂ©finition 24 : Soit deux arbres t1 = (V1,E1) et t2 = (V2,E2), la bijectionÏ : H1â H2 avec H1 âV1
et H2 â V2 est un isomorphisme de sous-arbre si les sous-arbres de t1 et t2 engendrĂ©s respectivementuniquement par les nĆuds H1 et H2 sont isomorphes. Ces sous-arbres se notent t1[H1] et t2[H2].
Lâobjectif sera donc de chercher les sous-arbres isomorphes les plus grands pour en dĂ©duire le degrĂ©de similaritĂ©.
Plus particuliĂšrement, les arbres utilisĂ©s ici sont Ă©tendus au cas attribuĂ©. Un arbre attribuĂ© est spĂ©cifiĂ©par le triplet< V,E,α > oĂč α est une fonction associant Ă chaque nĆud de lâarbre un ensemble decaractĂ©ristiques. Un isomorphisme de sous-arbres sur ce type reste dĂ©fini comme prĂ©cĂ©demment, câest-Ă -dire sans prendre en compteα. Cependant, la similaritĂ© sera dâautant plus grande que lesnĆuds dessous-arbres partagent des caractĂ©ristiques communes. Ainsi, si Ï : H1â H2 dĂ©note un isomorphisme desous-arbres entret1 =<V1,E1,α1 > et t2 =<V2,E2,α2 >, la similaritĂ© des sous-arbres engendrĂ©t1[H1]et t2[H2] est :
W(Ï) = âuâH1
Ï(u,Ï(u))
oĂčÏ est une fonction de comparaison symĂ©trique entre les caractĂ©ristiques de deux nĆuds soit :Ï(u,Ï(u))=Ï(α(u),α(Ï(u))) (Dans lâarticle original, les auteurs laissent le choix de dĂ©finir librement et indĂ©pen-damment la fonctionα pour chacun des arbres).Ï12 dĂ©note la bijection permettant dâobtenir la similaritĂ©maximale parmis tous les isomorphismes de sous-arbres possibles Ă partir des arbrest1 et t2 .
Distances
La cardinalitĂ© de lâarbret =<V,E,α > notĂ©e|t| est Ă©gale Ă son nombre de nĆuds soit|V|. Trois desdistances suggĂ©rĂ©es dans [6] seront mises en Ćuvre dans les expĂ©rimentations, ce choix ayant Ă©tĂ© Ă©tabliĂ partir dâexpĂ©riences prĂ©liminaires tout en gardant lâobjectif de conserver pour chacune des techniques(supervisĂ©e et non supervisĂ©e) une distance normalisĂ©e et non normalisĂ©e :
d1(t1, t2) = |t1|+ |t2|â2W(Ï12) (non normalisee supervisee ou non) (6.9)
137
Chapitre 6. Nouvelles techniques de fingerprinting
FIGURE 6.8 â Bijections de sous-arbres syntaxiques
d2(t1, t2) = 1âW(Ï12)
max(|t1|, |t2|)(normalisee non supervisee) (6.10)
d3(t1, t2) = 1âW(Ï12)
|t1|+ |t2|âW(ÏMAX)(normalisee supervisee) (6.11)
Isomorphismes et arbres syntaxiques
Les arbres syntaxiques sont des arbres enracinĂ©s sur un sommet prĂ©cis pour lesquels les distancesprĂ©cĂ©dentes sont Ă©galement applicables. La seule contrainte supplĂ©mentaire est que le nĆud racine dâunsous-arbre coĂŻncide avec le nĆud racine du sous-arbre correspondant par la bijection. Comme les valeursdes terminaux et les terminaux eux-mĂȘmes sont souvent liĂ©s sĂ©mantiquement Ă un cas particulier (date,identifiant de session, nom dâutilisateur,...) et non Ă une caractĂ©ristique gĂ©nĂ©rale dâun type dâĂ©quipement,ils seront exclus de tous les sous-arbres. De plus, deux nĆuds sont Ă©quivalents si ce sont des non ter-minaux de mĂȘme nom ou si ce ne sont pas des non terminaux. Ainsi, les sĂ©quences et les rĂ©pĂ©titions sontconsidĂ©rĂ©es Ă©quivalentes. De cette maniĂšreÏ(u,v) = 1 si les nĆudsu etv sont Ă©quivalents. Cette dĂ©fini-tion est bien symĂ©trique. La figure 6.8 reprend les exemples de messages prĂ©cĂ©dents et met en exerguetrois bijections telles que les sous-arbres gĂ©nĂ©rĂ©s soientbien isomorphes dâoĂč :
â W(Ï1) = 1 car seules les racines sont Ă©quivalentes (une rĂ©pĂ©tition et une sĂ©quence),â W(Ï2) = 1 pour les mĂȘmes raisons,â W(Ï3) = 8 en « inversant» les sous-arbresHeader dans le deuxiĂšme arbre, tĂ©moignant ainsi de
lâintĂ©rĂȘt de lâisomorphisme qui repĂšre une structure identique mĂȘme si elle nâest pas positionnĂ©eau mĂȘme endroit dans lâarbre.
Cependant, un grand nombre de structures similaires imposantes peuvent se trouver Ă plusieurs en-droits de lâarbre sans nĂ©anmoins reflĂ©ter une sĂ©mantique identique Ă lâinstar des rĂšgles contenant*Alphapermettant de gĂ©nĂ©rer une chaĂźne de caractĂšres alphabĂ©tiques aussi bien pour le corps du message quepour les diffĂ©rentes entĂȘtes. La figure 6.9 illustre la dĂ©finition de plusieurs entĂȘtes contenant ce typede structure. Le message quatre est plus similaire au cinq quâau trois alors que la logique aurait voulule contraire car des messages contenant le mĂȘme type dâentĂȘte (ici User-Agent ) et donc sĂ©mantique-ment proche devraient ĂȘtre plus similaires. En fait, la similaritĂ© est fortement biaisĂ©e par la longueur deschaĂźnes de caractĂšres alors que la prise en compte du type dâentĂȘte ne compte que pour un.
138
6.5. Fingerprinting syntaxique
...
*
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
Message 3 : ...User-Agent:MYPHONE ...
'M' 'Y' 'N' 'E'
Message 4 : ...User-Agent:MONTELEPHONEDEPOCHE ...
'M' 'O' 'H' 'E'
User-Agent
...
...
*
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
User-Agent
...
-- Message 4 - 3:
...
*
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
Alpha
x41-5A
Message 5 : ... Call-ID:APPELURGENT ...
'A' 'P' 'N' 'T'
Call-ID
...7 Alpha + 1 Répétition + 1 User Agent = 9
-- Message 4 - 5:
12 Alpha + 1 Répétition = 13
FIGURE 6.9 â Biais introduit par les structures trop imposantes
Pour palier ce problĂšme, un nĆud se caractĂ©rise par son type mais aussi par le chemin commençantde la racine jusquâĂ lui câest-Ă -dire lâensemble de ses ancĂȘtres. La fonctionα(n) retourne un couple< nom, r ââ n> oĂč nomest le nom du nĆudn (le nom dâun non terminal ou le caractĂšre « ?» pour unesĂ©quence ou une rĂ©pĂ©tition) etr la racine de lâarbre gĂ©nĂ©ral. Ătant donnĂ© les fonctionsnom(n) retournantle nom dâun nĆud etparent(n) retournant le parent den, la fonctionÏ(u,v) mesurant la similaritĂ© dedeux nĆuds est spĂ©cifiĂ©e comme suit :
Ï(u,v) =
1 si u= r â§v= r1 si nom(u) = nom(v)â§Ï(parent(u), parent(v) = 10 sinon
(6.12)
En pratique
En thĂ©orie, le calcul de la similaritĂ© entre deux arbrest1 et t2 impose de dĂ©couvrir tous les isomor-phismes de sous-arbres. Cependant, les contraintes prĂ©cĂ©dentes exigent que les nĆuds des sous-arbrespartagent les mĂȘme ancĂȘtres. La dĂ©finition rĂ©cursive de la formule 6.12 indique bien que tous les ancĂȘtresdoivent ĂȘtre similaires. Ainsi, lâisomorphisme de sous-arbres entret1 et t2 engendrant la similaritĂ© maxi-male se restreint Ă identifier un isomorphisme de sous-arbres enracinĂ©s sur la racine originale, les autresĂ©tant forcĂ©ment sous-optimaux.
Dans un premier temps, les chemins entre la racine et tous lesnĆuds possibles det1 ett2 sont calculĂ©sĂ lâinstar de la figure 6.10 oĂč les points reprĂ©sentent une arĂȘte et les points dâinterrogation un nĆud
139
Chapitre 6. Nouvelles techniques de fingerprinting
FIGURE 6.10 â Calcul de la similaritĂ© en dĂ©terminant lâintersection des chemins des diffĂ©rents arbres
sĂ©quence ou rĂ©pĂ©tition. Extraire lâensemble de ces cheminsest rĂ©alisable en parallĂšle de la constructionde lâarbre syntaxique nâimpliquant alors aucune complexitĂ© supplĂ©mentaire.
La similaritĂ© dĂ©coulant des sous-arbres isomorphiques estĂ©quivalente au nombre de nĆuds simi-laires, câest-Ă -dire de mĂȘme nom, quâils partagent (formule 6.12). Par consĂ©quent, ces sous-arbres doiventcontenir exactement les mĂȘmes chemins. Ainsi, lâintersection â©cheminsest lâensemble des chemins iden-tiques entre les deux arbres bien que ce ne soit un ensemble ausens mathĂ©matique du terme mais plutĂŽtune liste car elle peut contenir des doublons comme prĂ©sentĂ©dans la figure 6.10. Un chemin du premierarbre peut Ă©galement correspondre Ă plusieurs chemins dansle second mais un seul figurera logiquementdans lâintersection. De maniĂšre gĂ©nĂ©rale, lâalgorithme 4 rĂ©alise cette intersection en itĂ©rant sur chaquechemin de lâarbret1 et il sera ajoutĂ© dansâ©chemins(t1, t2) sâil en existe un identique dans les chemins det2 tout en supprimant ce dernier pour ne pas lâinclure plusieurs fois.
Finalement, ces chemins partageant la mĂȘme racine font ainsi partie du mĂȘme sous-arbre et hormispour le nĆud racine, chaque chemin est Ă©gal Ă un autre Ă lâexception du dernier nĆud. Ainsi la cardinalitĂ©de lâintersection soit| â©chemins(t1, t2)| correspond Ă la similaritĂ© entre les deux arbres originauxt1 et t2.Dans le pire des cas, la complexitĂ© de cet algorithme estO(|t1||t2|).
6.5.3 Technique supervisée
Le fingerprinting syntaxique supervisé emploie la méthode SVM multi-classes de la section 6.3prenant comme entrées les arbres syntaxiques ou plus précisément les distances associées (voir figure6.11) :
1. les messages du jeu dâapprentissage sont convertis et stockĂ©s lâun aprĂšs lâautre sous forme dâuneliste de chemins,
2. la similaritĂ© entre chaque couple dâarbres est calculĂ©e Ă©quivalente au nombre dâĂ©lĂ©ments dans laliste des chemins communs (intersection),
3. lâensemble des distances est calculĂ©s entre chaque couple dâarbres pour pouvoir entraĂźner SVM
4. SVM en déduit la fonction de classification,
5. cette fonction classe alors chaque message du jeu de test un par un.
La distance normalisĂ©e utilisĂ©e estd3. Cependant, SVM nĂ©cessite une mesure de similaritĂ© et non unedistance dâoĂčdâČ3 = 1âd3. La distance non normalisĂ©e estd1 dont les valeurs sont ramenĂ©es volontaire-ment entre 0 et 1 pour un paramĂ©trage plus facile :dâČ1 = eâ0.01d1. Alors que la signature dâun message
140
6.5. Fingerprinting syntaxique
Algorithme 4 similaritĂ©(t1,t2)1: res= [ ] est le rĂ©sultat initialisĂ© Ă une liste vide2: chemins(t) retourne la liste des chemins de lâarbret3: l .a jouter(e) ajoute lâĂ©lĂ©mente Ă la listel4: long(l) retourne la longueur de la listel5: enlever(l ,e) enlĂšve lâĂ©lĂ©mentede la listel6: c1 = chemins(t1)7: c2 = chemins(t2)8: pour câ c1 faire9: iâ 1
10: boolâVRAI11: tantque bool⧠i < long(c2) faire12: si c= c2[i] alors13: bool= FAUX14: res= res.a jouter(c)15: enlever(c2,c)16: finsi17: iâ i +118: fin tantque19: fin pour
est son arbre syntaxique, lâempreinte dâun type dâĂ©quipements est lâensemble des signatures correspon-dantes construites pendant la phase dâapprentissage.
6.5.4 Technique non supervisée
ROCK
Alors quâil est possible dâĂ©valuer la distance entre deux arbres syntaxiques, ceux-ci restent toutefoisdes donnĂ©es catĂ©goriques pour lesquelles les techniques usuelles de classification demeurent inadap-tĂ©es. En effet, la mĂ©thode des K-means, des K-medoid ou plus gĂ©nĂ©ralement celles de partitionnementhiĂ©rarchique ou celles Ă©valuant la densitĂ© des points de donnĂ©es dans lâespace sont bien conçues pour lesdonnĂ©es numĂ©riques telles que les distributions dĂ©finies auchapitre prĂ©cĂ©dent [4, 22].
Dans le cas de la classification dâarbres, lâusage dâalgorithmes spĂ©cifiques aux donnĂ©es catĂ©goriquesest essentiel. ROCK [22] fait partie de cette famille dâalgorithmes permettant une segmentation efficacedes points de donnĂ©es en introduisant la notion de voisinage, dĂ©fini par une distance maximale, entredeux points. Ătant donnĂ©e une fonction de distanced, les arbrest1 et t2 sont voisins si et seulement sid(t1, t2) < Ï oĂč Ï est un seuil paramĂ©trable. JusquâĂ ce point, lâalgorithme ressemble de trĂšs prĂšs Ă unalgorithme de partitionnement hiĂ©rarchique sauf que lâĂ©tape suivante ne regroupe pas les points voisinsentre eux mais seulement ceux qui partagent des voisins en commun. Ce processus est rĂ©itĂ©rĂ© en prenanten compte non plus la distance entre deux points mais la distance gĂ©nĂ©rale entre deux clusters. Cettedistance nommĂ©escoreconsidĂšre le nombre total de voisins entre toutes paires possibles de points dechaque cluster mais aussi une estimation thĂ©orique de la valeur maximale de ce nombre. Lâobjectif decette normalisation est dâĂ©viter que seuls les gros clusters soient fusionnĂ©s impliquant un risque Ă©levĂ©dâobtenir un grand cluster et de multiples petits. Plus exactement, ROCK Ă©tablit un graphe oĂč chaque
141
Chapitre 6. Nouvelles techniques de fingerprinting
Cacul des "chemins du message"
Messages pour l'apprentissage
Messages Ă tester
Apprentissage SVM
FIGURE 6.11 â Fingerprinting syntaxique supervisĂ©
nĆud est un cluster (un point Ă lâĂ©tape initiale) et oĂč une arĂȘte pondĂ©rĂ©e indique le nombre de voisinscommuns entre deux clusters.
Lâalgorithme original suppose connu le nombre de clusters et sâarrĂȘte donc quand ils sont trouvĂ©s.La figure 6.12 est un exemple de clusters de diffĂ©rentes formes. Le chapitre prĂ©cĂ©dent avait soulignĂ©lâimportance du choix dâun algorithme selon la forme des clusters (figure A.2 en annexe) dâoĂč lâintro-duction de techniques modernes cherchant Ă dĂ©couvrir des formes irrĂ©guliĂšres. SVC fait partie de cettefamille mais nâest pas applicable dans le cas des arbres syntaxiques car sa derniĂšre Ă©tape dĂ©terminait sideux points faisaient partie du mĂȘme cluster en gĂ©nĂ©rant un Ă©chantillon de points intermĂ©diaires. Alorsque cette tĂąche est facile dans le cadre de valeurs numĂ©riques (combinaison convexe), elle lâest beaucoupmoins avec des arbres car elle reviendrait Ă gĂ©nĂ©rer des arbres en utilisant des transformations simples Ă lâinstar de la distance dâĂ©dition. Le gain de complexitĂ© atteint grĂące aux distances dĂ©finies prĂ©cĂ©demmentserait alors tout Ă fait annihilĂ© dâoĂč la nĂ©cessitĂ© dâun autre algorithme tel que ROCK. Ainsi dans lâexem-ple de la figure A.3(a) en annexe, il est capable de dissocier les clusters malgrĂ© leurs formes irrĂ©guliĂšreset les faibles distances qui les sĂ©parent.
En effet, un algorithme classique de partitionnement grĂąceau saut minimal aurait sans doute fusion-ner les clusters X et O peu sĂ©parĂ©s alors que lâutilisation dâun barycentre nâaurait pas forcĂ©ment biendĂ©limitĂ© leur frontiĂšre et risquerait de ne pas dĂ©couvrir laforme irrĂ©guliĂšre de X. Cependant, ROCKdĂ©tecte que les nĆuds frontiĂšres entre X et O ne partagent aucun voisin commun et ne seront donc pasinclus dans le mĂȘme cluster. Les points A et B satisfont cettecondition les fusionnant malgrĂ© tout. EnconsĂ©quence, ROCK utilise la mesurescorepour rassembler en prioritĂ© les points partageant le plus devoisins tels que C et D sur la figure.
Enfin, il est important de noter lâexistence dâautres mĂ©thodes comme par exemple CURE qui, pourĂ©viter les inconvĂ©nients des mĂ©thodes du saut minimal ou du barycentre, reprĂ©sente un cluster par unnombre limitĂ© de points. ROCK Ă©value en fait la densitĂ© de voisins de deux nĆuds, se rapprochantainsi des algorithmes basĂ©s sur la mesure de densitĂ© de points tel que DBScan dans le cas de valeursnumĂ©riques. Une vue plus complĂšte de lâensemble de ces algorithmes ainsi que leurs cas dâutilisation estconsultable dans [4].
QROCK
LâinconvĂ©nient majeur de ROCK est une complexitĂ© assez Ă©levĂ©e [5] car Ă chaque fois quâun clusterest modifiĂ©, sonscoreavec tous les autres est recalculĂ© et une liste de score triĂ©edoit ĂȘtre maintenue Ă jour pour pouvoir choisir les bons clusters Ă fusionner en prioritĂ©. De plus, il nĂ©cessite de connaĂźtre Ă
142
6.5. Fingerprinting syntaxique
FIGURE 6.12 â Classificationavec ROCK
(a) QROCK
1 seul voisin en commun
1 seul voisin en commun
(b) Nouvelle version en imposant auminimum deux voisins communs pourĂ©tablir un lien entre deux nĆuds
FIGURE 6.13 â Graphe des points partageant des voisins avec ROCK
priori le nombre de clusters alors que cette donnĂ©e nâest gĂ©nĂ©ralement pas disponible telle que dans cetteĂ©tude. QROCK [5] est une version beaucoup plus rapide crĂ©antun cluster Ă partir de chaque composanteconnexe du graphe construit initialement par ROCK. Plus prĂ©cisĂ©ment, chaque sommet de ce graphe estun point du jeu de donnĂ©es et il existe alors une arĂȘte entre deux sommets sâils partagent au moins unvoisin (complexitĂ© de la construction enO(n2)). Un algorithme de recherche des composantes connexesest clairement plus rapide que ROCK. Cependant, la densitĂ© du voisinage nâest plus du tout prise encompte engendrant ainsi la fusion des points A et B sur la figure 6.12. Ce problĂšme est clairementillustrĂ© sur la figure 6.13(a) oĂč les points sont disposĂ©s surune grille pour une meilleure lisibilitĂ©. UnedistanceÏ Ă©gale Ă la largeur dâune case est obligatoire pour espĂ©rer regrouper quelques points impliquantinĂ©vitablement la fusion des deux clusters supĂ©rieurs (le mĂȘme phĂ©nomĂšne pourrait se «propager» viaune «chaĂźne» de points plus longue). Ă contrario, en imposant une distanceÏ Ă©gale Ă la diagonale etdeux nĆuds en commun minimum, les clusters sont bien sĂ©parĂ©s.
Compromis
Les problÚmes soulevés par la définition originale et QROCK imposent de combiner les avantagesde chacun :
â garder la notion de densitĂ© apparaissant dans ROCK,â Ă©viter de calculer des mĂ©triques trop complexes pour ordonnancer les regroupements.La complexitĂ© de lâalgorithme ROCK Ă©mane de son processus deregroupement nĂ©cessitant de re-
calculer lescoredâun cluster par rapport Ă tous les autres Ă chaque fois quâilest modifiĂ© sans oublierde maintenir ordonnĂ©e la liste des scores. Le nouveau compromis instaurĂ© ne recalculera pas lescoreĂ chaque Ă©tape car il correspond au nombre maximum de voisins en commun entre deux nĆuds de chaqueclusterC1 etC2 soit plus formellement :
score(Ci ,Cj) = good(Ci ,Cj) = maxptâCi ,plâCj #voisins(pt , pl )
oĂč #voisins(pt , pl ) est le nombre de voisins partagĂ©s parpt et pl . A premiĂšre vue cette mĂ©trique nĂ©-cessite aussi dâĂȘtre recalculĂ©e Ă chaque Ă©tape de la classification. Cependant, similairement Ă QROCK,le nombre de clusters nâest pas fixĂ© Ă priori et cette nouvelleversion regroupe les clusters tant que cescore est au dessus dâun certain seuilÎł. Ainsi, cela revient Ă extraire les composantes connexes dugrapheinitialement construit dont les arĂȘtes seront pondĂ©rĂ©es avec un poids supĂ©rieur Ă Îł. En consĂ©quence, cette
143
Chapitre 6. Nouvelles techniques de fingerprinting
nouvelle version de ROCK nâĂ©value pasgoodĂ chaque fois et nĂ©cessite encore moins une normalisationpuisquâelle se base exclusivement sur deux points.
ThĂ©orĂšme Le classement Ă©tabli par la nouvelle version de ROCK est indĂ©pendante de lâordre de fusiondes points.
La preuve est directe puisquâil Ă©quivaut Ă un calcul de composantes connexes mais justifie lâintĂ©rĂȘtde cette nouvelle version car ROCK devait initialement maintenir une liste triĂ©e de scores pour ĂȘtredĂ©terministe. La complexitĂ© est Ă©quivalente Ă celle de QROCK car ces algorithmes calculent la mĂȘmechose Ă une condition prĂȘt sur les arĂȘtes. Toutefois, le problĂšme de QROCK soulignĂ© sur la figure 6.13(a)ne se pose plus comme le dĂ©montre la figure 6.13(b). Lâ algorithme 5 remplit la matrice dâadjacence encalculant pour tout couple de sommets le nombre de voisins encommun. Cet algorithme recherche doncles voisins existants (lignes 5-7) puis en considĂšre un comme le voisin commun pour tenter dâen trouverun autre.
Algorithme 5 Calcul de la matrice dâadjacence1: T = t1, . . . , tN lâensemble des arbres Ă classer2: d(ti , t j) est la distance entre les arbresti et t j
3: Ï est la distance maximale entre deux voisins4: Mi j est le nombre de voisins communs entreti et t j initialisĂ© Ă 05: pour iâ 1. . .N faire6: pour jâ 1. . .N faire7: si d(ti , t j)< Ï alors8: pour kâ 1. . .N faire9: si k 6= â§k 6= j â§d(ti, t j)< Ï alors
10: Mi j = Mi j +111: finsi12: fin pour13: finsi14: fin pour15: fin pour
Dans un second temps, lâalgorithme 6 dĂ©termine les composantes connexes en associant Ă chaquearbre Ă classer, un boolĂ©en initialisĂ© Ă FAUX indiquant quâil nâest encore inclus dans aucun cluster. Lâal-gorithme cherche donc ce type dâarbre pour initialiser un cluster puis recherche ceux qui partagent aveclui au moinsÎł voisins qui seront alors ajoutĂ©s au nouveau cluster. Une procĂ©dure similaire est alors ap-pliquĂ©e rĂ©cursivement sur chacun dâeux pour «parcourir» lâensemble des arbres formant la composanteconnexe pondĂ©rĂ©e.
Mise en Ćuvre
La technique non supervisĂ©e du fingerprinting syntaxique exĂ©cute lâalgorithme ROCK modifiĂ© surles arbres syntaxiques dont la distance pour Ă©valuer si deuxnĆuds sont voisins sâappuie sur une desdistances introduite dans la section 24. La figure 6.14 rĂ©capitule les diffĂ©rentes tĂąches rĂ©alisĂ©es dont lepremiĂšres sont les mĂȘmes que pour le cas supervisĂ© :
1. les messages du jeu dâapprentissage sont convertis et stockĂ©s sous forme dâune liste de cheminlâun aprĂšs lâautre,
144
6.5. Fingerprinting syntaxique
Algorithme 6 classification1: T = t1, . . . , tN lâensemble des arbres Ă classer2: Mi j est le nombre de voisins communs entreti et t j
3: init (t) crĂ©e un nouveau cluster contenant exclusivementti4: c.add(t) ajoute lâarbret au clusterc5: Labeli indique siti est dĂ©jĂ intĂ©grĂ© dans un cluster et est initialisĂ© Ă FAUX6: pour iâ 1. . .N faire7: siÂŹLabeli alors8: c= init (ti)9: Labeli =VRAI
10: pour jâ 1. . .N faire11: si i 6= j â§Mi j > Îłâ§Labelj = FAUX alors12: clustering(j,c)13: finsi14: fin pour15: finsi16: fin pour
17: clustering(k,cluster) :18: Labelk =VRAI19: c.add(tk)20: pour jâ 1. . .N faire21: si k 6= j andMk j > Îł andLabelj = FAUX alors22: clustering(j,c)23: finsi24: fin pour
145
Chapitre 6. Nouvelles techniques de fingerprinting
Cacul des "chemins du message"
Messages Ă tester
ROCK
FIGURE 6.14 â Fingerprinting syntaxique non supervisĂ©
2. la similaritĂ© entre chaque couple dâarbres est calculĂ©e ainsi que leur cardinalitĂ© Ă©quivalent au nom-bre dâĂ©lĂ©ments dans la liste des chemins,
3. lâensemble des distances est calculĂ© entre chaque coupledâarbres,
4. lâalgorithme ROCK est exĂ©cutĂ© sur ces distances,
5. la sortie de ROCK identifie les groupes dâĂ©quipements supposĂ©s du mĂȘme type.
La distance normalisĂ©e utilisĂ©e estd3. Cependant, SVM nĂ©cessite une mesure de similaritĂ© et nonune distance dâoĂčdâČ3 = 1âd3. La distance non normalisĂ©e estd1 dont les valeurs sont ramenĂ©es volon-tairement entre 0 et 1 pour un paramĂ©trage plus facile :dâČ1 = eâ0.01d1. Lâempreinte dâun Ă©quipement estlâensemble des arbres syntaxiques assignĂ©s au mĂȘme cluster.
6.6 Conclusion
Ce chapitre a dĂ©taillĂ© trois nouvelles techniques de fingerprinting reposant sur deux modĂ©lisationsdiffĂ©rentes. La premiĂšre dâentre elle a introduit la formalisation des TR-FSM câest-Ă -dire des arbres reflĂ©-tant le comportement dâun Ă©quipement en termes de messages Ă©changĂ©s mais aussi une notion temporelleen prenant en compte les dĂ©lais pour envoyer un message. Lâutilisation de cette nouvelle caractĂ©risationest applicable aux SVM grĂące Ă la dĂ©finition dâune fonction noyau spĂ©cialement adaptĂ©e.
La structure syntaxique dâun message est trĂšs reprĂ©sentative car elle ne se limite pas Ă la valeurdes champs ou Ă la structure Ă plat du message facilement modifiables. Ce gain dâinformation est doncconsidĂ©rable et permet, en plus dâun fingerprinting supervisĂ©, de rĂ©aliser un fingerprinting totalementnon supervisĂ© grĂące Ă la dĂ©finition dâun nouvel algorithme declassification.
Que ce soit le gain dâinformation infĂ©rĂ© par la structure syntaxique dâun message ou par le comporte-ment temporel dâun Ă©quipement, ces techniques restent nĂ©anmoins passives et se diffĂ©rencient claire-ment des autres approches proposĂ©es. Seul [8] qui a inspirĂ© lâutilisation dâarbres syntaxiques est prochemais se dĂ©marque des travaux prĂ©sentĂ©s ici par la construction dâun arbre gĂ©nĂ©rique pour chaque typedâĂ©quipement nĂ©cessitant un temps dâapprentissage trĂšs long par rapport Ă la technique prĂ©sentĂ©e ici (lechapitre 9 donnera plus de dĂ©tails).
146
7
Performances des botnets
Sommaire7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1497.2 RĂ©seaux IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.2.1 Premier modĂšle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1517.2.2 ParamĂštres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1517.2.3 AtteignabilitĂ© moyenne . . . . . . . . . . . . . . . . . . . . . . . . .. . 1527.2.4 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1537.2.5 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.3 ParamĂštres des modĂšles pair-Ă -pair . . . . . . . . . . . . . . . . .. . . . . . . 1567.4 Slapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.4.1 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567.4.2 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.5 Chord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587.5.1 Nombre de sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1597.5.2 Distance entre deux identifiantsd . . . . . . . . . . . . . . . . . . . . . . 1607.5.3 Nombre de nĆuds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617.5.4 AtteignabilitĂ© moyenne . . . . . . . . . . . . . . . . . . . . . . . . .. . 161
7.6 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.6.1 Facteur de branchement . . . . . . . . . . . . . . . . . . . . . . . . . .. 1627.6.2 Impact des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1627.6.3 DĂ©lais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
7.1 Introduction
Les performances envisageables par les modĂšles introduitsdans le chapitre 4 font lâobjet de celui-ci.Pour rappel, lâobjectif pratique visĂ© est une supervision Ă large Ă©chelle tel que lâenvoi dâun message (unerequĂȘte) par le contrĂŽleur (superviseur) en broadcast Ă un grand nombre dâĂ©quipements. Les botnets,outils des attaquants, ont semblĂ© ĂȘtre un choix judicieux mais qui nĂ©cessite quand mĂȘme dâĂȘtre prouvĂ©.Ainsi, ce chapitre Ă©tudiera trois architectures de botnetspossibles pour dĂ©terminer leur viabilitĂ© et lescomparer selon de nombreuses configurations :
149
Chapitre 7. Performances des botnets
â rĂ©seau IRC,â rĂ©seau P2P de type Slapper,â rĂ©seau P2P de type Chord.
Dâun point de vue technique, les deux premiers reposent sur des modĂšles mathĂ©matiques Ă©valuĂ©sgrĂące Ă lâoutil Maxima [9] permettant de faire des calculs formels et plus prĂ©cisement de calculer dessĂ©ries. Le dernier est quant Ă lui un modĂšle algorithmique programmĂ© en Python [5].
Avant dâentrer dans le vif du sujet, les diffĂ©rents paramĂštres et mĂ©triques des modĂšles sont briĂšvementrappelĂ©s ci-aprĂšs. LâatteignabilitĂ© est la mĂ©trique de base permettant dâĂ©valuer la performance dâun botnetdans le cadre de la supervision Ă large Ă©chelle puisquâelle reprĂ©sente une estimation du nombre de botsĂ une distance maximalek du superviseur recevant les requĂȘtes de ce dernier lorsquâil les envoie enbroadcast. Les modĂšles reposent sur la dĂ©finition de plusieurs paramĂštres pouvant avoir un impact surcette mĂ©trique :
â le nombre de nĆudsN au total dans le rĂ©seau,â la distance maximalek de propagation de la requĂȘte en nombre de sauts par rapport ausuperviseur,â le facteur de branchement maximalm ou connectivitĂ© qui correspond au nombre maximal de
connexions associĂ©es Ă un nĆud. Ce paramĂštre est Ă©quivalentau nombre de nĆuds vers lesquelsun nĆud peut envoyer une requĂȘte.
Un nĆud reprĂ©sente soit un serveur IRC soit un bot P2P selon lemodĂšle utilisĂ©. De maniĂšre gĂ©nĂ©rale,les expĂ©rimentations Ă©valueront lâatteignabiltiĂ© avecN ouk fixĂ© tandis que lâautre variera.
Il est aussi nécessaire de rappeler que les modÚles tiennentcompte de deux types de problÚmes :
â la probabilitĂ© de panne calculable en prenant la probabilitĂ© inverse du facteur de disponibilitéα(m),
â le probabilitĂ©ÎČ pour un nĆud dâĂȘtre compromis.
Enfin, lâatteignabilitĂ© absolue est une autre mĂ©trique calculable et permet de connaĂźtre en moyennele nombre de bots atteints quelque soit la distance. Bien entendu, il est nĂ©cessaire de fixer une distancemaximale dĂ©signant le plus long chemin que peut parcourir une requĂȘte :
â dans le cas du modĂšle IRC, le pire cas est un arbre linĂ©aire impliquant une distance maximaleN,â la diffusion alĂ©atoire dans Slapper ne permet pas de calculer cette mĂ©trique,â le nĆud superviseur de Chord peut atteindre tout nĆud enlog(NMAX) sauts oĂčNMAX est la taille
de lâespace des identifiants propres Ă Chord uniquement.
LâintĂ©rĂȘt de lâatteignabilitĂ© moyenne rĂ©side dans son aptitude Ă mettre en Ă©vidence les diffĂ©rences gĂ©nĂ©ralesde performance entre les diffĂ©rents facteurs de branchement selon le nombre de nĆuds du rĂ©seau. Dansun second temps, il est nĂ©anmoins nĂ©cessaire de prendre en compte le nombre de sauts et plus seulementune moyenne pour mettre en avant des propriĂ©tĂ©s plus dĂ©taillĂ©es.
7.2 RĂ©seaux IRC
Les Ă©tudes sur les botnets IRC vont essentiellement se consacrer au second modĂšle introduit dansle chapitre 4 malgrĂ© une rapide Ă©valuation du premier dans lapremiĂšre sous-section. De plus, il ne fautpas oublier que les modĂšles IRC se basent uniquement sur les serveurs constituant le cĆur dâune tellearchitecture.
150
7.2. RĂ©seaux IRC
(a) La requĂȘte est envoyĂ©e par le nĆud 5 (b) Moyenne sur tous les noeuds
FIGURE 7.1 â Premier modĂšle IRC â AtteignabilitĂ© selon diffĂ©rentesdistances et 10 serveurs dans lerĂ©seau
7.2.1 Premier modĂšle
Le premier modĂšle construit prĂ©sente plusieurs faiblessestelles que sa complexitĂ© rendant son util-isation difficile. Ainsi, peu de cas furent testĂ©s avec ce modĂšle et cette sous-section prĂ©sentera quelquesrĂ©sultats simples seulement. En effet, la figure 7.1(b) reprĂ©sente les distributions de probabilitĂ© dâattein-dre un certain nombre de serveurs Ă une distance maximale donnĂ©e sachant que le rĂ©seau est composĂ©de 10 serveurs IRC. Lâaxe des abscisses est au maximum Ă©gal Ă neuf car le dixiĂšme est celui dâoriginedâoĂč est envoyĂ©e la requĂȘte de supervision. A titre dâexemple, la probabilitĂ© de joindre quatre serveurs Ă 3 sauts au plus est proche de 10%. Pour les distances Ă©levĂ©es,la plupart des nĆuds sont atteints commele montre les pics de probabilitĂ© proches de 1 pour 9 nĆuds. Dâailleurs, il est important de remarquerquâĂ partir dâune distance de 6 sauts, les rĂ©sultats sont similaires ce qui signifie quâune requĂȘte peut ĂȘtrediffusĂ©e Ă lâensemble du botnet en maximum six sauts dans cette configuration donnĂ©e (10 serveurs).
Enfin, cette courbe demeure la moyenne des probabilitĂ©s sur tous les nĆuds dâorigine possibles etĂ©valuer les performances Ă partir dâun nĆud donnĂ© est aussi envisageable. MalgrĂ© sa complexitĂ© ex-trĂȘmement gĂȘnante, câest ainsi lâunique modĂšle qui peut servir Ă mesurer lâefficacitĂ© du placement dusuperviseur dans le rĂ©seau Ă lâinstar du nĆud 5 sur la figure 7.1(a).
7.2.2 ParamĂštres
DisponibilitĂ© dâun nĆud
Pour rappel, la disponibilitĂ© dâun nĆud schĂ©matise la capacitĂ© dâun nĆud Ă pouvoir faire suivreles messages qui lui sont expĂ©diĂ©s. Plus un nĆud est connectĂ©Ă dâautres, plus il existe de sources etde destinations pour les messages transitants. Ainsi,α(m) doit ĂȘtre une fonction dĂ©croissante compriseentre 0 et 1 pourmvariant entre deux et lâinfini car le casm= 1, correspondant Ă une topologie de deuxnĆuds seulement, est exclu. Plusieurs dĂ©finitions deα(m) sont envisageables :
â α(m) = α1(m) = 1/mâ α(m) = α2(m) = e(iâm)
151
Chapitre 7. Performances des botnets
La deuxiĂšme fonction dĂ©croĂźt moins rapidement mais est paramĂ©trĂ©e pari devant ĂȘtre fixĂ© de maniĂšreĂ obtenir des valeurs assez Ă©levĂ©es lorsque le facteur de branchementmest petit. Par exemple,i = 3 serala valeur adoptĂ©e dans le cas dâexpĂ©riences avec trois commeborne infĂ©rieure dem. Ce sera dâailleurs lecas considĂ©rĂ© par la suite. Un telα Ă©quivaut alors Ă un environnement instable privilĂ©giant les nĆuds Ă faible connectivitĂ© car maintenir actives de nombreuses connexions est difficile.
La probabilitĂ© pour un nĆud dâĂȘtre dĂ©couvert et compromis est ÎČ = 0.01. Ces diffĂ©rents paramĂštresont Ă©tĂ© Ă©tablis arbitrairement mais placent le botnet dans un environnement hostile car, par exemple, pourseulement 20 serveurs IRC,ÎČ induit une probabilitĂ© dâĂȘtre totalement compromis de 20 % comme ex-pliquĂ© dans la section 2. En rĂ©alitĂ©, ces paramĂštres nĂ©cessitent dâĂȘtre adaptĂ©s aux contraintes spĂ©cifiquesde lâenvironnement dans lequel le systĂšme est dĂ©ployĂ©. Il est alors possible dâinstancier les modĂšles grĂąceĂ des observations rĂ©elles rĂ©alisĂ©es par les mĂ©thodes prĂ©sentĂ©es dans le chapitre 1. En effet, en exĂ©cutantsimplement le programme bot sur une machine instrumentĂ©e, la connectivitĂ© (facteur de branchementm)est facilement dĂ©terminable de mĂȘme que sa disponibilitĂ© enanalysant la maniĂšre dont la machine rĂ©agitface Ă la charge. Par exemple, observer le nombre de messages, la consommation de bande passante oula charge du processeur en parallĂšle de la connectivitĂ© est concevable pour mener Ă bien cette tĂąche.
Dans lâoptique de rester le plus gĂ©nĂ©ral possible, les rĂ©sultats prĂ©sentĂ©s ci-aprĂšs supposent un rĂ©seauhostile comme expliquĂ© prĂ©cĂ©demment.
7.2.3 Atteignabilité moyenne
La premiĂšre expĂ©rimentation Ă©value lâatteignabilitĂ© selon le nombre totalN de serveurs dans lerĂ©seaux et le facteur de branchementm. La figure 7.2(a) supposeα(m) = α1(m) et mesure la propor-tion de serveurs IRC recevant une requĂȘte envoyĂ©e par le superviseur (atteignabilitĂ© moyenne). Lâat-teignabilitĂ© progresse similairement quelque soit le facteur de branchement avec, en premier lieu, uneaugmentation. En effet, une requĂȘte pourra ĂȘtre logiquement transmise Ă plus de serveurs dĂšs lors quâilssont plus nombreux. Ă partir deN = 10, toutes les courbes amorcent une diminution et se confondentmalgrĂ© lâaugmentation constante du nombre de serveurs par le fait quâun serveur compromis (probabilitĂ©ÎČ) impacte lâensemble du rĂ©seau IRC. Par consĂ©quent, la dĂ©gradation de lâatteignabilitĂ© est due Ă uneplus forte probabilitĂ© que le rĂ©seau soit compromis comme lerappelle le terme(1âÎČ)N de la formule(4.7) introduite dans la section 4.4.3. Une bonne atteignabilitĂ© nâest pas forcĂ©ment synonyme dâun grandnombre de nĆuds car elle doit ĂȘtre modĂ©rĂ©e selon les risques dâattaques. Dans le cas prĂ©sent, un arbrede diffusion de plus de dix serveurs ne semble donc pas raisonnable. Le facteur de branchement compt-abilise les nĆuds pĂšres et enfants quâun nĆud peut avoir au maximum. Ainsim= 2 est lâĂ©quivalent dâunechaĂźne dâoĂč une atteignabilitĂ© dĂ©sastreuse et ne sera donc plus Ă©tudiĂ© par la suite.
Sous lâhypothĂšseα(m) = α2(m), la figure 7.2(b) se dĂ©marque de la prĂ©cĂ©dente essentiellementpour des valeurs faibles deN pour lesquelles lâatteignabilitĂ© est une fonction croissante du facteur debranchement maximal, câest-Ă -direα2(m) > α1(m). Lâobjectif dâavoir une fonctionα(m) dĂ©croissantesans pour autant ĂȘtre trop restrictive est donc bien atteint. Les tests suivants prennent uniquement encompteα(m) = α2(m). DâaprĂšs la figure 7.2, lâatteignabilitĂ© est contrainte parle facteurα(m) pour desfaibles valeurs de N (<20) alors quâelle est soumise aux effets des attaques pour un nombre de serveursplus Ă©levĂ©. Cette propriĂ©tĂ© peut sâĂ©noncer de la façon suivante :
avg_att(N,m) =
f1(α(m),N) , N †20f2(ÎČ,N) sinon
(7.1)
oĂč f1 et f2 sont les fonctions retournant les valeurs des courbes de la figure 7.2.
152
7.2. RĂ©seaux IRC
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 20 40 60 80 100 120 140 160 180 200
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m = 2m = 3m = 4m = 5m = 6m = 7m = 8m = 9
m = 10
(a) α(m) = α1(m)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 20 40 60 80 100 120 140 160 180 200
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m = 3m = 4m = 5m = 6m = 7m = 8m = 9
m = 10
(b) α(m) = α2(m)
FIGURE 7.2 â ModĂšle IRC â AtteignabilitĂ© selon diffĂ©rents facteursde branchement
Par ailleurs, la figure 7.3(b) dĂ©taille lâatteignabiltĂ© absolue moyenne pourN petit et confirme lâob-servation gĂ©nĂ©rale de la figure 7.2(b) oĂč les facteurs de branchement les plus faibles aident Ă obtenir unemeilleur efficacitĂ©. Ainsi, comme le montre la dĂ©finition def1, lâatteignabilitĂ© est contrainte par deuxparamĂštres qui, de plus est, sont antagonistes : le facteur de branchementm et la probabilitĂ© de pannepour une machine (non disponibilitĂ©) : 1âα(m).
LâatteignabilitĂ© absolue sur la figure 7.3(a) dĂ©crit le nombre moyen de serveurs atteints quelque soitla distance considĂ©rĂ©e. Les faibles diffĂ©rences exposĂ©es par les prĂ©cĂ©dentes courbes ne se rĂ©percutent passur le nombre absolu de serveurs joignables et une valeur maximale de 35 serveurs joignables est mise enĂ©vidence. Cependant, cette efficacitĂ© demande le dĂ©ploiement de cent serveurs rĂ©duisant ainsi lâimpactdâun tel rĂ©sultat. En revanche, dĂ©ployer plus de cent serveurs nâest en aucun cas bĂ©nĂ©fique puisque quelâatteignabilitĂ© moyenne, absolue ou non, diminue pour desvaleurs supĂ©rieures. Le superviseur prĂ©fĂ©r-era donc maximiser une des ces mĂ©triques selon les contraintes techniques et financiĂšres qui lui sontimposĂ©es.
Ătant donnĂ© 35 serveurs joignables et une moyenne de 100 botsconnectĂ©s sur chacun dâeux, 3500machines peuvent ĂȘtre supervisĂ©es par lâintermĂ©diaire dâune seule requĂȘte. De plus, 100 clients parserveur IRC est une valeur volontairement faible par rapport au nombre dâutilisateurs rĂ©els sur de telsserveurs. En outre, les bots sont des clients beaucoup moinsactifs et ne font gĂ©nĂ©ralement quâĂ©pier uncanal IRC pour rĂ©cupĂ©rer les ordres.
7.2.4 Nombre de sauts
Alors que les expĂ©rimentations prĂ©cĂ©dentes ne cherchaientpas Ă dĂ©terminer lâatteignabilitĂ© par rap-port Ă la distance, les suivantes visent Ă Ă©valuer le nombre de serveurs joignables selon le nombre desauts parcourus par une requĂȘte. Dans la perspective de tests significatifs, le nombre total de serveursN varie : 20, 50, 100 et 200. Les figures 7.4(a),7.4(b),7.4(c) et 7.4(d) montrent que lâatteignabilitĂ© esttoujours plafonnĂ©e. En rĂ©alitĂ©, cela se justifie par la formule (4.7) qui modĂšre lâatteignabilitĂ© par le terme(1âÎČ)N. Ainsi mĂȘme si le nombre thĂ©orique de nĆuds atteints est de 1,lâatteignabilitĂ© vaudra au maxi-mum(1âÎČ)N. AvecN = 20, ce terme vaut 0.81 et est bien Ă©gal Ă la valeur plafond de la figure 7.4(a).
ConnaĂźtre le nombre de sauts nĂ©cessaires permet dâestimer le temps nĂ©cessaire pour transmettre unerequĂȘte. NaĂŻvement, un facteur de branchement Ă©levĂ©, synonyme de forte connectivitĂ©, devrait aider Ă
153
Chapitre 7. Performances des botnets
0
5
10
15
20
25
30
35
0 20 40 60 80 100 120 140 160 180 200
No
mb
re d
e n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m = 3m = 4m = 5m = 6m = 7m = 8m = 9
m = 10
(a) Atteignabilité absolue
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 2 4 6 8 10 12 14 16 18 20
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m = 3m = 4m = 5m = 6m = 7m = 8m = 9
m = 10
(b) Atteignabilité moyenne pour 1†N†20
FIGURE 7.3 â ModĂšle IRC â NĆuds atteints avecα(m) = α2(m)
atteindre rapidement un grand nombre de bots. Cependant lorsqueN est petit Ă lâinstar deN = 20, lâeffetdâun fort facteur de branchement reste marginal par rapportaux risques de surcharge et de dĂ©connexionamplifiĂ©s par ce mĂȘme facteur. De plus,ÎČ a un impact Ă©quivalent quelque soit le facteur de branchement.Par consĂ©quent, pourN petit, les facteurs de branchement les plus petits sont ceuxprĂ©sentant les meilleursrĂ©sultats comme sur la figure 7.4(a). Bien entendu, un facteur de branchement trop faible peut se rĂ©vĂ©lerproblĂ©matique lorsqueN est Ă©levĂ© car il implique un nombre de sauts beaucoup plus grand pour atteindrelâatteignabilitĂ© maximale comme le met en exergue la figure 7.4. LâatteignabilitĂ© est donc clairementdĂ©pendante des quatre paramĂštres principaux des modĂšles :
â N et ÎČ pour la valeur maximale envisageable,â m et α(m) qui ont des effets antagonistes et contraignent lâĂ©volution de lâatteignabilitĂ© selon le
nombre de sauts avant dâobtenir la valeur plafond.Cependantm= 7 nâest pas particuliĂšrement plus mauvais quem= 10 dans les cas prĂ©sentĂ©s ici etm=
5 semble dâailleurs ĂȘtre le meilleur compromis dâautant plus que la section prĂ©cĂ©dente a prouvĂ© lâinanitĂ©dâavoir N > 100. Par ailleurs, 5, 6 ou 7 sauts sont suffisants pour obtenirla meilleure atteignabilitĂ© grĂąceĂ ce facteur de branchement.
Ce type dâexpĂ©rimentation estime Ă©galement le nombre de serveurs atteignables Ă une distance max-imale et donc le temps pour transmettre une requĂȘte de supervision grĂące Ă la formule (4.10) rappelĂ©eci-dessous :
tempsbotnet= dmaxĂ ts+CserveurĂ th
Par exemple, 0.6Ă 50= 30 serveurs sont atteints en 6 sauts sur la figure 7.4(b). Une fois de plus, 100bots sont connectĂ©s Ă chaque serveur en moyenne entraĂźnant une population de 3000 machines. Le dĂ©laipour leur expĂ©dier la requĂȘte est le suivant : 6Ă ts+100Ă th. Dans le cas dâune solution centralisĂ©e, lamĂȘme tĂąche est rĂ©alisĂ©e dans le laps de temps Ă©gal Ă 3000Ă th (formule (4.9)). Une architecture de typebotnet IRC pour la supervision sera donc prĂ©fĂ©rable Ă une solution centralisĂ©e si et seulement si :
6Ă ts+100Ă th < 3000Ă th
â ts <2900Ă th
6â 483Ă th
(7.2)
En outre, le tempsth pour envoyer un message Ă un bot et le tempsts pour lâenvoyer Ă un serveur sontsimilaires, câest-Ă -diretsâ th. Par consĂ©quent, cette nouvelle solution de supervision rĂ©duit considĂ©rable-ment les dĂ©lais malgrĂ© lâintroduction de nĆuds intermĂ©diaires.
154
7.2. RĂ©seaux IRC
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 2 3 4 5 6 7 8 9 10
% n
oe
ud
s a
tte
ints
Nombre de sauts
m=3m=5m=7
m=10
(a) N = 20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
1 2 3 4 5 6 7 8 9 10 11 12 13
% n
oe
ud
s a
tte
ints
Nombre de sauts
m=3m=5m=7
m=10
(b) N = 50
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
1 2 3 4 5 6 7 8 9 10 11 12 13 14
% n
oe
ud
s a
tte
ints
Nombre de sauts
m=3m=5m=7
m=10
(c) N = 100
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
1 2 3 4 5 6 7 8 9 10 11 12 13 14
% n
oe
ud
s a
tte
ints
Nombre de sauts
m=3m=5m=7
m=10
(d) N = 200
FIGURE 7.4 â ModĂšle IRC â DĂ©pendance entre atteignabilitĂ© et facteur de branchement
7.2.5 Nombre de nĆuds
Toujours en fixantα(m) = α2(m), N fluctue beaucoup plus finement dans cette expĂ©rimentation queprĂ©cĂ©demment impliquant ainsi de fixer le nombre de sauts surla figure 7.5. DĂ©sormais,N = 100 estconsidĂ©rĂ© comme maximal du fait des prĂ©cĂ©dentes observations. Les courbes sont une nouvelle foisdivisibles en deux phases. La premiĂšre se caractĂ©rise par des courbes lĂ©gĂšrement dĂ©croissantes et ex-actement identiques. Une fois de plus, elles correspondentĂ atteindre tous les nĆuds tout en prenanten compte la probabilitĂ© de compromissionÎČ. Dans un second temps, la dĂ©croissance sâaccĂ©lĂšre plusou moins rapidement selon le facteur de branchement maximalm. Effectivement, comme le nombre desauts est fixe, lâatteignabilitĂ© dĂ©pend du facteur de branchement mais aussi de son impact antagoniste viaα(m) (disponibilitĂ© du nĆud).
Enfin, les rĂ©sultats prĂ©sentĂ©s ici appuient le choix dâun facteur de branchement Ă©gal Ă cinq qui estle meilleur compromis pour obtenir de bonnes performances en gĂ©nĂ©ral sans ĂȘtre nĂ©anmoins le meilleurchoix pour chaque cas pris individuellement.
155
Chapitre 7. Performances des botnets
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50 60 70 80 90 100
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m=3m=5m=7
(a) k= 3
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50 60 70 80 90 100
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m=3m=5m=7
(b) k= 5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50 60 70 80 90 100
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N)
m=3m=5m=7
(c) k= 7
FIGURE 7.5 â ModĂšle IRC â AtteignabilitĂ© selonN et le nombre de sautsj
7.3 ParamĂštres des modĂšles pair-Ă -pair
Pour pouvoir comparer Ă©quitablement le modĂšle IRC avec les modĂšles pair-Ă -pair, les paramĂštresα(m) et ÎČ doivent ĂȘtre correctement ajustĂ©s. Comme nos prĂ©cĂ©dentes conclusions reposent sur unemoyenne de 100 clients par serveur IRC, la probabilitĂ© dâĂȘtre attaquĂ© reflĂ©tait Ă©galement la probabil-itĂ© dâĂȘtre attaquĂ© pour chacune des machines connectĂ©es. Ainsi, la nouvelle valeur deÎČ est fixĂ©e Ă ÎČIRC
100=
0.01100
= 0.0001. La disponibilitĂ© est dĂ©terminĂ©e de la mĂȘme maniĂšre :α(m) = eiâm100 . Dans le
cas des Ă©tudes sur les modĂšles P2P,i sera fixĂ© Ă diffĂ©rentes valeurs. En effet dans le cas de Slapper,le facteur de branchement minimal Ă©tudiĂ© est de 2 dâoĂči = 2. Contrairement Ă un rĂ©seau IRC oĂč unetelle connectivitĂ© impose une structure arborescente en forme de chaĂźne (le nĆud dâarrivĂ©e et le nĆudde sortie), ce paramĂštre reprĂ©sente ici un choix alĂ©atoire de 2 nĆuds quelconque dans le rĂ©seau et estdonc possible. Par consĂ©quent, une comparaison des deux modĂšles nĂ©cessitera de prendre en compte unfacteur de branchement incrĂ©mentĂ© de un pour le modĂšle IRC dans lâobjectif que chaque serveur puisseenvoyer au maximum 2 messsages et pas seulement un.
Enfin, fixer m Ă une valeur quelconque est impossible dans le cas de Chord puisquâil est Ă©gal aunombre dâentrĂ©es diffĂ©rentes dans la table de routage de chaque nĆud lui-mĂȘme fixĂ© parlog2(N).
7.4 Slapper
7.4.1 Nombre de sauts
Plusieurs facteurs de branchement sont testĂ©s sur la figure 7.6. Comme pour les botnets IRC, lâat-teignabilitĂ© est plafonnĂ©e Ă une valeur maximale qui, pour les mĂȘmes raisons, est directement dĂ©ductibleĂ partir deÎČ et ainsi Ă©gale au maximum Ă (1âÎČ)N.
Contrairement Ă IRC, avoir un facteur de branchement Ă©levĂ© est bĂ©nĂ©fique dâaprĂšs les courbes tracĂ©espuisque les meilleures performances sont obtenues ainsi. Une autre diffĂ©rence majeure est le nombre desauts nĂ©cessaire pour obtenir lâatteignabilitĂ© maximale.En effet, celui-ci est Ă peu prĂšs constant pour unfacteur de branchement donnĂ© lorsque celui-ci vaut au minimum quatre. Par exemple avecm= 5, huitsauts sont suffisants pour atteindre la valeur plafond. Ainsi, limiter efficacement le nombre de nĆudsdevant faire suivre une requĂȘte de supervision est aisĂ©e. Pour rappel, dans un rĂ©seau de type Slapper, larequĂȘte est retransmise par tous les nĆuds la recevant jusquâĂ ce que celle-ci soit passĂ©e par un certainnombre de nĆuds intermĂ©diaires. Habituellement, cette valeur est fixĂ©e arbitrairement par le contrĂŽleur.
156
7.4. Slapper
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1 2 3 4 5 6 7 8 9 10 11 12 13 14
% n
oe
ud
s a
tte
ints
Nombre de sauts i
m=2m=3m=4m=5m=7
(a) N = 2000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
1 2 3 4 5 6 7 8 9 10 11 12 13 14
% n
oe
ud
s a
tte
ints
Nombre de sauts i
m=2m=3m=4m=5m=7
(b) N = 5000
FIGURE 7.6 â Slapper â AtteignabilitĂ©
Avec cette Ă©tude, elle peut ĂȘtre estimĂ©e automatiquement, Ă©vitant ainsi les retransmissions inutiles sur-chargeant le rĂ©seau.
Dans la mĂȘme optique, une distance maximale de quatre ou cinqsauts est totalement futile car, dansle meilleur des cas, seul 15% des bots recevraient effectivement la requĂȘte. Enfin, bien que la distancenĂ©cessaire pour atteindre la valeur maximale soit fixe, le nombre total de bots a un effet sur la dynamiquede lâatteignabilitĂ©. En effet, quandN augmente entre la figure 7.6(a) et 7.6(b), les courbes sâamplifientmoins rapidement au dĂ©but pour des distances faibles et plusfortement pour les distances plus Ă©levĂ©es.
7.4.2 Nombre de nĆuds
La dĂ©pendance entre lâatteignabilitĂ© et le nombre total de nĆudsN est mise en Ă©vidence sur la fig-ure 7.7. Pour cela, la diffusion de la requĂȘte est plafonnĂ©e Ă 6, 8 ou 10 sauts. Bien Ă©videmment, lâat-teignabilitĂ© diminue car, malgrĂ© lâaugmentation du nombrede nĆuds, la distance demeure fixe et restreintdonc logiquement le nombre de nĆuds atteignables. Il faut bien comprendre quâil sâagit de la proportionde bots atteints et mesure donc lâefficacitĂ© de lâarchitecture. Une autre mesure est lâatteignabilitĂ© absoluede la figure 7.8 oĂč le nombre exact de bots atteints est pris en compte. Dans ce cas, augmenterN permeteffectivement dâatteindre plus de bots mais de maniĂšre inefficace car les pentes des courbes diminuentau fur et Ă mesure, preuve dâune atteignabilitĂ© dĂ©croissante (en proportion). Par ailleurs, une limite, aprĂšslaquelle les performances sont dĂ©gradĂ©es, subsiste mĂȘme sielle ne figure pas sur toutes les figures carNnâest pas assez grand. Ainsi, comme pour IRC, ces courbes peuvent aider Ă dĂ©terminer le nombre max-imal de bots rĂ©ellement contrĂŽlable tout en indiquant au superviseur un nombre Ă ne pas dĂ©passer quinâengendrerait quâun effet nĂ©faste. Par exemple, si le superviseur fixe un facteur de branchement Ă©gal Ă 3 avec au plus huit sauts, il sait Ă©galement que 4000 ou 5000 bots, au plus, pourront ĂȘtre supervisĂ©s avecune telle configuration.
De plus, lorsqueN augmente, les courbes associĂ©es aux plus grands facteurs debranchement conver-gent et sont une fois de plus limitĂ©es par la probabilitĂ©ÎČ quâun nĆud soit compromis. Cette observationconfirme que pour un nombre de sauts suffisamment Ă©levĂ©, obtenir la meilleure atteignabilitĂ© possible esttoujours envisageable quel que soit le nombre total de nĆuds. Dans le cas contraire, les diffĂ©rences entreles courbes sont dues au facteur de disponibilitéα(m).
Dâun point de vue pratique, des tests supplĂ©mentaires ont montrĂ© quâen continuant dâaugmenter le
157
Chapitre 7. Performances des botnets
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N) x 100
m=2m=3m=4m=5
(a) k= 6
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50
% n
oe
ud
s a
tte
ints
Nombre total de neouds (N) x 100
m=2m=3m=4m=5
(b) k= 8
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50
% n
oe
ud
s a
tte
ints
Nombre total de noeuds (N) x 100
m=2m=3m=4m=5
(c) k = 10
FIGURE 7.7 â Slapper â Influence du nombre de sautsk sur lâatteignabilitĂ©
0
200
400
600
800
1000
1200
1400
1600
0 10 20 30 40 50
No
mb
re d
e n
oe
ud
s a
tte
ints
Nombre total de noeuds (N) x 100
m=2m=3m=4m=5
(a) i = 6
0
500
1000
1500
2000
2500
3000
3500
0 10 20 30 40 50
No
mb
re d
e n
oe
ud
s a
tte
ints
Nombre total de noeuds (N) x 100
m=2m=3m=4m=5
(b) i = 8
0
500
1000
1500
2000
2500
3000
3500
0 10 20 30 40 50
No
mb
re d
e n
oe
ud
s a
tte
ints
Nombre total de noeuds (N) x 100
m=2m=3m=4m=5
(c) i = 10
FIGURE 7.8 â Slapper â Influence du nombre de sautsi sur lâatteignabilitĂ© absolue
nombre de sauts (d > 10), le facteur de branchement nâavait plus dâimpact sur lâatteignabilitĂ©. Elle peutalors se schĂ©matiser de la façon suivante :
att(N,d) =
f1(m,N) , d†20f2(ÎČ,N) sinon
(7.3)
avec f1 une fonction croissante selonmet dĂ©croissante selonN comme le montre les premiĂšres observa-tions ci-dessus tandis quef2 est une fonction dĂ©croissante deN et modĂ©rĂ©e parÎČ.
Enfin, les performances rĂ©sultant dâun facteur de branchement m= 2 sont dĂ©sastreuses et la formegĂ©nĂ©rale de lâatteignabilitĂ© dĂ©duite prĂ©cĂ©demment nâest pas applicable pour ce cas prĂ©cis. Alors que cettevaleur est la valeur par dĂ©faut de Slapper, elle constitue unmauvais choix et est inutilisable en pratiquedans une optique de supervision large Ă©chelle.
7.5 Chord
Les pairs sont rĂ©partis uniformĂ©ment sur lâanneau de telle sorte que la distance entre les identifiantsde deux pairs consĂ©cutifs soit en moyenne Ă©gale Ă d. Cette distance ne doit pas ĂȘtre confondue avec ladistance en nombre de sauts qui sĂ©parent deux pairs et notĂ©e gĂ©nĂ©ralementk ci-aprĂšs. Dans le premiercas, la distance sera explicitement qualifiĂ©e de distance entre identifiants alors que, dans le second cas,elle se dĂ©nommera distance entre deux pairs.
158
7.5. Chord
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11
% n
oe
ud
s a
tte
ints
Nombre de sauts k
d=1d=2d=4d=7
d=15S m=10
(a) N = 2000
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11 12
% n
oe
ud
s a
tte
ints
Nombre de sauts k
d=1d=2d=4d=7
d=15S m=12
(b) N = 5000
FIGURE 7.9 â Chord â AtteignabilitĂ© selon le nombre total de nĆuds (S= Slapper)
7.5.1 Nombre de sauts
Les figures 7.9(a) et 7.9(b) illustrent lâatteignabilitĂ© dans Chord avec un nombre totalN de 2000 ou5000 pairs. La taille de lâespace des identifiants est doncNMAX = NĂ d puisque les bots sont rĂ©partisalĂ©atoirement dans ce dernier avec une distanced moyenne entre deux identifiants. Malheureusement,contrairement Ă la conception de Chord,NMAX risque de ne pas ĂȘtre une puissance de deux. Cependant,il est prĂ©fĂ©rable dâoutrepasser cette limitation pour pouvoir comparer sur un mĂȘme graphique diffĂ©rentesvaleurs ded tout en gardant un nombre de pairs actifsN constant. En pratique, cela concorde avec unanneau Chord tronquĂ© Ă la fin que les algorithmes, introduitsdans la section 4.5.2, sont capables de gĂ©rer.Ainsi, le nombre dâentrĂ©es dans la table de routage est le premier entier infĂ©rieur ou Ă©gal Ă log(NMAX).
La figure 7.9 montre trĂšs clairement que les performances espĂ©rĂ©es pour un botnet de type Chord sonttrĂšs peu dĂ©pendantes de la distance moyenned entre deux identifiants. A premiĂšre vue, lâatteignabilitĂ©paraĂźt meilleure pour les plus petites valeurs ded. Cependant, une analyse plus fine distingue deux classesde courbes :
â C0 pourd Ă©gale Ă une puissance de 2,â C1 lorsqued nâest pas une puissance de 2.
Cette caractĂ©risation a un impact sur le nombre dâentrĂ©es diffĂ©rentes de la table de routage dâun pair. Eneffet, la formule 4.15 rappelĂ©e ci-dessous Ă©value ce nombre:
#routes= log2(NMAX)â log2(d) = log2
(
NMAX
d
)
= log2(N)
Normalement, les termeslog(NMAX) et log(d) sont censĂ©s ĂȘtre des entiers alors que ce nâest pas vĂ©rifiĂ©dans le cas des courbesC1 pour lesquelles un terme logarithmique est remplacĂ© par le plus grand entierinfĂ©rieur Ă la valeur rĂ©elle. En consĂ©quence, lorsqued est une puissance de 2 (C0), aucune troncature nâestopĂ©rĂ©e. Ă contrario, la seconde classe implique une troncature et donc une rĂ©duction du nombre dâentrĂ©esdans la table de routage dâoĂč une atteignabilitĂ© plus restreinte. AprĂšs avoir testĂ© avec des valeurs ded de1 Ă 16, lâexistence de ces deux classes est bel et bien vĂ©rifiĂ©e.
Pour un rĂ©seau de taille Ă©quivalente, la premiĂšre classe offre une meilleure atteignabilitĂ© indĂ©pen-dante de la distanced entre identifiants. Dans le second cas, lâatteignabilitĂ© est lĂ©gĂšrement plus faible etles rĂ©sultats se singularisent. Ainsi, elle est au maximum diminuĂ©e de 10 points par rapport Ă la courbede la classeC0. De plus, il est envisageable de diffuser la requĂȘte Ă lâensemble du rĂ©seau (atteignabilitĂ©
159
Chapitre 7. Performances des botnets
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13
% n
oe
ud
s a
tte
ints
Nombre de sauts k
p=1p=2p=4p=7
p=15
(a) Espace des idsNMAX = 214
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
% n
oe
ud
s a
tte
ints
Nombre de noeuds au total 2x
p=1p=2p=4p=7
p=15Slapper/IRC
(b) Nombre de sautsi = 6
FIGURE 7.10 â Chord â AtteignabilitĂ© (S = Slapper)
Ă©gale Ă 1). Cela prouve que, contrairement Ă IRC et Chord, lâimpact deÎČ est marginal car un attaquantdĂ©sirant dĂ©couvrir tout le rĂ©seau devrait, dans le meilleurdes cas pour lui, ĂȘtre en mesure dâespionner les
connexions deN
log(N)nĆuds (voir section 4.5.2).
Chord est donc la meilleure solution dans lâoptique de diffuser une requĂȘte de supervision verslâensemble des Ă©quipements. Cette conclusion est accentuĂ©e par le parallĂšle avec lâatteignabilitĂ© de Slap-per sur la figure 7.9. Plus prĂ©cisĂ©ment, le facteur de branchement de Slapper fut fixĂ© Ă log2(N) pourpouvoir comparer Ă©quitablement les diffĂ©rents modĂšles. Enfin, il est prĂ©fĂ©rable dâutiliser une architec-ture de type Slapper plutĂŽt que Chord, plus compliquĂ©e dans sa phase de dĂ©ploiement et de maintenancecar, pour un nombre de sauts infĂ©rieur ou Ă©gal Ă 6, Slapper se caractĂ©rise par une atteignabilitĂ© Ă©quivalentevoire meilleure.
7.5.2 Distance entre deux identifiantsd
Alors que lâexpĂ©rience prĂ©cĂ©dente fixait le nombre de pairs actifs, celle-ci considĂšre la taille delâespace des identifiants comme invariable et Ă©tudie les performances selon la distanced moyenne entredeux identifiants. La figure 7.10(a) supposeNMAX = 214 et montre clairement que lâatteignabilitĂ© est unefonction croissante ded. Effectivement,NMAX Ă©tant fixĂ©,N diminue lorsqued augmente pour respecterla contrainteN = dĂNMAX. Hors, une propriĂ©tĂ© essentielle de Chord est son routage enlog(NMAX)indiquant que dans le pire des cas la requĂȘte devra ĂȘtre transmiselog(NMAX) fois. Ainsi, avec un routagetout aussi efficace et moins de nĆuds Ă contacter, lâatteignabilitĂ© augmente en parallĂšle ded.
Plus prĂ©cisĂ©ment, une rĂ©duction deN sâaccompagne forcĂ©ment dâune rĂ©duction du nombre dâentrĂ©esdiffĂ©rentes dans les tables de routage des nĆuds car, comme prĂ©cĂ©demment mentionnĂ©, il y en alog(N).Cependant la dĂ©croissance de la fonction logarithmique estmoins Ă©levĂ©e que celle linĂ©aire. Ainsi, lorsqued est multipliĂ©e park, le nombre dâentrĂ©es de la table de routage diminue delog(NMAX
d )â log(NMAXdĂk ) =
log(k). En mĂȘme temps, le nombre de nĆuds dans le rĂ©seau est quant Ă lui divisĂ© park. Des valeurs assezĂ©levĂ©es deN traduisent un nombre de nĆuds qui dĂ©croĂźt plus vite que la taille des tables de routage.Finalement, mĂȘme si moins de messages sont retransmis Ă chaque saut, moins de nĆuds nĂ©cessitent dâĂȘtreatteints dâoĂč de meilleurs rĂ©sultats. Par ailleurs, plusd augmente, plus le facteur de branchement diminue(nombre dâentrĂ©es diffĂ©rentes dans la table de routage) etα(m) Ă©galement, accentuant le phĂ©nomĂšne
160
7.5. Chord
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
% n
oe
ud
s a
tte
ints
Nombre total de noeuds 2x
d=1d=2d=4d=7
d=15
(a) Atteignabilité moyenne
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
No
mb
re d
e n
oe
ud
s a
tte
ints
Nombre total de noeuds 2x
d=1d=2d=4d=7
d=15
(b) Atteignabilité absolue moyenne
FIGURE 7.11 â Chord â AtteignabilitĂ© moyenne
prĂ©cĂ©dent. Le mĂȘme raisonnement est applicable Ă ÎČ mais ne prĂ©sente que peu dâintĂ©rĂȘt du fait de sonfaible impact dans un rĂ©seau de type Chord.
7.5.3 Nombre de nĆuds
La figure 7.10(b) considĂšre une distance de 6 sauts et lâatteignabilitĂ© est similaire pour toutes lesvaleurs ded (distance entre deux identifiants). En testant avec dâautres distances (nombre de sauts),les courbes demeurent similaires mais lĂ©gĂšrement dĂ©calĂ©esvers la droite. Plus particuliĂšrement, il a Ă©tĂ©observĂ© que lorsque le nombre de sauts est multipliĂ© par5
4, la courbe est lĂ©gĂšrement dĂ©placĂ©e Ă droitede 22 nĆuds. Par exemple une atteignabilitĂ©a pourN est Ă©galement observable pourN+22 lorsque lenombre de sauts est multipliĂ© par5
4. La figure illustre une fois de plus une atteignabilitĂ© maximale prochede un. Logiquement, la distance fixĂ©e impose une atteignabilitĂ© dĂ©croissante lorsque le nombre de nĆudsaugmente.
Comme le facteur de branchement de Chord dĂ©pend directementdeN, la courbe de Slapper corre-spond Ă lâatteignabilitĂ© maximale (meilleur cas) Ă©quivalente Ă celle dâun rĂ©seau IRC. La courbe est doncdĂ©finie par(1âÎČ)N. A partir de 212 Ă©quipements Ă superviser, Chord affiche clairement sa supĂ©rioritĂ©.Pour un rĂ©seau comportant entre 210 et 212 nĆuds, Slapper ou IRC peuvent se rĂ©vĂ©ler plus efficaces.
En fait, il est intĂ©ressant de remarquer que six sauts permettent dâatteindre la meilleure efficacitĂ©pour Slapper sur les figures 7.9(a) et 7.9(b) mais reprĂ©sentent Ă©galement la limite Ă partir de laquellelâutilisation de Chord est profitable. Ainsi mĂȘme pourN < 212, Chord se rĂ©vĂšle extrĂȘmement bĂ©nĂ©fiquedu fait de sa meilleure rĂ©sistance aux attaques.
7.5.4 Atteignabilité moyenne
LâatteignabilitĂ© moyenne exprimĂ©e sur la figure 7.11(a) tient compte de la distance variant entre 0(le nĆud superviseur) etlog(NMAX) (distance maximale entre deux nĆuds Chord). MalgrĂ© quelquesvariations lĂ©gĂšrement chaotiques pour des rĂ©seaux de petites tailles, les courbes sâamoindrissent moinsrapidement que lâaugmentation du nombre de nĆuds. De plus, plus la distanced entre deux identifiants
161
Chapitre 7. Performances des botnets
augmente, plus la diffusion dâune requĂȘte sera efficace car malgrĂ© un nombre de bots constants, lâespacedes identifiants croĂźt pour respecter les contraintes du modĂšle. De ce fait, les tables de routage des nĆudssont plus grandes et un pair peut donc avoir une connectivitĂ©plus grande. Cependant, les nĆuds sont plusdispersĂ©s sur lâanneau dâoĂč un fort niveau de redondance dans ces tables et une atteignabilitĂ© absolueanalogue sur la figure 7.11(b). Dâautre part, elle est toujours croissante et a une forme exponentiellecontrairement Ă IRC car, comme prĂ©cĂ©demment montrĂ©, lâimpact du facteurÎČ est mineur avec Chord.Enfin, les variations observĂ©es sur la figure 7.11(a) sont principalement dues Ă des rĂ©seaux de faiblestailles (N < 24) ne mĂ©ritant pas dây porter intĂ©rĂȘt dans le cadre de la supervision Ă large Ă©chelle.
7.6 Comparaison
Les Ă©tudes prĂ©cĂ©dentes ont mis en Ă©vidence des propriĂ©tĂ©s spĂ©cifiques Ă chaque modĂšle tout enessayant de donner quelques indications Ă propos de leurs diffĂ©rences. Cette section rĂ©sume ces rĂ©sultatsen mettant lâaccent sur les singularitĂ©s de chacune des architectures possibles.
7.6.1 Facteur de branchement
Contrairement Ă un rĂ©seau pair-Ă -pair, un facteur de branchement relativement Ă©levĂ© engendrait desconsĂ©quences nĂ©fastes directes dans le cas dâun rĂ©seau IRC.Ainsi avecm= 10, les performances sontplus rĂ©duites sur la figure 7.4. Ainsi, les botnets P2P sont plus rĂ©sistants aux problĂšmes de disponibilitĂ©.Cependant, le facteur de branchement nâest pas directementparamĂ©trable dans Chord et augmenter lefacteur de branchement de Slapper Ă outrance peut dĂ©grader les dĂ©lais de diffusion dâune requĂȘte puisque,dans les cas extrĂȘmes, cela revient Ă une architecture pseudo dĂ©centralisĂ©e telle quâIRC.
Les Ă©tudes ont Ă©galement montrĂ© quâun bon facteur de branchement pour un botnet IRC Ă©tait delâordre de 5. Pour comparer plus justement avec Slapper, le facteur de branchement de ce dernier estfixĂ© Ă quatre comme expliquĂ© dans la section 7.3. Ainsi les courbes des figures 7.4, 7.6 et 7.9 indiquentclairement quâune architecture IRC nĂ©cessite moins de sauts pour atteindre lâatteignabilitĂ© maximalepossible. En revanche, la figure 7.13 rĂ©unit les diffĂ©rents modĂšles et donne clairement lâavantage Ă Chordqui, malgrĂ© un nombre de sauts plus Ă©levĂ© pour atteindre la valeur maximale, est capable de diffuser unerequĂȘte Ă un plus grand nombre de bots et, dans un temps plus court, Ă un nombre de bots Ă©quivalentpar rapport aux autres modĂšles. En outre, Slapper semble lâarchitecture la moins efficace Ă facteur debranchement Ă©quivalent avec IRC.
7.6.2 Impact des attaques
Cette Ă©valuation mesure la rĂ©sistance des diffĂ©rents systĂšmes aux attaques. Comme expliquĂ© aupara-vant, Slapper et IRC sont soumis de la mĂȘme maniĂšre Ă la probabilitĂ© ÎČ quâun nĆud soit compromis carun seul nĆud de ce type entraĂźne la dĂ©couverte du rĂ©seau tout entier. Par consĂ©quent, un attaquant connaĂźtlesN nĆuds du rĂ©seau avec un probabilitĂ© 1â (1âÎČ)N. En moyenne, il est donc possible de dire que surplusieurs botnets de mĂȘme taille,detectslapper= N(1â (1âÎČ)N) nĆuds sont perçus par lâattaquant.
Dans le cas de Chord, le nombre moyen de nĆuds attaquĂ©s estÎČN et chacun dâentre eux connaĂźtlog2(N) autres nĆuds (formule (4.15)). En considĂ©rant le pire cas oĂčla table de routage de chaque
162
7.6. Comparaison
1
10
100
1000
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32
r
Nombre de noeuds au total 2x
FIGURE 7.12 â Effet des attaques -r(n)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 1 2 3 4 5 6 7 8 9 10 11 12 13
% n
oeuds a
ttein
ts
Nombre de sauts i
SlapperIRC
Chord
FIGURE 7.13 â Comparaison des modĂšles avecN = 5000
nĆud compromis soit totalement diffĂ©rente, le nombre moyende nĆuds connus par un attaquant est :detectchord = ÎČNĂ log2(N).
Pour pouvoir comparer rapidement et simplement les différents modÚles, le ratio suivant est employé :
r(N) =detectslapper
detectchord=
1â (1âÎČ)N
ÎČĂ log2(N)
Lâeffet bĂ©nĂ©fique de Chord est mis en exergue sur la figure 7.12car le ratio augmente rapidement enparallĂšle du nombre de nĆuds dans le rĂ©seau jusquâĂ atteindre la valeur maximaler(215) = 650. Celasignifie quâil y a 650 fois plus de nĆuds connus avec IRC ou Slapper quâavec Chord. La courbe amorcealors une lĂ©gĂšre dĂ©croissance vers sa limite en lâinfini : limNââ r(N) = 0. Cependant pour un rĂ©seau detrĂšs grande taille telle que 2512 nĆuds, le ratio vaut 20. De maniĂšre gĂ©nĂ©rale Chord est plus rĂ©sistant auxattaques que Slapper ou IRC car les nĆuds de Chord nâont quâune vue trĂšs rĂ©duite du rĂ©seau.
7.6.3 DĂ©lais
Ătant donnĂ© un temps de transmissionttrans entre deux nĆuds quelconques (serveur ou bots), unnombre de sauts permettant dâobtenir une atteignabilitĂ© similaire dans lâexemple de la figure 7.13 (5pour IRC, 9 pour Slapper et 6 pour Chord) et toujours une moyenne de 100 bots par serveur IRC, lesformules (4.10) et (4.16) estiment le dĂ©lai nĂ©cessaire pourdiffuser la requĂȘte aux nĆuds :
â IRC : (5+100)Ă ttrans
â Slapper : 9ĂmĂ ttrans
â Chord : 6ĂmĂ ttrans
Le meilleur compromis pour le facteur de branchement du modĂšle IRC est cinq impliquant un facteur
de quatre pour Slapper. Le ratio entre les délais de ces deux architectures est donc de10536
signifiant
quâune architecture Slapper est pratiquement trois fois plus rapide que IRC malgrĂ© un nombre de nĆudsintermĂ©diaires plus important.
Concernant Chord, le facteur de branchement dĂ©pend directement du nombre de nĆuds dans le rĂ©seauet vautlog2(N) impliquant des dĂ©lais plus Ă©levĂ©s que dans Slapper car le ratio entre ces derniers est alors
de7336
dans le cas présent (N = 5000). Cependant les délais dans Chord restent plus courts que ceux
avec une architecture IRC avec un ratio de10573
. A premiÚre vue, cette différence semble faible mais seul
163
Chapitre 7. Performances des botnets
Chord est capable de diffuser une requĂȘte Ă tous les nĆuds. Par exemple IRC nâest capable dâatteindreque 0.6Ă5000= 3000 bots (figure 7.13) avec un dĂ©lai de 105Ă ttrans alors que Chord les atteint tous en10 sauts soit un dĂ©lai maximum de 10log2(5000)Ă ttrans = 122ttrans. Par consĂ©quent, Chord est, dans ce
cas, légÚrement plus lent car122105
= 1.16 mais parvient Ă transmettre la requĂȘte Ă 40% de bots en plus
soit pratiquement le double
7.7 Conclusion
Le chapitre 4 avait, en plus de définir clairement les modÚles, spécifié les objectifs à atteindre dansle cadre de la supervision à large échelle :
â passage Ă lâĂ©chelle : un grand nombre de machines Ă configurer,â efficacitĂ© : nouvelle configuration dĂ©ployĂ©e rapidement,â anonymat : un attaquant ne doit pas pouvoir dĂ©couvrir les machines supervisĂ©es ainsi que celles
qui contrĂŽlent le systĂšme pour Ă©viter un dĂ©tournement de lâusage du botnet,â sĂ©curitĂ© : une machine supervisĂ©e ne doit pas pouvoir lancer de fausses requĂȘtes de supervision
sur le rĂ©seau,â garantie dâatteignabilitĂ© : lâadministrateur doit pouvoir savoir quel est le potentiel rĂ©sultat de lâen-
voi dâune requĂȘte et notamment le nombre de machines qui lâauront correctement reçu. Cela per-met ensuite de prĂ©voir des mesures supplĂ©mentaires si ce nombre nâest pas satisfaisant.
Les Ă©tudes rĂ©alisĂ©es prĂ©cĂ©demment vont donc aider Ă dĂ©terminer si les diffĂ©rentes architectures pro-posĂ©es sont des solutions viables. La garantie dâatteignabilitĂ© est clairement rĂ©alisĂ©e pour lâensemble desmodĂšles puisque leur objectif principal Ă©tait de dĂ©finir cette mĂ©trique. Ainsi, un administrateur souhai-tant mettre en Ćuvre une telle solution peut finement Ă©valuerles performances envisageables et ainsiparamĂ©trer au mieux celles-ci.
La sĂ©curitĂ© nâa pas fait lâobjet des modĂšles car ils sont centrĂ©s principalement sur lâefficacitĂ© dela diffusion dâune requĂȘte. De plus, cette garantie de sĂ©curitĂ© est rĂ©alisable en utilisant des techniquesmodernes de signatures numĂ©riques par chiffrement.
Les autres aspects sont quant Ă eux abordĂ©s dans le tableau 7.1. Lâanonymat du contrĂŽleur est bienprĂ©servĂ© dans les rĂ©seaux pair-Ă -pair grĂące aux nombreux nĆuds intermĂ©diaires. Le faible nombre de cesderniers dans IRC ainsi que la nĂ©cessitĂ© dâavoir une autoritĂ© centrale prenant en charge le dĂ©ploiementdes serveurs rend ce type de rĂ©seau beaucoup plus vulnĂ©rable. Lâavantage indĂ©niable des rĂ©seaux IRC estque seuls les serveurs ont besoin dâavoir un port ouvert. LesĂ©quipements Ă superviser ne se retrouventpas exposĂ©s Ă dâautres vulnĂ©rabilitĂ©s. Ce type dâarchitecture est donc idĂ©al pour une entreprise. Les autresindications du tableau telles que le passage Ă lâĂ©chelle ou lâefficacitĂ© sont directement induites par lesexpĂ©rimentations de ce chapitre.
Par consĂ©quent, un rĂ©seau IRC est une solution viable pour unrĂ©seau local dâentreprise tandis queSlapper est plutĂŽt envisageable dans le cadre dâun rĂ©seau departenaires sĂ»rs. En effet, les dĂ©lais sont lim-itĂ©s mais sa faible rĂ©sistance face aux attaques ne permet pas de le dĂ©ployer nâimporte oĂč contrairementĂ Chord qui semble le mieux adaptĂ© au cas dâutilisation prĂ©sentĂ© dans le chapitre 4 oĂč lâapplication visĂ©eest le dĂ©ploiement dâun honeypot participatif totalement ouvert avec de trĂšs nombreuses machines.
164
7.7. Conclusion
IRC Slapper ChordEfficacité plus petit nombre de sauts plus courts délais
RĂ©sistancetrĂšs contraints par une sur-chargeet par les attaques
trĂšs contraints par les attaques,peu de surcharge
résistance élevée, peu de sur-charge, impact faible des at-taques
Passage Ă lâĂ©chelle
< 212 nĆuds â„ 212 nĆuds
Anonymat le superviseur peut ĂȘtre dĂ©tectĂ©difficile de retrouver le superviseur Ă causedes nĆuds intermĂ©diaires
IntĂ©rĂȘtrĂ©seau large et fermĂ© (une en-treprise)
réseau large avec des partici-pants connus et sûrs (honeypotdistribué de recherche)
réseau ouvert et trÚs large(honeypot public)
TABLE 7.1 â Comparaison des diffĂ©rentes solutions
165
8
DĂ©couverte automatique des types demessages
Sommaire8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1678.2 Protocoles testés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 168
8.2.1 SIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
8.2.2 Courriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708.3 Ăvaluation de la classification . . . . . . . . . . . . . . . . . . . . .. . . . . . 171
8.3.1 Précision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.3.2 Nombre de types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718.3.3 Sensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
8.4 Expérimentations sur SIP . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 1728.4.1 Partitionnement hiérarchique . . . . . . . . . . . . . . . . . . .. . . . . 1728.4.2 Support Vector Clustering . . . . . . . . . . . . . . . . . . . . . . .. . . 1748.4.3 Méthode globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
8.5 Autres protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 1768.5.1 Partitionnement hiérarchique . . . . . . . . . . . . . . . . . . .. . . . . 1768.5.2 Support Vector Clustering . . . . . . . . . . . . . . . . . . . . . . .. . . 177
8.6 Paramétrage automatique de SVC . . . . . . . . . . . . . . . . . . . . .. . . 1778.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
8.1 Introduction
Le chapitre 5 sâest focalisĂ© sur la description compressĂ©e de nouvelles reprĂ©sentations de messageset donc plus efficace Ă manipuler en terme de complexitĂ© algorithmique dans lâobjectif de dĂ©terminerautomatiquement les types associĂ©s. De plus, la nouvelle mĂ©thode proposĂ©e ne sâappuie pas sur la gram-maire du protocole et se fonde sur une technique rĂ©cente de clustering. Plus exactement, un message peutĂȘtre caractĂ©risĂ© de la façon suivante :
â la distribution de ses caractĂšres ou octets,â la distribution des positions pondĂ©rĂ©es des caractĂšres ouoctets,
167
Chapitre 8. DĂ©couverte automatique des types de messages
â la distribution ordonnĂ©e des caractĂšres ou octets robusteface Ă un chiffrement octet par octet grĂąceĂ un XOR.
La classification sâeffectue en deux Ă©tapes :â dĂ©couverte de «mĂ©ta-clusters» rĂ©unissant plusieurs types distincts,â un partitionnement hiĂ©rarchique sur chacun de ces «mĂ©ta-clusters».
Plus prĂ©cisĂ©ment, la classification hiĂ©rarchique est de type ascendante en se basant sur le barycentreexprimant ainsi un groupe de messages par un seul. Ce chapitre a pour ambition de dĂ©montrer lâintĂ©rĂȘtde cette nouvelle mĂ©thode de dĂ©couverte des types de messages, Ă©tape essentielle Ă la rĂ©tro-ingĂ©nierie,en lâillustrant sur plusieurs protocoles. De plus, le gain de chaque Ă©tape de cette classification Ă doubleniveau sera Ă©valuĂ© et comparĂ© par rapport Ă lâapplication directe du partitionnement hiĂ©rarchique qui estune mĂ©thode bien connue et trĂšs utilisĂ©e dans de nombreux domaines.
Dans un premier temps, ce chapitre introduira les diffĂ©rents jeux de test employĂ©s incluant une brĂšvedescription des protocoles associĂ©s ainsi que la dĂ©finitiondes mĂ©triques dâĂ©valuation avant de dĂ©taillerles rĂ©sultats.
8.2 Protocoles testés
8.2.1 SIP
Description
SIP [6] est un protocole de gestion de sessions multimĂ©dias indĂ©pendant de lâapplication sous-jacentemais dĂ©mocratisĂ© rĂ©cemment par les rĂ©seaux VoIP. Il permet dâĂ©tablir une session entre deux entitĂ©s, dâennĂ©gocier les diffĂ©rents paramĂštres, pour parvenir Ă une communication acceptable par les diffĂ©rentesentitĂ©s, et de terminer la session. SIP se charge notamment de lâauthentification des participants ainsique de leur localisation. Les analyses approfondies se consacreront essentiellement Ă ce protocole car ilcomprend de nombreuses opĂ©rations se traduisant directement en types de messages servant de base Ă une machine Ă Ă©tats complexe.
Plus prĂ©cisĂ©ment, deux grands groupes de messages existent. Les requĂȘtes commencent par un motclĂ© parmi les suivants :REGISTER, OPTIONS, INVITE,UPDATE, CANCEL, ACK, BYE, SUBSC RIBE,NOTIFY, PRACK, PUBLISH, INFO, REFER, MESSAGE. Les rĂ©ponses se diffĂ©rencient quant Ă elle parun code numĂ©rique de trois chiffres dont le premier fournit une indication gĂ©nĂ©rale :
â 1xx : rĂ©ponse informationnelle,â 2xx : succĂšs,â 3xx : redirection,â 4xx : problĂšme client,â 5xx : problĂšme serveur,â 6xx : problĂšme gĂ©nĂ©ral.La frĂ©quence dâutilisation de chacun des types de messages nâest pas similaire et permettra donc de
tester si la nouvelle mĂ©thodologie proposĂ©e est apte Ă identifier ceux sous-reprĂ©sentĂ©s et pas seulementles autres.INVITE ou REGISTERsont des types frĂ©quemment rencontrĂ©s afin de respectivement passerun appel tĂ©lĂ©phonique et sâenregistrer auprĂšs dâun opĂ©rateur. De mĂȘme, le message200 est la rĂ©ponsestandard pour acquitter la requĂȘte dâun utilisateur lorsque aucun problĂšme ne survient.
La figure 8.1(a) rĂ©sume un cas simple et courant dâun dialogueSIP oĂč[email protected]@domain2.com. Il commence alors par envoyer une requĂȘteINVITE . Lâautre entitĂ© indiquequâelle va tenter de joindre cet utilisateur (Trying ) puis lâavertit de lâappel entrant (180 Ringing ).
168
8.2. Protocoles testés
[email protected] [email protected]
INVITE
100 Trying
180 Ringing
200 OK
ACK
BYE
200 OK
Media Session
(a) Exemple de dialogue
domain1.com
Serveur de redirectionServeur de localisation
(b) Architecture
FIGURE 8.1 â GĂ©nĂ©ralitĂ©s sur SIP
Finalement, lâutilisateur dĂ©croche entraĂźnant une rĂ©ponse200 OK. Enfin, le premier utilisateur indique dela terminaison de la transaction induite par la requĂȘteINVITE via lâenvoi dâun ACK. Lâappel tĂ©lĂ©phoniquedĂ©bute alors Ă proprement parler grĂące Ă un quelconque protocole Ă lâinstar de RTP Realtime TransportProtocol) [5]. Au final,user2 raccroche envoyant ainsi le messageBYE acquittĂ© par une rĂ©ponse200OKune fois de plus. Bien Ă©videmment, un dialogue rĂ©el est beaucoup plus compliquĂ© et comprend enparticuler la nĂ©gociation des paramĂštres de la session multimĂ©dia tel que le codec Ă utiliser.
De plus, lâarchitecture SIP peut inclure un grand nombre de serveurs intermĂ©diaires non reprĂ©sentĂ©ssur lâexemple. La figure 8.1(b) dĂ©crit briĂšvement une architecture gĂ©nĂ©rale de SIP. Les diffĂ©rents Ă©lĂ©mentssont :
â les User-Agent : Ă©quipements finaux tels que les tĂ©lĂ©phonesou les passerelles vers les rĂ©seaux detĂ©lĂ©phonie classique,
â des serveurs :â les proxys transmettant les messages vers les Ă©quipementsfinaux,â les serveurs dâenregistrement (registrar) sur lesquels les utilisateurs se connectent pour sâiden-
tifier,â les serveurs de localisation (location server) indiquantoĂč se trouve un utilisateur,â les serveurs de redirection (redirect server) enregistrant les demandes des clients pour faire
suivre les messages (mobilité) et collaborant donc avec lesserveurs de localisation.
Jeu de données
Dans le cadre des expĂ©rimentations, des traces SIP ont Ă©tĂ© gĂ©nĂ©rĂ©es Ă partir de 27 Ă©quipements dif-fĂ©rents de fabricants variĂ©s incluant tout aussi bien des terminaux dĂ©diĂ©s (tĂ©lĂ©phones ou hardphones)que des logiciels de tĂ©lĂ©phonie (softphones). Ainsi, la tĂąche de dĂ©couverte des types de messages estencore plus ardue car les implantations dâun protocole peuvent lĂ©gĂšrement varier malgrĂ© une spĂ©cifica-tion commune. De plus, la figure 8.2 montre la distribution des 27 types diffĂ©rents que comporte le jeude donnĂ©es qui nâest pas uniforme, reflĂ©tant bien un rĂ©seau rĂ©el. En effet, Ă©quilibrer arbitrairement lesclasses nâaurait pas Ă©tĂ© rĂ©aliste et cette distribution amplifie la complexitĂ© de la classification car il ya beaucoup de clusters de tailles trĂšs variĂ©es. Cependant, pour Ă©viter quâelle ne biaise les rĂ©sultats, desmĂ©triques dâĂ©valuation adĂ©quates sont nĂ©cessaires et seront dĂ©taillĂ©es dans la section 8.3.
169
Chapitre 8. DĂ©couverte automatique des types de messages
0
0.05
0.1
0.15
0.2
0.25
1-200
0-OPTIO
NS
1-100
0-REGIS
TER
1-401
0-INVITE
0-ACK
0-NOTIFY
1-180
1-407
0-BYE
1-501
0-INFO
0-MESSAGE
1-183
1-404
1-503
1-481
1-486
1-202
0-REFE
R
1-603
0-CANCEL
1-480
1-415
0-PUBLIS
H
1-487
FIGURE 8.2 â Distribution empirique des message SIP (le prĂ©fixe 0 indique une requĂȘte tandis que 1prĂ©fixe les rĂ©ponses)
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
(a) IMAP
0
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
0.18
1-250
1-msg
0-QUIT
1-221
1-220
0-DATA
0-HELO
0-MAIL
1-354
0-RCPT
(b) SMTP
FIGURE 8.3 â Distributions empiriques des autres protocoles
8.2.2 Courriels
Les deux autres protocoles sur lesquels la nouvelle technique de classification des types sera testĂ©efont partie du domaine de la gestion des courriels. Ils sont complĂ©mentaires entre eux puisque IMAP [4]est dĂ©diĂ© Ă la rĂ©ception et SMTP [1] Ă lâenvoi.
Plus prĂ©cisĂ©ment, IMAP est un protocole supportant la consultation dâune boĂźte de courriels directe-ment sur le serveur sans les tĂ©lĂ©charger. Le jeu de donnĂ©es est constituĂ© de 521 paquets de 28 typesdiffĂ©rents comme le montre la figure 8.3(a) oĂč la distribution est encore plus dĂ©sĂ©quilibrĂ©e que pour SIP.
SMTP est le protocole standard pour envoyer des courriels. Le jeu de données en question contientseulement dix types pour un total de 150 messages. Leur distribution beaucoup plus équilibrée (figure8.3(b)) testera donc la méthodologie dans de nombreux cas bien différents augmentant ainsi la validitédes résultats obtenus.
170
8.3. Ăvaluation de la classification
8.3 Ăvaluation de la classification
La qualité de la classification des messages est mesurée selon plusieurs critÚres prenant en compte laperformance globale ainsi que celle par type. Les notationsutilisées sont les suivantes :
â n : nombre total de messages,â lâensembleM = m1, . . . ,mn de messages,â r diffĂ©rents types (classes, clusters) dĂ©couverts tel quer †n,â lâensembleC = c1, . . . ,cn des clusters de messages,â c(mi) le cluster ou type assignĂ© Ă mi ,â t(x) oĂčxâCâȘM reprĂ©sente le type rĂ©el dâun message ou dâun cluster,Dans lâintention de pouvoir Ă©valuer le type rĂ©el dâun message, il est obligatoire dâextraire ces types
en utilisant la syntaxe du protocole. Comme expliquĂ© dans lechapitre 5, la classification nâassocie pas untype rĂ©el aux clusters puisquâaucune grammaire nâest disponible et quâelle vise seulement Ă regrouper lesmessages de mĂȘme type ensemble. Dans le cadre de lâĂ©valuation, un type rĂ©el leur est associĂ© Ă partir desmessages quâil regroupe. En effet, le cluster est Ă©tiquetĂ© par le type majoritaire quâil contient. Cependant,si plusieurs clusters se rĂ©vĂšlent ĂȘtre du mĂȘme type, seul celui incluant le plus grand nombre de messagescorrespondant est conservĂ©. Les autres sont alors ignorĂ©s et rĂ©unis dans un cluster «corbeille» donttous les messages sont considĂ©rĂ©s comme mal identifiĂ©s. Celarenforcera encore les rĂ©sultats car un typesur-reprĂ©sentĂ© dans plusieurs clusters peut occulter les autres.
8.3.1 Précision
La proportion de messages assignés à leur type réel se définitcomme la précision :
prec=âmiâM|t(mi)=t(c(mi))1
n(8.1)
8.3.2 Nombre de types
Cette seconde métrique mesure le nombre de classes trouvéespar rapport au nombre réel :
%types=rk
(8.2)
8.3.3 Sensibilité
Alors quâobtenir une bonne prĂ©cision est aisĂ© en se concentrant uniquement sur les types les pluscourants et en ignorant les autres tel que les types603 , 480 , 486 , 487 de la figure 8.2, la sensibilitĂ©mesure la prĂ©cision individuelle de chaque classe, câest-Ă -dire la proportion de messages dâun certaintype correctement identifiĂ©s. Cette mĂ©trique peut aussi se trouver sous lâappellation «rappel» dans lalittĂ©rature. Ătant donnĂ©e une classec, elle se dĂ©finit comme :
sens(y) =âmiâM|t(mi)=yxi
âmiâM|t(mi )=y1avec xi = 1 si t(mi) = t(c(mi)) sinon0 (8.3)
171
Chapitre 8. DĂ©couverte automatique des types de messages
0
0.2
0.4
0.6
0.8
1
0.001 0.005 0.01 0.05 0.1 1
Précision
%Types trouvés
Sensibilité (moyenne)
Sensibilité (écart-type)
(a) Ăvaluation de la classification
0
0.05
0.1
0.15
0.2
0.25
1-200
0-OPTIO
NS
1-100
0-REGIS
TER
1-401
0-INVITE
0-ACK
0-NOTIFY
1-180
1-407
0-BYE
1-501
0-INFO
0-MESSAGE
1-183
1-404
1-503
1-481
1-486
1-202
0-REFE
R
1-603
0-CANCEL
1-480
1-415
0-PUBLIS
H
1-487
DécouvertNon découvert
(b) Identification des types avecÏ = 0.005
FIGURE 8.4 â Clustering hiĂ©rarchique â Distribution ordonnĂ©e des caractĂšres
En pratique, mener une analyse approfondie sur la sensibilitĂ© de plusieurs dizaines de types est la-borieux sans pour autant donner une indication claire sur les performances. Ainsi, il est prĂ©fĂ©rable decalculer la moyenne et lâĂ©cart type sur toutes les classes etdây adjoindre la composition exacte desclasses identifiĂ©es si nĂ©cessaire. Par exemple, la figure 8.4(b) indique pour chaque type, la proportionde messages reconnus et ceux non identifiĂ©s tout en rappelantla proportion de ce type (hauteur deshistogrammes) dans le jeu de donnĂ©es.
8.4 Expérimentations sur SIP
8.4.1 Partitionnement hiérarchique
Distribution ordonnée des caractÚres
La premiĂšre expĂ©rience tente de classer les messages en utilisant la mĂ©thode du partitionnementhiĂ©rarchique grĂące Ă la distribution ordonnĂ©e des caractĂšres dont le principal intĂ©rĂȘt est sa rĂ©sistance faceĂ un chiffrement simple avec XOR. Cet algorithme se base sur une distance maximaleÏ autorisĂ©e entredeux clusters Ă regrouper. La figure 8.4(a) prĂ©sente les rĂ©sultats de la classification pour plusieurs valeursde Ï. MalgrĂ© lâavantage Ă©voquĂ© prĂ©cĂ©demment, cette mĂ©trique nâest pas trĂšs performante. Le meilleurcompromis atteignable (Ï = 0.005) nâest capable de distinguer que 60% des types et de correctementassigner 40% des messages. Cela implique donc une sensibilitĂ© Ă©gale Ă 0% pour les 40% de types ignorĂ©sdâoĂč une sensibilitĂ© moyenne basse mais surtout un Ă©cart type trĂšs Ă©levĂ© lui mĂȘme supĂ©rieur Ă la moyenne.
La composition des clusters correspondants est donnĂ© sur lafigure 8.4(b) rĂ©vĂ©lant clairement lâinutil-itĂ© de la distribution ordonnĂ©e des caractĂšres des messagescar aucun type ne prĂ©sente rĂ©ellement de bonsrĂ©sultats, câest-Ă -dire quâune proportion de messages de chaque type subsiste non correctement assignĂ©eexceptĂ© pour0-NOTIFY qui nâest malheureusement pas le type le plus significatif. Par consĂ©quent, ten-ter dâappliquer une seconde classification sur ces premiersclusters nâamĂ©liorera pas les performances.Effectivement, ce type de technique en deux passes cherche,dans un premier temps, Ă diffĂ©rencier desmĂ©ta-clusters de plusieurs types mais nĂ©anmoins consistants afin de les Ă©clater en plusieurs pendant laseconde passe.
172
8.4. Expérimentations sur SIP
0.2
0
0.4
0.6
0.8
1
0.01 0.05 0.1 0.3 0.7
Précision
%Types trouvés
Sensibilité (moyenne)
Sensibilité (écart-type)
(a) Ăvaluation de la classification
0
0.05
0.1
0.15
0.2
0.25
1-200
0-OPTIO
NS
1-100
0-REGIS
TER
1-401
0-INVITE
0-ACK
0-NOTIFY
1-180
1-407
0-BYE
1-501
0-INFO
0-MESSAGE
1-183
1-404
1-503
1-481
1-486
1-202
0-REFE
R
1-603
0-CANCEL
1-480
1-415
0-PUBLIS
H
1-487
DécouvertNon découvert
(b) Identification des types avecÏ = 0.1
FIGURE 8.5 â Clustering hiĂ©rarchique â Distribution des caractĂšres
Enfin, cette premiĂšre classification illustre le comportement du partitionnement hiĂ©rarchique lorsqueson paramĂštre principal,Ï, varie et dont lâimpact sur les rĂ©sultats est considĂ©rable comme le montre lafigure 8.4(a). Ainsi, lorsqueÏ augmente, des clusters plus Ă©loignĂ©s peuvent ĂȘtre groupĂ©s impliquant uneaugmentation de la largeur des clusters obtenus et donc une diminution de leur nombre. A contrario,lâĂ©volution de la prĂ©cision et de la sensibilitĂ© selon le paramĂštreÏ nâest pas aussi Ă©vidente. Par exemple,au fur et Ă mesure de lâaugmentation deÏ, la prĂ©cision commence par croĂźtre avant dâĂȘtre dĂ©gradĂ©e. Eneffet, Ï petit engendre la crĂ©ation de multiples micro-clusters Ă©parpillant ainsi les messages de mĂȘmetype au sein dâentre eux mais aidant alors Ă dĂ©couvrir lâensemble des types rĂ©els. Cependant, seul uncluster par type est considĂ©rĂ© comme juste et les autres ignorĂ©s dâoĂč des rĂ©sultats mĂ©diocres. LorsqueÏcroĂźt, ces derniers sont rassemblĂ©s dâoĂč une amĂ©lioration de la prĂ©cision. Ă partir dâun certain moment,les clusters contenant des messages diffĂ©rents sont alors fusionnĂ©s dâoĂč de plus mauvais rĂ©sultats.
Distribution des caractĂšres
Au vu des faibles rĂ©sultats prĂ©cĂ©dents, la contrainte souple de la rĂ©sistance face Ă un chiffrage estlevĂ©e permettant ainsi lâusage de la mĂ©trique de distribution des caractĂšres. En consĂ©quence, la compara-ison de deux messages se base sur la proportion mĂȘme de chaquecaractĂšre prĂ©cis alors que la distribu-tion ordonnĂ©e ignorait cette information et comparait les proportions de deux caratĂšres distincts. Lâajoutdâinformation dans la reprĂ©sentation des messages devraitdonc logiquement permettre dâatteindre demeilleures performances. Malheureusement, la prĂ©cision reprĂ©sentant le nombre de messages correcte-ment discernĂ©s demeure faible sur la figure 8.5(a) puisquâelle vaut au maximum 46%. Cependant, la dif-fĂ©rence majeure rĂ©side dans sa facultĂ© Ă trouver un plus grand nombre de types (90% lorsqueÏ = 0.05),tout en conservant une prĂ©cision similaire Ă celle obtenue dans le meilleur des cas avec la distributionordonnĂ©e de la figure 8.4(a) qui ne distinguait que 60% des types. Par consĂ©quent, la sensibilitĂ© moyenneest plus forte. Malheureusement, la composition des clusters pour un bon compromis (Ï = 0.1) ne mettoujours pas en Ă©vidence des propriĂ©tĂ©s qui laisseraient envisager une deuxiĂšme passe de classification.
Distribution des positions pondérées des caractÚres
Pour rappel, la pondĂ©ration des caractĂšres tient compte du fait que les premiers octets dâun messagespĂ©cifient gĂ©nĂ©ralement son type. SIP prĂ©sente aussi ce modĂšle de conception. Par exemple, le message
173
Chapitre 8. DĂ©couverte automatique des types de messages
0
0.2
0.4
0.6
0.8
1
0.1 1 10
Précision
%Types trouvés
Sensibilité (moyenne)
Sensibilité (écart-type)
(a) Ăvaluation de la classification
0
0.05
0.1
0.15
0.2
0.25
1-200
0-OPTIO
NS
1-100
0-REGIS
TER
1-401
0-INVITE
0-ACK
0-NOTIFY
1-180
1-407
0-BYE
1-501
0-INFO
0-MESSAGE
1-183
1-404
1-503
1-481
1-486
1-202
0-REFE
R
1-603
0-CANCEL
1-480
1-415
0-PUBLIS
H
1-487
DécouvertNon découvert
(b) Identification des types avecÏ = 1
FIGURE 8.6 â Clustering hiĂ©rarchique â Distribution des positionspondĂ©rĂ©es des caractĂšres
INVITE contient deux « I» dans ces 7 premiers octets alors quâun message «MESSAGE» nâen con-tient aucun. Cependant, les messages SIP contiennent la dĂ©finition de nombreux champs comme desparamĂštres ou des identifiants uniformes de ressources (URI). Ces champs sont gĂ©nĂ©ralement plus longsque le mot-clĂ© dĂ©finissant le type et peuvent contenir une multitude de lettres « I» Ă©galement dâoĂč uneprĂ©fĂ©rence lĂ©gitime pour lâutilisation de positions pondĂ©rĂ©es accordant plus dâimportance aux premiersoctets que lâusage des positions non pondĂ©rĂ©es.
Les rĂ©sultats dĂ©taillĂ©s dans la figure 8.6(a) sont trĂšs encourageants car tous les types sont discernĂ©stout en Ă©tiquetant correctement 85% des messages dans le meilleur des cas. La sensibilitĂ© moyenneest aussi clairement amĂ©liorĂ©e prouvant donc que ces bons rĂ©sultats ne sont pas uniquement dĂ»s aubon classement des messages les plus reprĂ©sentatifs. CettederniĂšre conclusion se voit renforcĂ©e par lefaible Ă©cart type associĂ© ainsi que la figure 8.6(b) rĂ©vĂ©lantquâil semble que ce soient les types les plussignificatifs qui contiennent une part relativement importante de messages non identifiĂ©s.
8.4.2 Support Vector Clustering
La mĂ©thode SVC ou Suport Vector Clustering est paramĂ©trĂ©e par deux paramĂštres principaux : leparamĂštre gaussienq amplifiant plus ou moins les distances entre les messages lorsquâils sont projetĂ©sdans lâespace de re-description et le paramĂštreC permettant de pĂ©naliser plus ou moins de messagesrestant Ă lâextĂ©rieur de lâhypersphĂšre pendant la phase dâapprentissage (voir la section A.3 pour de plusamples dĂ©tails).
La distribution des positions se rĂ©vĂ©lant ĂȘtre nettement plus profitable que les autres mĂ©triques, ellefera lâobjet essentiel des tests suivants. Cependant, la distribution ordonnĂ©e des caractĂšres est employĂ©eune fois de plus avec SVC car sa rĂ©sistance face au chiffrement par XOR implique dây porter Ă©gale-ment attention. La figure 8.7 prĂ©sente des rĂ©sultats gĂ©nĂ©raux lors de lâapplication de SVC avec une tellemĂ©trique. La mĂ©thode fut testĂ©e avec de nombreuses valeurs de q et C (1 couple par valeur de lâaxedes abscisses) mais ne nĂ©cessite pas dây porter attention ici car les performances sont trĂšs mauvaisesquelque soit la configuration. La prĂ©cision est proche de 20%gĂ©nĂ©ralement avec peu de clusters trouvĂ©set reprĂ©sente principalement le fait que seule la classe1-200 soit trouvĂ©e. La dĂ©couverte efficace des
174
8.4. Expérimentations sur SIP
0
0.2
0.4
0.6
0.8
1
Précision%Types trouvés
FIGURE 8.7 â SVC â Distribution ordonnĂ©e des caractĂšres
diffĂ©rents types de messages se fait au dĂ©triment de la prĂ©cision comme le montrent les 4 histogrammesse dĂ©marquant clairement sur le graphe. Par consĂ©quent, la distribution ordonnĂ©e des caractĂšres nâest pasenvisageable avec SVC.
La mise en Ćuvre de la distribution des positions pondĂ©rĂ©es se rĂ©vĂšle quant Ă elle incontestable-ment plus efficace comme lâillustre la figure 8.8. Dans le meilleur des cas, la prĂ©cision est de 73% touten parvenant Ă mettre en exergue lâensemble des types de messages. Comme pour le partitionnementhiĂ©rarchique, la sensibilitĂ© moyenne Ă©levĂ©e indique une classification identifiant correctement la plupartdes types. Cependant une analyse dĂ©taillĂ©e des sensibilitĂ©s par type montre que certains dâentre euxsont trĂšs difficilement discernĂ©s. Ainsi, les rĂ©sultats obtenus sont lĂ©gĂšrement infĂ©rieurs Ă la technique dupartitionnement hiĂ©rarchique (prĂ©cision = 85%).
Concernant lâimpact des diffĂ©rents paramĂštres de SVC,C a un impact trĂšs faible sur la classificationcomme le montre la figure 8.8(a). En rĂ©alisant dâautres testsplus approfondis,C nâa pas dâeffet significatiftant que lâon reste dans une valeur adĂ©quate Ă SVC introduitepar la formule (5.14) du chapitre 5 :
ÎČ_init i <C< 1
La seule contrainte supplĂ©mentaire pour obtenir une classification Ă©quivalente est de ne pas choisir desvaleurs trop extrĂȘmes, câest-Ă -dire proche de un.q accroĂźt les diffĂ©rences entre les messages dâoĂč un effetconsidĂ©rable sur la classification. Effectivement, lorsque q augmente, les diffĂ©rences entre les messagesaussi, ceux-ci sont de plus en plus sĂ©parĂ©s permettant ainside passer dâun grand cluster trop global Ă desclusters plus spĂ©cifique et donc une meilleure prĂ©cision. A contrario, quandq augmente exagĂ©rĂ©ment,les clusters sont encore Ă©clatĂ©s dispersant les messages demĂȘme type et rĂ©duisant ainsi la prĂ©cision de laclassification. Le nombre de types dĂ©couverts est quant Ă luicroissant car une augmentation du nombrede clusters sâaccompagne logiquement de la dĂ©couverte dâunplus grand nombre de types.
8.4.3 MĂ©thode globale
Alors que le meilleur compromis avec SVC concordait avecq = 1, lâidentification spĂ©cifique dechaque type dans le casq= 0.1 se rĂ©vĂšle intĂ©ressante sur la figure 8.8(b). En effet, contrairement au casprĂ©cĂ©dent, seuls quelques types sont rĂ©ellement distinguĂ©s mais de façon efficace. A contrario, les types
175
Chapitre 8. DĂ©couverte automatique des types de messages
0
0.2
0.4
0.6
0.8
1
0.1 1 10 0.1 1 10
q
Précision
%Types trouvés
Sensibilité (moyenne)
Sensibilité (écart-type)
C = 0.04 C = 0.1
(a) Ăvaluation de la classification
0
0.05
0.1
0.15
0.2
0.25
1-200
0-OPTIO
NS
1-100
0-REGIS
TER
1-401
0-INVITE
0-ACK
0-NOTIFY
1-180
1-407
0-BYE
1-501
0-INFO
0-MESSAGE
1-183
1-404
1-503
1-481
1-486
1-202
0-REFE
R
1-603
0-CANCEL
1-480
1-415
0-PUBLIS
H
1-487
DécouvertNon découvert
(b) Identification des types avecq= 0.1
FIGURE 8.8 â SVC â Distribution des positions pondĂ©rĂ©es des caractĂšres
mĂ©diocrement dĂ©couverts sont associĂ©s Ă une sensibilitĂ© extrĂȘmement faible voire nulle dâoĂč un Ă©carttype Ă©levĂ© sur la figure 8.8(a) et ce malgrĂ© une prĂ©cision presque maximale (70%). Cette observationindique donc que des mĂ©ta-clusters regroupant plusieurs types ont Ă©tĂ© crĂ©Ă©s et appliquer une secondepasse de classification tel quâun partitionnement hiĂ©rarchique est cette fois-ci justifiĂ©.
Par consĂ©quent, les clusters construits prĂ©cĂ©demment sontalors dĂ©coupĂ©s chacun de leur cĂŽtĂ©. SuiteĂ plusieurs tests, le partitionnement paramĂ©trĂ© parÏ = 1.1 sâest rĂ©vĂ©lĂ© extraordinairement performantpuisque la prĂ©cision devient alors Ă©gale Ă 91% avec 96% des types dĂ©couverts.
8.5 Autres protocoles
Suite aux nombreuses expĂ©rimentations sur le protocole SIP, la nouvelle mĂ©thode de rĂ©tro-ingĂ©nieriede dĂ©couverte automatique des types de messages fut testĂ©e avec les protocole IMAP et SMTP. Danslâoptique de pouvoir rapidement tester ces derniers, seules les positions pondĂ©rĂ©es des caractĂšres sontconsidĂ©rĂ©es tout en y appliquant une normalisation classique en soustrayant la moyenne et en divisantpar lâĂ©cart type. Ainsi, les paramĂštres utilisĂ©s seront identiques quelque soit le protocole.
8.5.1 Partitionnement hiérarchique
En premier lieu, un partitionnement hiĂ©rarchique est mis enĆuvre occasionnant les rĂ©sultats de lafigure 8.9. La prĂ©cision est similaire pour les deux protocoles et moins de 50% des messages sont cor-rectement identifiĂ©s. GrĂące Ă la normalisation des donnĂ©es,la valeur deÏ donnant le meilleur compromisest identique quelque soit le protocole, câest-Ă -direÏ = 20. Toutefois, les rĂ©sultats restent trĂšs modestes.
176
8.6. Paramétrage automatique de SVC
0
0.2
0.4
0.6
0.8
1
1 10 20 50
IMAP
Précision%Types trouvés
SensibilitĂ© (moyenne)SensibilitĂ© (Ă©cartâtype)
0
0.2
0.4
0.6
0.8
1
1 10 20 50
SMTP
Précision%Types trouvés
SensibilitĂ© (moyenne)SensibilitĂ© (Ă©cartâtype)
FIGURE 8.9 â Partitionnement hiĂ©rarchique â autres protocoles (Ï en abscisse)
8.5.2 Support Vector Clustering
Les rĂ©sultats obtenus par lâapplication de SVC sur le jeu de donnĂ©es IMAP sont proches de ceuxobtenus avec le partitionnement hiĂ©rarchique. En effet, seuls 36% des messages sont affectĂ©s au boncluster soulignant lâimportance de la classification Ă deuxniveaux pour laquelle ce chiffre sâĂ©lĂšve Ă 49%. Ce rĂ©sultat est lĂ©gĂšrement supĂ©rieur au partitionnement hiĂ©rarchique mais son principal avantageest le nombre de types trouvĂ©s passant de 62 Ă 96% avec cette nouvelle mĂ©thode. En clair, la nouvellemĂ©thode proposĂ©e est au moins aussi prĂ©cise que le partitionnement hiĂ©rarchique tout en Ă©tant capablede dĂ©couvrir la majoritĂ© des types rĂ©els.
SVC amĂ©liore clairement les performances sur le protocole SMTP car autant de types sont dĂ©couvertsque pour le partitionnement hiĂ©rarchique mais la prĂ©cisionest multipliĂ©e par 1,6 passant ainsi de 45 Ă 72%. En exĂ©cutant la second passe, la prĂ©cision grimpe jusquâĂ 74%. LâĂ©cart type reste relativementĂ©levĂ© car un type est totalement ignorĂ©.
8.6 Paramétrage automatique de SVC
En plus dâadapter une nouvelle technique de classification,le chapitre 5 suggĂ©rait un paramĂ©trageautomatique de SVC. Concernant le paramĂštreC, les expĂ©rimentations prĂ©cĂ©dentes ont confirmĂ© sonfaible impact et il peut ĂȘtre fixĂ© de la maniĂšre suivante :
ÎČ_init i =1N
/C
.Ătant donnĂ© le paramĂštreq, la mĂ©triqueevol_c(q) mesure lâĂ©volution du nombre de clusters entre
deux valeurs testĂ©es deq alors queevol_w(q) est lâĂ©volution de la plus grande largeur dâun cluster, elle-mĂȘme dĂ©finie comme la plus grande distance entre deux messages dâun mĂȘme cluster. Cette distance
177
Chapitre 8. DĂ©couverte automatique des types de messages
0
0.2
0.4
0.6
0.8
1
0.01 0.1 0.15 5
C = 0.2
Précision%Types trouvés
SensibilitĂ© (moyenne)SensibilitĂ© (Ă©cartâtype)
0
0.2
0.4
0.6
0.8
1
0.01 0.1 0.15 5
C = 0.3
Précision%Types trouvés
SensibilitĂ© (moyenne)SensibilitĂ© (Ă©cartâtype)
FIGURE 8.10 â SVC - SMTP dataset
doit bien Ă©videmment ĂȘtre calculĂ©e de la mĂȘme maniĂšre que pendant le clustering. Au vue des rĂ©sultatsprĂ©cĂ©dents, lâutilisation des positions pondĂ©rĂ©es est conseillĂ©e.
Le rĂŽle de la premiĂšre passe de SVC est donc de crĂ©er des grandsclusters pouvant regrouper plusieurstypes sans toutefois ĂȘtre mĂ©langĂ©s parmi plusieurs. Ainsi une augmentation deq doit impliquer uneobservation significative du nombre de cluster ainsi quâunerĂ©duction de la largeur maximale indiquantque lâaugmentation du nombre de clusters est bien dĂ»e Ă une division franche dâun ou plusieurs grosclusters.evol_w(q) est en fait lâĂ©volution opposĂ©e de la largeur maximale permettant de tracer les deuxmĂ©triques sur un mĂȘme graphe Ă lâinstar de la figure 8.11.
Le paramĂ©trage dâIMAP rĂ©vĂšle plusieurs pics pourevol_w(q) dont le dernier pour la valeurq= 8.5est facilement exclu car le nombre de clusters construits croĂźt moins rapidement comme le dĂ©montreune valeur pratiquement nulle pourevol_c(q). Le pic enq = 5.5 correspond Ă la valeur sĂ©lectionnĂ©emanuellement dans les tests prĂ©cĂ©dents. Cependant, le premier pic demeure le plus intĂ©ressant car ilreprĂ©sente une augmentation majeure des deux mĂ©triques. Enappliquant de nouveau la technique declassification avec ce paramĂštre, les rĂ©sultats sont lĂ©gĂšrement meilleurs avec une prĂ©cision de 50%. Ainsi,le bon paramĂštre semble ĂȘtre celui coĂŻncidant avec une augmentation brutale des deux mĂ©triques. Lafigure 8.11(b) expose plusieurs pics abrupts mais aucun dâentre eux ne sont vraiment simultanĂ©s. Il estdonc nĂ©cessaire dâintroduire une certaine marge de libertĂ©dans la simultanĂ©itĂ© des deux mĂ©triques touten considĂ©rant que le pic le plus Ă©levĂ© des deux spĂ©cifiera la valeur Ă choisir. Par consĂ©quent, le premierpic clairement identifiable induitq= 0.02 qui, malgrĂ© sa diffĂ©rence par rapport Ă la valeur sĂ©lectionnĂ©emanuellement, permet dâaugmenter la prĂ©cision dâun point.
Concernant SIP, les plages de valeurs deevol_w(q) etevol_c(q) sont trop diffĂ©rentes et se retrouventainsi tracĂ©es sur deux graphiques diffĂ©rents sur la figure 8.12. LâĂ©volution de la largeur du plus grandcluster ne dĂ©voile quâune seule augmentation brutale pour laquelle la courbe du nombre de clustersprĂ©sente Ă©galement un pic. Cette valeur sĂ©lectionnĂ©e automatiquement estq= 0.05 et, bien que diffĂ©rentede la valeur manuellement choisie, permet dâobtenir les mĂȘmes performances.
178
8.7. Conclusion
0
0.1
0.2
0.3
0.4
0.5
0 1 2 3 4 5 6 7 8 9 10
q
evol_w(q)evol_c(q)
(a) IMAP
0
0.1
0.2
0.3
0.4
0.5
0 0.05 0.1 0.15 0.2 0.25 0.3
q
evol_w(q)evol_c(q)
(b) SMTP
FIGURE 8.11 â SVC â ParamĂ©trage automatique deq
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0 0.25 0.5 0.75 1 1.25
q
evol_w(q)
0
0.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
0 0.25 0.5 0.75 1 1.25
q
evol_c(q)
FIGURE 8.12 â tuningSIP
8.7 Conclusion
Les tests menĂ©s au cours de ce chapitre ont mis en Ă©vidence de bonnes performances pour la clas-sification Ă deux niveaux proposĂ©e dans le chapitre 5 se basant sur SVC et une nouvelle reprĂ©sentationdes messages. Effectivement, la distribution des positions pondĂ©rĂ©es des caractĂšres sâillustre comme uncritĂšre dĂ©terminant dans la diffĂ©renciation des types de messages. Cette Ă©tape est essentielle dans le cadrede la rĂ©tro-ingĂ©nierie car elle constitue la premiĂšre Ă©tapepour apprĂ©hender le fonctionnement dâun pro-tocole inconnu pour notamment en construire sa machine Ă Ă©tats. Par exemple, il devient possible dedĂ©terminer le fonctionnement protocolaire dâun malware voire de cibler plus prĂ©cisĂ©ment les requĂȘtes Ă injecter pour le rendre hors de nuire.
Enfin, la comparaison avec une mĂ©thode plus classique de partitionnement hiĂ©rarchique a mis enĂ©vidence lâintĂ©rĂȘt de cette nouvelle mĂ©thode impliquant une prĂ©cision au moins tout aussi bonne maisaussi une dĂ©couverte plus efficace des types câest-Ă -dire quâelle ne se focalise pas uniquement sur lestypes les plus reprĂ©sentĂ©s dans le jeu de donnĂ©es.
179
Chapitre 8. DĂ©couverte automatique des types de messages
En plus de la vĂ©rification de lâapplication de cette mĂ©thode,le chapitre 5 avait clairement mis enĂ©vidence son intĂ©rĂȘt en terme de complexitĂ©. Cette mĂ©thode est performante, utilise une reprĂ©sentationsimplifiĂ©e et condensĂ©e des messages et repose uniquement sur lâobservation de traces rĂ©seaux.
Enfin, Ă lâinstar des mĂ©thodes pour paramĂ©trer correctementla classification hiĂ©rarchique automa-tiquement [11], Ă©tablir un procĂ©dĂ© visant cet objectif dansle cadre de SVC sâest avĂ©rĂ© essentiel. Ainsi,en plus de contribuer au domaine de la rĂ©tro-ingĂ©nierie, ce nouveau procĂ©dĂ© sâĂ©tend au domaine de laclassification en gĂ©nĂ©rale et peut ainsi aider Ă dĂ©mocratiser lâutilisation de SVC.
180
9
Identification des Ă©quipements
Sommaire9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 181
9.2 MĂ©triques dâĂ©valuation . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . 182
9.3 Fingerprinting comportemental . . . . . . . . . . . . . . . . . . . .. . . . . . 183
9.3.1 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.3.2 Paramétrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.3.3 Réseau opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.4 Fingerprinting syntaxique . . . . . . . . . . . . . . . . . . . . . . . .. . . . . 188
9.4.1 Jeux de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
9.4.2 Fingerprinting supervisé . . . . . . . . . . . . . . . . . . . . . . .. . . 191
9.4.3 Fingerprinting non supervisé . . . . . . . . . . . . . . . . . . . .. . . . 192
9.4.4 Opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
9.1 Introduction
Ce chapitre Ă©value la viabilitĂ© des diffĂ©rentes techniquesde fingerprinting Ă©laborĂ©es dans le chapitre6 visant Ă dĂ©terminer le type dâun Ă©quipement pour un protocole donnĂ©. Dans cette Ă©tude, ces mĂ©th-odes seront illustrĂ©es grĂące au protocole SIP introduit dans la section 8.4. Pour rappel, ces mĂ©thodesreposent sur des descriptions sĂ©mantiquement riches dâun ou plusieurs messages dans lâoptique dâĂȘtredifficilement contrefaites.
Ainsi, la premiĂšre reprĂ©sentation est dite comportementale car elle regroupe un ensemble de mes-sages au sein dâun arbre TR-FSM illustrant les sĂ©quences possibles de messages et les dĂ©lais entre eux.Cette caractĂ©risation peut alors ĂȘtre testĂ©e avec la mĂ©thode des machines Ă vecteurs de support grĂące Ă une fonction noyau spĂ©cialement dĂ©finie. Lâautre reprĂ©sentation possible sâappuie sur la structure hiĂ©rar-chique et syntaxique des champs composants un message car une telle structure peut difficilement ĂȘtrecontrefaite. Les machines Ă vecteurs de support seront Ă©galement employĂ©es mais aussi complĂ©tĂ©es parun nouvel algorithme de classification totalement non supervisĂ©, câest-Ă -dire ne nĂ©cessitant pas de phasedâapprentissage.
181
Chapitre 9. Identification des Ă©quipements
Ce chapitre va donc montrer les performances des diffĂ©rentes mĂ©thodes ainsi que lâimpact de leursparamĂštres pour en faciliter une utilisation future. Cependant, les rĂ©sultats ne sont pas directement com-parables car chaque mĂ©thode ne sâapplique pas au mĂȘme cas selon lâinformation disponible. Ainsi, le fin-gerprinting comportemental est applicable en ne connaissant que les types de messages, tĂąche rĂ©alisablegrĂące Ă la mĂ©thode proposĂ©e et Ă©valuĂ©e dans les chapitres 5 et8, alors que le fingerprinting syntaxiquedemande la connaissance complĂšte de la grammaire des messages du protocole. ParallĂšlement, un jeudâapprentissage correct doit ĂȘtre fourni pour les techniques supervisĂ©es.
9.2 MĂ©triques dâĂ©valuation
La qualitĂ© de la classification se basera sur certaines mĂ©triques habituellement utilisĂ©es [21] dontune partie a dĂ©jĂ Ă©tĂ© dĂ©crite au chapitre prĂ©cĂ©dent. ConsidĂ©rant xd le nombre dâarbres associĂ©s Ă unĂ©quipement de typed, yd le nombre dâarbres identifiĂ©s comme de typed et zd2d1 le nombre dâar-bres de typed2 classĂ©s commed1, N le nombre total dâarbres, la prĂ©cision est la proportion gĂ©nĂ©raledâĂ©quipements correctement identifiĂ©s :
acc= âdâD
zdd/N (9.1)
La sensibilitĂ© est le nombre dâĂ©quipements dâun typed identifiĂ©s correctement :
sens(d) = zdd/xd (9.2)
Le ratio suivant est le nombrer de différents types découverts par le fingerprinting non supervisé encomparaison du nombrek de types distincts réels :
%types=rk
(9.3)
De plus, la spĂ©cificitĂ© mesure la consistance dâun cluster encalculant le nombre dâarbres quâil con-tient, correspondant au type du cluster :
spec(d) = zdd/yd (9.4)
Les mĂ©triques individuelles ne donnent malheureusement pas un aperçu global des performancesdâoĂč lâintroduction de valeurs moyennes :
avg_sens= âdiâD
sens(di)/N
avg_spec= âdiâD
spec(di)/N(9.5)
Alors que la prĂ©cision donne un rapide aperçu des performances, elle peut facilement ĂȘtre biaisĂ©e.En effet, si une classe reprĂ©sente 80% des donnĂ©es Ă classer,il suffit de ranger toutes les donnĂ©es au seinde cette classe afin dâobtenir une prĂ©cision de mĂȘme envergure. En consĂ©quence, la prĂ©cision doit ĂȘtremodĂ©rĂ©e selon une mĂ©trique tenant compte de la rĂ©partition des donnĂ©es dans les classes Ă lâinstar ducoefficient dâinformation mutuelle :
IC =H(X)+H(Y)âH(Z)
H(X)(9.6)
oĂč H est lâentropie appliquĂ©e sur les distributions suivantes :
182
9.3. Fingerprinting comportemental
â X = xi/Nâ Y = yi/Nâ Z = zi j /N
Ce coefficient varie entre zĂ©ro et un (classification parfaite) et reflĂšte Ă la fois la sensibilitĂ© et la spĂ©cificitĂ©.Dans le cas du petit exemple prĂ©cĂ©dent avec une prĂ©cision Ă©gale Ă 80%,IC vaut 0, synonyme dâunemauvaise classification.
Comme dans le chapitre prĂ©cĂ©dent, la classification non supervisĂ©e ne peut en aucun cas associer untype rĂ©el aux clusters car ce nâest pas son objectif. LâĂ©valuation nĂ©cessite nĂ©anmoins dâassigner un typeĂ chaque cluster selon le procĂ©dĂ© suivant :
1. chaque cluster se voit attribuer le type correspondant Ă la majoritĂ© des arbres quâil contient,
2. pour chaque type rĂ©el diffĂ©rent, seul le cluster Ă©tiquetĂ©par ce type et contenant le plus dâarbrescorrespondants est conservĂ©.
La derniĂšre Ă©tape construit donc un cluster collectant les donnĂ©es de tous ceux qui ont Ă©tĂ© Ă©liminĂ©s.LâĂ©valuation du coefficient dâinformation nâa alors pas de sens dâoĂč lâutilisation du F-Score dans le casnon supervisĂ© :
Fâscore=2Ăavg_sensĂavg_spec
avg_spec+avg_sens(9.7)
F â scorecombine la sensibilitĂ© et la spĂ©cificitĂ© mais ne reflĂšte pas ladistribution des messages dansle jeu de donnĂ©es. Toutefois, une dĂ©couverte des types les plus reprĂ©sentĂ©s seulement induit un scoremĂ©diocre.
9.3 Fingerprinting comportemental
LâimplĂ©mentation du fingerprinting comportemental est rĂ©alisĂ©e en python interfacĂ© avec LIBSVM[1] et KiF [34].
9.3.1 Jeu de données
Plusieurs jeux de donnĂ©es distincts serviront Ă lâĂ©valuation du fingerprinting comportemental. Lepremier fut gĂ©nĂ©rĂ© via une plate-forme dâessai locale comprenant aussi bien des tĂ©lĂ©phones physiques dediffĂ©rentes marques (Cisco, Linksys, Snom, Thomson) que des logiciels de tĂ©lĂ©phonie commeTwinkleou Ekiga . De plus, des serveurs sont Ă©galement dĂ©ployĂ©s commeAsterisk , Cisco Call Manager ,Openser . Pour rendre la tĂąche encore plus difficile, un type dâĂ©quipement (pile protocolaire) peut ĂȘtrereprĂ©sentĂ© par plusieurs versions diffĂ©rentes. Ce premierjeu de donnĂ©e sera dĂ©notĂ©jeu dâessaipar lasuite alors que les autres seront nommĂ©sjeu opĂ©rateurcar ils proviennent dâun opĂ©rateur VoIP rĂ©el. PlusprĂ©cisĂ©ment, ils en existent quatre (de T1 Ă T4), chacun reprĂ©sentant environ 45Mo de traces rĂ©seaux.Lâenvironnement est diffĂ©rent de la plate-forme dâessai car il est composĂ© en majoritĂ© dâĂ©quipementsphysiques connectĂ©s via Internet dâoĂč des dĂ©lais plus Ă©levĂ©s (tableau 9.1) et beaucoup plus bruitĂ©s per-mettant ainsi dâestimer la robustesse du nouveau systĂšme defingerprinting.
Le tableau 9.1 donne un aperçu global des caractĂ©ristiques des diffĂ©rents jeux de donnĂ©es en dĂ©-taillant le nombre de messages SIP, le nombre de types dâĂ©quipements mais aussi le nombre dâappelstentĂ©s Ă©quivalent au nombre de messagesINVITE . Bien que contenant beaucoup plus de messages etdâĂ©quipements diffĂ©rents, les jeux opĂ©rateurs renfermentpeu de messages de ce genre car la plupart dessessions SIP visent Ă enregistrer les diffĂ©rents utilisateurs (typeREGISTER). Les jeux de donnĂ©es sont
183
Chapitre 9. Identification des Ă©quipements
Essai T1 T2 T3 T4#types équipement 26 40 42 40 40#messages 18066 96033 95908 96073 96031#message INVITE 3183 1861 1666 1464 1528#sessions 2686 30006 29775 30328 30063Moyenne(#messages/session)6.73 3.20 3.22 3.16 3.20Moyenne(délai) (sec) 1.53 7.32 6.76 6.11 8.52
TABLE 9.1 â CaractĂ©ristiques des jeux de donnĂ©es
bien complĂ©mentaires car le jeu opĂ©rateur exprime le comportement dâutilisateurs nâappelant que detemps en temps et devant toutefois se rĂ©enregistrer pour maintenir lâassociation entre leur adresse IP etleur identifiant SIP (Address-Of-Record) valide via des sessions initiĂ©es par un messageREGISTERet trĂšscourtes en termes de messages. Dans lâobjectif de renforcerlâauthentification, un fingerprinting efficacede ce type de session est un atout essentiel.
La figure 9.1 prĂ©sente les caractĂ©ristiques de chaque type dâĂ©quipement pour le jeu dâessai et pourle premier jeu opĂ©rateur (les autres manifestent des valeurs similaires). Chaque point sur les figuresreprĂ©sente un type prĂ©cis et la barre horizontale symbolisela valeur mĂ©diane. La distribution du nombrede messages par type nâest uniforme dans aucun cas et est doncrĂ©aliste. Cette diffĂ©rence se reportenaturellement sur le nombre de sessions et le nombre de messages Ă©mis. Par ailleurs, les distributionsconcernĂ©es sont beaucoup plus Ă©tendues dans le cas de lâopĂ©rateur (figure 9.1(b)) : un type dâĂ©quipementnâa participĂ© quâĂ une seule session alors quâun autre en comptabilise plus de 10.000 Ă lui seul.
Enfin, le dernier graphe de chaque figure indique le dĂ©lai entre la rĂ©ception dâun message et lâen-voi du suivant. Le gain dâinformation de cette mĂ©trique est trĂšs clairement mis en valeur sur la figure9.1(b) oĂč quatre voire cinq catĂ©gories se dĂ©marquent nettement. Intuitivement, lâidentification prĂ©cise dechaque composant des catĂ©gories nâest pas faisable dâoĂč lâobservation obligatoire du comportement desĂ©quipements. Ainsi la mĂ©thode de fingerprinting comportementale et temporelle est justifiĂ©e. De maniĂšreidentique au tableau 9.1, la figure 9.1 fait ressortir des dĂ©lais beaucoup plus longs pour les jeux opĂ©ra-teurs Ă lâinstar dâune valeur mĂ©diane deux fois plus grande.Enfin, comme la plupart des sessions delâopĂ©rateur sont des sessions dâenregistrement, beaucoupdâĂ©quipements ne prĂ©sentent pas de messageINVITE dâoĂč valeur mĂ©diane Ă©gale Ă zĂ©ro non reprĂ©sentable sur lâĂ©chelle logarithmique.
9.3.2 Paramétrage
Les premiĂšres expĂ©rimentations sâappuyant sur le jeu dâessai mesurent lâimpact des diffĂ©rents paramĂštresafin de paramĂ©trer finement le systĂšme de fingerprinting. En effet, le nombre relativement faible demessages permet une analyse rapide alors que les jeux opĂ©rateurs seront directement utilisĂ©s avec lesparamĂštres dĂ©terminĂ©s par cette premiĂšre Ă©tape.
La phase dâapprentissage repose sur 40% des sessions tandisque les 60% restant permettront de testerle fingerprinting. Pour augmenter la validitĂ© des observations, chaque expĂ©rience est accomplie dix foisen mĂ©langeant alĂ©atoirement les sessions Ă chaque fois. Ainsi, les rĂ©sultats introduits seront gĂ©nĂ©ralementdes valeurs moyennes. Cependant, la distribution des rĂ©sultats obtenus sâavĂšre souvent plus significativequâune seule valeur moyenne dâoĂč lâusage des quartiles avecles boĂźtes Ă moustache Ă lâinstar de la figure9.2(a) oĂč chaque rĂ©sultat se manifeste par 5 valeurs diffĂ©rentes : les extrĂȘmes, la limite infĂ©rieure dela boĂźte indique que 25% des rĂ©sultats observĂ©s se situent sous ce seuil alors que la limite supĂ©rieure
184
9.3. Fingerprinting comportemental
10
100
1000
10000
#messages Ă©mis 1
10
100
1000
#sessions 1
10
100
1000
#INVITE 0.01
0.1
1
10
DĂ©lai moyen
(a) Essai
10
100
1000
10000
100000
#messages Ă©mis 1
10
100
1000
10000
100000
#sessions 1
10
100
1000
10000
#INVITE 0.0001
0.001
0.01
0.1
1
10
100
DĂ©lai moyen
(b) Opérateur T1
FIGURE 9.1 â Fingerprinting comportemental â CaractĂ©ristiques des jeux de donnĂ©es (Ă©chelle logarith-mique, un point par type, valeur mĂ©diane reprĂ©sentĂ©e par unebarre horizontale)
en représente 75%. Ainsi cette boite renferme 50% des résultats obtenus et est sectionnée par la valeurmédiane matérialisée par une barre horizontale. Hormis dans la section 9.3.2,α = 1000 dans la fonctionde noyau utilisée (voir 6.4.3 pour de plus amples détails surcette derniÚre) :
K(ti, t j) = âpâIi j
noeuds(cheminik)=p
noeuds(cheminjl )=p
ânâp
eâα| fdelai(n,p1)â fdelai(n,p2)|
Tailles dâapprentissage et de test
Plusieurs sessions auxquelles participe un mĂȘme Ă©quipement constituent un TR-FSM nĂ©cessitantdonc de paramĂ©trer le nombre de sessions utilisĂ©es pour rĂ©aliser cette tĂąche. Plus particuliĂšrement, lenombre de sessions dans le cadre de lâapprentissage, dĂ©nommĂ© taille dâapprentissage, et celui dans lecadre des tests, dĂ©nommĂ©taille de test, sont ajustables et sâexpriment en nombre de sessions. Lataillede testest extrĂȘmement importante puisque plus elle est petite, plus le fingerprinting sera rapide carnâimpliquant pas de collecter un grand nombre de sessions.
Le tableau 9.2 expose la prĂ©cision du fingerprinting selon plusieurs valeurs de ces paramĂštres grĂąceĂ une lĂ©gende colorĂ©e permettant de rapidement visualiser les bonnes et mauvaises configurations. Parexemple, la nouvelle technique de fingerprinting est inapteĂ discerner convenablement un Ă©quipement ense basant sur une seule session comme lâillustre une premiĂšre colonne trĂšs claire. La ligne la plus sombrecorrespond Ă une taille dâapprentissage faible Ă©gale Ă cinqsuggĂ©rant un apprentissage ne nĂ©cessitant pasforcĂ©ment de collecter beaucoup de sessions. Dans le meilleur des cas, plus de 90% des Ă©quipementssont convenablement reconnus via unetaille de testde 10. La nouvelle mĂ©thode de fingerprinting nâestdonc pas applicable sur une seule session sans pour autant ennĂ©cessiter un nombre exagĂ©rĂ©. En outre,une prĂ©cision de 85% est atteignable avec une taille de test limitĂ©e Ă cinq. La prĂ©cision est stable quelquesoit lâexpĂ©rimentation comme le dĂ©montrent les faibles valeurs de lâĂ©cart type.
Pour Ă©valuer si les diffĂ©rents types dâĂ©quipements sont bien identifiĂ©s ou si certains sont totalementignorĂ©s, la sensibilitĂ© est reportĂ©e dans le tableau 9.3. Lameilleure configuration est Ă©quivalente Ă laprĂ©cĂ©dente avec une sensibilitĂ© moyenne de 65%. Ce rĂ©sultatmitigĂ© est dĂ» Ă quelques types totalementignorĂ©s car peu reprĂ©sentĂ©s dans le jeu de donnĂ©es (voir figure 9.1(a)). En effet, une taille dâapprentis-sage de cinq et une sĂ©lection de 40% des sessions pour lâapprentissage impose un nombre minimal de
185
Chapitre 9. Identification des Ă©quipements
Tailledâapprentissage
Taille de test1 5 10 20 40
10.682 0.819 0.830 0.805 0.745
(0.009) (0.013) (0.013) (0.031) (0.034)
50.469 0.858 0.905 0.883 0.800
(0.028) (0.013) (0.011) (0.025) (0.035)
100.376 0.809 0.894 0.873 0.819
(0.044) (0.011) (0.013) (0.021) (0.035)
200.272 0.656 0.821 0.864 0.837
(0.028) (0.028) (0.015) (0.015) (0.012)
400.221 0.469 0.627 0.764 0.762
(0.027) (0.026) (0.030) (0.037) (0.038)
< 50% 50-70% 70-80% 80-85% 85-90% â„ 90%
TABLE 9.2 â Fingerprinting comportemental â Jeu dâessai : prĂ©cision moyenne (Ă©cart type entre paren-thĂšses)
Tailledâapprentissage
Taille de test1 5 10 20 40
10.504 0.542 0.553 0.535 0.529
(0.011) (0.034) (0.032) (0.044) (0.043)
50.294 0.605 0.647 0.648 0.580
(0.026) (0.035) (0.035) (0.047) (0.045)
100.224 0.550 0.625 0.636 0.599
(0.028) (0.017) (0.023) (0.024) (0.047)
200.145 0.452 0.572 0.615 0.622
(0.021) (0.050) (0.030) (0.045) (0.027)
400.109 0.316 0.399 0.505 0.522
(0.028) (0.030) (0.032) (0.050) (0.038)
< 30% 30-40% 40-50% 50-55% 55-60% â„ 60%
TABLE 9.3 â Fingerprinting comportemental â Jeu dâessai : sensibilitĂ© moyenne (Ă©cart type entre paren-thĂšse)
186
9.3. Fingerprinting comportemental
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
0 5 10 15 20
Se
nsib
ilité
mo
ye
nn
e
Nombre minimal de TR-FSM pour l'apprentissage
(a) Nombre minimal de TR-FSM nĂ©cessaire pour lâap-prentissage (α = 1000)
0.8
0.82
0.84
0.86
0.88
0.9
0.92
0.94
1
10
100
1000
10000
100000
Pré
cis
ion
mo
ye
nn
e
alpha
(b) impact du paramÚtreα
FIGURE 9.2 â ParamĂ©trage du fingerprinting comportemental (taillede test = 10, taille dâapprentissage= 5)
â5/0.4â = 13 sessions. Malheureusement, comme le montre la figure 9.1(a), six types dâĂ©quipementsne contribuent pas suffisamment pour respecter cette contrainte. Par ailleurs, cette valeur minimale im-plique la crĂ©ation dâune seule signature (TR-FSM) alors queles techniques dâapprentissage ont besoin deplusieurs exemples pour pouvoir classer correctement les instances testĂ©es par la suite. La sous-sectionsuivante visera donc Ă dĂ©terminer lâimpact du nombre minimal de signatures utilisĂ©es pendant lâappren-tissage.
De maniĂšre gĂ©nĂ©rale, lâapproche de fingerprinting proposĂ©esemble ĂȘtre plus performante avec destailles dâapprentissage et de tests diffĂ©rentes pouvant paraĂźtre illogiques mais sâexpliquant simplementpar le fait que cette technique Ă©value individuellement leschemins communs des arbres TR-FSM in-dĂ©pendamment de leur taille (Ă©quations (6.5)-(6.8) de la section 6.4.3). Enfin, en testant la mĂȘme con-figuration optimale dĂ©celĂ©e prĂ©cĂ©demment mais en ignorant les donnĂ©es temporelles, la prĂ©cision atteint83%, soulignant le bĂ©nĂ©fice de ce type dâinformation.
Nombre de signatures nĂ©cessaires pour lâapprentissage
LâexpĂ©rimentation prĂ©cĂ©dente souligne une sensibilitĂ© trĂšs altĂ©rĂ©e par des types dâĂ©quipements dontle nombre de sessions sĂ©lectionnĂ©es pour lâapprentissage Ă©tait trop faible. Ainsi, pour chacun dâeux, cenombre est fixĂ© Ă une valeur absolue et non plus Ă un pourcentage. Lâaxe des abscisses de la figure 9.2(a)reprĂ©sente le nombre de TR-FSM minimal servant pour lâapprentissage variant de 1 Ă 20 dans le cadrede la meilleure configuration obtenue prĂ©cĂ©demment. Ainsi dĂšs que le nombre minimal de TR-FSM estseulement de deux (10 sessions), la sensibilitĂ© moyenne atteint 80%, ce qui est beaucoup plus acceptableque les 65% obtenus auparavant. Parvenir Ă 90% est concevable en imposant un minimum de huit TR-FSM. Enfin, les boĂźtes Ă moustache correspondantes sont Ă©troites signifiant que la sensibilitĂ© est stable.Dans la suite de cette Ă©tude, SVM forcera lâapprentissage sur deux arbres minimum.
Impact du paramÚtre α
Le paramĂštreα de la fonction noyau joue un rĂŽle majeur car plus il est grand,plus les diffĂ©rencesentre les petits dĂ©lais sont amplifiĂ©es. La figure 9.2(b) Ă©tudie cet aspect en modulant ce paramĂštre entre unet 100.000. Dâun de point de vue gĂ©nĂ©ral, la courbe suit une forme parabolique. En effet, une diffĂ©rencede dĂ©lai entre une et quatre secondes doit ĂȘtre interprĂ©tĂ©e diffĂ©remment dâune diffĂ©rence entre 56 et
187
Chapitre 9. Identification des Ă©quipements
59 secondes dâoĂč lâobligation dâavoir un facteurα > 1. Cependant, dĂšs lors quâα est trop Ă©levĂ©, lesdiffĂ©rences minimes sont trop exagĂ©rĂ©es. Cette expĂ©rimentation aide Ă choisir le bon compromis et meten exergue trois valeurs acceptables : 100, 1000 ou 10.000. Toutefois, des rĂ©sultats stables, câest-Ă -direconcentrĂ©s autour de la mĂ©diane, sont prĂ©fĂ©rables car ils signalent que les bons rĂ©sultats ne sont pasdĂ©pendants du processus alĂ©atoire de sĂ©lection des sessions dâapprentissage dâoĂč une prĂ©fĂ©rence pourα = 1000.
9.3.3 Réseau opérateur
Suite aux rĂ©sultats prĂ©cĂ©dents, une taille dâapprentissage de dix et une taille de test de cinq sontconsidĂ©rĂ©es. Le tableau 9.4 rĂ©sume lâensemble des statistiques et des rĂ©sultats sur les jeux opĂ©rateurstout en reprenant les rĂ©sultats prĂ©cĂ©dents. NĂ©anmoins, lesjeux opĂ©rateurs Ă©tant plus grands, SVM futentraĂźnĂ© en nâemployant que 10% des sessions seulement touten rĂ©pĂ©tant trois fois chaque expĂ©rience.
La premiĂšre partie du tableau tĂ©moigne de quelques statistiques sur les jeux de donnĂ©es aprĂšs con-struction des arbres TR-FSM. Hormis le nombre dâarbres qui est automatiquement fixĂ© par les paramĂštresdĂ©finis prĂ©cĂ©demment et reste invariable Ă chaque expĂ©rience, les autres mĂ©triques sont Ă©valuĂ©es selonleur moyenne et leur Ă©cart type sur toutes les instances dâexpĂ©riences rĂ©alisĂ©es. La structure des arbres esttrĂšs instable car les Ă©carts types des cardinalitĂ©s et des hauteurs maximales et moyennes sont trĂšs Ă©levĂ©sattestant dâune multitude de configurations et donc dâune plus grande validitĂ© des rĂ©sultats. La techniquede fingerprinting comportemental est visiblement une mĂ©thode prometteuse car, malgrĂ© ces nombreusesconfigurations, les performances (prĂ©cision, sensibilitĂ©et spĂ©cificitĂ©) sont trĂšs stables (faible Ă©cart type).
En regardant les performances de plus prĂšs pour les jeux de donnĂ©es opĂ©rateurs, la prĂ©cision sesitue aux alentours des 86%, câest-Ă -dire lĂ©gĂšrement en dessous du jeu dâessai dans lequel 91% desĂ©quipements Ă©taient correctement identifiĂ©s. Cependant, cette lĂ©gĂšre diffĂ©rence est logique et peu Ă©levĂ©een comparaison de la diffĂ©rence entre un rĂ©seau local et un environnement bruitĂ© tel quâInternet. GrĂąceau paramĂ©trage finement rĂ©alisĂ© auparavant, le coefficient dâinformation mutelle prouve que, dans le casdu jeu dâessai, les bons rĂ©sultats ne sont pas uniquement le fruit de quelques types dâĂ©quipements sur-reprĂ©sentĂ©s et bien classĂ©s. Cependant, le problĂšme des types complĂštement sous-reprĂ©sentĂ©s est encoreplus gĂȘnant dans le cas de lâopĂ©rateur avec un coefficient dâinformation mutuelle aux alentours de 0.64.Effectivement, la figure 9.1(b) en comparaison avec la figure9.1(a) laissait entrevoir que certains types neseraient pas dĂ©couverts car vraiment trop peu reprĂ©sentĂ©s par rapport Ă la taille globale du jeu de donnĂ©es.Ils sont alors classĂ©s avec une sensibilitĂ© oscillant entre45% et 58% dĂ©gradant fortement la sensibilitĂ©gĂ©nĂ©rale moyenne. Les Ă©quipements mal reconnus sont cependant rĂ©partis dans toutes les autres classescar la spĂ©cificitĂ© reste Ă©levĂ©e.
Enfin, lâĂ©valuation de la classification suppose que lâidentitĂ© dâun Ă©quipement soit contenue dansle champ SIP User-Agent pouvant ainsi facilement ĂȘtre modifiĂ©e. Alors que pour le jeu dâessai, cetteinformation est sĂ»re, elle nâest malheureusement pas vĂ©rifiable pour lâopĂ©rateur dâautant plus que certainsĂ©quipements ont un type inconnu.
9.4 Fingerprinting syntaxique
Pour rappel, les différentes méthodes peuvent utiliser plusieurs distances entre deux arbrest1 et t2rappelées ci-dessous :
d1(t1, t2) = |t1|+ |t2|â2W(Ï12) (non normalisee supervisee ou non)
188
9.4. Fingerprinting syntaxique
MĂ©trique Essai T1 T2 T3 T4
#TR-FSM pour lâapprentissage 440 1223 1217 1237 1224#TR-FSM testĂ©s 332 5409 5367 5471 5423
Hauteur maximale dâun TR-FSM71.95 464.67 476.33 420.33 431.33(32.03) (41.35) (38.58) (30.56) (0.94)
Hauteur minimale dâun TR-FSM1.9 1.00 1.00 1.00 1.00(0.30) (0.00) (0.00) (0.00) (0.00)
Hauteur moyenne dâun TR-FSM9.53 8.80 8.85 8.70 9.05(2.13) (1.53) (1.89) (1.73) (1.38)
CardinalitĂ© maximale dâun TR-FSM89.00 492.67 491.17 540.84 464.84(35.72) (44.68) (47.65) (157.00) (21.52)
CardinalitĂ© minimale dâun TR-FSM3.95 2.67 2.00 2.00 3.00(1.56) (0.47) (0.00) (0.00) (0.00)
CardinalitĂ© moyenne dâun TR-FSM18.97 12.93 12.94 12.85 13.23(4.69) (2.68) (3.09) (2.98) (2.56)
Précision0.91 0.81 0.86 0.85 0.83(0.011) (0.004) (0.001) (0.002) (0.004)
Sensibilité0.64 0.53 0.58 0.54 0.43(0.030) (0.019) (0.026) (0.012) (0.015)
Spécificité0.91 0.79 0.81 0.77 0.77(0.035) (0.001) (0.025) (0.028) (0.028)
Information mutuelle0.87 0.64 0.65 0.65 0.63(0.012) (0.001) (0.001) (0.003) (0.004)
TABLE 9.4 â Fingerprinting comportemental â Statistiques et rĂ©sultats gĂ©nĂ©raux (α = 1000, taille de test= 10,taille dâapprentissage = 5). Valeurs moyennes (Ă©cart type entre parenthĂšses)
Type dâĂ©quipement #messagesHauteur #nĆuds
Max Min Moyenne Max Min MoyenneAsterisk_v1.4.21 1081 28 23 25 2517 883 1284Cisco-7940_v8.9 168 25 23 24 2784 812 1352
Thomson2030_v1.59 164 28 23 24 2576 793 1391Twinkle_v1.1 195 25 23 23 2457 805 1299
Linksys_v5.1.8 195 28 23 25 2783 852 1248SJPhone_v1.65 288 30 23 24 2330 951 1133
TABLE 9.5 â Fingerprinting syntaxique â Statistiques sur les arbres syntaxiques
189
Chapitre 9. Identification des Ă©quipements
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
0 0.2 0.4 0.6 0.8 1
Pré
cis
ion
Taux d'apprentissage
(a) Précision
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1
0 0.2 0.4 0.6 0.8 1
Sp
Ă©cific
ité
Taux d'apprentissage
(b) Spécificité
0.75
0.8
0.85
0.9
0.95
1
0 0.2 0.4 0.6 0.8 1
Se
nsib
ilité
Taux d'apprentissage
(c) Sensibilité
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
0 0.2 0.4 0.6 0.8 1
Info
rma
tio
n m
utu
elle
Taux d'apprentissage
(d) Information mutuelle
FIGURE 9.3 â Fingerprinting syntaxique supervisĂ©, distanced1
d2(t1, t2) = 1âW(Ï12)
max(|t1|, |t2|)(normalisee non supervisee)
d3(t1, t2) = 1âW(Ï12)
|t1|+ |t2|âW(ÏMAX)(normalisee supervisee)
oĂčW(Ï12) mesure la similaritĂ© entre deux arbres Ă partir du plus grandsous-arbre commun.
9.4.1 Jeux de données
LâĂ©valuation du fingerprinting syntaxique sâappuie sur deux jeux de donnĂ©es distincts. Le premier,dont les caractĂ©ristiques sont reportĂ©es dans le tableau 9.5, fut gĂ©nĂ©rĂ© grĂące Ă une plateforme dâessai etles expĂ©rimentations se baseront gĂ©nĂ©ralement dessus Ă moins que ce ne soit mentionnĂ©. Il comprend sixtypes dâĂ©quipements distincts pour un total de 2091 messages. De plus, les caractĂ©ristiques rĂ©vĂšlent queles arbres syntaxiques rĂ©els sont beaucoup plus compliquĂ©s(800 nĆuds, hauteur de 25-30 nĆuds) queceux utilisĂ©s dans la chapitre 3 Ă titre dâexemple. Modifier la structure dâun tel arbre sans en changer lasĂ©mantique est donc rĂ©ellement trĂšs compliquĂ© dâoĂč la lĂ©gitimitĂ© de lâapproche proposĂ©e.
Le second jeu de donnĂ© provient du mĂȘme opĂ©rateur VoIP que prĂ©cĂ©demment (T1) avec les 40 typesdâĂ©quipements distincts. Cependant, ceux qui ne sont pas assez reprĂ©sentatifs sont Ă©liminĂ©s (moins de20 messages). De cette maniĂšre, seuls 36 types sont conservĂ©s en ne gardant quâun maximum de 100messages pour chacun dâeux.
190
9.4. Fingerprinting syntaxique
0.92
0.93
0.94
0.95
0.96
0.97
0.98
0.99
1
0 0.2 0.4 0.6 0.8 1
Pré
cis
ion
Taux d'apprentissage
(a) Précision
0.75
0.8
0.85
0.9
0.95
1
0 0.2 0.4 0.6 0.8 1
Info
rma
tio
n m
utu
elle
Taux d'apprentissage
(b) Information mutuelle
FIGURE 9.4 â Fingerprinting syntaxique supervisĂ©, distanced3
9.4.2 Fingerprinting supervisé
Taux dâapprentissage
Dans le cadre du fingerprinting supervisĂ©, une partie des messages est extraite du jeu de donnĂ©espour entraĂźner SVM et se dĂ©finit comme un pourcentage du nombre total de messages nommĂ© tauxdâapprentissage. Comme les rĂ©sultats ne sont pas forcĂ©mentidentiques selon les messages sĂ©lectionnĂ©spour lâapprentissage, ils sont volontairement mĂ©langĂ©s avant dâĂȘtre sĂ©parĂ©s entre jeux dâapprentissageet de test. De plus, les expĂ©rimentations seront rĂ©pĂ©tĂ©es dix fois pour renforcer leurs validitĂ©. Un fin-gerprinting efficace implique un taux dâapprentissage faible dâoĂč la figure 9.3 qui cherche Ă mesurer lesperformances selon diffĂ©rents taux en utilisant la distanced1 (non normalisĂ©e). La figure 9.3(a) rĂ©vĂšle quecette nouvelle technique de fingerprinting est trĂšs efficacecar, malgrĂ© un taux dâapprentissage faible telque 10%, 90% des Ă©quipements sont correctement reconnus. Bien Ă©videmment, plus le taux augmente,plus le systĂšme est mieux entraĂźnĂ© dâoĂč de meilleurs rĂ©sultats et, dĂšs un taux dâapprentissage de 20%,la reprĂ©sentation des quartiles indiquent des rĂ©sultats peu fluctuants. Par consĂ©quent, rĂ©ussir Ă identifierun Ă©quipement avec 95% de chances est largement envisageable. La sensibilitĂ© sur la figure 9.3(c) estĂ©galement Ă©levĂ©e mais lĂ©gĂšrement plus faible signifiant quela bonne classification gĂ©nĂ©rale nâest pasdĂ»e Ă quelques types majeurs seulement. La spĂ©cificitĂ© indique quant Ă elle une dispersion des arbresmal identifiĂ©s dans toutes les classes. Le coefficient dâinformation mutuelle de la figure 9.3(d) rĂ©capituleces observations en une seule et se voit alors lĂ©gĂšrement diminuĂ© car il «combine» la sensibilitĂ© et laspĂ©cificitĂ©. Cette mĂ©trique est la plus sĂ©vĂšre en amplifiant les effets nĂ©gatifs (valeurs infĂ©rieures Ă 1) de lasensibilitĂ© et de la spĂ©cificitĂ©. Par consĂ©quent, cette mĂ©trique sera prĂ©fĂ©rĂ©e par la suite tout en conservantla prĂ©cision gĂ©nĂ©rale donnant Ă©galement une vision globaleintĂ©ressante des performances.
Distances
Contrairement Ă la distanced1, d3 est normalisĂ©e rendant son utilisation plus simple car les tech-niques dâapprentissage telles que celles mises en Ćuvre parSVM requiĂšrent des valeurs normalisĂ©es.Les performances obtenues surpassent clairement les prĂ©cĂ©dentes comme le met en lumiĂšre la figure9.4. Par exemple, avec un taux dâapprentissage de 20% seulement, le type de 99% des Ă©quipements estidentifiĂ© justement. Par ailleurs, lâinformation mutuelleest Ă©galement trĂšs Ă©levĂ©e. Finalement, Ă prĂ©cisionĂ©gale, un taux dâapprentissage de 20% avecd3 concorde avec 80% avecd1. En clair, le fingerprintingsupervisĂ© utilisant les SVM est trĂšs efficace grĂące Ă lâutilisation ded3.
191
Chapitre 9. Identification des Ă©quipements
Îł(#voisins)
Ï (distance minimale entre voisins)0.01 0.05 0.1 0.15 0.2
10.559 0.767 0.721 0.307 0.302
(0.674) (0.805) (0.697) (0.339) (0.614)
50.480 0.748 801 0.306 0.306(595) (0.787) (0.781) (0.336) (0.399)
100.454 0.742 0.872 0.307 0.307
(0.570) (0.784) (0.879) (0.293) (0.293)
150.424 0.727 0.862 0.525 0.307
(0.542) (0.767) (0.902) (0.489) (0.293)
200.370 0.698 0.804 0.524 0.307
(0.497) (0.744) (0.852) (0.488) (0.293)
< 40% 40-60% 60-70% 70-80% 80-85% â„ 85%
TABLE 9.6 â Fingerprinting syntaxique non supervisĂ© en regroupant les messages proches« temporellement»,Ï = 5 sec. ,distanced2 - PrĂ©cision (F-Score entre parenthĂšses)
9.4.3 Fingerprinting non supervisé
En appliquant directement ROCK (version modifiĂ©e) sur les donnĂ©es brutes, les rĂ©sultats obtenusfurent trĂšs modĂ©rĂ©s en atteignant une prĂ©cision de 60% au maximum car, du fait dâune syntaxe riche, lesmessages Ă©mis par un mĂȘme type dâĂ©quipement peuvent se rĂ©vĂ©ler trĂšs diffĂ©rents, notamment selon lanature de ces derniers. Par exemple, les messages SIP pour initier un appel ou sâauthentifier ne prĂ©sententpas la mĂȘme sĂ©mantique et ne contiennent donc pas les mĂȘmes champs impliquant des arbres syntaxiquestrop divergents pour pouvoir faire partie du mĂȘme cluster. Dans la section prĂ©cĂ©dente, le jeu dâapprentis-sage pouvait contenir ces diffĂ©rents types de messages dâoĂčde bonnes performances. Envisager un autretype de fingerprinting non supervisĂ© impose :
â dâidentifier les Ă©quipements en nâanalysant quâun seul type de messages comme par exempleINVITE ou REGISTER,
â de crĂ©er des micro-clusters au dĂ©but en supposant quâune mĂȘme adresse IP et un mĂȘme portreprĂ©sentent un mĂȘme Ă©quipement tant que les messages Ă©mis par ce dernier sont sĂ©parĂ©s parun faible laps de temps (quelques secondes). Cette hypothĂšse est rĂ©aliste car ces caractĂ©ristiquesne changent pas aussi frĂ©quemment.
Enfin, comme lâalgorithme de classification est dĂ©terministe et quâaucun jeu dâapprentissage ne doitĂȘtre sĂ©lectionnĂ©, rĂ©pĂ©ter les expĂ©rimentations est tout Ă fait inutile car les rĂ©sultats seraient constants.Comme expliquĂ© dans la section 9.2, les rĂ©sultats basĂ©s sur le F-Score complĂ©teront la prĂ©cision gĂ©nĂ©rale.
FenĂȘtre temporelle
Les messages de la mĂȘme machine (adresse IP et port) se suivant dans un intervalle de temps limitĂ©dĂ©fini parÏ Ă©gal Ă cinq secondes sont regroupĂ©s. De cette maniĂšre, les micro-clusters prĂ©Ă©tablis contien-nent une moyenne de 2,8 messages. Ainsi, les autres paramĂštres de ROCK vont pouvoir ĂȘtre testĂ©s :
â Ï : la distance maximale entre deux messages voisins,â Îł : le nombre minimal de voisins pour que deux messages fassentpartie de la mĂȘme catĂ©gorie.
192
9.4. Fingerprinting syntaxique
Ï 0.01 0.05 0.1 0.15 0.2#clusters 314 108 61 33 14
Nombre dâarbres dans un cluster (minimum) 1 1 1 1 1Nombre dâarbres dans un cluster (maximum)126 218 222 480 720Nombre dâarbres dans un cluster (moyenne)2.33 6.79 12.02 22.212 52.357
TABLE 9.7 â CaractĂ©ristiques des clusters avecÎł = 15
Îł 1 5 10 15 20#clusters 18 38 47 61 82
Nombre dâarbres dans un cluster (minimum) 1 1 1 1 1Nombre dâarbres dans un cluster (maximum)353 224 223 222 220Nombre dâarbres dans un cluster (moyenne)40.72 19.29 15.60 12.02 8.94
TABLE 9.8 â CaractĂ©ristiques des clusters avecÏ = 0.1
ExceptĂ© pour les quatre valeurs encadrĂ©es dans le tableau 9.6, toutes les autres configurations sont parv-enues Ă dĂ©couvrir la totalitĂ© des types rĂ©els existants. Lescolonnes trĂšs claires (Ï = 0.01,0.15,0.2) sontsynonymes dâune mauvaise configuration et montrent que la prĂ©cision nâest pas une fonction monotonepar rapport Ă Ï. Le dĂ©gradĂ© non continu des colonnes rĂ©vĂšle aussi quâelle nâest pas non plus monotoneen fonction deÎł. Plus en dĂ©tails, 87% des Ă©quipements sont reconnus en utilisantÏ = 0.1 etÎł = 10 soitdix points de plus que dans le meilleur des cas avecÎł = 1. Cette observation est primordiale car elleprouve lâavantage certain du nouvel algorithme proposĂ© dans le chapitre 3 par rapport Ă QROCK, Ă©quiv-alent Ă Îł = 1. Son utilisation peut donc ĂȘtre envisagĂ©e pour dâautres domaines dâapplication. Les mesuresde F-score Ă©levĂ©es associĂ©es aux configurations obtenant les meilleures prĂ©cisions signalent une fois deplus que ces bons rĂ©sultats ne sont pas juste la consĂ©quence de la surreprĂ©sentativitĂ© de certains typesdâĂ©quipements.
MalgrĂ© une prĂ©cision lĂ©gĂšrement infĂ©rieure, la configuration fixantÎł = 15 etÏ = 0.1 est accrĂ©ditĂ©edâun F-score remarquablement plus Ă©levĂ© par rapport Ă la diminution de la prĂ©cision dâoĂč ce paramĂ©tragepar la suite hormis pour les tests suivants :
â tableau 9.7 :Îł = 15 etÏ varie,â tableau 9.8 :Ï = 0.5 etÎł varie.
Le but nâest plus dâĂ©tudier la performance de la classification, car lâexpĂ©rience prĂ©cĂ©dente y Ă©tait dĂ©diĂ©e,mais de voir la structure des clusters selon ces deux paramĂštres complĂ©tant ainsi lâanalyse de cette nou-velle technique de clustering permettant de bien comprendre lâimpact de chaque paramĂštre.
PremiĂšrement, il existe toujours des clusters dâun seul arbre constituant ainsi un ensemble de mes-sages difficilement identifiables. LorsqueÏ augmente, les messages ont plus de voisins permettant dâenfusionner une plus grande partie dâoĂč une diminution du nombre de clusters ainsi quâune augmentationde leurs tailles. Un accroissement deÎł impose aux messages de partager plus de voisins en communpour pouvoir ĂȘtre rassemblĂ©s dans le mĂȘme cluster. Ainsi, moins de messages sont regroupĂ©s au seindâun mĂȘme cluster engendrant les effets inverses de lâaugmentation deÏ. Enfin, les clusters pourÎł = 1comparĂ©s avecÎł = 15 sont totalement diffĂ©rents aussi bien par leurs tailles que par leur nombre passantde 18 Ă 61. SurĂ©valuer le nombre de catĂ©gories est donc nĂ©cessaire pour obtenir de bonnes performancescar plusieurs dâentre-eux sont composĂ©s uniquement dâun message. Plus exactement, 53 clusters ne con-tiennent quâun message avec la configuration optimale.
Enfin, la distanced2 est confrontĂ©e Ă la distance non normalisĂ©ed1 dans la figure 9.5(a) qui Ă©tudieĂ©galement lâinfluence deÏ. Lâavantage de la distance normalisĂ©ed2 est sans Ă©quivoque alors quâun re-groupement initial de messages trop excessif (supĂ©rieur Ă cinq secondes) nâa pas dâimpact positif.
193
Chapitre 9. Identification des Ă©quipements
0.74
0.76
0.78
0.8
0.82
0.84
0.86
0.88
1 2 3 4 5 6 7 8 9 10
Pré
cis
ion
temps(s)
d1d2
(a) Regroupement temporel
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
200OPTIO
NS
100REGIS
TER
NOTIFY
INVITE
ACK
401
Précision d1Précision d2
F-score d1F-score d2
(b) Par types
FIGURE 9.5 â Fingerprinting syntaxique non supervisĂ© amĂ©liorĂ©
Types de messages
La classification non supervisĂ©e est ici opĂ©rĂ©e sur un seul type de messages Ă chaque fois parmi lesplus rĂ©pandus :100 , 200 , 401 , OPTIONS, REGISTER, NOTIFY, INVITE et ACK. DiffĂ©rentes distances sonttestĂ©es sur la figure 9.5(b). Une fois encore, la distance normalisĂ©e,d2, parvient Ă mieux distinguer lesĂ©quipements quelque soit le cas mais la figure expose Ă©galement des diffĂ©rences remarquables selon letype de messages. En effet, un messageOPTIONrenseigne sur les capacitĂ©s dâun Ă©quipement et y est donctrĂšs dĂ©pendant Ă lâinverse du message200 assimilable Ă un acquittement. Ainsi une identification efficacedes Ă©quipements est susceptible de se baser sur les messagesOPTIONou NOTIFY car ils prĂ©sentent uneprĂ©cision et un F-score proche de 90%.
Dans le cadre dâune authentification renforcĂ©e, un Ă©quipement est correctement reconnu Ă 70% grĂąceĂ un messageREGISTER. Bien que ce rĂ©sultat soit trop faible pour discrimer des utilisateurs normauxdâintrus, il peut aider Ă cibler les machines pour lesquelles des vĂ©rifications supplĂ©mentaires sont nĂ©ces-saires.
9.4.4 Opérateur
Le fingerprinting syntaxique fut Ă©galement entrepris sur lejeu de donnĂ©es opĂ©rateur. La classifi-cation supervisĂ©e identifie correctement 70% des Ă©quipements alors que la technique non supervisĂ©eparvient Ă en distinguer 75% en regroupant les messages proches dans le temps et mĂȘme 90% en clas-sant uniquement les messagesOPTIONS, confirmant que la structure syntaxique dâun tel message esttrĂšs dĂ©pendante de lâĂ©quipement lâĂ©mettant. Cependant, les prĂ©cisions relativement faibles demandentdâen investiguer plus profondĂ©ment les causes. Certains Ă©quipements ne sont pas discernables tels queCiscoATA186v3.1.0 etCiscoATA186v3.1.1 Ă cause du peu voire de lâabsence de diffĂ©rence dâimplan-tation de la pile protocolaire. Cependant, ne pas dĂ©tecter des variations mineures dâun type dâĂ©quipementnâest pas critique car ils prĂ©sentent les mĂȘmes fonctionnalitĂ©s et sont soumis aux mĂȘmes failles de sĂ©cu-ritĂ©. Dans ce cas, le fingerprinting est donc efficace puisqueces deux aspects relĂšvent des applicationsvisĂ©es par ce type de fingerprinting.
En outre, nâĂ©tant pas maĂźtre de ce jeu de donnĂ©es, vĂ©rifier sa justesse et notamment lâidentificationdes Ă©quipements grĂące au champ User-Agent nâest pas faisable.
194
9.5. Conclusion
9.5 Conclusion
Comme introduit au dĂ©but de ce chapitre, diffĂ©rentes techniques de fingerprinting complĂ©mentairesen termes de connaissances nĂ©cessaires (jeu dâapprentissage, grammaire) furent Ă©valuĂ©es. Elles prĂ©sen-tent toutes de bon rĂ©sultats prouvant leur capacitĂ© Ă ĂȘtre utilisĂ©es pour des applications rĂ©elles : inventaireautomatique des Ă©quipements, authentification renforcĂ©e,dĂ©tection dâintrus, offre de services personnal-isĂ©e...
Ce chapitre a donc mis en Ă©vidence les bonnes performances des SVM dans ce domaine dâapplicationainsi que la viabilitĂ© de la nouvelle reprĂ©sentation comportementale grĂące aux TR-FSM tout en validantĂ©galement la fonction noyau applicable sur ces derniers. Dâun autre cĂŽtĂ©, la reprĂ©sentation des messagespar un arbre syntaxique est beaucoup plus efficace car elle nenĂ©cessite quâun seul message mais demandenĂ©anmoins de connaĂźtre intĂ©gralement la grammaire du protocole contrairement aux TR-FSM. De plus,le nouvel algorithme de classification non supervisĂ© sâest montrĂ© Ă©galement performant pour classerchaque message un Ă un comparĂ© Ă sa version initiale.
Enfin, les nombreux tests ont mis en Ă©vidence lâimpact des diffĂ©rents paramĂštres des mĂ©thodes pou-vant aider par la suite Ă mieux configurer de telles mĂ©thodes.
195
Conclusion générale
Face Ă lâessor dâInternet aussi bien en termes de nombre de machines connectĂ©es que de nombredâapplications existantes aujourdâhui, lâintroduction de cette thĂšse avait mis en avant plusieurs dĂ©fismajeurs :
â conception efficace dâune application communicante,â sĂ©curitĂ©,â Ă©conomie (rentabilitĂ©),â supervision.Bien entendu, cette thĂšse nâapporte pas toutes les rĂ©ponsesĂ ces questions mais contribue Ă leur rĂ©-
solution. Alors que beaucoup dâapplications communicantes sont gĂ©nĂ©ralement confrontĂ©es au problĂšmedu passage Ă lâĂ©chelle, lui-mĂȘme directement dĂ©pendant de la conception, les diffĂ©rents modĂšles dâap-plications communicantes constituant une des contribution de cette thĂšse aident Ă mieux lâĂ©valuer. Unebonne conception dâun protocole passe Ă©galement par une bonne comprĂ©hension des protocoles qui peutsâapparenter parfois Ă une Ă©tape de rĂ©tro-ingĂ©nierie, domaine abordĂ© par la seconde contribution de cettethĂšse.
La rĂ©ponse au problĂšme de la sĂ©curitĂ© est relatif Ă plusieursdes travaux exposĂ©s Ă lâinstar de la mod-Ă©lisaton des botnets, permettant une meilleure comprĂ©hension du danger associĂ©, mais Ă©galement grĂąceau fingerprinting (troisiĂšme contribution) qui peut servirĂ repĂ©rer des intrus sur le rĂ©seau. Cette derniĂšrecontribution peut Ă©galement jouer un rĂŽle Ă©conomique car lâidentification prĂ©cise dâun Ă©quipement peutservir de support pour fournir un service personnalisĂ© Ă sonutilisateur.
Enfin, la modĂ©lisation des botnets a Ă©tĂ© lâoccasion de proposer une nouvelle solution de supervisionpour rĂ©soudre le problĂšme du passage Ă lâĂ©chelle.
En clair, les trois contributions de cette thĂšse sont :
1. modélisation de botnets,
2. découverte automatique des types de messages (rétro-ingénierie),
3. fingerprinting dâĂ©quipements.
1 Résumé des contributions
Modélisation des applications communicantes
La modĂ©lisation des applications communicantes prĂ©sentĂ©edans cette thĂšse sâest focalisĂ©e sur lesbotnets mais demeure nĂ©anmoins gĂ©nĂ©rique. Effectivement,les nouvelles mĂ©triques dĂ©finies (les dif-fĂ©rentes mesures dâatteignabilitĂ©s et de dĂ©lais) peuvent ĂȘtre employĂ©es pour Ă©valuer toute application
197
Conclusion générale
dans le contexte de lâenvoi massif dâune information. Dans ce sens, les modĂšles aident Ă mesurer lepassage Ă lâĂ©chelle des applications communicantes.
De plus, les modĂšles ne sont pas spĂ©cifiques aux botnets puisque leurs architectures ne furent pascrĂ©Ă©es de toute piĂšce mais reposent sur des bases existantestelles quâun protocole pair-Ă -pair ou leprotocole IRC. Les deux modĂšles choisis reprĂ©sentent quantĂ eux deux types dâarchitecture bien dif-fĂ©rents : pseudo-centralisĂ© (IRC) ou totalement distribuĂ©(P2P). Enfin, un des types de rĂ©seau P2P mod-Ă©lisĂ© se caractĂ©rise par une table de hachage distribuĂ©e reprĂ©sentant la majoritĂ© des protocoles P2P utilisĂ©sactuellement alors que le contexte de cette thĂšse nâengendre pas de diffĂ©rences notables sur les mĂ©triquesselon les diffĂ©rents protocoles de table de hachage distribuĂ©e. Par ailleurs, diffĂ©rentes mĂ©thodes formellesfurent mises en Ćuvre pouvant servir dâinspiration Ă lâĂ©laboration dâautres modĂšles dans lâavenir.
Les expĂ©rimentations menĂ©es Ă©valuent les performances desdiffĂ©rents systĂšmes selon de nombreuxparamĂštres afin de bien comprendre lâimpact des diffĂ©rents paramĂštres qui prennent en compte Ă©galementplusieurs contraintes. Ces derniĂšres sont elles aussi suffisamment gĂ©nĂ©rale pour ĂȘtre utilisables avectout type dâapplications communicantes : perte de connectivitĂ©, attaque et anonymat. En consĂ©quence,privilĂ©gier une architecture ou une autre sâen retrouve facilitĂ© pour Ă©viter dâĂȘtre confrontĂ© par la suiteaux problĂšmes relatifs du passage Ă lâĂ©chelle ou de la sĂ©curitĂ©.
Enfin, dans le contexte des botnets reprĂ©sentant une menace actuelle importante, les modĂ©lisationsproposĂ©es ainsi que leurs Ă©valuations sont un rĂ©el atout pour mieux les apprĂ©hender afin de mieux sâenprĂ©munir. Par exemple, une contre-mesure consiste Ă forcercertains bots Ă se dĂ©connecter pour ainsiaffaiblir le botnet. Les travaux rĂ©alisĂ©s dans cette thĂšse montrent quel est lâimpact de ces dĂ©connexionspuisque, dans ce cas, cela correspond Ă des attaques envers le botnet.
Rétro-ingénierie des protocoles
Cette thĂšse traite dâune partie fondamentale de la rĂ©tro-ingĂ©nierie visant Ă dĂ©terminer le type dâunmessage, une information nĂ©cessaire pour la reconstruction de la machine Ă Ă©tats dâun protocole. Latechnique introduite dans le chapitre 4 est novatrice dans deux sens.
PremiĂšrement, le clustering grĂące Ă la mĂ©thode SVC est peu utilisĂ© dans le domaine des rĂ©seauxcontrairement aux mĂ©thodes de classification classiques. BasĂ© sur les machines Ă vecteurs supports dontles performances sont trĂšs bonnes, SVC a lâavantage dâĂȘtre non supervisĂ© et est donc applicable avec unprotocole totalement inconnu. Alors que de premier abord, son utilisation semble ĂȘtre difficile car dĂ©finirles paramĂštres nâest pas une tĂąche aisĂ©e sâil est impossiblede vĂ©rifier la prĂ©cision de la classificationsur un jeu dâapprentissage (constructible si et seulement si le protocole est connu), cette thĂšse exposeĂ©galement une mĂ©thode dâidentification automatique des paramĂštres. Par consĂ©quent, lâapplicabilitĂ© decette technique sâen retrouve grandement amĂ©liorĂ©e et ne selimite pas au contexte de cette thĂšse (rĂ©tro-ingĂ©nierie). En effet, le procĂ©dĂ© dĂ©crit dans cette thĂšse peut probablement ĂȘtre instanciĂ© pour dâautrestravaux de divers domaines employant la mĂ©thode SVC. Enfin, les expĂ©rimentations menĂ©es ont mislâaccent sur lâavantage dâune combinaison de SVC avec du partitionnement hiĂ©rarchique.
Sur un autre plan complĂ©mentaire, le chapitre 4 sâest efforcĂ© de souligner la nĂ©cessitĂ© de dĂ©finir unenouvelle reprĂ©sentation des messages pour pouvoir rapidement les comparer les uns aux autres. En effet,les trois contraintes imposĂ©es sont :
â aucune hypothĂšse forte nâest formulĂ©e sur la syntaxe du protocole comme lâutilisation de certainscaractĂšres dĂ©limiteurs ou la grammaire,
â la mĂ©thode doit ĂȘtre non supervisĂ©e puisque le contraire signifierait que la construction dâun jeudâapprentissage est rĂ©alisable, ceci nâĂ©tant possible quesi le protocole est connu,
198
1. Résumé des contributions
â aucun analyse par tainting, consistant Ă observer commentune application analyse le message, nepeut ĂȘtre mise en Ćuvre. Ainsi les coĂ»ts sont diminuĂ©s puisquâil nây a pas besoin dâinstaller lelogiciel en question, ni dâinstrumenter la machine, ni de gĂ©nĂ©rer les diffĂ©rents cas dâutilisationspour ĂȘtre sĂ»r dâobserver tous les types de messages.
Face Ă ces contraintes, les mĂ©thodes actuelles se basent essentiellement sur lâalignement de sĂ©quencesqui a la particularitĂ© dâĂȘtre appliquĂ© sur la totalitĂ© des messages rendant ainsi cette approche trĂšs coĂ»-teuse en temps de calcul. Partant de ce constat, le but fut de proposer une reprĂ©sentation compressĂ©edes messages tout en prĂ©servant un maximum de sĂ©mantique afindâĂȘtre capable dâen extraire le type.Plusieurs reprĂ©sentations ont Ă©tĂ© introduites avec un descriptif dĂ©taillĂ© de leurs avantages et leurs incon-vĂ©nients. Les expĂ©rimentations montrent Ă©galement les diffĂ©rences notables dans la dĂ©couverte des typesde messages selon la reprĂ©sentation choisie, ce qui met clairement en Ă©vidence les diffĂ©rents degrĂ©s desĂ©mantique associĂ©e Ă chacun dâentre elles. Ainsi, les diffĂ©rents tests rĂ©alisĂ©s ne se sont pas uniquementcontentĂ©s de mettre en exergue la faisabilitĂ© de lâapprocheproposĂ©e.
Fingerprinting dâĂ©quipements
Concernant le fingerprinting dâĂ©quipements, cette thĂšse Ă©nonce deux mĂ©thodes diffĂ©rentes. La pre-miĂšre est totalement nouvelle et se propose dâidentifier un Ă©quipement par son comportement. La secondeest Ă©galement innovatrice en se basant sur la structure syntaxique dâun message et se rapproche ainsi destravaux exposĂ©s dans [8], Ă la diffĂ©rence prĂšs que sa complexitĂ© est trĂšs largement rĂ©duite et que sonapplication est plus rapide car les signatures sont rapidement mises Ă jour sans nĂ©cessiter lâutilisationdâune grille de calcul comme ce fut le cas pour [8].
La mĂ©thode comportementale considĂšre quâun Ă©quipement estidentifiable par la maniĂšre dont ilĂ©change des messages avec les autres : envois de requĂȘtes et rĂ©ponses. Cette technique repose uniquementsur les types de messages ainsi que les dĂ©lais entre eux. Par consĂ©quent, la seconde contribution (rĂ©tro-ingĂ©nierie) prĂ©sentĂ©e prĂ©cĂ©demment prend tout son sens icirendant ainsi cette nouvelle mĂ©thode defingerprinting applicable Ă un protocole quelconque. Son emploi sâen retrouve facilitĂ©, que se soit pourun protocole dont les spĂ©cifications sont inconnues ou lorsque ces derniĂšres sont complexes et nĂ©cessitentde concevoir un analyseur, tĂąche qui peut ĂȘtre elle-mĂȘme difficile et coĂ»teuse en temps. Dans ce derniercas, ce type de fingerprinting est vraiment utile pour rĂ©aliser une Ă©tude prĂ©liminaire sur lâutilisation dâunservice. Par exemple, si un grand nombre dâutilisateurs adoptent un nouveau service, leur proposer unsupport peut ĂȘtre intĂ©ressant. Dans ce cas, le fingerprinting dâĂ©quipements peut indiquer quel est le typedâĂ©quipements le plus utilisĂ©. Cet exemple est par ailleursvalable avec toute mĂ©thode de fingerprinting.Celle basĂ©e sur le comportement dĂ©finit une fonction noyau dont la validitĂ© a Ă©tĂ© formellement prouvĂ©eet entraĂźnant une prĂ©cision dâidentification Ă©levĂ©e grĂące aux machines vecteurs supports.
La seconde technique de fingerprinting repose sur la construction des arbres syntaxiques des mes-sages et sâinspire de travaux rĂ©cents Ă©nonçant de nouvellesmĂ©triques efficaces pour calculer la similitudeentre deux arbres. Il devient alors possible dâappliquer les machines Ă vecteurs supports avec des rĂ©sul-tats trĂšs performants en identifiant pratiquement intĂ©gralement lâensemble des Ă©quipements. Par ailleurs,un nouvel algorithme totalement non supervisĂ© fut proposĂ© rĂ©sultant dâun compromis entre prĂ©cision etrapiditĂ© dâexĂ©cution. Les rĂ©sultats obtenus sont Ă©galement trĂšs encourageants.
Bien entendu, lâĂ©valuation des diffĂ©rentes mĂ©thodes ne se restreint pas Ă donner les meilleurs rĂ©-sultats mais montre aussi les limites des diffĂ©rentes mĂ©thodes tout en Ă©valuant lâimpact des diffĂ©rentsparamĂštres. Ainsi, lâapplication rĂ©elle dâune mĂ©thode ou dâune autre nâest pas faite au hasard.
199
Conclusion générale
2 Perspectives
Les travaux de recherche rĂ©alisĂ©s dans le cadre de cette thĂšse ouvrent plusieurs perspectives. Cer-taines dâentre elles sont Ă court et moyen terme comme une validation renforcĂ©e des techniques ou lepassage dâoutils expĂ©rimentaux Ă des logiciels utilisables par quiconque. Dans une optique Ă long terme,elle ouvre la voie Ă de nouvelles mĂ©thodes de fingerprinting en montrant que la sĂ©mantique discriminantedâun Ă©quipement ne se restreint pas Ă extraire certaines valeurs spĂ©cifiques dâun message.
Instanciation des modĂšles des botnets
Les modĂšles de botnets proposĂ©s dans cette thĂšse comportentplusieurs paramĂštres pour lesquels lesexpĂ©rimentations ont mis en Ă©vidence leurs impacts. Ainsi,instancier ces modĂšles selon des paramĂštresrĂ©els permettrait de prĂ©voir lâeffet dâun nouveau botnet par exemple. Toutefois, cette tĂąche est trĂšs dif-ficile car elle impose plusieurs conditions comme par exemple la nĂ©cessitĂ© de capturer le malware dansun premier temps pour lâĂ©tudier et ainsi dĂ©couvrir le modĂšlele mieux adaptĂ©. La plus grande difficultĂ©relĂšve du paramĂ©trage, comme les risques de dĂ©connexion ou dâattaque car ces derniers sont en fait trĂšsdĂ©pendants de lâenvironnement (types de rĂ©seaux, fuseaux horaires, rĂ©activitĂ© des antivirus...). Il est clairque ce travail relĂšve dâune grande difficultĂ© mais lâinstanciation des modĂšles avec des paramĂštres rĂ©elspermettrait Ă©galement de valider plus prĂ©cisĂ©ment lâapproche en comparant les rĂ©sultats obtenus avecdes mesures rĂ©elles.
Approfondissement des modĂšles des botnets
Les modĂ©lisations proposĂ©es dans cette thĂšse visent Ă mesurer les performances atteignables selondiffĂ©rentes contraintes gĂ©nĂ©riques. Cependant, lâaspecthumain nâest pas pris en compte, comme parexemple le comportement de lâattaquant ou celui de ceux qui se dĂ©fendent. En effet, un attaquant necherchera pas forcĂ©ment Ă atteindre lâensemble des bots sâil nâen nâa pas besoin car il sâexposeraitainsi Ă un plus grand risque de dĂ©tection. Une Ă©volution de cetravail serait alors de prendre en compteces aspects comportementaux en utilisant la thĂ©orie des jeux en intĂ©grant les deux parties (attaquant etdĂ©fenseur) pour enrichir le modĂšle actuel.
Adapter Ă dâautres protocoles ou dâautres domaines
Dans le cadre de la rĂ©tro-ingĂ©nierie et dâautant plus pour lefingerprinting, appliquer les mĂ©thodes Ă un grand nombre de protocoles diffĂ©rents renforcerait leurvalidation. Cela aiderait Ă mettre en avant leslimitations de chacune dâelles afin de les amĂ©liorer. Dans lecadre de la rĂ©tro-ingĂ©nierie, les problĂšmesrelatifs Ă un protocole cryptĂ© ont dâailleurs Ă©tĂ© clairement mentionnĂ©s. Par ailleurs, certains protocolespermettent dâencapsuler diffĂ©rentes commandes dans un seul message qui ne peut alors ĂȘtre assignĂ© Ă ununique type contrairement Ă ce qui est fait actuellement.
Enfin, SVC nâĂ©tant quâune technique de classification indĂ©pendante du domaine, Ă©valuer si lâap-proche de dĂ©termination automatique des paramĂštres est applicable dans dâautre cas contribuerait Ă Ă©ten-dre son utilisation.
200
2. Perspectives
Vers un fingerprinting totalement automatique
Les approches de fingerprinting exposĂ©es dans cette thĂšse nesont pour lâinstant applicables que demaniĂšre expĂ©rimentale avec plusieurs outils. Par consĂ©quent, lâutilisation courante dâune telle approchenâest pas faisable. Dans cet objectif, plusieurs points sont Ă considĂ©rer.
Tout dâabord, un premier axe consiste Ă optimiser au maximumles diffĂ©rents algorithmes utilisĂ©srendant alors les mĂ©thodes plus rapides et donc applicablesen temps rĂ©el. De plus, certaines approxima-tions sont rĂ©alisables pour les diffĂ©rents algorithmes de classification. Par exemple, SVC oblige Ă toutrecalculer depuis le dĂ©but Ă chaque nouvel arbre Ă classer. NĂ©anmoins, ce type de mise Ă jour « totale»ne pourrait ĂȘtre exĂ©cutĂ©e que pĂ©riodiquement alors que la classification en temps rĂ©el appliquerait unalgorithme beaucoup plus simple en assignant tout nouvel arbre au plus proche voisin. De mĂȘme, lestechniques basĂ©es sur les vecteurs supports permettent de dĂ©finir des formes de clusters irrĂ©guliĂšres pou-vant ĂȘtre malgrĂ© tout rĂ©duites Ă quelques points seulement.Ce ne sont bien sĂ»r que quelques pistes quimĂ©ritent un approfondissement.
DeuxiĂšmement, une des mĂ©thodes proposĂ©e se base uniquementsur les types de messages pouvantĂȘtre extraits en appliquant une Ă©tape de rĂ©tro-ingĂ©nierie telle que celle introduite dans le chapitre 4. Cetteultime Ă©tape est donc rĂ©alisable et mĂ©rite dâĂȘtre achevĂ©e pour notamment voir lâimpact des erreurs duesĂ la rĂ©tro-ingĂ©nierie sur le fingerprinting lui-mĂȘme.
Enfin, la rĂ©alisation dâun logiciel global permettant de connaĂźtre en temps rĂ©el les diffĂ©rents Ă©quipementssur le rĂ©seau peut aussi se rĂ©vĂ©ler intĂ©ressante technologiquement notamment si ce dernier intĂšgre unefonctionnalitĂ© pour suggĂ©rer automatiquement des services dĂ©diĂ©s aux utilisateurs selon leur Ă©quipement(service de support).
Passage Ă lâĂ©chelle
Bien que dans le cadre de la rĂ©tro-ingĂ©nierie et du fingerprinting, les travaux exposĂ©s sâefforcentde rĂ©duire au maximum la complexitĂ©, leur application sur des rĂ©seaux trĂšs hauts dĂ©bits peut demeurerdifficile en terme de passage Ă lâĂ©chelle de la mĂȘme maniĂšre que pour les systĂšmes de dĂ©tection dâin-trusion. A lâinstar de ces derniers, plusieurs techniques peuvent ĂȘtre mises en Ćuvre pour amĂ©liorer cepoint : parallĂ©lisation des algorithmes, Ă©chantillonnageou encore en utilisant les processeurs des cartesgraphiques (GPU computing)...
Affinement et nouvelles méthodes de fingerprinting
Alors que beaucoup de mĂ©thodes de fingerprinting actuelles reposent sur la valeur de certains champsdu message, cette thĂšse sâest efforcĂ©e de dĂ©montrer quâil Ă©tait possible dâextraire de lâinformation sĂ©man-tique discriminante dâun autre type (comportement, structure syntaxique). Dans ce sens, elle ouvre la voievers de nouvelles solutions pouvant par exemple combiner ces diffĂ©rentes approches. Au vue du nombredâapplications diffĂ©rentes sâexĂ©cutant sur une mĂȘme machine, il est aussi possible de corrĂ©ler le finger-printing sur plusieurs protocoles. En effet, le fingerprinting dâĂ©quipement doit permettre dâidentifier lenom mais aussi la version dâun logiciel. A titre dâexemple, certains logiciels sont dĂ©diĂ©s certains sys-tĂšmes dâexploitations et il est possible dâanalyser lâutilisation simultanĂ©e de plusieurs logiciels pour voirsi cela est habituel ou relĂšve plutĂŽt dâune erreur dâidentification. Ainsi, le fingerprinting et le profilingdes applications utilisĂ©s par un utilisateur pourrait ĂȘtrecorrĂ©lĂ©s.
201
Conclusion générale
De plus, cette thĂšse sâest placĂ©e dans le cas le plus contraignant dâune approche passive mais lesmĂ©thodes peuvent ĂȘtre adaptĂ©es au cas actif voire semi-passif pour augmenter la prĂ©cision de lâidentifi-cation des Ă©quipements. Dans le cas dâun fingerprinting semi-passif, un affinement consisterait Ă dĂ©ter-miner des intervalles de confiance pour rĂ©ussir Ă correctement identifier quelles requĂȘtes envoyer enprioritĂ© pour obtenir un intervalle plus petit.
202
Glossaire
ABNF : Augmented Backus-Naur FormADSL : Asymmetric Digital Subscriber LineAPTA : Augmented Prefix Tree AcceptorASCII : American Standard Code for Information Interchange
DDoS: Distributed Denial of ServiceDNS : Domain Name SystemDoS: Denial of Service
FTTH : Fiber To The Home
GCL : Guarded Command LanguageGPU : Graphics Processing Unit
HTTP : HyperText Transfer Protocol
ICMP : Internet Control Message ProtocolIDS : Intrusion Detection SystemIMAP : Internet Message Access ProtocolIP : Internet ProtocolIRC : Internet Relay Chat
MTA : Mail Transfert Agent
NAT : Network address translation
OSI : Open Systems Interconnection
P2P: Peer-to-Peer
RFC : Request For CommentsRPC : Remote Procedure CallRTMP : Real Time Messaging ProtocolRTP : Real-time Transport Protocol
SIP : Session Initiation ProtocolSMB : Server Message BlockSMTP : Simple Mail Transfer ProtocolSVC : Support Vector Clustering
203
Glossaire
SVM : Support Vector Machine
TCP : Transmission Control Protocol
UDP : User Datagram ProtocolURI : Uniform Resource Identifier
VoIP : Voice over IP
204
Publications relatives
Journal francophone
[1] J. François, R. State, and O. Festor, âBotnets IRC et P2P pour une supervision Ă large Ă©chelle,âTechnique et Science Informatiques (TSI), vol. 28, pp. 433â458, 2009. [Online]. Available :http://hal.inria.fr/inria-00392573/en/
Conférences internationales
[1] J. François, H. Abdelnur, R. State, and O. Festor, âAutomated behavioral fingerprinting,â inIn-ternational Symposium on Recent Advances in Intrusion Detection (RAID). St Malo, France :Springer, September 2009.
[2] J. François, R. State, and O. Festor, âTowards malware inspired management frameworks,âin Network Operations and Management Symposium IEEE/IFIP Network Operations andManagement Symposium (NOMS). Salvador BrĂ©sil : IEEE, April 2008. [Online]. Available :http://hal.inria.fr/inria-00310913/en/
[3] J. François, R. State, and O. Festor, âBotnet based scalable network management,â inIFIP/IEEEDistributed Systems : Operations and Management (DSOM). San Jose, USA : Springer, October2007.
[4] J. François, R. State, and O. Festor, âMalware models fornetwork and service management,âin (short paper) International Conference on Autonomous Infrastructure, Managementand Security (AIMS). Oslo NorvĂšge : Springer, June 2007. [Online]. Available :dx.doi.org/10.1007/978-3-540-72986-0_23http://hal.inria.fr/inria-00168415/en/
Conférence francophone
[1] J. François, R. State, and O. Festor, âLes botnets et la supervision Ă large Ă©chelle,â in9ĂšmesJournĂ©es Doctorales en Informatique et RĂ©seaux - JDIR 2008, Lille France, January 2008.[Online]. Available : http://hal.inria.fr/inria-00274977/en/
205
Publications relatives
Rapports de recherche
[1] J. François, H. Abdelnur, R. State, and O. Festor, âBehavioral and Temporal Fingerprinting,âINRIA, Research Report RR-6995, 2009. [Online]. Available: http://hal.inria.fr/inria-00406482/en/
[2] J. François, H. Abdelnur, R. State, and O. Festor, âAdvanced Fingerprinting For InventoryManagement,â INRIA, Research Report RR-7044, 2009. [Online]. Available : http://hal.inria.fr/inria-00419766/en/
206
Bibliographie
La validité des URLs a été vérifiée le 30 septembre 2009.
1 Malwares, attaques, défenses
[1] â2006 spam treand report : Year of the zombies,â http://www.commtouch.com/documents/commtouch_2006_spam_trends_year_of_the_zombies.pdf.
[2] L. O. Murchu, âSilentbanker,â http://www.symantec.com/security_response/writeup.jsp?docid=2007-121718-1009-99.
[3] P. Henry, âBigger, nastier botnets : Now cheaper to rent on the black market,â http://blog.lumension.com/?p=1676.
[4] âVers/botnet prettypark,â http://www.symantec.com/security_response/writeup.jsp?docid=2000-121508-3334-99.
[5] K. Hayashi, âvers/botnet nugache,â http://www.symantec.com/security_response/writeup.jsp?docid=2006-043016-0900-99.
[6] âEnregistreurs de frappe, keylogger,â http://www.keylogger.org/.
[7] âElk cloner,â http://www.skrenta.com/cloner/.
[8] âEggdrop, robot irc,â http://www.eggheads.org/.
[9] âDutch suspects hacked 1.5m pcs,â http://www.theage.com.au/news/breaking/dutch-suspects-hacked-15m-pcs/2005/10/21/1129775914143.html.
[10] D. Moore and C. Shannon, âThe spread of the code-red worm(crv2),â http://www.caida.org/research/security/code-red/coderedv2_analysis.xml.
[11] T. Wilson, âCompetition may be driving surge in botnets,â http://www.darkreading.com/security/management/showArticle.jhtml?articleID=208803799.
[12] J. Nazario, âBlackenergy ddos bot analysis,â http://atlas-public.ec2.arbor.net/docs/BlackEnergy+DDoS+Bot+Analysis.pdf.
[13] âbackorifice,â http://www.cultdeadcow.com/tools/bo.html.
207
Bibliographie
[14] A. Yamamoto, âCheval de troie botnet aladinz,â http://www.symantec.com/security_response/writeup.jsp?docid=2004-011518-3235-99.
[15] B. B. Kang, E. Chan-Tin, C. P. Lee, J. Tyra, H. J. Kang, C. Nunnery, Z. Wadler, G. Sinclair,N. Hopper, D. Dagon, and Y. Kim, âTowards complete node enumeration in a peer-to-peer botnet,âin International Symposium on Information, Computer, and Communications Security (ASIACCS).Sydney, Australia : ACM, March 2009.
[16] B. Wang, Z. Li, H. Tu, Z. Hu, and J. Hu, âActively measuring bots in peer-to-peer networks,â inInternational Conference on Networks Security, Wireless Communications and Trusted Computing(NSWCTC). Wuhan, China : IEEE Computer Society, April 2009.
[17] S. Chang, L. Zhang, Y. Guan, and T. Daniels, âA frameworkfor p2p botnets,â inInternationalConference on Communications and Mobile Computing (CMC). Kunming, Yunnan, China :IEEE Computer Society, January 2009.
[18] W. Wang, B. Fang, Z. Zhang, and C. Li, âA novel approach todetect irc-based botnets,â inIn-ternational Conference on Networks Security, Wireless Communications and Trusted Computing.Wuhan, China : IEEE Computer Society, April 2009.
[19] Z. Li, A. Goyal, Y. Chen, and V. Paxson, âAutomating analysis of large-scale botnet probingevents,â inInternational Symposium on Information, Computer, and Communications Security(ASIACCS). Sydney, Australia : ACM, March 2009.
[20] F. Leder and T. Werner, âKnow your enemy : Containing conficker,â The Honeynet Project, USA,Tech. Rep., 2009.
[21] A. Pathak, F. Qian, Y. C. Hu, Z. M. Mao, and S. Ranjan, âBotnet spam campaigns can be longlasting : evidence, implications, and analysis,â inInternational joint conference on Measurementand modeling of computer systems (SIGMETRICS). Seattle, WA, USA : ACM, June 2009.
[22] M. D. Bailey, E. Cooke, F. Jahanian, Y. Xu, and M. Karir, âA Survey of Botnet Technologyand Defenses,â inCybersecurity Applications & Technology Conference For Homeland Security(CATCH). Waltham, MA, USA : IEEE Computer Society, March 2009.
[23] R. Hund, M. Hamann, and T. Holz, âTowards next-generation botnets,â inEuropean Conferenceon Computer Network Defense (EC2ND), Dublin, Ireland, December 2008.
[24] W. Yu, S. Chellappan, X. Wang, and D. Xuan, âPeer-to-peer system-based active worm attacks :Modeling, analysis and defense,âComputer Communications, vol. 31, no. 17, November 2008.
[25] E. Van Ruitenbeek and W. Sanders, âModeling peer-to-peer botnets,â inInternational Conferenceon Quantitative Evaluation of Systems (QEST), Williamsburg, USA, September 2008.
[26] C. R. Davis, S. Neville, J. M. Fernandez, J.-M. Robert, and J. Mchugh, âStructured peer-to-peeroverlay networks : Ideal botnets command and control infrastructures ?â inEuropean Symposiumon Research in Computer Security (ESORICS). MĂĄlaga, Spain : Springer-Verlag, October 2008.
[27] I. Castle and E. Buckley, âThe automatic discovery, identification and measurement of botnets,â inInternational Conference on Emerging Security Information, Systems and Technologies (SECUR-WARE). Cap Esterel, France : IEEE Computer Society, August 2008.
208
1. Malwares, attaques, défenses
[28] J. Liang, N. Naoumov, and K. W. Ross, âZhen li and qi liao and aaron striegel,â inWorshop on theEconomics of Information Security (WEIS), Hanover, USA, June 2008.
[29] C. Kanich, C. Kreibich, K. Levchenko, B. Enright, G. M. Voelker, V. Paxson, and S. Savage,âSpamalytics : an empirical analysis of spam marketing conversion,â inConference on Computerand communications security (CCS). Alexandria, Virginia, USA : ACM, October 2008.
[30] G. Gu, R. Perdisci, J. Zhang, and W. Lee, âBotminer : clustering analysis of network traffic forprotocol- and structure-independent botnet detection,â in Security Symposium (SS). San Jose,CA : USENIX Association, July 2008, pp. 139â154.
[31] T. Holz, M. Steiner, F. Dahl, E. Biersack, and F. Freiling, âMeasurements and mitigation of peer-to-peer-based botnets : a case study on storm worm,â inUsenix Workshop on Large-Scale Exploitsand Emergent Threats (LEET). San Francisco, California : USENIX Association, Month 2008.
[32] Y. Xie, F. Yu, K. Achan, R. Panigrahy, G. Hulten, and I. Osipkov, âSpamming botnets : signaturesand characteristics,âSIGCOMM, vol. 38, no. 4, pp. 171â182, August 2008.
[33] A. Networks, âWorldwide ISP security report,â Arbor, Lexington, MA, USA, Tech. Rep., 2008.
[34] H. Abdelnur, O. Festor, and R. State, âKiF : A stateful SIP Fuzzer,â inInternational Conferenceon Principles, Systems and Applications of IP Telecommunications (IPTComm). New York City,USA : ACM SIGCOMM, July 2007.
[35] W. Cui, M. Peinado, H. Wang, and M. Locasto, âShieldgen :Automatic data patch generationfor unknown vulnerabilities with informed probing,â inIEEE Symposium on Security and Privacy(SP). Berkeley/Oakland, USA : IEEE, May 2007.
[36] R. Vogt, J. Aycock, and M. J. Jacobson, âArmy of botnets,â in Network and Distributed SystemSecurity Symposium (NDSS). San Diego, USA : Internet Society, February 2007.
[37] D. Dagon, G. Gu, C. Lee, and W. Lee, âA taxonomy of botnet structures,â inAnnual ComputerSecurity Applications Conference (ACSAC). Miami Beach, USA : IEEE Computer Society,December 2007.
[38] J. Goebel and T. Holz, âRishi : identify bot contaminated hosts by irc nickname evaluation,â inFirst Workshop on Hot Topics in Understanding Botnets (HotBots). Cambridge, MA : USENIXAssociation, April 2007.
[39] A. Karasaridis, B. Rexroad, and D. Hoeflin, âWide-scalebotnet detection and characterization,â inFirst Workshop on Hot Topics in Understanding Botnets (HotBots). Cambridge, MA : USENIXAssociation, April 2007.
[40] G. Gu, P. Porras, V. Yegneswaran, M. Fong, and W. Lee, âBothunter : detecting malware infectionthrough ids-driven dialog correlation,â inUSENIX Security Symposium (SS). Boston, MA :USENIX Association, August 2007.
[41] C. Schiller and J. Binkley,Botnets : The Killer Web Applications. Syngress Publishing, Fevruary2007.
[42] P. Wang, S. Sparks, and C. C. Zou, âAn advanced hybrid peer-to-peer botnet,â inFirst Workshopon Hot Topics in Understanding Botnets (HotBots). Cambridge, MA : USENIX Association,April 2007.
209
Bibliographie
[43] J. B. Grizzard, V. Sharma, C. Nunnery, B. B. Kang, and D. Dagon, âPeer-to-peer botnets :Overview and case study,â inFirst Workshop on Hot Topics in Understanding Botnets (HotBots).Cambridge, MA : USENIX Association, April 2007.
[44] M. A. Rajab, J. Zarfoss, F. Monrose, and A. Terzis, âMy botnet is bigger than yours (maybe,better than yours) : why size estimates remain challenging,â in First Workshop on Hot Topics inUnderstanding Botnets (HotBots). Cambridge, MA : USENIX Association, April 2007.
[45] P. Barford and V. Yegneswaran,An inside look at Botnets. Springer, March 2007, ch. 8.
[46] R. Ford and S. Gordon, âCent, five cent, ten cent, dollar :hitting botnets where it really hurts,â inWorkshop on New security paradigms (NSPW). Germany : ACM, September 2006.
[47] Z. Trabelsi and K. Shuaib, âMan in the middle intrusion detection,â inIEEE Global Telecommu-nications Conference (GLOBECOM). San Francisco, USA : IEEE, November 2006.
[48] K. Ramachandran and B. Sikdar, âModeling malware propagation in gnutella type peer-to-peernetworks.â Rhodes Island, Greece : IEEE, April 2006.
[49] J. Liang, N. Naoumov, and K. W. Ross, âThe index poisoning attack in p2p file sharing systems,âin International Conference on Computer Communications (INFOCOM). Barcelona, Spain :IEEE, April 2006.
[50] A. Ramachandran, N. Feamster, and D. Dagon, âRevealingbotnet membership using dnsblcounter-intelligence,â inConference on Steps to Reducing Unwanted Traffic on the Internet(SRUTI). San Jose, CA : USENIX Association, July 2006.
[51] E. Alata, V. Nicomette, M. Ka ?niche, M. Dacier, and M. Herrb, âLessons learned from the deploy-ment of a high-interaction honeypot,â inEuropean Dependable Computing Conference (EDCC).Cambria, Portugal : IEEE Computer Society, October 2006.
[52] J. R. Binkley and S. Singh, âAn algorithm for anomaly-based botnet detection,â inConference onSteps to Reducing Unwanted Traffic on the Internet (SRUTI). San Jose, CA : USENIX Associa-tion, July 2006.
[53] M. Abu Rajab, J. Zarfoss, F. Monrose, and A. Terzis, âA multifaceted approach to understandingthe botnet phenomenon,â inConference on Internet measurement (IMC). Rio de Janeriro, Brazil :ACM, October 2006.
[54] D. Dagon, C. Zou, and W. Lee, âModeling botnet propagation using time zones,â inNetwork andDistributed System Security Symposium (NDSS). San Diego, USA : Internet Society, February2006.
[55] P. Oehlert, âViolating assumptions with fuzzing,â inSecurity & Privacy (SP). Berkeley/Oakland,USA : IEEE, March-April 2005.
[56] C. Del Grosso, G. Antoniol, M. Di Penta, P. Galinier, andE. Merlo, âImproving network appli-cations security : a new heuristic to generate stress testing data,â inConference on Genetic andevolutionary computation (GECCO). Washington DC, USA : ACM, June 2005.
[57] M. Mannan and P. C. van Oorschot, âOn instant messaging worms, analysis and countermeasures,âin Workshop on Rapid malcode (WORM). Fairfax, VA, USA : ACM, November 2005.
210
1. Malwares, attaques, défenses
[58] E. Cooke, F. Jahanian, and D. Mcpherson, âThe zombie roundup : Understanding, detecting, anddisrupting botnets,â inWorkshop on Steps to Reducing Unwanted Traffic on the Internet (SRUTI).Cambridge, USA : USENIX Association, July 2005.
[59] J. Canavan, âThe evolution of malicious irc bots,â inVirus Bulletin Conference (VB), Dublin,Ireland, October 2005.
[60] P. Szor,The Art of Computer Virus Research and Defense. Addison-Wesley Professional, Febru-ary 2005.
[61] E. FILIOL, Computer viruses : from theory to applications. Springer, June 2005.
[62] P. BĂącher, T. Holz, M. Kötter, and G. Wicherski, âKnow your enemy : Tracking botnets. http://www.honeynet.org/papers/bots/,â 2005.
[63] S. Schechter, J. Jung, and A. W. Berger, âFast Detectionof Scanning Worm Infections,â inSym-posium on Recent Advances in Intrusion Detection (RAID). French Riviera, France : springer,September 2004.
[64] S. Staniford, D. Moore, V. Paxson, and N. Weaver, âThe top speed of flash worms,â inWorkshopon Rapid malcode (WORM). Washington DC, USA : ACM Press, October 2004.
[65] L. McLaughlin, âBot software spreads, causes new worries,â Distributed Systems Online, vol. 5,no. 6, June 2004.
[66] C. Douligeris and A. Mitrokotsa, âDdos attacks and defense mechanisms : classification and state-of-the-art,âComput. Netw., vol. 44, no. 5, pp. 643â666, October 2004.
[67] I. Arce and E. Levy, âAn analysis of the slapper worm,âIEEE Security and Privacy, vol. 1, no. 1,pp. 82â87, January 2003.
[68] C. Zou, W. Gong, and D. Towsley, âWorm propagation modeling and analysis under dynamicquarantine defense,â inWorkshop on Rapid malcode (WORM). Washington DC, USA : ACMPress, October 2003.
[69] J. Nazario,Defense and Detection Strategies against Internet Worms. Artech House, Inc., Octo-ber 2003.
[70] D. Moore, V. Paxson, S. Savage, C. Shannon, S. Staniford, and N. Weaver, âInside the slammerworm,â IEEE Security and Privacy, vol. 1, no. 4, pp. 33â39, July 2003.
[71] C. KrĂŒgel, T. Toth, and E. Kirda, âService specific anomaly detection for network intrusion detec-tion,â in Symposium on Applied computing (SAC). Madrid, Spain : ACM, March 2002.
[72] J. R. Douceur, âThe sybil attack,â inInternational Workshop on Peer-to-Peer Systems (IPTPS.Cambridge, USA : Springer-Verlag, March 2002.
[73] C. Zou, W. Gong, and D. Towsley, âCode red worm propagation modeling and analysis,â inCon-ference on Computer and Communications Security (CCS), Washington, USA, November 2002.
[74] S. Staniford, V. Paxson, and N. Weaver, âHow to own the internet in your spare time,â inSecuritySymposium. San Francisco, USA : USENIX Association, August 2002.
211
Bibliographie
[75] M. Bishop, âAnalysis of the iloveyou worm,â Departmentof Computer Science, University ofCalifornia, USA, Tech. Rep., 2000.
[76] M. Roesch, âSnort : Lightweight intrusion detection for networks.â inSystems AdministrationConference (LISA). Seattle, USA : USENIX, November 1999.
[77] E. H. Spafford, âThe internet worm incident,â inEuropean Software Engineering Conference(ESEC). Coventry, UK : Springer-Verlag, September 1989.
[78] L. Adleman, âAn abstract theory of computer viruses (invited talk),â in Advances in Cryptology(CRYPTO). Santa Barbara, California, United States : Springer-Verlag New York, Inc., August1988.
[79] F. Cohen, âComputer viruses : Theory and experiments,âComputers & Security, vol. 6, no. 1, pp.22â35, February 1987.
[80] J. P. Anderson, âComputer security technology planning study,â US Air Force Electronic SystemsDivision, USA, Tech. Rep., 1972.
[81] W. O. Kermack and A. G. McKendrick, âA contribution to the mathematical theory of epidemics,âRoyal Society of London Proceedings Series A, vol. 115, pp. 700â721, August 1927.
2 Modélisation des botnets
[1] S. El-Ansary, L. O. Alima, P. Brand, and S. Haridi, âEfficient broadcast in structured p2p net-works.â in International Workshop on Peer-to-Peer Systems (IPTPS). Berkeley, USA : Springer-Verlag, February 2003.
[2] Y. Chawathe, S. Ratnasamy, L. Breslau, N. Lanham, and S. Shenker, âMaking gnutella-like p2psystems scalable,â inConference on Applications, technologies, architectures, and protocols forcomputer communications. Karlsruhe, Germany : ACM SIGCOMM, August 2003.
[3] I. Stoica, R. Morris, D. Karger, F. Kaashoek, and H. Balakrishnan, âChord : A scalable Peer-To-Peer lookup service for internet applications,â inSIGCOMM Conference. San Diego, USA :ACM, August 2001.
[4] F. Dabek, M. F. Kaashoek, D. Karger, R. Morris, and I. Stoica, âWide-area cooperative storagewith CFS,â inSymposium on Operating Systems Principles (SOSP). Chateau Lake Louise, Banff,Canada : ACM, October 2001.
[5] M. E. J. Newman, S. H. Strogatz, and D. J. Watts, âRandom graphs with arbitrary degreedistribution and their applications,â Santa Fe Institute,Working Papers, July 2000. [Online].Available : http://ideas.repec.org/p/wop/safiwp/00-07-042.html
[6] A. L. Barabasi and R. Albert, âEmergence of scaling in random networks,âScience, vol. 286, no.5439, pp. 509â512, October 1999.
[7] D. J. Watts and S. H. Strogatz, âCollective dynamics of /âsmall-world/â networks,âNature, vol.393, no. 6684, pp. 440â442, June 1998.
212
3. Rétro-ingénierie
[8] V. N. Sachkov,Probabilistic methods in combinatorial analysis. Cambridge University Press,May 1997, ch. 6 - Random Graphs and Random Mappings.
[9] P. Erdos and A. Renyi, âOn the evolution of random graphs,â Publ. Math. Inst. Hung. Acad. Sci,vol. 5, pp. 17â61, 1960.
3 Rétro-ingénierie
[1] âWine,â http://www.winehq.org/.
[2] âTcpreplay,â http://tcpreplay.synfin.net/trac/.
[3] âStunnix c++ obfuscator,â http://www.stunnix.com/prod/cxxo/overview.shtml.
[4] E. Morphy, âSkype protocol reverse engineered,â http://www.technewsworld.com/story/dprmytjNX3SP9V/Chinese-Engineers-Reportedly-Crack-Skypes-Code.xhtml?wlc=1246868321.
[5] A. Tridgell, âHow samba was written,â http ://samba.org/ftp/tridge/misc/french_cafe.txt.
[6] M. Beddoe, âProtocol informatics,â http ://www.4tphi.net/ awalters/PI/PI.html.
[7] âIda : Interactive disassembler,â http://www.hex-rays.com/idapro/.
[8] W. Cui, âDiscoverer : Automatic protocol reverse engineering from network traces,â pp. 199â212.
[9] P. Milani omparetti, G. Wondracek, C. Kruegel, and E. Kirda, âProspex : protocol specificationextraction,â inSymposium on Security and Privacy. Oakland, USA : IEEE, May 2009.
[10] Z. Lin, X. Jiang, D. Xu, and X. Zhang, âAutomatic protocol format reverse engineering throughconectect-aware monitored execution,â inSymposium on Network and Distributed System Security(NDSS). San Diego, USA : Internet Society, February 2008.
[11] W. Cui, M. Peinado, K. Chen, H. J. Wang, and L. Irun-Briz,âTupni : automatic reverse engineeringof input formats,â inConference on Computer and communications security (CCS). Alexandria,Virginia, USA : ACM, October 2008.
[12] G. Wondracek, P. M. Comparetti, C. Kruegel, and E. Kirda, âAutomatic network protocol anal-ysis,â in Symposium on Network and Distributed System Security (NDSS). San Diego, USA :Internet Society, February 2008.
[13] Z. Wang, X. Jian, W. Cui, and X. Wang, âReformat : Automatic reverse engineering of encryptedmessages,â North Carolina State University, USA, Tech. Rep., 2008.
[14] N. Borisov, D. J. Brumley, and H. J. Wang, âA generic application-level protocol analyzer andits language,â inSymposium on Network and Distributed System Security (NDSS). San Diego,USA : Internet Society, March 2007.
[15] J. Caballero, H. Yin, Z. Liang, and D. Song, âPolyglot : automatic extraction of protocol messageformat using dynamic binary analysis,â inConference on Computer and communications security(CCS). Alexandria, Virginia, USA : ACM, October 2007.
213
Bibliographie
[16] M. Shevertalov and S. Mancoridis, âA reverse engineering tool for extracting protocols of net-worked applications.â Vancouver, Canada : Springer, Oct. 2007.
[17] M. N. Gagnon, S. Taylor, and A. K. Ghosh, âSoftware protection through anti-debugging,âSecu-rity and Privacy, vol. 5, no. 3, pp. 82â84, May 2007.
[18] J. Ma, K. Levchenko, C. Kreibich, S. Savage, and G. M. Voelker, âUnexpected means of pro-tocol inference.â inInternet Measurement Conference (IMC). Rio de Janeiro, Brazil : ACMSIGCOMM, October 2006.
[19] K. Gopalratnam, S. Basu, J. Dunagan, and H. J. Wang, âAutomatically extracting fields fromunknown network protocols,â June 2006.
[20] J. Newsome, D. Brumley, J. Franklin, and D. Song, âReplayer : automatic protocol replay bybinary analysis,â inConference on Computer and communications security (CCS). Alexandria,Virginia, USA : ACM, October 2006.
[21] W. Cui, V. Paxson, N. Weaver, and R. H. Katz, âProtocol-independent adaptive replay of appli-cation dialog,â inSymposium on Network and Distributed System Security (NDSS). San Diego,USA : Internet Society, February 2006.
[22] P. Haffner, S. Sen, O. Spatscheck, and D. Wang, âACAS : automated construction of applicationsignatures.â inMineNet. Philadelphia, USA : ACM SIGCOMM, August 2005.
[23] C. Leita, K. Mermoud, and M. Dacier, âScriptgen : an automated script generation tool for hon-eyd,â Annual Computer Security Applications Conference (ACSAC), December 2005.
[24] M. Bugalho and A. L. Oliveira, âInference of regular languages using state merging algorithmswith search,âPattern Recognition, vol. 38, no. 9, pp. 1457 â 1467, March 2005.
[25] B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. P. Vadhan, and K. Yang, âOnthe (im)possibility of obfuscating programs,â inAnnual International Cryptology Conference onAdvances in Cryptology (CRYPTO). Santa Barbara, USA : Springer-Verlag, August 2001.
[26] P. Garcia, A. Cano, and J. Ruiz, âA comparative study of two algorithms for automata identi-fication,â in International Colloquium on Grammatical Inference (ICGI). Lisbon, Portugal :Springer-Verlag, September 2000.
[27] D. Lee and K. Sabnani, âReverse-engineering of communication protocols,â inInternational Con-ference on Network Protocols (ICNP). San Francisco, California : IEEE, October 1993.
[28] E. J. Chikofsky and J. H. Cross II, âReverse engineeringand design recovery : A taxonomy,âIEEESoftware, vol. 7, no. 1, pp. 13â17, January 1990.
[29] R. L. Rivest and R. E. Schapire, âInference of finite automata using homing sequences,â inSym-posium on Theory of computing (STOC). Seattle, Washington, United States : ACM, May 1989.
[30] D. Angluin, âLearning regular sets from queries and counterexamples,âInformation and compu-tation, vol. 75, no. 2, pp. 87â106, September 1987.
[31] E. M. Gold, âComplexity of automaton identification from given data,âInformation and Control,vol. 37, no. 3, pp. 302â320, 1978.
[32] E. W. Dijkstra, âGuarded commands, nondeterminacy andformal derivation of programs,âCom-munications of the ACM, vol. 18, no. 8, pp. 453â457, August 1975.
214
4. Fingerprinting
4 Fingerprinting
[1] âXprobe,â http://xprobe.sourceforge.net/.
[2] âP0f,â http://lcamtuf.coredump.cx/p0f.shtml.
[3] âInternet assigned numbers authority,â http://www.iana.org/.
[4] âHttpprint,â http://www.net-square.com/httprint/httprint_paper.html.
[5] âAmap,â http://freeworld.thc.org/thc-amap/.
[6] G. F. Lyon, Nmap Network Scanning : The Official Nmap Project Guide to Network Discoveryand Security Scanning. Insecure Press, January 2009.
[7] J. Burroni and C. Sarraute, âUsing neural networks to improve classical operating system finger-printing techniques,âElectronic Journal of SADIO, vol. 8, no. 1, pp. 509â512, March 2008.
[8] H. Abdelnur, R. State, and O. Festor, âAdvanced Network Fingerprinting,â inRecent Advances inIntrusion Detection (RAID). Boston United States : Springer, September 2008.
[9] L. C. C. Desmond, C. C. Yuan, T. C. Pheng, and R. S. Lee, âIdentifying unique devices throughwireless fingerprinting,â inConference on Wireless network security (WiSec). Alexandria, VA,USA : ACM, March 2008.
[10] N.-F. Huang, G.-Y. Jai, and H.-C. Chao, âEarly identifying application traffic with applicationcharacteristics,â inInternational Conference on Communications (IEEE). Beijing, China : IEEE,May 2008.
[11] H. Kim, K. Claffy, M. Fomenkov, D. Barman, M. Faloutsos,and K. Lee, âInternet traffic classi-fication demystified : myths, caveats, and the best practices,â in CoNEXT Conference. Madrid,Spain : ACM, December 2008.
[12] P. Auffret, âSinFP, unification de la prise dâempreinteactive et passive des systĂšmes dâexploita-tion,â in Symposium sur la SĂ©curitĂ© des Technologies de lâInformation et des Communications(SSTIC). Rennes, France : Ăcole SupĂ©rieure et dâApplication des Transmissions, June 2008.
[13] S. Bratus, C. Cornelius, D. Kotz, and D. Peebles, âActive behavioral fingerprinting of wirelessdevices,â inConference on Wireless network security (WiSec. Alexandria, VA, USA : ACM,March 2008.
[14] J. Caballero, S. Venkataraman, P. Poosankam, M. G. Kang, D. Song, and A. Blum, âFiG : Au-tomatic Fingerprint Generation,â inSymposium on Network and Distributed System Security(NDSS). San Diego, USA : Internet Society, March 2007.
[15] C. V. Wright, L. Ballard, F. Monrose, and G. M. Masson, âLanguage identification of encryptedvoip traffic : Alejandra y roberto or alice and bob ?â inSecurity Symposium (SS). Boston, MA :USENIX Association, August 2007.
[16] R. Fink, âA statistical approach to remote physical device fingerprinting,â inMilitary Communi-cations Conference, MilCom. Orlando, Florida : IEEE, October 2007.
215
Bibliographie
[17] M. Crotti, M. Dusi, F. Gringoli, and L. Salgarelli, âTraffic classification through simple statisticalfingerprinting,âComputer Communication Review, vol. 37, no. 1, pp. 5â16, January 2007.
[18] Y. Liu, W. Li, and Y.-C. Li, âNetwork traffic classification using k-means clustering.â Iowa City,USA : IEEE Computer Society, August 2007.
[19] J. Erman, A. Mahanti, M. Arlitt, I. Cohen, and C. Williamson, âOffline/realtime traffic classifica-tion using semi-supervised learning,âPerformance Evaluation, vol. 64, no. 9-12, pp. 1194â1213,October 2007.
[20] G. Szabo, I. Szabo, and D. Orincsay, âAccurate traffic classification,â inInternational Symposiumon a World of Wireless, Mobile and Multimedia Networks (WoWMoM). Helsinki, Finland : IEEE,June 2007.
[21] L. G. Greenwald and T. J. Thomas, âToward undetected operating system fingerprinting,â inWork-shop on Offensive Technologies (WOOT). Boston, MA : USENIX Association, August 2007.
[22] G. Shu and D. Lee, âNetwork protocol system fingerprinting - a formal approach,â inInternationalConference on Computer Communications (INFOCOM). Barcelona, Spain : IEEE, April 2006.
[23] H. Yan, K. Sripanidkulchai, H. Zhang, Z. yin Shae, and D.Saha, âIncorporating Active Finger-printing into SPIT Prevention Systems,â inAnnual VoIP Security Workshop, Berlin, Germany,June 2006.
[24] H. Scholz, âSIP Stack Fingerprinting and Stack Difference Attacks,â inBlack Hat Briefings, LasVegas, USA, July 2006.
[25] N. Williams, S. Zander, and G. Armitage, âA preliminaryperformance comparison of five machinelearning algorithms for practical ip traffic flow classification,â Computer Communication Review,vol. 36, no. 5, pp. 5â16, October 2006.
[26] L. Bernaille, R. Teixeira, I. Akodkenou, A. Soule, and K. Salamatian, âTraffic classification on thefly,â Computer Communication Review, vol. 36, no. 2, pp. 23â26, April 2006.
[27] L. Bernaille, R. Teixeira, and K. Salamatian, âEarly application identification,â inCoNEXT con-ference. Lisboa, Portugal : ACM, December 2006.
[28] J. Erman, M. Arlitt, and A. Mahanti, âTraffic classification using clustering algorithms,â inMineNet. Pisa, Italy : ACM SIGCOMM, September 2006.
[29] W. Li, D. Zhang, and J. Yang, âRemote os fingerprinting using bp neural network,â inInternationalSymposium on Neural Networks (ISNN). Chongqing, China : Springer, 367-372 2005.
[30] T. Kohno, A. Broido, and K. Claffy, âRemote physical device fingerprinting,âTransactions onDependable and Secure Computing (TDSC), vol. 2, no. 2, pp. 93â108, April 2005.
[31] A. W. Moore and D. Zuev, âInternet traffic classificationusing bayesian analysis techniques,âin International conference on Measurement and modeling of computer systems (SIGMETRICS).Banff, Alberta, Canada : ACM, June 2005.
[32] S. Zander, T. Nguyen, and G. Armitage, âAutomated traffic classification and application identi-fication using machine learning,â inConference on Local Computer Networks (LCN). ZĂŒrich,Switzerland : IEEE Computer Society, October 2005.
216
5. Classification
[33] T. Karagiannis, K. Papagiannaki, and M. Faloutsos, âBlinc : multilevel traffic classification inthe dark,â inConference on Applications, technologies, architectures, and protocols for computercommunications. Philadelphia, Pennsylvania, USA : ACM SIGCOMM, August 2005.
[34] A. W. Moore and K. Papagiannaki, âToward the accurate identification of network applications,âin Passive and Active Network Measurement (PAM). Boston, USA : Springer, March 2005.
[35] Z. J. Wang, M. Wu, W. Trappe, and K. J. R. Liu, âGroup-oriented fingerprinting for multimediaforensics,âEURASIP Journal on Applied Signal Processing, vol. 2004, no. 14, pp. 2153â2173,2004.
[36] M. Roughan, S. Sen, O. Spatscheck, and N. Duffield, âClass-of-service mapping for qos : a sta-tistical signature-based approach to ip traffic classification,â in Internet measurement Conference(IMC). Taormina, Sicily, Italy : ACM SIGCOMM, October 2004.
[37] R. Beverly, âA robust classifier for passive tcp/ip fingerprinting,â in Passive and Active NetworkMeasurement (PAM). Antibes Juan-les-Pins, France : Springer, April 2004.
[38] S. Sen, O. Spatscheck, and D. Wang, âAccurate, scalablein-network identification of p2p trafficusing application signatures,â inInternational conference on World Wide Web (WWW). NewYork, NY, USA : ACM, May 2004.
[39] S. M. Bellovin, âA technique for counting natted hosts,â in SIGCOMM Workshop on Internetmeasurment (IMW). Marseille, France : ACM SIGCOMM, November 2002.
[40] V. Paxson, âAutomated packet trace analysis of tcp implementations,â inConference on Applica-tions, technologies, architectures, and protocols for computer communication. Cannes, France :ACM SIGCOMM, September 1997.
[41] Douglas Comer and John C. Lin, âProbing TCP Implementations,â in USENIX Summer. Boston,Massachusetts : USENIX Association, June 1994.
5 Classification
[1] C.-C. Chang and C.-J. Lin,LIBSVM : a library for support vector machines, software available athttp://www.csie.ntu.edu.tw/~cjlin/libsvm.
[2] H. Dahmouni, S. Vaton, and D. RossĂ©, âA markovian signature-based approach to ip traffic classi-fication,â in Workshop on Mining network data (MineNet). San Diego, California, USA : ACM,June 2007.
[3] A. Moschitti, âMaking tree kernels practical for natural language learning,â inInternational Con-ference of European Chapter of the Association for Computational Linguistics (EACL), Trento,Italy, April 2006.
[4] P. Berkhin, âA survey of clustering data mining techniques,â inGrouping Multidimensional Data.Springer, November 2006, pp. 25â71.
[5] M. Dutta, A. K. Mahanta, and A. K. Pujari, âQrock : a quick version of the rock algorithm for clus-tering of categorical data,âPattern Recognition Letter, vol. 26, no. 15, pp. 2364â2373, November2005.
217
Bibliographie
[6] A. Torsello, D. Hidovic-Rowe, and M. Pelillo, âPolynomial-time metrics for attributed trees,âTransactions on Pattern Analysis and Machine Intelligence(TPMAI), vol. 27, no. 7, pp. 1087â1099, July 2005.
[7] Support Vector Machines : Theory and Applications, ser. Studies in Fuzziness and Soft Comput-ing. Springer, August 2005, vol. 177.
[8] D. Buttler, âA Short Survey of Document Structure Similarity Algorithms,â in International Con-ference on Internet Computing (ICOMP), Quebec, Canada, June 2005.
[9] P. Bille, âA survey on tree edit distance and related problems,âTheoretical Computer Science, vol.337, no. 1-3, pp. 217â239, June 2005.
[10] R. Debnath, N. Takahide, and H. Takahashi, âA decision based one-against-one method for multi-class support vector machine,âPattern Analysis & Applications., vol. 7, no. 2, pp. 164â175, July2004.
[11] S. Salvador and P. Chan, âDetermining the number of clusters/segments in hierarchical cluster-ing/segmentation algorithms,â inICTAI â04 : Proceedings of the 16th IEEE International Con-ference on Tools with Artificial Intelligence. Washington, DC, USA : IEEE Computer Society,2004, pp. 576â584.
[12] L. Yu and H. Liu, âFeature selection for high-dimensional data : A fast correlation-based filtersolution,â in International Conference on Machine Learning (ICML). Washington : AAAI Press,August 2003.
[13] L. R. Welch, âHidden markov models and the baum-welch algorithm,â Information Theory SocietyNewsletter, vol. 53, no. 4, December 2003.
[14] M. Collins and N. Duffy, âNew ranking algorithms for parsing and tagging : Kernels over discretestructures, and the voted perceptron,â inAssociation for Computational Linguistics Conference(ACL), Pennsylvania, USA, July 2002.
[15] S. Vishwanathan and A. Smola, âFast kernels on strings and trees.â inNeural Information Pro-cessing Systems (NIPS), Vancouver, Canada, December 2002.
[16] C.-W. Hsu and C.-J. Lin, âA comparison of methods for multiclass support vector machines,âTransactions on Neural Networks (TNN), vol. 13, no. 2, pp. 415â425, March 2002.
[17] I. Rish, âAn empirical study of the naive bayes classifier,â in International Joint Conference onArtificial Intelligence (IJCAI) workshop on "Empirical Methods in AI", Seattle, USA, August2001.
[18] A. Ben-hur, D. Horn, H. T. Siegelmann, and V. Vapnik, âSupport vector clustering,âJournal ofMachine Learning Research, vol. 2, pp. 125â137, December 2001.
[19] A. Ben-Hur, D. Horn, H. Siegelmann, and V. Vapnik, âA support vector clustering method,â inInternation Conference on Pattern Recognition (ICPR). Barcelona, Spain : IEEE, September2000.
[20] N. Cristianini and J. Shawe-Taylor,An introduction to support Vector Machines : and other kernel-based learning methods. Cambridge University Press, March 2000.
218
6. Supervision des réseaux et services
[21] P. Baldi, S. Brunak, Y. Chauvin, C. A. Andersen, and H. Nielsen, âAssessing the accuracy ofprediction algorithms for classification : an overview,âBioinformatics, vol. 16, no. 5, pp. 412â24,February 2000.
[22] S. Guha, R. Rastogi, and K. Shim, âRock : A robust clustering algorithm for categorical attributes,âin International Conference on Data Engineering (ICDE). Sydney, Australia : IEEE ComputerSociety, March 1999, p. 512.
[23] Y. Freund and R. E. Schapire, âA short introduction to boosting,â inInternational Joint Conferenceon Artificial Intelligence (IJCAI). Stockohlm, Sweden : Morgan Kaufmann, 1999, pp. 1401â1406.
[24] K. Zhang, R. Statman, and D. Shasha, âOn the editing distance between unordered labeled trees,âInformation Processing Letters, vol. 42, no. 3, pp. 133â139, May 1992.
[25] S. F. Altschul, W. Gish, W. Miller, E. W. Myers, and D. J. Lipman, âBasic local alignment searchtool,â Journal of molecular biology, vol. 215, no. 3, pp. 403â410, October 1990.
[26] R. Fletcher,Practical methods of optimization ; (2nd ed.). New York, NY, USA : Wiley-Interscience, 1987.
[27] W. H. Day and H. Edelsbrunner, âEfficient algorithms foragglomerative hierarchical clusteringmethods,âJournal of Classification, vol. 1, no. 1, pp. 7â24, December 1984.
[28] T. F. Smith and M. S. Waterman, âIdentification of commonmolecular subsequences,âJournal ofMolecular Biology, vol. 147, no. 1, pp. 195â197, March 1981.
[29] S. B. Needleman and C. D. Wunsch, âA general method applicable to the search for similaritiesin the amino acid sequence of two proteins,âJournal of Molecular Biology, vol. 48, no. 3, pp.443â453, March 1970.
[30] P. Jaccard, âThe distribution of the flora in the alpine zone,â New Phytologist, vol. 11, no. 2, pp.37 â 50, 1912.
6 Supervision des réseaux et services
[1] SNMP and Research, âThe mid-level manager,â http ://www.snmp.com/products/mlm.html.
[2] R. Badonnel, R. State, I. Chrisment, and O. Festor, âA management platform for tracking cy-ber predators in peer-to-peer networks,â inInternational Conference on Internet Monitoring andProtection (ICIMP). San Jose, California : IEEE Computer Society, July 2007.
[3] R. State and O. Festor, âMalware : a future framework for device, network and service manage-ment,âJournal in Computer Virology, vol. 3, no. 1, pp. 51â60, March 2007.
[4] R. Ahmed and R. Boutaba, âDistributed Pattern Matching :a Key to Flexible Efficient P2PSearch,âJournal on Selected Areas in Communications, vol. 25, no. 1, pp. 73â83, January 2007.
[5] R. Badonnel, R. State, and O. Festor, âProbabilistic management of ad-hoc networks,â inIEEE/IFIP Network Operations and Management Symposium (NOMS). Vancouver, Canada :IEEE, April 2006.
219
Bibliographie
[6] M. S. Artigas, P. G. LĂłpez, and A. F. GĂłmez-Skarmeta, âDeca : A hierarchical framework fordecentralized aggregation in dhts,â inIFIP/IEEE International Workshop on Distributed Systems :Operations and Management (DSOM). 246-257 : Springer, October 2006.
[7] K.-S. Lim and R. Stadler, âReal-time views of network traffic using decentralized management,âin IFIP/IEEE International Symposium on Integrated Network Management. Nice, France :IEEE, May 2005.
[8] K.-S. Lim and R. Stadler, âA navigation pattern for scalable internet management,â inIFIP/IEEEInternational Symposium on Integrated Network Management. Seattle, USA : IEEE, May 2001.
[9] B. Schwartz, A. W. Jackson, W. T. Strayer, W. Zhou, R. D. Rockwell, and C. Partbridge, âSmartpackets : applying active networks to network management,âTransactions on Computer Systems,vol. 18, no. 1, pp. 67â88, February 2000.
[10] H. Ohno and A. Shimizu, âImproved network management using nmw (network managementworm) system,â inAnnual Conference of the Internet Society (INET). Honololu, USA : ISOC,June 1995.
[11] G. Goldszmidt and Y. Yemini, âDistributed management by delegation,â inInternational Confer-ence on Distributed Computing Systems (ICDCS). Vancouver, Canada : IEEE Computer Society,May 1995.
7 RFC
[1] J. Klensin, âSimple Mail Transfer Protocol,â RFC 5321 (Draft Standard), Oct. 2008. [Online].Available : http://www.ietf.org/rfc/rfc5321.txt
[2] D. Crocker and P. Overell, âAugmented BNF for Syntax Specifications : ABNF,â RFC 5234(Standard), Jan. 2008. [Online]. Available : http://www.ietf.org/rfc/rfc5234.txt
[3] T. Ylonen and C. Lonvick, âThe Secure Shell (SSH) Protocol Architecture,â RFC 4251 (ProposedStandard), Jan. 2006. [Online]. Available : http://www.ietf.org/rfc/rfc4251.txt
[4] M. Crispin, âInternet Message Access Protocol - Version4rev1,â RFC 3501 (ProposedStandard), Mar. 2003, updated by RFCs 4466, 4469, 4551, 5032, 5182. [Online]. Available :http://www.ietf.org/rfc/rfc3501.txt
[5] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, âRTP : A Transport Protocolfor Real-Time Applications,â RFC 3550 (Standard), Jul. 2003. [Online]. Available :http://www.ietf.org/rfc/rfc3550.txt
[6] J. Rosenberg, H. Schulzrinne, G. Camarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley,and E. Schooler, âSIP : Session Initiation Protocol,â RFC 3261 (Proposed Standard),Jun. 2002, updated by RFCs 3265, 3853, 4320, 4916, 5393. [Online]. Available :http://www.ietf.org/rfc/rfc3261.txt
[7] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee,âHypertext Transfer Protocol â HTTP/1.1,â RFC 2616 (Draft Standard), Jun. 1999, updated byRFC 2817. [Online]. Available : http://www.ietf.org/rfc/rfc2616.txt
220
8. Divers
[8] J. Oikarinen and D. Reed, âInternet Relay Chat Protocol,â RFC 1459 (Experimental), May 1993,updated by RFCs 2810, 2811, 2812, 2813. [Online]. Available: http://www.ietf.org/rfc/rfc1459.txt
[9] S. Microsystems, âRPC : Remote Procedure Call Protocol specification : Version 2,â RFC 1057(Informational), Jun. 1988. [Online]. Available : http://www.ietf.org/rfc/rfc1057.txt
[10] P. Mockapetris, âDomain names - concepts and facilities,â RFC 1034 (Standard), Nov. 1987, up-dated by RFCs 1101, 1183, 1348, 1876, 1982, 2065, 2181, 2308,2535, 4033, 4034, 4035, 4343,4035, 4592.
[11] J. Postel and J. Reynolds, âFile Transfer Protocol,â RFC 959 (Standard), Oct. 1985, updated byRFCs 2228, 2640, 2773, 3659. [Online]. Available : http://www.ietf.org/rfc/rfc959.txt
[12] J. Postel, âInternet Control Message Protocol,â RFC 792 (Standard), Sep. 1981, updated by RFCs950, 4884. [Online]. Available : http://www.ietf.org/rfc/rfc792.txt
8 Divers
[1] âUnicode,â http://www.unicode.org/.
[2] âtcpdump,â http://www.tcpdump.org/.
[3] âSkype interdit de sĂ©jour dans lâenseignement supĂ©rieur et la recherche,â http://www.zdnet.fr/actualites/internet/0,39020774,39267873,00.htm.
[4] âSkype,â http://www.skype.com/.
[5] âPython programming language â official website,â http://www.python.org/.
[6] âOvernet,â http://www.zeropaid.com/overnet/.
[7] âOscar unofficial specifications,â http://oilcan.org/oscar/.
[8] âMicrosoft msn unofficial specifications,â http://www.hypothetic.org/docs/msn/.
[9] âMaxima, a computer algebra system,â http://maxima.sourceforge.net/.
[10] âInternet information services,â http://www.iis.net/.
[11] âAdobe flash,â http://www.adobe.com/products/flashplayer/.
[12] J. F. Kurose and K. W. Ross,Computer Networking : A Top-Down Approach (4th Edition). Ad-dison Wesley, April 2007.
[13] J. B. Horrigan, âBroadband adoption at home in the united states : Growing but slowing,â inTelecommunications Policy Research Conference (TPRC), Arlington, USA, September 2005.
[14] J. Chow, B. Pfaff, T. Garfinkel, K. Christopher, and M. Rosenblum, âUnderstanding data lifetimevia whole system simulation,â inSecurity Symposium. San Diego, USA : USENIX, August 2004.
[15] P. Maymounkov and D. MaziĂšres, âKademlia : A peer-to-peer information system based on thexor metric,â in International Workshop on Peer-to-Peer Systems (IPTPS). Cambridge, USA :Springer, March 2002.
221
Bibliographie
[16] A. M. Turing, âOn computable numbers, with an application to the entscheidungsproblem,âLon-don Mathematical Society, vol. 2, no. 42, pp. 230â265, 1937.
222
A
Partitionnement non supervisé de données
SommaireA.1 Rappel des notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . 223A.2 Clustering hiérarchique ascendant . . . . . . . . . . . . . . . . .. . . . . . . 223A.3 Support vector Clustering . . . . . . . . . . . . . . . . . . . . . . . . .. . . . 225
A.3.1 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225A.3.2 DĂ©couverte des clusters . . . . . . . . . . . . . . . . . . . . . . . . .. . 228
Cette annexe prĂ©sente en dĂ©tails les deux mĂ©thodes non supervisĂ©es de partitionnement de donnĂ©esqui sont employĂ©es dans le cadre de la rĂ©tro-ingĂ©nierie de protocole dont fait lâobjet le chapitre 5.
A.1 Rappel des notations
Le partitionnement de donnĂ©es ou clustering vise Ă construire des clusters Ă partir dâun ensemble depointsX = xi , i = 1. . .n. De plus, le nombre de clusters ou classes nâest pas connu Ă priori. Ătant donnĂ©que chaque point appartient Ă une classe donnĂ©eC = ci , i = 1. . .m, Ti = xi1, . . . ,xip est lâensembledes points deX appartenant Ă la classei. Il est important de noter que chaquex est indexĂ© par un uniqueindice (ik) et non deux, aveci â 1. . .m reprĂ©sentant la classe correspondante etk variant entre un et lenombre dâĂ©lĂ©ments de cette classe. Par consĂ©quent il faut prĂ©ciser queâ Ti, â xâ Ti xâ X, câest-Ă -direâxkp,1< kp< n.
Un algorithme de clustering sâassimile Ă une fonctionÏ : Xâ K oĂč K = ki , i = 1, . . . , t câest-Ă -direune fonction qui associe une classeki Ă chaque pointxi . LâensembleK est diffĂ©rent de lâensembleC etleurs cardinalitĂ©s peuvent notamment divergĂ©es selon lâefficacitĂ© de lâalgorithme utilisĂ©.
A.2 Clustering hiérarchique ascendant
Le clustering hiĂ©rarchique ascendant [27] est une mĂ©thode de partitionnement trĂšs connue. Sonprincipe rĂ©side dans la notion de distance entre deux pointstelles que celles dĂ©crites dans la sectionprĂ©cĂ©dente. En effet, la premiĂšre Ă©tape construit un cluster pour chaque message individuel. Ensuite, lesplus proches sont regroupĂ©s entre eux Ă chaque Ă©tape jusquâĂ regrouper lâensemble des points dans unmĂȘme cluster. Ce type de mĂ©thode est dit hiĂ©rarchique car un arbre binaire est crĂ©Ă©, oĂč la racine est le
223
Annexe A. Partitionnement non supervisé de données
Dis
tan
ce e
ntr
e le
s cl
ust
ers
reg
rou
pés
distance max
FIGURE A.1 â Partitionnement hiĂ©rarchique â les clusters en rouge sont les clusters finaux si une distancemaximal reprĂ©sentĂ©e par la ligne rouge est spĂ©cifiĂ©e.
cluster le plus gĂ©nĂ©ral (avec tous les messages) et les feuilles sont les clusters les plus simples (messagesindividuels). Chaque nĆud de lâarbre reprĂ©sente donc le cluster composĂ© des messages contenus dans lessous-branches comme lâillustre la figure A.1. Un tel arbre sâappelle un dendogramme oĂč la hauteur dâuncluster Ă©quivaut Ă la distance minimale pour regrouper ces sous-branches. GĂ©nĂ©ralement, les rassem-blements sont opĂ©rĂ©s jusquâĂ ce que la distance inter-cluster soit supĂ©rieure Ă un seuil. Dans ce cas, ledendogramme se limite aux sous-arbres sous cette distance comme signalĂ© sur la figure A.1.
Lâalgorithme 7 est la mise en Ćuvre de cette technique. Il prend trois paramĂštres : lâensembleX depoints Ă partitionner, le seuil maximalÏ pour regrouper deux clusters etd une fonction de distance entredeux clusters. Lâinitialisation commence donc par crĂ©er uncluster individuel pour chaque message (ligne3) puis calcule la matrice de distances entre ces derniers 6.Lâalgorithme itĂšre alors tant quâil existe unedistance infĂ©rieure Ă Ï (ligne 8. Deux clusters sont regroupĂ©s de la façon suivante :
â les points dâun des deux sont ajoutĂ©s Ă ceux de lâautre (ligne 9) et lâautre est supprimĂ© ;â les distances associĂ©es au cluster supprimĂ© le sont elles aussi ;â les distances associĂ©es au cluster prĂ©servĂ© sont mises Ă jour (boucle de la ligne 13).LâĂ©valuation de la distance entre deux clusters est un paramĂštre essentiel de lâalgorithme. Comme
celles introduites dans la section prĂ©cĂ©dente sont dĂ©finiespour des points et non des clusters (des ensem-bles de points), elles doivent ĂȘtre adaptĂ©es. Ătant donnĂ© une telle distancedpoints, plusieurs approchesexistent pour en dĂ©duire la distanced(c1,c2) entre les clustersc1 etc2 dont les plus rĂ©pandues sont :
â le saut minimal est la distance la plus petite entre deux points de chaque cluster :
d(c1,c2) = minxi inc1,yjâc2
(dpoints(xi ,y j))
â chaque clusterci est reprĂ©sentĂ© par son barycentrebar(ci) sur lequel on applique la fonction dedistance :
d(c1,c2) = (dpoints(bar(c1),bar(c2))
La premiĂšre, souvent dĂ©nommĂ©e la mĂ©thode des proches voisins, aide Ă identifier des clusters deformes arbitraires. Par exemple, des clusters linĂ©aires comme sur la figure A.2(a) peuvent ĂȘtre reconnusalors que la mĂ©thode du barycentre aura tendance Ă regrouperde clusters concentrĂ©s autour dâun pointĂ lâinstar de la figure A.2(b). Lâapplication de lâune ou lâautre des mĂ©thodes doit donc ĂȘtre mĂ»rementrĂ©flĂ©chie selon le cas dâutilisation.
224
A.3. Support vector Clustering
Algorithme 7 clust_hierarchique(X,Ï, d)1: dim(M) retourne la dimension de la matrice carrĂ©e M2: resultat= 3: pour i = 1, . . . ,dim(M) faire4: resultat_i = xi5: fin pour6: remplir M tel queMi j = d(resultat_i, resultat_ j)
7: chercher la valeur minimalemin= Mkt
8: tantque min< Ï faire9: resultatk = resultatkâ© resultatt
10: supprimerresultatt11: enlever la ligneMt
12: enlever la colonneMt
13: pour i = 1, . . . ,dim(M) faire14: Mki = d(resultatk, resultati)15: Mik = Mki
16: fin pour17: chercher la valeur minimalemin= Mkt
18: fin tantque19: retournerresultat
A.3 Support vector Clustering
LâintĂ©rĂȘt de algorithmes basĂ©s sur les machines Ă vecteurs supports est la sĂ©paration de points dedonnĂ©es non sĂ©parables dans lâespace dâorigine (figure A.3(a)). Ceux-ci sont donc initialement au seinde clusters de formes arbitraires difficilement sĂ©parables. Lâastuce des SVM projette ces points dansun espace de plus grande dimension (figure A.3(b)), appelĂ© espace de re-description, dans lequel lespoints seront facilement dissociables. Intuitivement, unespace plus grand caractĂ©risera les donnĂ©es plusprĂ©cisĂ©ment pour mieux les sĂ©parer. Dans le cadre de SVC, lescontours des clusters de lâespace dâoriginese rĂ©duisent Ă une hypersphĂšre dans lâespace de plus grande dimension. Son objectif est donc de trouvercette sphĂšre (figure A.3(c)) puis de la repasser dans lâespace dâorigine pour dĂ©couvrir les clusters quâelleforme (figure A.3(d)).
A.3.1 Apprentissage
Chaque pointxi de X est projetĂ© dans un nouvel espace dimensionnel via lâapplication de la fonc-tion Ί. LâhypersphĂšre contenant les points projettĂ©s est spĂ©cifiĂ©e par son centrea et son rayonR. ParconsĂ©quent, cette sphĂšre se dĂ©finit Ă partir des points dâorigine comme :
âΊ(xi)âaâ2†R2 âi (A.1)
Cependant, certains points peuvent tout de mĂȘme ne pas ĂȘtre facilement intĂ©grĂ©s dans la sphĂšre Ă moindre coĂ»t. En fait, SVC introduit des variables dâajustement autorisant quelques points Ă ne pasrĂ©pondre entiĂšrement aux conditions imposĂ©es. Ce choix Ă©vite ainsi de biaiser les rĂ©sultats Ă cause de
225
Annexe A. Partitionnement non supervisé de données
o o o o oo o
x x x x x x
o o
x x x
(a) Clusters linéaires
ooo
oooo
xxxx
x xoox
x x
(b) Clusters circulaires
FIGURE A.2 â Clustering hiĂ©rarchique selon deux types de distancesinter-clusters
TT
TT
(a) Points initiaux
T
T
T
T*
*
*
*
(b) Projection dans lâespacede re-description
R
T
T
T
*
*
T**
a
(c) Recherche de lâhyper-sphĂšre englobante
TT
T
T*
*
**
(d) Projection de lâhyper-sphĂšre dans lâespace dâorig-ine
FIGURE A.3 â Les Ă©tapes de SVC (Les Ă©toiles symbolisent les vecteurssupports)
quelques points de donnĂ©es non facilement identifiables voire totalement erronĂ©s. Par consĂ©quent, lâhy-persphĂšre est plus formellement spĂ©cifiĂ©e par :
âΊ(xi)âaâ2†R2+Οi âi (A.2)
oĂč lesΟi sont les variables dâajustement.
Ătant donnĂ© lâobjectif de trouver la sphĂšre de rayon minimalR tout en respectant la contrainte prĂ©cĂ©-dente, les auteurs introduisent les multiplicateurs de LagrangeÎČi et”i :
L = R2ââi(R2+ΟiââΊ(xi)âaâ2)ÎČi ââ
iΟi”i +Câ
iΟi (A.3)
Le termeCâi Οi reprĂ©sente quant Ă lui la pĂ©nalitĂ© induite par les variablesdâajustement. De cette façoncette formulation prend en compte le fait dâavoir des valeurs dâajustement les plus petites possiblesdont lâimpact est paramĂ©trable grĂące Ă la constanteC. Une telle formulation transforme le problĂšmedâoptimisation en une recherche des valeurs telles que la dĂ©rivĂ©e du Lagrangien soit nulle pour chacunedes variables du problĂšme. En dĂ©rivant lâĂ©quation (A.3) respectivement selonR, a et Οi et en prenant la
226
A.3. Support vector Clustering
valeur en zéro correspondante, le résultat est respectivement :
âj
ÎČ j = 1
a=âj
ÎČ jΊ(x j) = 1
ÎČ j =Câ”j
(A.4)
Cependant, le problĂšme dâoptimisation en question est souscontrainte non linĂ©aire dâinĂ©galitĂ© nĂ©cessi-tant lâajout des conditions KKT (Karush-Kuhn-Tucker) qui furent Ă©tudiĂ©es dans le cadre des SVM parFletcher [26] :
Ο j”j = 0
(R2+Ο j â||Ï(x j)âa||2)ÎČ j = 0
ÎČ j =Câ”j
(A.5)
Le problĂšme est alors complĂštement dĂ©fini, est qualifiĂ© de primal et dĂ©voile trois types de points :â les vecteurs supports qui sont les points exactement Ă la surface de la sphĂšre. Plus particuliĂšrement
ce sont ceux tels que 0< ÎČi <C et ils forment lâensembleSV;â les points en dehors de la sphĂšre, câest-Ă -dire tels queÎČi =C ;â les autres poins Ă lâintĂ©rieur de la sphĂšre.
Le problĂšme est mutable en une version duale :
W = âi
Ί(xi)2ÎČiââ
i, j
ÎČiÎČ jK(xi ,x j) (A.6)
avec comme contraintes :0†ÎČi â€C ; â
i
ÎČi = 1 (A.7)
K(xi ,x j) est une fonction noyau respectant le thĂ©orĂšme de Mercer [20]. Son introduction est lâautre pointclĂ© de toutes les mĂ©thodes basĂ©es sur les SVM car elle Ă©vite ladĂ©finition de la fonction de transfomationΊ et se cantonne Ă une fonction applicable Ă deux points tel quele noyau Gaussien paramĂ©trĂ© parq :
K(xi ,x j) = eâqâxiâxjâ2
(A.8)
En anglais, cette astuce se nommekernel trick. Le problĂšme dâoptimisation se rĂ©sume donc Ă trouver lesvaleur deÎČi permettant de maximiserW grĂące Ă des mĂ©thodes de rĂ©solution de problĂšmes de program-mation quadratique. La distance dâun pointx quelconque par rapport Ă la sphĂšre est alors calculable :
R2(x) = K(x,x)â2âj
ÎČ jK(x j ,x)+âi, j
ÎČiÎČ jK(xi ,x j) (A.9)
Le rayon de la sphĂšre se calcule donc grĂące Ă cette formule appliquĂ©e sur les vecteurs supports Ă©tant despoints sur la surface de lâhypersphĂšre par dĂ©finition.
R= R(xi),xi â SV
La phase dite dâapprentissage se termine ainsi mais, malgrĂ©ce qualificatif, cette mĂ©thode reste to-talement non supervisĂ©e et ne demande aucun jeu dâapprentissage ni le nombre de clusters Ă priori.
227
Annexe A. Partitionnement non supervisé de données
FIGURE A.4 â Forme alĂ©atoire dâun cluster, les lignes en pointillĂ©smontrent que pour tout point ducluster, il existe un segment linĂ©aire le reliant Ă un autre sans sortir de la forme du cluster
A.3.2 DĂ©couverte des clusters
La sphĂšre dĂ©couverte et re-projetĂ©e dans lâespace dâorigine dĂ©limite les frontiĂšres des clusters. LamĂ©thode proposĂ©e initialement dans [18] sâappuie sur une approche gĂ©omĂ©trique mentionnant que deuxpoints font partie du mĂȘme cluster si lâensemble des points intermĂ©diaires (sur le segment entre les deuxpoints dans lâespace dâorigine) est aussi dans le mĂȘme cluster, câest-Ă -dire quâils se situent dans lâhyper-sphĂšre. En effet, malgrĂ© une forme totalement alĂ©atoire desclusters, celle-ci suit les contours formĂ©s parles points extĂ©rieurs. En consĂ©quence, tout point dâune classe est forcĂ©ment liĂ© par un «segment» Ă unautre sans sortir du cluster (la figure A.4). Une matrice dâadjacence est ainsi construite :
Ai j =
1 si ây sur le segment[xi ,x j ],R(y)< R0 else
Les composantes connexes du graphe décrites par cette matrice concordent alors avec les clusters.
228
B
Machines Ă vecteurs de supportmulti-classes
SommaireB.1 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 229B.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 231
Cette annexe dĂ©taille la classification multi-classe basĂ©esur les machines Ă vecteurs de support util-isĂ©es dans le cadre du fingerprinting supervisĂ© dâĂ©quipement dans le chapitre 6 duquel est repris lâensem-ble des notations :
â lâensemble de tests composĂ© deN arbres :T = t1, . . . , tN,â le jeu dâapprentissage dĂ©fini par un ensemble deM arbresL = l1, . . . , lM,â lâensemble des types dâĂ©quipement :D = d1, . . . ,dK.Pour rappel, les Ă©tapes clĂ© de la mĂ©thode sont :â apprentissage :
â projection des points dans un espace de plus grande dimension,â dĂ©couverte des hyperplans sĂ©parateurs.
â tests :â chercher de quel cĂŽtĂ© de chaque hyperplan le point Ă tester se trouve,â dĂ©terminer quelle est la classe (type) la plus probable.
B.1 Apprentissage
PremiĂšrement, les points de lâespace initial câest-Ă -direles arbres de lâensemble dâapprentissage sontprojetĂ©s dans lâespace de re-description via une fonctionÏ(l i). Pour chaque paire de types dâĂ©quipements< dl ,dk >, lâensemble des arbres correspondant est formĂ© :
Ll = l i â L|real(l i) = dl
Lk = l i â L|real(l i) = dk (B.1)
Lâhyperplan sĂ©parateurHlâk spĂ©cifiĂ© parwlk et bl k doit rĂ©sulter en un partitionnement quasi parfait
229
Annexe B. Machines Ă vecteurs de support multi-classes
deLl âȘLk en introduisant certains arbres mal positionnĂ©s via des variables dâajustementΟlkli
:
âl i â Ll âȘLk
ăÏ(l i) ·wlkă+blk â„ 1âΟlkli , si li â Ll
ăÏ(l i) ·wlkă+blk â€â1+Οlkli , si li â Lk
(B.2)
Les variables dâajustement contribuent Ă dĂ©couvrir un hyperplan sĂ©parateur mĂȘme si les classes ne sontpas entiĂšrement sĂ©parables. Par exemple, si un pointOse trouve au milieu des pointsX sur la figure 6.1(c),aucun hyperplan sĂ©parateur nâest envisageable. La formulation prĂ©cĂ©dente induit une normalisation demaniĂšre Ă ce que les points soient Ă une distance+1 ouâ1 selon le cĂŽtĂ© de lâhyperplan (sans prendre en
compte les variables dâajustement). La marge associĂ©e vautalors1||wlk||
. Le problĂšme se rĂ©sume alors Ă
maximiser ou plutĂŽt minimiser son inverse en prenant en compte la marge des deux cĂŽtĂ©s dâoĂč le facteur12
dans la formule ci-dessous :
minwlk,blk,Οlk
li
12||wlk||2+C â
liâLlâȘLk
Οlkti (B.3)
Ce problĂšme dâoptimisation ainsi que les contraintes prĂ©cĂ©dentes justifie une fois de plus lâintroductiondes multiplicateurs de Lagrange :
L =12||wlk||2â â
liâLl
αlkli (ăÏ(l i) ·w
lkă+blkâ1+Οlkli )+ â
liâLk
αlkli (ăÏ(l i) ·w
lkă+blk +1âΟlkli ) (B.4)
AprĂšs dĂ©rivation et calcul en zĂ©ro selon les diffĂ©rentes variableswlk, blk etΟlkli
, le problĂšme dâoptimisationdual suivant est obtenu :
max âliâTlâȘTk
αlkli â
12 â
liâTlâȘTkl jâTlâȘTk
αlkli αlk
l jÏlk
li Ïlkl jăÏ(l i).Ï(l j)ă (B.5)
avec :
Ïlkli =
1 âl i â Ll
â1 âl i â Lk(B.6)
Dâautres contraintes complĂštent le problĂšme :
âliâTlâȘTk
αlkli Ïlk
li = 0
0†αlkli â€C, l i â Tl âȘTk
(B.7)
Comme pour SVC dans le chapitre prĂ©cĂ©dent, lâusage dâune fonction noyau contourne le problĂšmede la dĂ©finition de la fonctionÏ :
K(l i , l j) = ă Ï(l i).Ï(l j) ă (B.8)
Le produit scalaire de la formule B.5 peut ainsi ĂȘtre remplacĂ©.Les points Ă©tant exactement sur la surface de la marge, nommĂ©s vecteurs supports et formant lâensem-
ble SVlk sont caractérisés, par un multiplicateur de Lagrange non nul :
âl i â SVαlkli 6= 0
Le scalaireblk est directement calculable à partir de ces derniers de la façon suivante :
blk =1|SVlk| â
liâSVlk
(Ïlkli â â
l jâTlâȘTk
αlkli Ïlk
l jK(l j , l i)) (B.9)
230
B.2. Utilisation
B.2 Utilisation
Lors de lâutilisation, un nouveau pointlx doit ĂȘtre rangĂ© dans lâune ou lâautre classe. LâĂ©quationB.2 indique explicitement que la classe dâun point ou, dans cette Ă©tude, lâĂ©quipement dâun arbre dĂ©pendde sa position par rapport Ă lâhyperplan. Plus prĂ©cisĂ©ment,la fonction de dĂ©cision suivante sâappuieuniquement sur les vecteurs supports car pour les autres points l i αlk
li= 0 :
flk(lx) = âliâTlâȘTk
αlkli Ïli K(l i , lx)+blk (B.10)
Par consĂ©quent, le signe de la valeur retournĂ©e par cette fonction renseigne sur la position delx parrapport Ă lâhyperplan dâoĂč la fonctionclasselk(lx) assignant une classe au pointlx :
classelk(lx) =
dl si flk(lx)â„ 0dk sinon
(B.11)
Comme un hyperplan sĂ©pare de deux classes, la classificationnĂ©cessite autant dâhyperplans quâil ex-
iste de paires de classes dâoĂč le calcul deK(Kâ1)
2fonctions de dĂ©cision carK est le nombre dâĂ©quipements
distincts et donc de classes.Finalement, la fonctionΩ construite pendant la phase dâapprentissage et caractĂ©ristique du finger-
printing supervisĂ© teste lâappartenance dâun arbre par rapport Ă chaque hyperplan pour en dĂ©duire le typele plus probable :
Ω(lx) = argmaxdiâD
(
âclasselk(lx)=di
1
)
(B.12)
231
Résumé
La popularitĂ© des rĂ©seaux informatiques et dâInternet sâaccompagne dâun essor des applications com-municantes et de la multiplication des protocoles dont le fonctionnement est plus ou moins compliquĂ©,ce qui implique Ă©galement des performances diffĂ©rentes en termes de robustesse. Un premier objectif decette thĂšse est dâapprofondir plus en dĂ©tails la robustessede protocoles sâillustrant par dâextraordinairesperformances empiriques tels que les botnets. DiffĂ©rents protocoles employĂ©s par les botnets sont doncmodĂ©lisĂ©s dans cette thĂšse.
Par ailleurs, lâessor et la diversitĂ© des protocoles sâaccompagnent dâun manque de spĂ©cificationvolontaire ou non que la rĂ©tro-ingĂ©nierie tente de retrouver. Une premiĂšre phase essentielle est notam-ment de dĂ©couvrir les types de messages. La technique mise enĆuvre dans cette Ă©tude sâappuie surles machines Ă vecteurs de supports tout en ayant au prĂ©alable spĂ©cifiĂ© de nouvelles reprĂ©sentations desmessages dont la complexitĂ© de calcul est trĂšs rĂ©duite par rapport aux autres techniques existantes.
Enfin, il existe gĂ©nĂ©ralement un grand nombre dâapplications distinctes pour un mĂȘme protocole etidentifier prĂ©cisĂ©ment le logiciel ou le type dâĂ©quipement utilisĂ© (marque, version) est un atout essentieldans plusieurs domaines tels que la supervision ou la sĂ©curitĂ© des rĂ©seaux. Sâappuyant uniquement surles types de messages, le comportement dâun Ă©quipement, câest-Ă -dire la maniĂšre dont il interagit avecles autres, est une information trĂšs avantageuse lorsquâelle est couplĂ©e avec les dĂ©lais entre les messages.Enfin, la grammaire dâun protocole connu permet de construire les arbres syntaxiques des messages, dontle contenu et la structure sĂ©mantiquement riche, avaient peu Ă©tĂ© Ă©tudiĂ©s jusquâĂ maintenant dans le cadrede lâidentification des Ă©quipements.
Mots-clés:botnet, robustesse, supervision, sécurité, fingerprinting, arbre comportemental, arbre syntax-ique, machines à vecteurs supports, clustering, rétro-ingénierie des protocoles.
Abstract
The growth of computer networks like the Internet entailed ahuge increase of networked appli-cations and the apparition of multiple, various protocols.Their functioning complexity is very variableimplying diverse performances. The first objective of this PhD thesis is to evaluate precisely the robust-ness of those networked applications, which are known to be very efficient and seem scalable, like forinstance, the botnets. Hence, several botnets protocols are imitated.
Furthermore, protocol reverse engineering has skyrocketed because many protocols are not alwayswell documented. In this domain, the first necessary step is to discover the message types and this workintroduces a novel technique based on support vector machines and new simple message representationsin order to reduce the complexity.
Finally, there are many distinct applications for a single protocol which can be identified thanksto device fingerprinting techniques whose the domain of application is related to security and networkmanagement. The first technique proposed in this PhD thesis can work with the previous contributionabout reverse engineering because the devices could be identified only based on the types of messagesexchanged which are aggregated into a temporal behavioral tree including message delays. Besides, the
233
syntactic tree structure of a message is also a good discriminative feature to distinguish the differentdevices but was very little considered until now.
Keywords: botnet, robustness, network management, security, fingerprinting, behavioral tree, syntactictree, support vector machines, clustering, protocol reverse engineering
234