robustesse et identification des applications communicantes

242
HAL Id: tel-01748663 https://tel.archives-ouvertes.fr/tel-01748663v3 Submitted on 5 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entiïŹc research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinĂ©e au dĂ©pĂŽt et Ă  la diïŹ€usion de documents scientiïŹques de niveau recherche, publiĂ©s ou non, Ă©manant des Ă©tablissements d’enseignement et de recherche français ou Ă©trangers, des laboratoires publics ou privĂ©s. Robustesse et IdentiïŹcation des Applications Communicantes JĂ©rĂŽme François To cite this version: JĂ©rĂŽme François. Robustesse et IdentiïŹcation des Applications Communicantes. RĂ©seaux et tĂ©lĂ©com- munications [cs.NI]. UniversitĂ© Henri PoincarĂ© - Nancy 1, 2009. Français. tel-01748663v3

Upload: others

Post on 13-Feb-2022

5 views

Category:

Documents


0 download

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

Mis en page avec la classe thloria.

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

ii

À ma femme.Mes parents.

Ma famille.

iii

iv

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 matiĂšres

8

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

Table des figures

12

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

Introduction générale

18

PremiĂšre partie

État de l’art

19

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

Chapitre 2. Rétro-ingénierie de protocoles

62

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

Chapitre 3. Fingerprinting

80

DeuxiĂšme partie

Contribution

81

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

Chapitre 4. Modélisation des botnets

106

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

Chapitre 5. Nouvelles représentations et méthodes pour la rétro-ingénierie

124

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

TroisiĂšme partie

Evaluation

147

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

Chapitre 7. Performances des botnets

166

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

[email protected]

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

Chapitre 9. Identification des Ă©quipements

196

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

Annexe B. Machines Ă  vecteurs de support multi-classes

232

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

235