Vous êtes sur la page 1sur 93

Institut de la Francophonie pour l'Informatique

Centre de recherche Nancy - Grande Est

MMOIRE de n d'tudes
pour obtenir le titre de
Master en Informatique
Mention :

Systmes et Rseaux

Prsent et soutenu par

TA Thanh Dinh

Vers une mthode gnrique d'attaque d'un botnet


STAGE dirig par Jean-Yves Marion et Romain Pchoux prpar l'INRIA Nancy - Grande Est, Laboratoire de Haute Scurit

Remerciements
Ce travail n'aurait jamais vu le jour sans l'aide prcieuse de monsieur Jean-Yves Marion. Il m'a guid tout au long de la priode de stage par ses explications aussi claires que prcises. Je tmoigne toute ma gratitude monsieur Romain Pchoux qui m'a initi au calcul appliqu au travers des discussions hebdomadaires et m'a donn des remarques sur la mmoire. Je tiens remercier monsieur Eric Thrond pour sa gentilesse. Il m'a aid dcouvrir la vie en France, particulirement Nancy. Nous avons coopr l'execution d'un simulateur du botnet Waledac. Je remercie chaleureusement toutes les personnes de l'quipe CARTE pour une ambiance de travail particulirement favorable. Merci enn mes parents, ma femme et mon ls pour leur patience et leur encouragement tout l'instant.

Rsum
Les travaux raliss pendant la priode de stage portent sur l'application des mthodes de la vrication des protocoles cryptographiques l'attaque des botnets. La vrication automatique des protocoles cryptographiques est un sujet de recherche trs actif. Elle vise montrer mathmatiquement la scurit d'un protocole et dtecter galement des failles. Les botnets rcents ont tendance d'utiliser des protocoles cryptographiques pour protger leur communication. Nous tudions un botnet particulier, Waledac, qui utilise des algorithmes cryptographiques pour scuriser la communication entre ses bots. Ensuite, nous abordons quelques approches de la vrication des protocoles : spi calcul et clauses de Horn. Pour attaquer de tels botnets, nous proposons nalement une mthode gnrique qui exploite des vulnrabilits situes dans ses protocoles de communication.

Mots cls : mthode formelle, vrication des protocoles cryptographiques, spicalcul, clauses de Horn, Waledac, botnet.

Abstract
In this internship, we deal with some methods of protocol verication to propose a new method for attacking botnets. The verication of cryptographic protocols is a very active research topic. It aims to prove mathematically the security of communication protocol. The recent botnets tend to use cryptographic protocols to secure its communications. We study the Waledac botnet as an particular use case. The bots of Waledac use some cryptographic algorithms to protect their communications. Then we discus some approaches to protocol verication : spi-calculus and Horn clauses. Finally, we propose a generic method to attack Waledac botnet which exploits vulnerabilities located in their communication protocols.

Keywords : formal method, protocol cryptographic verication, spi-calculus, Horn clauses, Waledac, botnet.

Table des matires


1 Introduction
1.1 1.2 1.3 1.4 2.1 Problmatique . . . . . . Objectif . . . . . . . . . . Environnement de travail Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1
1 1 1 2

2 Le monde sauvage des botnets

2.2 3.1

Botnets . . . . . . . . . . . . . . 2.1.1 Origin . . . . . . . . . . . 2.1.2 Architecture . . . . . . . . 2.1.3 Objectif . . . . . . . . . . Mthodes de protection contre les

. . . . . . . . . . . . . . . . . . . . botnets

3
3 3 4 5 6

3 Botnet Waledac

3.2

3.3

3.4

3.5

3.6

Introduction . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Waledac . . . . . . . . . . . . . . . . . . . . 3.1.2 Objectif . . . . . . . . . . . . . . . . . . . . Caractritiques techniques . . . . . . . . . . . . . . 3.2.1 Vecteurs d'infection . . . . . . . . . . . . . 3.2.2 Code binaire et protection . . . . . . . . . . 3.2.3 Taille du rseau Waledac . . . . . . . . . . . 3.2.4 Protocole de communication . . . . . . . . . Structure du rseau . . . . . . . . . . . . . . . . . . 3.3.1 Architecture . . . . . . . . . . . . . . . . . . 3.3.2 Communications et messages changs . . . Primitives cryptographiques . . . . . . . . . . . . . 3.4.1 Chirement symtrique AES . . . . . . . . 3.4.2 Utilisation du chirement asymtrique RSA Attaques contre Waledac . . . . . . . . . . . . . . . 3.5.1 Attaque de l'homme du milieu . . . . . . . 3.5.2 Attaque Sybil . . . . . . . . . . . . . . . . . Mthodes gnriques d'attaque . . . . . . . . . . . 3.6.1 Analyses . . . . . . . . . . . . . . . . . . . . 3.6.2 Problmatique et objectif . . . . . . . . . . 3.6.3 Outline de l'approche propose . . . . . . .

9 10 10 10 10 10 11 11 12 12 13 15 15 16 16 17 18 19 19 19 20

4 Vrication des protocoles et mthodes formelles


4.1

Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Mthodes formelles pour la vrication de programmes . . . . 4.1.2 Protocole cryptographique, attaque et vrication . . . . . . .

25

25 26 27

vi
4.2 4.1.3 Proprits de scurit . . . . . . . . . . . . Protocole cryptographique . . . . . . . . . . . . . . 4.2.1 Primitives cryptographiques . . . . . . . . . 4.2.2 Exemple : protocole "Wide-Mouthed-Frog" Modles formels . . . . . . . . . . . . . . . . . . . . 4.3.1 Algbre de processus . . . . . . . . . . . . . 4.3.2 Pi-calcul et spi-calcul . . . . . . . . . . . . . 4.3.3 Modle de traces et clauses de Horn . . . . Modles formels des attaques . . . . . . . . . . . . 4.4.1 Attaques en spi calcul . . . . . . . . . . . 4.4.2 Attaques en clauses de Horn . . . . . . . . .

Table des matires


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 29 29 30 31 32 35 40 44 44 45

4.3

4.4

5 Solution la mthode gnrique d'attaque


5.1

5.2

Mthode gnrique d'attaque . . . . . . . . . . . . . . . 5.1.1 Plan d'attaque et analyses . . . . . . . . . . . . . 5.1.2 Solution propose . . . . . . . . . . . . . . . . . . Reprsentation de l'attaque contre Waledac . . . . . . . 5.2.1 Modlisation du protocole de communication . . 5.2.2 Attaque contre la distribution de la cl de session Contribution Limite . . . . Perspective . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

47 47 48 49 50 51 55 56 57 57 59 59

6 Conclusion et perspective
6.1 6.2 6.3 6.4

55

A ProVerif

A.1 ProVerif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Modlisation du protocole de Waledac . . . . . . . . . . . . . . . . . B.1 Processus Squentiels Communicants . . . . . . . . . . . . . . . . . . B.2 LOTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.3 Pi-calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.1 Modle symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Modle calculatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . D.1 Conception du simulateur . . . . . . . . . . . . . . . . . . . . . . . . D.2 Exprimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

59

B Algbre de processus

65

65 65 66 67 68

C Modles des protocoles cryptographiques

67

D Simulateur du botnet Waledac

69
69 70

Bibliographie

73

Table des matires Index

vii 80

Table des gures


2.1 2.2 2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 5.1 5.2 5.3 5.4 6.1 Architecture traditionnelle. Crdit photo[Botezatu 2008] . . . . . . . Architecture pair- pair. Crdit photo[Botezatu 2008] . . . . . . . . . Taille de quelques botnets. Crdit photo[atrocity 2010] . . . . . . . . Opration de faux rpteur. Crdit photo[Stock 2009] . . . . . . . . . Distribution de machines infectes pendant la journe 24 Aot 2009. Crdit photo[Stock 2009] . . . . . . . . . . . . . . . . . . . . . . . . . Topologie du rseau de Waledac. Crdit photo[Tenebro 2009] . . . . Messages changs entre les spammeurs et le serveur de contrle . . . Mthode de mise jour de RList . . . . . . . . . . . . . . . . . . . . Mthode d'change de cl de session . . . . . . . . . . . . . . . . . . Modle simple d'attaque . . . . . . . . . . . . . . . . . . . . . . . . . Survol de l'approche propose . . . . . . . . . . . . . . . . . . . . . . Version simplie du protocole de Denning-Sacco . . . . . . Attaque contre le protocole simpli de Denning-Sacco . . . Protocole Wide-Mouthed-Frog . . . . . . . . . . . . . . . . . Reprsentation symbolique du protocole . . . . . . . . . . . Diagramme tats-transitions d'un distributeur des boissons Etablissement d'une connexion TCP . . . . . . . . . . . . . Modle formel en calcul de l'tablissement TCP . . . . Rlations de raction . . . . . . . . . . . . . . . . . . . . . . Modlisation des primitives cryptographiques . . . . . . . . Modle formel en spi calcul du protocole Denning-Sacco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 5 11 12 13 14 15 16 21 22 27 28 31 31 34 36 36 37 38 39 49 50 50 51 56 68 70 70 71 71 71

Solution ralisable . . . . . . . . . . . . . . . . . . . . . . . . Communications entre les couches du botnet . . . . . . . . . . Distribution de la cl session entre le spammeur et le serveur Attaque contre protocole cryptographic du Waledac . . . . . . Variant du protocole Needham-Schroeder

. . . . . . . . . . . . . . .

C.1 Variant simple du protocole de Denning-Sacco . . . . . . . . . . . . . D.1 D.2 D.3 D.4 D.5 Routage de messages . . Paramtres par dfaut . Simulateur de Waledac . Le dbut du simulateur Tous les spammeurs sont . . . . . . . . . . . . . . . . . . . . . . . . . . . . compromis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction
Sommaire
1.1 1.2 1.3 1.4 Problmatique Ob jectif . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environnement de travail . . . . . . . . . . . . . . . . . . . . . Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Chapitre 1

1.1

Problmatique

Les botnets sont des rseaux de machines infectes. Ce rseau est structur et une machine communique avec les autres par l'intermdiaire de protocoles scuriss. Nous avons tudi le cas du botnet Waledac. partir de cette tude, nous avons conu une attaque contre ce botnet. Il s'agit de pntrer le botnet et de se faire passer pour une machine infecte. partir de l, il est possible de neutraliser une partie du botnet. Ce concept d'attaque n'est possible que si le protocole de communication entre les machines du botnet est vulnrable. La problmatique gnrale est de concevoir une mthode pour pntrer un botnet et le neutraliser.
1.2 Objectif

L'objectif du stage est la recherche d'attaque sur des protocoles malicieux. Pour cela, il faudra concevoir un modle des communications du botnet. Ce modle sera bas sur la logique du premier ordre ou sur un calcul de processus. Une fois la modlisation tablie, il faudra concevoir un modle d'attaque. Enn, il faudra rchir sur des outils automatiques capables de trouver une vulnrabilit dans ce protocole qui pourrait conduire neutraliser un botnet. Le travail demand s'appuie sur les rsultats tablis dans le domaine de la vrication de protocoles et nos propres rsultats en virologie et sur les botnets.
1.3 Environnement de travail

Ce stage s'inscrit dans la mise en uvre du laboratoire de haute scurit (LHS) en informatique du LORIA. Les objectifs du LHS sont de conduire certaines exprimentations lies la scurit informatique, et plus particulirement la virologie.

Chapitre 1. Introduction

Cette plateforme de recherche est unique dans le monde acadmique et ore de nombreuses opportunits l'application des recherches scientiques la ralit.
1.4 Contribution

Les travaux raliss pendant la priode de stage se concentrent sur l'attaque contre des protocoles cryptographiques utiliss par des botnets. Dans la section 3.6.3, nous proposons un nouveau "framework" servant construire une attaque gnrique contre les botnets. Une telle attaque casse la scurit des protocoles de communication des botnet, donc peut tre utilise comme une base sur laquelle les attaques successives peuvent se droulent. Dans la section 4.4.1, nous proposons une nouvelle ide de la modlisation de l'attaque en spicalcul. L'attaque est reprsente comme un processus qui se fonctionne paralllement au protocole, et essaie rvler des informations que le protocole protge. Cette modlisation nous permet de mettre en application une attaque formelle car la reprsentation en spi calcul d'un processus est proche de sa reprsentation en un langage de programmation. Dans le chapitre 5, nous donnons des analyses dtaills pour la mise en place du framework. D'une part, nous expliquons la ncessit d'utilisation des mthodes formelles permettant de vrier automatiquement les protocoles cryptographiques. Nous transformons donc un problme rel des botnets en un problme assez formel pour proter les mthodes thoriques existantes. D'autre part, nous dcrivons clairement quelle mthode approprie utiliser dans chaque tape du framework et proposons une solution ralisable du framework en se basant sur un outil de vrication automatique, ProVerif. Nous appliquons ces mthodes dans un cas particulier du botnet Waledac. Dans la section 5.2, nous prsentons une reprsentation du protocole de communication utilis par le botnet en spi calcul. Puis, nous utilison ProVerif pour vrier cette reprsentation1 . L'attaque contre Waledac est modlise par un processus en spi calcul, et nous dcrivons une dmonstration formelle qu'elle casse la condentialit du protocole. Notre framework ne se limite pas aux tels protocoles errons comme ceux de Waledac. Il est capable de dtecter des vulnrabilits (de protocole cryptographique) de n'importe quel botnet. Finalement, nous implementons un simulateur2 de Waledac en C++. Ce simulateur nous permet de visualiser le fonctionnement du botnet.

1 2

Le script de ProVerif est dcrit dans l'annexe A Ce simulateur peut tre consult dans l'annexe D

Le monde sauvage des botnets


Sommaire
2.1 Botnets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Chapitre 2

2.1.1 Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


2.2 Mthodes de protection contre les botnets . . . . . . . . . .

3 4 5
6

2.1

Botnets

Cette section peut tre considre comme une introduction au monde des botnets. La plupart des informations prsentes ici se base sur le travail de F. Ducrot, M. Danho et X. Marronnier[Ducrot 2007]. D'ailleurs, une analyse plus complte peut tre consulte dans [Nachreiner 2008]. Nous commencerons par dcrire l'origine et le dveloppement des botnets, puis nous les examinerons au niveau de topologie de rseau. Ensuite, nous prsenterons quelques objectifs de botnet. Finalement, nous aborderons des mthodes de protection.

2.1.1 Origin
Le terme botnet est revenu souvent dans l'actualit de la scurit informatique depuis quelques annes. Ce terme vient de la contraction de l'expression "roBOT NETwork", soit littralement rseau de robots. Le botnet est donc l'ensemble de robots ou de bots, chacun tant un programme localis sur la machine de victim et eectue des ordres prdenis ou reus par un serveur de contrle. Les premiers bots apparaissaient sur les rseaux IRC[Oikarinen 1993]. Les oprateurs du rseau IRC ont besoin des programmes qui les aident grer automatiquement des services du rseau, ils crent donc les robots IRC. Les robots IRC restent toujours sur un canal IRC an de le maintenir tous les temps. Ils travaillent comme un utilisateur normal du canal, mais il reste au repos jusqu' ce qu'il ait une action particulire (une commande via canal IRC) ectuer[EggHeads 2008]. Par exemple, le robot Eggdrop[Eggdrop 2008] est develop par R. Pointer en 1993 an de grer et protger le canal #gayteen sur le rseau EFnet[EFnet 2010].

Chapitre 2. Le monde sauvage des botnets

En 1999, le premier botnet utilisant IRC comme moyen de contrle t son apparition. Il s'agissait de W32. PrettyPark[Symantec 2007]. Ce botnet ne dclencha pas d'eet de mode immdiat. la n de l'anne 2000, le GTBot, un dtournement du client IRC Windows mIRC, t son apparition. Ces robots de premire gnration n'apparurent pas cependant comme une menace majeure et sont aujourd'hui pratiquement oublis. Ce fut partir de 2002 que la menace commena prendre sa forme actuelle. Les programmes Agobot[InfectionVectors 2004], SDBot puis, l'anne suivante, SpyBot sont les briques de base sur lesquelles se sont appuys par la suite les crateurs de botnets. Ces programmes sont construits de faon faciliter l'mergence de nouvelles variantes en multipliant les moyens d'intrusion, les fonctionnalits oensives et les moyens de protection.

2.1.2 Architecture
Un botnet est donc un ensemble de machines esclaves - les zombies, organises en rseauu et contrles distance par une ou plusieurs personnes. Du point de vue de l'organisation, un botnet a pour objectif de permettre un individu - le crateur du botnet, de contrler simultanment l'ensemble des machines esclaves. Le botnet est donc un rseau hiarchis comprenant un serveur de contrle et plusieurs machines esclaves. L'architecture traditionnelle comprend un ou plusieurs serveurs IRC qui sont utiliss comme canal de commande et contrle. Aprs infection, les machines clientes du botnet se connectent au serveur matre sur un calnal IRC priv an de signaler leur existence, d'obtenir des mises jour ou des instructions.

Fig.

2.1: Architecture traditionnelle. Crdit photo[Botezatu 2008]

Le point faible de ce modle d'organisation est sa sensibilit la dtection. En eet, une fois les matres identis, il sut de surveiller et de ltrer ceux-ci pour dmanteler le botnet ou le rendre inoprant sur un segment de rseau. L'architecture pair--pair est caractrise par la topologie dcentralise du rseau dans laquelle il n'y a plus de serveur de contrle. Chaque machine infecte dispose

2.1. Botnets

d'une liste initiale d'adresses IP de points d'entre dans le botnet. Une fois le bot intgr au rseau, cette liste est mise jour dynamiquement.

Fig.

2.2: Architecture pair- pair. Crdit photo[Botezatu 2008]

Les commandes du matre sont relayes travers l'ensemble du rseau grce aux bots. Ils mettent donc plus de temps se propager dans ce contexte, mais le rseau est plus robuste : la perte d'un nud ne met pas mal l'existence du rseau tout entier. Il existe aussi des architectures variantes grce l'apparition de nouvelles mthodes de communication. Il s'agit de conserver les concepts essentiels de ces deux architectures, mais en changeant le canal de contrle. Par exemple, il est possible d'utiliser un serveur web en lieu et place du serveur IRC comme matre. L'avantage pour le pirate provient du fait que le trac web sortant d'un site n'est pratiquement jamais interdit, car trop abondant pour pouvoir tre surveill sans informations complmentaires. La taille des botnets est trs variable, de quelques centaines de machines zombies plusieurs dizaines de milliers. La moyenne est de l'ordre du millier d'lments.

Fig.

2.3: Taille de quelques botnets. Crdit photo[atrocity 2010]

2.1.3 Objectif
En fait, les botnets sont l'illustration de la transformation du pirate informatique. Le d technique a fait place une conomie souterraine dans laquelle le

Chapitre 2. Le monde sauvage des botnets

piratage n'est qu'un outil qu'il faut rentabiliser. Le changement d'orientation dans les motivations des pirates, de la curiosit et de la recherche de notorit vers la recherche de prots nanciers, a t marqu par l'apparition de bots de plus en plus sophistiqus et intgrant des fonctionnalits permettant de mener diverses actions frauduleuses depuis les postes infects. Les botnets prsents servent donc aux objectifs malveillants : attaques en dnie de service, diusion de spams, etc. Il est possible de louer les services d'un botnet pour monter une attaque de dni de service distribu 1 . Ainsi, sur l'ordre du serveur matre, les machines esclaves peuvent lancer des attaques en prsentant pour origine le site pirat. Par exemple, l'envoi sur le canal IRC d'une commande dclenche une attaque en dni de service. En utilisant plusieurs milliers de machines mettant des requtes simultanment, il est possible, par exemple, d'interdire l'accs un site web. Les pertes subies par un site commercial paralys pendant plusieurs heures sont sans commune mesure avec le cot de location d'un botnet. En 2004, Jay Echouafni, CEO d'une socit de tlvision enligne, a recouru aux services d'un botnet pour attaquer des entreprises avec lesquelles il tait en conit. Sur le plan nancier, l'attaque a cot 1000$ son organisateur et a entran des pertes de l'ordre de 2.000.000$ ses victimes[Poulsen 2004]. Les bots peuvent tre utiliss pour mettre massivement des spams . Cette technique ore l'avantage son commanditaire de camouer son origine, permettant ainsi de contourner les ltrages par liste noire et les retours de bton lis l'envoi massif de spams2 ou encore le ltrage de son accs par son fournisseur d'accs. Il est possible d'utiliser les zombies3 pour recueillir des informations personnelles sur les utilisateurs, informations qui seront utilises dans le cadre de vols d'identit ou de fraude la carte bancaire. Une autre attaque dirige par les machines zombies est la diusion de logiciels publicitaires sur celles-ci.
2.2 Mthodes de protection contre les botnets

Dans cette section, nous aborderons des mthodes de protection contre les botnets. D'une part, il s'agit des mthodes concernant l'tre humain, c'est--dire qu'elles visent duquer les utilisateurs se mer. D'autre part, il existe des mthodes techniques qui liminent les botnets en s'attaquant directement ses vulnrabilits. En fait, les deux mthodes se compltent en se formant un bouclier de multi-couches. Nous ne dcrirons cependant que les mthodes techniques. Les mthodes techniques visent exploiter des vulnrabilits se situant dans toutes les caractristiques (techniques) du botnet. Remarquons que le botnet n'est rien d'autre qu'un rseau de bots, ces caractristiques peuvent tre divises donc en deux catgories, l'une concerne des codes binaires fonctionnant sur la machine infecte, l'autre concerne des protocoles de communication sur le rseau.
1 2

Distributed denial-of-service (DDoS) Comme les vagues de retours d'erreurs massives pouvant survenir aprs les envois 3 Les machines infectes

2.2. Mthodes de protection contre les botnets

Le code du botnet fonctionne sur la machine infecte, il veux donc toujours se cacher de l'utilisateur. Les logiciels antivirus (ou anti-malware) visent dtecter, puis lminer ce code malveillant. Ils doivent tre capable donc de casser les techniques de protection donc le bot se muni. Le botnet peut tre limin en attaquant sa topologie du rseau. Par exemple, nous pouvons attaquer un botnet en isolant son matre et en bloquant tous ses ordres.

Botnet Waledac
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Chapitre 3

3.1.1 Waledac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


3.2 Caractritiques techniques . . . . . . . . . . . . . . . . . . . .

10 10
10

3.2.1 3.2.2 3.2.3 3.2.4


3.3

Vecteurs d'infection . . . . . Code binaire et protection . . Taille du rseau Waledac . . Protocole de communication

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

10 10 11 11
12

Structure du rseau . . . . . . . . . . . . . . . . . . . . . . . .

3.3.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Communications et messages changs . . . . . . . . . . . . .


3.4 Primitives cryptographiques . . . . . . . . . . . . . . . . . . .

12 13
15

3.4.1 Chirement symtrique AES . . . . . . . . . . . . . . . . . . 3.4.2 Utilisation du chirement asymtrique RSA . . . . . . . . . .


3.5 Attaques contre Waledac . . . . . . . . . . . . . . . . . . . . .

15 16
16

3.5.1 Attaque de l'homme du milieu . . . . . . . . . . . . . . . . . 3.5.2 Attaque Sybil . . . . . . . . . . . . . . . . . . . . . . . . . . .


3.6 Mthodes gnriques d'attaque . . . . . . . . . . . . . . . . .

17 18
19

3.6.1 Analyses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.2 Problmatique et objectif . . . . . . . . . . . . . . . . . . . . 3.6.3 Outline de l'approche propose . . . . . . . . . . . . . . . . .

19 19 20

3.1

Introduction

Dans ce chapitre, nous prsenterons tout d'abord les caractristiques techniques du botnet Waledac, puis nous parlerons de sa structure et de son protocole de communcication. Ensuite, nous nous concentrerons sur ses algorithmes cryptographiques qui sont utiliss pour scuriser ses messages. Nous dcrirons aussi les attaques existantes contre ce botnet. Finalement, nous prsenterons des remarques sur ces attaques et proposons en bref le survol d'une mthode gnrique d'attaque. Les analyses prsentes ici se basent principalement sur des travaux de J. Calvet et P. M. Bureau[Calvet 2009a, Calvet 2009b]. Ils ont dcouvert les caractristiques techniques de Waledac grce l'ingnierie inverse sur son code binaire.

10

Chapitre 3. Botnet Waledac

3.1.1 Waledac
Waledac a fait son apparition sur l'Internet vers la n de l'anne 2008. Ce malware a d'abord attir l'attention des chercheurs par sa ressemblance avec la clbre famille Storm [Sarat 2008], qui venait alors de s'teindre. Au del de ce probable lien de liation, Waledac est particulirement intressant en lui mme, ne serait-ce que parce que les machines du botnet qu'il constitue communiquent l'aide d'un protocole cryptographique pair--pair, ou bien encore parce que ses techniques de protection logicielles s'avrent particulirement ecaces contre les antivirus.

3.1.2 Objectif
Le but principal de Waledac est d'envoyer des courriels indsirables (spams), que cela soit pour ses propres sites an d'infecter de nouvelles machines, ou pour d'autres groupes de spam comme Canadian Health&Care Mall[Trackers 2010]. Quelques mois aprs la premire version, une volution apporte au binaire a cr un nouveau thread charg d'explorer le disque dur de la machine infecte la recherche d'adresses de courrier lctronique. Le bot est aussi capable de ltre le trac du rseau pour rechercher les mots de passe FTP, SMTP et HTTP. En plus d'tre install par d'autres familles de malwares, Waledac inclut une fonctionnalit qui lui permet de tlcharger et d'xcuter des autres malwares.
3.2 Caractritiques techniques

Dans cette section, nous nous concentrerons plutt sur les caractristiques techniques qui sont concernes aux activits locales de bots.

3.2.1 Vecteurs d'infection


Les premires versions de Waledac ne utilisaient que l'ingnierie sociale1 pour se propager : ils envoient des spams pour convaincre un utilisateur de tlcharger un binaire, puis l'xecuter. Les versions suivantes se propageaient grce l'installation des ses binaires par d'autres malwares, l'exemple le plus mdiatis est celui de Concker[Keizer 2009]. D'aprs J. Calvet et P. M. Bureau, de Mai Juillet 2009 les machines du botnet Waledac infectes lors des campagnes d'ingnierie sociale ne reprsentaient que 2%, toutes les autres installations ont t eectues par d'autres familles de malwares.

3.2.2 Code binaire et protection


Le cur du code de Waledac a t dvelopp suivant le paradigme de la programmation oriente objet avec la langage C++. Cela ajoute quelques dicults son tude car il faut comprendre les liens entre les classes sans avoir le code source. Nanmoins, il existe des moyens de reconstruire l'architecture du programme en
1

Social engineering

3.2. Caractritiques techniques

11

s'aidant de mcanismes lis au compilateur utilis par les crateurs de Waledac, TM Microsoft Visual C++[Skochinsky 2006]. Avant de lancer une nouvelle vague de propagation, la couche de protection des binaires Waledac est prpare et modie an d'viter la dtection par les outils de scurit. Pendant le premier mois de propagation, les binaires Waledac taient compresss avec UPX[UPX 2010], un packer libre disponible sur Internet qui ne possde aucune capacits de protection2 . En Janvier 2009, la premire famille de protection a apparu : rsolument oriente contre les logiciels antivirus, ses premires versions utilisaient des techniques anti-mulations. Les versions plus rcentes sont remarquables par l'arrive de protection anti-dbuggages.

3.2.3 Taille du rseau Waledac


Le nombre de systmes infects par Waledac a beaucoup vari au cours de l'volution du botnet. Il est dicile d'avoir un rsultat prcis du nombre de machines infectes parce que les spammeurs (cf. section 3.3.1) ne sont pas accessibles3 . D'aprs les mesures donnes par J. Calvet et P. M. Bureau, il y avait au moins 40.000 systmes qui participent au botnet jusqu' juillet 2009. D'ailleurs, an d'valuer la taille du botnet, B. Stock et al[Stock 2009] ont implement les faux rpteurs 4 , le Walowdac , qui imitent les oprations de rpteur rel.

Fig.

3.1: Opration de faux rpteur. Crdit photo[Stock 2009]

Selon les informations recueillies le 06 Aot et le 01 Septembre en 2009, ils valuaient le nombre de machines infectes est de 164.182, et il y avait environ 55.000 bots activs par jour.

3.2.4 Protocole de communication


Le botnet utilise le protocole de communication de base HTTP[Fielding 1999] pour changer des messages entre ses participants. An de protger les mesUPX est d'ailleurs toujours utilis pour compresser le code binaire Waledac Les spammeurs sont les machines ayant des adresses IP prives, ils ne connectent que aux rpteurs. De plus, nous ne pouvons pas contrler tous les rpteurs du botnet. 4 J. Calvet et P. M. Bureau utilisaient aussi cette technique, cependant leurs faux rpteurs ont pour but de capturer les informations du botnet.
3 2

12

Chapitre 3. Botnet Waledac

3.2: Distribution de machines infectes pendant la journe 24 Aot 2009. Crdit photo[Stock 2009]
Fig.

sages circulant sur le rseau, Waledac utilise deux algorithmes cryptographiques : AES[NIST 2001] et RSA[Rivest 1978]. Pour cela, la bibilothque cryptographique OpenSSL[OpenSSL 2010] est intgre au code binaire du bot.
3.3 Structure du rseau

Dans cette section, nous nous concentrerons sur les activits de la couche de rseau du botnet, c'est--dire la topologie du rseau et les protocoles de communication entre ses participants. Nous ne dcrirons cependant que les communications de base, les analyses en dtail (types des messages changs, structure des messages, mcanisme de mise jour la liste de rpteurs, etc) peuvent tre consultes dans [Calvet 2009a, p.7-16].

3.3.1 Architecture
Du point de vue de l'organisation, l'architecture de Waledac est traditionnelle. Cette architecture se compose d'un serveur de commande et de contrle, et de plusieurs machines esclaves. Les auteurs de Waledac ajoutaient cependant des couches supplmentaires visant protger les serveurs matres. Le botnet se muni donc d'une architecture hirarchique qui comprend (au moins) 4 couches. Spammeurs : les spammeurs sont les bots qui ralisent le travail de base comme envoyer des spams ou excuter les attaques DDOS. Ce sont des machines TM Windows ayant seulement des adresses IP prives. Ils ne se connaissent pas entre eux mais chacun d'eux possde une liste de rpteurs 5 avec lesquels il prend contact pour chercher des tches accomplir. Rpteurs : les rpteurs servent de relais pour les commandes de contrle du botnet. Ils sont aussi des serveurs de nom qui rsolvent des requtes DNS envoyes
5

RList

3.3. Structure du rseau

13

Fig.

3.3: Topologie du rseau de Waledac. Crdit photo[Tenebro 2009]

par les spammeurs. Chaque rpteur a une adresse IP publique directement sur une de ses intefaces et modie le pare-feu TM Windows pour tre joignable de l'extrieur. Les rpteurs relayent les requtes des spammeurs vers le serveur de contrle en passant par les protecteurs. Protecteurs : les protecteurs sont des serveurs TM Linux qui excutent direntes versions de nginx[Sysoev 2010], un serveur HTTP lger utilis comme un mandataire6 . Il y avait 5 ou 6 protecteurs dissmins partout dans le monde (2 ou 3 en Allemagne, 1 aux tats-Unis, 1 en Russie, et 1 aux Pays-Bas). Serveur de contrle : l'existence du serveur de contrle est en fait une hypothse. Les chercheurs trouvaient que les valeurs du champ HTTP Date des rponses des protecteurs sont identiques quand ils les interrogent au mme moment. Comme il semble peu probable que les auteurs de Waledac aient synchronis les 6 protecteurs, ils sont plutt les mandataires pour une autre couche constitue d'un serveur de contrle. C'est le serveur qui contient toutes les informations sur le botnet et son fonctionnement.

3.3.2 Communications et messages changs


Le protocole pair--pair utilis par les bots repose sur le protocole HTTP. La structure des messages HTTP est la suivante :

POST /jyl.png HTTP/1.1 Referer: Mozilla Accept: */* Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla nHost: A.B.C.D Content-Length: Y
6

Proxy server

14

Chapitre 3. Botnet Waledac

Cache-Control: no-cache a=BwAAC3Jrvsqwur_.....jBJlP7cpNrERG-c7uHr-&b=AAAAAA


Il s'agit donc d'une requte POST sur une image au nom alatoire dont les champs sont remplis de faon classique. Le bloc de donnes de la requte est constitu de deux parties, derrire le paramtre "a"7 se trouve le message en langage XML qui est compress avec l'algorithme de compression bz2[Seward 2008], puis chir par l'algorithm de chirement symtrique AES-128 et nalement encod en codage base64. Les participants8 du botnet s'changent entre eux plusieurs types de messages. Ces messages se distinguent par la structure du message XML en forme claire (aprs tre dchir) situ dans le message HTTP. Les structures des messages sont dcrites en dtail dans [Calvet 2009a, p.9-15]. Nous pouvons diviser ces messages en deux catgories : l'une se compose de messages ayant pour but de raliser les commandes particulires du serveur de contrle ou d'changer les cls de sessions (getkey, rst, notify, etc), l'autre vise maintenir la structure du botnet (mise jour de la liste des rpteurs9 ou de la liste des protecteurs10 ). Les messages de la premire catgorie sont changs de faon indirecte entre les spammeurs et le serveur de contrle. En fait, ces messages sont relays grce aux rpteurs et aux protecteurs (cf. gure 3.4), c'est--dire les rpteurs et les protecteurs ne ralisent aucune activit sur le contenu de XML chir du message HTTP, ils ne ajoutant que des champs HTTP aux messages rus et puis les transmettent.
messages a ` ` _ ^ ^ ] ] \ [ [ Z d c c b a Z Y X d e X W + s f f g

Spammeur o

messages

/ Repeateur o messages / P rotecteur o messages

/ Serveur

Fig.

3.4: Messages changs entre les spammeurs et le serveur de contrle

Le spammeur ne contacte pas directement le serveur de contrle. Il transmet son message un rpteur qui va relayer (grce un protecteur) ce message au serveur de contrle. Le rpteur mandataire est choisi alatoirement dans une liste de rpteurs, RList , stocke par le spammeur. L'ide principale de la procdure peut tre reprsente par la gure 3.5. Le spammeur transmet une partie de sa RList contenant les informations sur 100 rpteurs un rpteur alatoire. Ceux-ci sont aussi choisis alatoirement dans cette liste. En rponse, le spammeur reoit aussi du rpteur un extrait de sa propre list.
Il y a de nombreux types de paramtres, e.x "b" indique l'adresse IP de l'metteur spammeur, repeateurs, protecteurs, et serveur de contrle 9 RList 10 PList
8 7

3.4. Primitives cryptographiques


requeteRList

15
/

Spammeur
o

{RList}K2

Repeteur

Fig.

3.5: Mthode de mise jour de RList

3.4

Primitives cryptographiques

An d'assurer la scurit des messages changs, les auteurs du botnet ont cr par leur-mmes un protocole cryptographique de "textbook"11 [Mao 2003, p.13] dans lequel le chirement des messages se fait par un systme cl secrte. Cette cl secrte est change de faon scurise (selon l'ide des auteurs du botnet) par un protocole d'change de cls qui utilise un chirement cl publique. Les deux algorithmes cryptographiques sont utiliss par Waledac sont tous forts, l'algorithme de chirement symtrique12 AES[NIST 2001] vise chirer tous les messages changs entre les participants du botnet, l'algorithme de chirement asymtrique13 RSA[Rivest 1978] est utilis dans le mcanisme d'change de cls de session[Menezes 1997, p.494] entre les bots et le serveur de contrle.

3.4.1 Chirement symtrique AES


Le systme de chirement symtrique (cf. section 4.2.1) AES (Advanced Encryption Standard) repose sur le systme Rijndael[Daemen 1999], labor par J. Daement et V. Rijmen en rponse un appel d'ore du NIST14 lanc en 1997 pour remplacer le chirement DES (Data Encryption Standard)[NIST 1999]. Cet alogrithme est utilis pour chirer tous les messages changs pendant l'opration du botnet. Waledac utilise trois cls AES : K1 , K2 et K3 , de taille 128 bits. Cette taille est susante pour protger des donnes dont le niveau de scurit est SECRET [NIST 2007, p.67]. La cl K1 est code en dur dans le code binaire des tous les bots. Cette cl est utilise pour chire le message getkey qui est le premier message envoy par spammeur quand il commence un dialogue avec le serveur de contrle. Ce message se trouve dans la procdure d'change de cls de session (cf. gure 3.6). La cl K2 est code aussi en dur dans le code binaire des bots. Dans la procdure de mise jour de RList, les bots utilisent cette cl pour chirer sa partie de RList (cf. gure 3.5). La cl K3 est une cl de session15 pour scuriser la communication entre les spammeurs et le serveur de contrle. Pour chaque spammeur, aprs l'tape d'change de la cl de session (cf. gure 3.6), tous les messages circulants entre lui et le serveur de contrle sont chirs par cette cl.
11 12

Ceci signie un protocole qui n'est pas encore srieusement vri Chirement cl secrte 13 Chirement cl publique 14 National Institute of Standards and Technology. 15 C'est--dire qu'elle n'est que valide en une session de communication

16

Chapitre 3. Botnet Waledac

3.4.2 Utilisation du chirement asymtrique RSA


Le systme de chirement asymtrique RSA, baptis d'aprs le nom de ses inventeurs, R. Rivest, A. Shamir et L. Adleman, est le premier algorithme de cryptographie cl publique. L'algorithme RSA, apparu en 1972, est encore l'algorithme asymtrique le plus utilis[Schneier 2001, p.491]. Pour s'changer secrtement des donnes, la session de communication entre les bots et le serveur de contrle dbute par une phase de ngociation dans laquelle la cl de session K3 est partage. Les motivations de la cl de session sont varies[Menezes 1997, p.494], et la mthode le plus utilise est d'utiliser un systme cl publique pour chirer la cl secrte d'un systme cl secrte[Barthlemy 2005, p.42]. Les crateurs de Waledac ont utilis le systme de chirement asymtrique RSA pour raliser leur protocole d'change de cl de session16 dcrit ci-dessous :
{pkspammeur }K1

Spammeur
o

{K3 }pkspammeur

Serveur

Fig.

3.6: Mthode d'change de cl de session

Le spammeur gnre une paire de cls, constitue d'une cl prive skspammeur et d'une cl publique pkspammeur . Il divulgue sa cl publique en le chirant par la cl K1 et envoye le message chir, {pkspammeur }K1 , au serveur de contrle. Le serveur dchire ce message, grce la cl K1 , pour obtenir la cl publique pkspammeur . Puis, le serveur de contrle gnre alatoirement une cl de session K3 , la chire avec la cl publique pkspammeur du spammeur. Finalement, il renvoie cette cl de session chire, {K3 }pkspammeur , au spammeur. Personne, l'exception du spammeur, ne connait la cl secrte skspammeur . Ainsi personne, l'exeception du spammeur, ne peut obtenir la cl de session K3 en dchirant le message envoy.
3.5 Attaques contre Waledac

Le mcanisme de communication entre les participants du botnet, celui de mise jour le RList des bots, et surtout ses vulnrabilits cryptographiques conduisent deux mthodes d'attaque. La premire mthode se base sur le fait que les bots et le serveur de contrle se contactent en utilisant toujours des serveurs de mandataire17 . La deuxime mthode exploite le mcanisme de mise jour le RList pour propager les informations d'un faux rpteur. Il existe une vulnrabilit trs srieuse situe dans le gnrateur de cls de session K3 du serveur de contrle, la cl gnre a toujours la mme valeur. De plus, les
Le protocole d'change de cl ne se passe qu'entre deux participants, il n'a pas besoin d'une autorit de conance qui distribue les cls[Stinson 2006, p.394] 17 Les rpteurs et les protecteurs
16

3.5. Attaques contre Waledac

17

deux cls K1 et K2 sont codes en dur dans le code binaire des bots, elles sont donc identiables par la rtro-ingnierie. Ce qui permet de dchirer trs facilement tous les messages changs dans le botnet.

3.5.1 Attaque de l'homme du milieu


Si le protocole de communcication entre deux parties n'a aucun moyen de vrier qu'ils parlent bien l'un l'autre, un attaquant peut intercepter les messages entre eux pour que personne ne puisse dtecter le changement des messages envoys. L'attaquant, s'appelle homme du milieu, va lire et modifer les informations circulantes entre deux parties pour casser la condentialit du protocole. Cette type d'attaque s'appelle attaque de l'homme du milieur18 . Dans le cas de Waledac, tous les messages envoys par des participants ne sont pas signs19 . De plus, les spammeurs utilisent toujours des rpteurs pour relayer leurs messages au serveur de contrle. L'attaque de l'homme du milieu devient donc trs pratique si nous pouvons contrler le rpteur. J. Calvet et P. M. Bureau ont cr un faux-rpteur qui n'est rien d'autre qu'un serveur mandataire HTTP ralisant deux oprations de base d'un rpteur :  Envoyer et recevoir les messages de mises jour : le mcanisme de mise jour le RList est imit en mettant les informations de faux-rpteur dans les messages envoys pour qu'elles puissent tre connues sur le rseau.  Relayer de trac de contrle : le trac de contrle entre les spammeurs et les protecteurs est relay de mme faon qu'un rpteur rel. En dchirant des messages relays par le faux-rpteur, ils pouvaient la fois dtecter des activits de Waledac et intevenir dans ces activits : les ordres du serveur de contrle ou l'URL20 de distribution des nouveaux bots peuvent tre dcouverts et changs, etc. Les cls de chirement et la structure des messages sont alors connues. Nous pouvons injecter nos propres messages de commande et contrle. Les faux messages nous permettent d'avoir diverses exploitations : 1. Nous pouvons faire tlcharger aux bots un code excutable qui dsinfecte Waledac en utilisant la commande downloadexe 21 . 2. Une attaque par dni de service contre les protecteurs peut tre lance par le biais du tag <dos>22 . 3. Les templates de spam distribus peuvent tre remanis pour les rendre innoffensifs23 .
man-in-the-middle attack Par un mcanisme de la signature numrique 20 Les nouveaux versions binaires des bots sont distribues en donnent une URL vers un rpertoire particulier 21 La valeur downloadexe est situe dans le champ commands de la rponse du message notify 22 La demande d'attaque par dni de service est situe dans le tag <dos> de la rponse du message notify 23 Le template de spam est situ dans la rponse du message taskreq
19 18

18

Chapitre 3. Botnet Waledac


4. Les rapports de spam envoys par les bots peuvent tre modis en mettant toutes les adresses du courriel comme injoignables24 .

3.5.2 Attaque Sybil


L'attaque Sybil[Douceur 2002] trouve son origine dans le rseau pair--pair o chaque entit se prsente par une seule identit. L'attaquant peut gagner la plupart de la ressource du systme (ex. dans le systme de partage de donnes pair--pair, l'attaquant essaie de gagner des donnes en partageant peu) en se prsentant comme plusieurs identits virtuelles. Dans le cas de Waledac, il existe une vulnrablit dans le mcanisme d'identication d'un bot : le bot est identi par un ID de 16 octets et une adresse IP. L'adresse IP n'a donc pas besoin d'tre unique et ceci permet de crer avec une seule adresse un ensemble de bots Waledac. L'ide principale de cette attaque est de crer un super-rpteur dont l'adresse IP est trs rpandue dans le rseau sous dirents ID. Le super-rpteur va tre choisi trs souvent par les spammeurs comme le serveur mandataire pour faire transmettre leurs requtes. De plus, toutes les cls de chirement sont connues, le super-rpteur peut lire donc tous les messages et les modier. Pour propager les informations du super-rpteur, J. Calvet et P. M. Bureau ont exploit le mcanisme de mise jour de RList (cf. gure 3.5). Les bots s'changent rgulirement des messages qui contiennent un extrait de 100 rpteurs de leur RList. Cependant, chaque bot ne vrie pas si les messages de mise jour qu'il reoit contiennent exactement 100 entres, il est donc possible d'envoyer un message avec 500 entres (dont les timestamps sont bien choisis) pour remplir toute la RList du receveur25 par les entres de ce message. Par exemple, les messages envoys sont de la forme :

<lm> <localtime>0</localtime> <nodes> <node ip="ourIPaddress" port="80"time="0"> 00000000000000000000000000000001</node> <node ip="ourIPaddress" port="80" time="0"> 00000000000000000000000000000002</node> ... <node ip="ourIPaddress" port="80" time="0"> 00000000000000000000000000000500</node> </nodes> </lm>
Lorsque le bot reoit un tel message, toutes les entres de sa RList seront remplaces grce la dirence zro entre le timestamp global et les locaux, qui indique
24 25

Le rapport de spam est situ dans le message taskrep Pour chaque bot, sa taille maximale de la RList est 500[Calvet 2009a, p.16].

3.6. Mthodes gnriques d'attaque


que le nouveau timestamp est le plus rcent possible.
3.6 Mthodes gnriques d'attaque

19

L'tude de cas prsente ci-dessus a illustr certains attaques contre le botnet Waledac, cependant les attaques prsentes ne sont pas les seules solutions possibles. Pour les types dirents de botnet[Bacher 2005, Dierent Types of Bots], de nombreuses autres mthodes sont envisageables. Tous les mthodes d'attaque (et d'protection) se basant sur un bouclier de multi-couches. Elles se divisent en deux catgories : l'une vise liminer des activits malveillantes sur les machines infectes (ex. les logiciel antivirus), l'autre essaie d'analyser, de tracer et d'arrter les activits de botnet sur la couche de rseau (ex. [TechNet 2010] ou [Honeynet 2010]). Les travaux raliss dans ce stage se concentreront sur l'tude des mthodes qui nous permettent de bloquer les botnets au niveau de topologie de rseau. Plus prcisment, ces mthodes visent exploiter des vulnrabilits, surtout des vulnrabilits cryptographiques situes dans le protocole de communications entre les participants du botnet. Nous ignorons des attaques visant exploiter des vulnrabilits "locales", qui concernent plutt aux activits sur la machine infecte.

3.6.1 Analyses
Les deux mthodes d'attaque prsentes dans la section 3.5 se basent sur un fait : nous pouvons toujours dchirer, falsier et changer tous les messages changs. En eet, l'attaque de l'homme du milieu utilise un faux-rpteur qui imite des comportements du rpteur rel26 . En dchirant des messages relays, nous pouvons obtenir des informations du botnet. De faon analogue, l'attaque Sybil change (ou falsie ) les messages de mise jour de RList pour propager l'identit du superrpteur. Nous notons que tous les messages changs entre les parties du botnet sont dchirs par l'alogrithme de chirement AES (avec un des trois cls de 128 bit K1 , K2 ou K3 ). Les deux cls K1 et K2 sont codes en dur dans le code binaire du bot, la cl de session K3 est change par le protocole d'change de cls (cf. gure 3.6). Plus gnralement, nous disons que les parties de Waledac se communiquent en utilisant un protocole cryptographique.

3.6.2 Problmatique et objectif


L'tude de cas du botnet Waledac nous montre deux mthodes d'attaque qui se basent sur les vulnrabilits du protocole de communication. Dans le partie cidessus, nous reconnaissons que ces mthodes d'attaque ne sont possibles que si le protocole de communication est vulnrable. Dans le cas gnral, nous cherchons des attaques contre le protocole de communication d'un systme quelconque.
26

Le faux-rpteur relaie des messages des spammeurs au serveur de contrle

20

Chapitre 3. Botnet Waledac

Actuellement, les crateurs de codes malveillants ont tendance utiliser les primitives cryptographiques pour protger leurs produits[Stamford 2002], [Vogt 2007] : les logiciels malveillants27 , les botnets, etc. La premire ide, le cryptovirologie , a t propose par A. Young et M. Yung[Young 1996]. Ces auteurs proposent mme un exemple pratique utilisant le cryptocounter [Young 2004, p.130]. Un rsultat rcent d'E. Filiol[Filiol 2004] a propos un virus informatique exprimental, le virus Bradley, dont la complexit d'analyse est NP-complet28 . Dans un article rcent[Desnos 2009], A. Desnos a mise cette ide en pratique en propsant une implmentation de virus Bradley en Python. Les botnets utilisent aussi les algorithms de chirement pour scuriser leurs communications, le botnet Rustock[Chiang 2007] chire ses messages par l'algorithme de chirement ot RC4[Rivest 1992]. Le ver informatique Storm utilise l'algorithme de chirement asymtrique RSA pour scuriser certaines communications[Holz 2008]. Les trois auteurs R. Hund, M. Hamann, et T. Holz ont propos mme un botnet avanc, le Rambot, qui est dot des primitives cryptographiques fortes[Hund 2008]. Les primitives cryptographiques, surtout les algorithmes de chirement asymtrique, fournissent aux auteurs de codes malveillants un outil trs fort. Dans le cas du botnet, grce aux algorithmes de chirement, les auteurs peuvent cacher tous les messages circulant en utilisant un tel protocol cryptographique. Ainsi, pour empcher ces nouvelles menaces de scurit, la question fondamentale est de casser le protocole cryptographique utilis par botnet. Une attaque avec succs au protocole va nous orir des possibilits pour raliser des attaques successives, comme attaque Sybil ou attaque de l'homme du milieu29 . En consquence, nos travaux dans ce stage se concentreront sur les attaques gnriques contre les protocoles cryptographiques.

3.6.3 Outline de l'approche propose


Le problme est de chercher automatiquement des attaques contre un protocole cryptographique quelconque (qui est utilis par un botnet). La premire tape de la recherche est de vrier si ce protocole est vulnrable ou non. Ensuite, nous essaierons d'tudier comment exploiter les vulnrablitis trouves, c'est--dire que nous construirons l'attaque contre ce protocole. Nous dcrivons donc la premire approche dans la gure 3.7. A premire vue, il est possible de juger que l'tape de vrication peut tre ralise " la main" en appliquant, par exemple, le processus "corriger, attaquer"[Mao 2003, p.23]. En fait, nous pouvons aussi reconnaitre que la mthode " la main" n'est susant que pour quelques protocoles simples. Dans le cas gnral, ce processus peut mettre beaucoup de temps pour trouver une vulnrabilit d'un protocole. Par exemple, le protocole de Needham-Schroeder[Needham 1978] est
Malwares Nous avons besoin toujours d'un temps d'excution exponentiel pour rsoudre des problmes NP-complets jusqu' prsent [Garey 1979] 29 C'est l'attaque de l'homme du milieu prsente dans 3.5.1
28 27

3.6. Mthodes gnriques d'attaque


protocole cryptographique

21

vrier ce protocole

construire l'attaque

yes

protocole est vulnrable ?

no s'arrter

Fig.

3.7: Modle simple d'attaque

propos en 1978, mais sa vulnrabilit n'a t prouve qu'en 1981[Denning 1981]. Il va sans dire qu'un retard de trois ans n'est pas acceptable pour la protection contre une attaque botnet. Nous avons donc besoin d'une mthode qui permet de vrier automatiquement des protocoles cryptographiques et, dans le cas o ces protocoles sont vulnrables, de reconstruire des attaques. Il s'agit maintenant d'un problme de vrication des protocoles cryptographiques et de reconstruction des attaques. Heureusement, notre problme se situe dans un contexte connu de la vrication automatique des protocoles cryptographiques. Les mthodes formelles nous fournissent une preuve mathmatique de la scurit d'un protocole. Jusqu' prsent, il existe de nombreuses approches du problme de vrication des protocoles cryptographiques, un bref survey peut tre consult dans [Comon 2002]. Pour que les outils mathmatiques soient applicables, une mthode formelle de vrication a besoin essentiellement d'un modle formel du protocole vrier. Ce modle formel fournit des techniques servant modliser le protocole. Nous avons maintenant des ides principales d'une mthode gnrique d'attaque. Nous proposons dans la gure 3.8 un survol de l'approche utilise, l'attaque gnrique contre le protocole de communication du botnet se compose donc les tapes suivantes : 1. Dcouvrir le protocole de communication en analysant (coutant, bloquant ou

22

Chapitre 3. Botnet Waledac


envoyant des faux messages sur le rseau, etc) les activits du botnet. 2. Crer le modle formel en modlisant ce protocole. 3. Chercher des vulnrablitis en vriant ce modle. 4. Si la vulnrabilit est dtecte, reconstruire l'attaque. protocole cryptographique modliser ce protocole

vrier cet modle

construire l'attaque

yes

modle est vulnrable ?

no s'arrter

Fig.

3.8: Survol de l'approche propose

La premire tape a pour but de dcouvrir le protocole de communication. Elle comprend donc des mthodes qui visent analyser le code binaire du bot (ex. rtroingnierie informatique), lire ou intercepter des donnes circulantes sur le rseau (ex. en utilisant le renieur de paquets30 ), etc. Il est bien entendu que la plupart de codes malveillants essaient de se protger l'aide de plusieurs mthodes31 . Par exemple, pour empcher l'analyse par les chercheurs, les codes binaires de Waledac32 sont compresss avec UPX et se munissent de techniques anti-mulations. En fait, il faut accepter que la premire tape soit extrmement dicile dpasser dans certains cas. Si les algorithmes du bot sont bien dresss et son code est implment correctement, il est trs dicile de dcouvrir les protocoles de communication sous-jacents. L'exemple typique est Skype[Skype 2010], un logiciel propritaire de messagerie instantane, dlivr la premire fois en 2003. Il se muni volontairement de techniques de protection tellement compliques que les chercheurs ne
Packet snier Ces mthodes se situent dans la contexte de la scurit par l'obscurit[Fortier 2005] 32 Remarquons que les deux cls AES 128 : K1 et K2 sont codes en dur dans le code binaire de bot
31 30

3.6. Mthodes gnriques d'attaque

23

peuvent pas savoir exactement ses protocoles de communication jusqu' prsent33 , une liste des articles analysant les mthodes utilises par Skype peut tre consulte dans [Salman 2010]. Les botnets les plus populaires ne disposent pas d'une telle protection. En fait, il n'existe pas encore de botnet qui peut rendre impossible l'analyse par rtroingnierie. La raison est peut-tre que le but premier des auteurs du botnet et le gain rapide, ils n'ont aucune raison de chercher crer un botnet parfait qui prend plus de temps se dvelopper et se dployer et donc tre rentabilis[Calvet 2009a, p.19]. Nous acceptons donc que les protocoles de communication des botnets soient toujours facilement dtectables 34 . Ainsi nos travaux se concentrerons sur la rsolution des problmes poss dans les tapes 2, 3 et 4. Dans les chapitres suivants, nous travaillerons sur des modles formels servant modliser les protocoles de communication.

Rcemment, une quipe des hackers proclame son succs pour le dchirement des donnes envoys par Skype[O'Neil 2010] 34 Ce n'est pas une supposition irrationnelle, e.x les bots de Waledac se communiquent en utilisant le protocole HTTP, les en-ttes du protocole ne sont jamais chirs et sont facilement dtecter

33

Vrication des protocoles et mthodes formelles


Sommaire
4.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapitre 4

4.1.1 Mthodes formelles pour la vrication de programmes . . . . 4.1.2 Protocole cryptographique, attaque et vrication . . . . . . 4.1.3 Proprits de scurit . . . . . . . . . . . . . . . . . . . . . .
4.2 Protocole cryptographique . . . . . . . . . . . . . . . . . . . .

26 27 29
29

4.2.1 Primitives cryptographiques . . . . . . . . . . . . . . . . . . . 4.2.2 Exemple : protocole "Wide-Mouthed-Frog" . . . . . . . . . .


4.3 Modles formels . . . . . . . . . . . . . . . . . . . . . . . . . .

29 30
31

4.3.1 Algbre de processus . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Pi-calcul et spi-calcul . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Modle de traces et clauses de Horn . . . . . . . . . . . . . .
4.4 Modles formels des attaques . . . . . . . . . . . . . . . . . .

32 35 40
44

4.4.1 Attaques en spi calcul . . . . . . . . . . . . . . . . . . . . . 4.4.2 Attaques en clauses de Horn . . . . . . . . . . . . . . . . . .

44 45

4.1

Motivations

Revenons la question de mthode gnrique pour attaquer le protocole de communication des botnets. Ds que nous trouvons le protocole de communication, l'tape suivante, la deuxime tape dans la gure 3.8, sera de modliser formellement ce protocol pour que, dans le troisime tape, nous puissions detecter des vulnrabilits du modle en utilisant des outils mathmatiques. Ce chapitre est consacr donc aux mthodes formelles visant la vrication des protocoles scuriss. La vrication des protocoles scuriss trouve son contexte dans la ralisation des systmes informatiques ables. Nous voulons parler de cas des systmes critiques dans lesquels les erreurs informatiques ne sont pas absolument acceptables. La vrication des programmes critiques ont donc besoin de mthodes formelles qui peuvent assurer que aucun comportement du systme ne peut entraner d'erreurs. De faon analogue, les protocoles de communication peuvent tre considrs comme un type particulier des programmes. Ce type de programme se forme de plusieurs

26

Chapitre 4. Vrication des protocoles et mthodes formelles

processus, ceux dpendent de nombre de parties qui participent au protocole, qui se communiquent en changant des messages.

4.1.1 Mthodes formelles pour la vrication de programmes


Dans les systmes informatiques, nous pouvons toujours constater des dysfonctionnements : l'cran bleu de la mort1 dans les ordinateurs qui se chargent le systme d'exploitation TM Microsoft Windows, la panique du noyau2 dans les systmes d'exploitation TM Linux, un achage d'une erreur de segmentation3 d'un logiciel mal fonctionn, ou plus simplement un logiciel de traitement de texte se ge en plein travail, etc. Dans certains cas, les dysfonctionnements ne nous causent que des dsagrments : l'cran bleu de la mort dans l'ordinateur de bureau nous demande le faire redmarrer, nous pouvons forcer quitter le logiciel le logiciel de traitement de texte et continuer taper le document en le rouvrant, etc. Cependant, les bugs informatiques ne sont plus acceptables pour les applications critiques. Nous voulons aborder des cas des systmes critiques dont les bugs peuvent entraner morts, blessures, ou du moins des cots levs. En 1996, la fuse Ariane 5, dans son vol inaugural, a explos 40 secondes aprs le dcollage. Une commission d'enqute[Lions 1996], fonde par ESA4 et CNES5 , a tabli que l'accident tait d la rutilisation d'un logiciel prvu pour la fuse Ariane 4 et donc n'avait jamais vri qu'il fonctionnait bien sur la nouvelle fuse[Monniaux 2009, p.2]. L'incident a provoqu la destruction de la fuse ainsi que la charge utile d'une valeur totale de 370 millions de dollars, ce qui en fait l'un des bugs informatiques les plus coteux de l'histoire[Wikipdia 2010]. Les faiblesses en matire de sret informatique proviennent de l'utilisation d'approches, de mthodes, par exemple : la vrication de programmes, l'utilisation des matriels redondants6 [Monniaux 2009, p.4], etc. Dans ce cas, nous ne nous concentrerons que sur la vrication du logiciel. Il est bien entendu que les logiciels, crs par l'tre humain, contiennent toujours des erreurs. Pour les systmes informatiques critiques dans lesquels l'existance des erreurs est absolument inacceptable, il s'agit donc d'un problme srieux de la vrication de programmes. An de dtecter les erreurs dans les logiciels, il va sans dire que nous pouvons les tester, c'est l'approche la plus simple. Cependant, elle est limite par le nombre ni de comportements potentiels sont explores. Pour les programmes critiques,
Blue Screen of Death Kernel panic 3 Segmentation fault 4 European Space Agency 5 Centre National d'Etudes Spatiales 6 L'utilisation des matriel redondants : au lieu de mettre un dispositif, on en met plusieurs. Cependant, cette mthode n'est que susante aux pannes matrielles "alatoires" parce que la redondance entre dispositifs identiques est inutile s'il s'agit de dysfonctionnements logiciels. Le premier botier signale une erreur suite un problme de conception de son logiciel, le deuxime botier fonctionnant avec le mme logiciel sur les mmes donnes va aboutir au mme rsultats ! ! !, et donc tomber galement en panne[Monniaux 2009, p.4].
2 1

4.1. Motivations

27

l'approche retenue l'heure actuelle est de fait la preuve mathmatique an d'assurer que le logiciel est juste dans tous les cas. C'est ce qu'on appelle la vrication de logiciels grce aux mthodes formelles [Cortier 2009, p.7].

4.1.2 Protocole cryptographique, attaque et vrication


Le protocole de communication7 est une suite structure de messages changs entre plusieurs participants. Il existe un ensemble de protocoles qui s'appelle procotoles de scurit, ayant pour objectifs de garantir le secret des donnes changes, d'authentier un des participants, de garantir l'anoymat ou la nonrpudiation[Cortier 2009, p.8]. Les protocoles de scurit sont cres en supposant que leurs environnements de travail soient publiques. Autrement dit, les protocoles doivent tre capable de scuriser leurs communications voire mme le rseau est totalement contrl par l'attaquant, qui peut couter les messages transmis, faire des calculs sur ces messages, et envoyer aux participants du protocole n'importe quel message qu'il a russi calculer[Blanchet 2008, p.6]. Jusqu' maintenant, la plupart des protocoles de scurit en pratique utilise des primitives cryptographiques (cf. 4.1.3) pour protger leurs communications8 . Ainsi, nous utilisons la phrase protocoles cryptographiques pour parler des protocoles de scurit. Si l'une primitive cryptographique est casse, il est bien entendu que le protocole cryptographique, qui se base sur cette primitive, est aussi cass. Cependant, la robustesse des primitives cryptographiques sous-jacentes ne peut pas assurer la scurit du protocole. Nous considrons maintenant un protocole :
{{k}skA }pkB

A
o
Fig.

{m}k

4.1: Version simplie du protocole de Denning-Sacco

Le protocole prsent dans le gure 4.1 est une version simplie du protocole de distribution de cls de Denning-Sacco[Denning 1981] cl publique. Message 1.A B : Message 2.B A :

{{k }skA }pkB {m}k

Le participant A choisit une cl frache k chaque excution du protocol, signe la cl k avec sa cl secrte skA , et chire la signature avec la cl publique du participant B . Enn, A envoie la signature chire B . Quand le participant B reoit le message chir, il le dchire en utilisant sa cl secrte skB et obtient la cl k . Ayant vri
Dans ces travaux, les protocoles de communication est consacr aux protocoles informatiques Nous ignorons des techniques immatures, par exemple les techniques de la cryptographie quantique comme la distribution quantique de cls[Mao 2003, p.203]
8 7

28

Chapitre 4. Vrication des protocoles et mthodes formelles

la signature9 , B est convaincu que la cl k a t choisie par A, et le chirement sous la cl publique pkB garantit que seul B peut dchire le message, donc la cl k doit tre partage entre A et B . Le participant B peut donc envoyer, de manire scurise, un messages s au participant A en le chirant avec la cl k et seul A est capable d'obtenir ce message en dchirant le message chir[Blanchet 2008, p.3]. premire vue, en supposant que les chirements utiliss dans le protocole 4.1 soient parfaits 10 , c'est--dire qu'il est absolument impossible d'obtenir d'information sur un message chir moins de connatre la cl de dcryptage[Cortier 2005, p.2]. En suivant exactement sur ce que le protocole nous renseigne, tape par tape, nous pouvons naturellement croire que le protocole est absolument scuris. En fait, il est assez facile de casser ce protocole en utilisant l'attaque de l'homme du milieu.
{{k}skA }pkC

{{k}skA }pkB

A
o

{m}k

C (attaquant)
o

{m}k

Fig.

4.2: Attaque contre le protocole simpli de Denning-Sacco

Dans cette attaque, le participant A excute le protocole avec un participant malhonnte C , c'est ce qu'on appelle homme du millieu . L'attaquant C rcupre le premier message du protocole {{k }skA }pkC , le dchire avec sa cl secrte skC et le rechire avec la cl publique pkB du participant B . Le message obtenu {{k }skA }pkB correspond exactement au premier message d'une session entre A et B . L'attaquant C envoie alors ce message B en se faisant passer pour A. Le participant B se leurre sur l'identi de l'metteur du message, et rpond en envoyent un message m, destin A, chir sous la cl k . En possdant la cl k , l'attaquant C est toujours capable de dchire le message m[Blanchet 2008, p.4]. Maintenant, nous voyons aisment que la scurit du protocole n'est pas compltement la scurit des primitives cryptographiques sous-jacentes. D'une part, les protocoles cryptographiques doivent tre assurs qu'aucun comportement ne peut pas entraner de vulnrabilits. D'autre part, la vrication informelle sera facilement faire d'erreurs ds que le protocole devient compliqu[DeMillo 1982, p.2], par exemple : le protocole comprend de nombreux participants, le protocole a besoin de plusieurs interactions de communication11 , l'existence de l'attaquant et ses activits, etc. Ainsi, nous devons rsoudre le mme problme que la vrication des programmes critiques, la vrication des protocoles cryptographiques a besoin galement une mthode formelle.
Nous ne montrons par clairement comment le participant B peut obtenir la cl publique du participant A. En fait, les cls publiques sont distribues implicitement par une autorit de certication. 10 C'est celui qu'on appelle l'hypothse du chirement parfait [Cortier 2005, p.3] 11 Le nombre de messages requis forme le protocole
9

4.2. Protocole cryptographique

29

4.1.3 Proprits de scurit


Les proprits de scurit sont des objectifs qu'un protocole de scurit cherche assurer. Parmi plusieur proprits des protocoles cryptographiques12 , nous croyons qu'il y a deux proprits qui sont les plus utilises par les botnets : le secret et l'authentication. Secret : un protocole assure le secret d'une donne M si, pour tout droulement valide, l'attaquant ne peut pas apprendre cette donne[Cortier 2005, p.7]. Le botnet a toujours besoin d'assurer le secret de ses messages participants13 . Remarquons ici que les capacits de l'attaquant ne sont rien parles. Ainsi sous certaines conditions, le protocole assure le secret de la donne M , cependant sous les autres conditions, il ne peut pas l'assurer. Authentication : le botnet peut se munir d'une capacit qui permet aux participants de dtecter des altrations des messages reus. Dans ce cas l, nous disons que le protocole de communication du botnet fournis le service d'authentication du message. Il est bien entendu que si le botnet Waledac se munir de l'authentication du message, tous les attaques prsentes dans la section 3.5 ne marchent plus.
4.2 Protocole cryptographique

Un protocole est une convention dterminant les messages changs entre plusieurs participants. Un protocole cryptographique utilise des primitives cryptographiques (chirement, signature, ...) an de garantir que les donnes14 sont changes de faon sre15 , mme si le rseau lui-mme n'est pas sr. Il sut de remarquer que nous distinguons la couche logique des protocoles cryptographiques qui dtermine la suite des messages changs, et des primitives cryptographiques qui crent ces messages.

4.2.1 Primitives cryptographiques


Les primitives cryptographiques jouent un rle de briques stables sur lesquelles les protocoles cryptographiques se basent. Une liste assez complte de primitives cryptographiques peut tre consulte dans [Menezes 1997, p.5]. Dans ces travaux, nous ne parlons que de quelques primitives qui sont concernes directement deux proprits de scurit prsents ci-dessus (authentication et secret) : la cryptographie symtrique et asymtrique, la signature numrique. La cryptographie symtrique 16 ralise sur les donnes m une transformation c = Ek (m), par l'intermdiaire d'un algorithme de chirement E . Cet algorithme prend en entre le message clair m et un paramtre secret k , s'appelle la cl. La restauration
Une list plus complte peut tre consulte dans [Cortier 2005, p.7-10] Le botnet Waledac utilise le chirement symtrique AES 128 pour protger ses messages (cf. section 3.4.1) 14 Les messages en clair 15 En fait, le protocole a pour but de garantir des proprits de scurit particuliers 16 Cryptographie cl secrte
13 12

30

Chapitre 4. Vrication des protocoles et mthodes formelles

du texte clair partir de la chire se fait par un algorithme de dchirement Dk , prenant en entre la chire et la mme cl[ENS 2004, p.7]. Le chirement et le dchirement ont une rlation :

Dk (Ek (m)) = m
Remarquons aux primitives cryptographiques utilises par botnet Waledac, le chirement symtrique AES 128 garantit la condentialit des messages. Jusqu' prsent, le dcryptement 17 de AES avec la taille de cl de 128 bits est extrmement dicile18 . La cryptographie asymtrique 19 utilise une paire de cls. La cl publique e, est utilise pour le chirement : c = Ee (m). La cl prive d, est utilise pour le dchiffrement m = Dd (c). Le chirement est le dchirement ont donc une rlation :

Dd (Ee (m)) = Ee (Dd (m)) = m


De plus, tant donne la cl publique e, il est impossible20 de dcouvrir la cl secrte d. Cependant, il sut de remarquer que le dcryptement du chirement asymtrique n'est pas tout fait la dcouverte de la cl secrte[Boneh 1999]. Le schma de cryptographie asymtrique est aussi la base de nombreux primitives cryptographiques, l'un d'entre eux est la signature numrique . La signature numrique est un mcanisme qui permet de[CGI 2002, p.4-5] :  Authentier un message, en d'autres termes prouver qu'un message provient bien d'un expditeur donn, l'instar d'une signature sur un document papier.  Garantir l'intgrit d'un message, autrement dit vrier qu'un message n'est pas altr aprs il est sign, toute altration du message sera aussitt dtecte. La procdure de la signature numrique est l'inverse du chirement asymtrique : la cl de signature est secrte. Seul le possesseur de cette cl peut signer, la signature numrique d'un message m est calcule par s = Ed (m)21 . La cl de vrication des signatures est publique, de sorte que n'importe qui peut vrier qu'une signature est correcte m = De (s).

4.2.2 Exemple : protocole "Wide-Mouthed-Frog"


Pour illustrer des protocoles cryptographiques, nous considrons une version simplie d'un protocole d'tablissement de cls, s'tant appel "Wide-MouthedFrog", propos la premire fois par M. Burrows[Burrows 1990, p.25]. Ce protocole a pour but d'aider deux interlocuteurs A et B se mettre d'accord sur une cl de session secrte grce un serveur d'authentication S . Nous remarquons que cette version ne utilise pas l'horodatage, elle est donc vulnrable l'attaque par rejeu.
17 18

c = Ek (m) sans la connaissance de la cl k[ENS 2004, p.7]

Le dcryptement est l'opration qui consiste calculer le texte clair m partir du chir

Cette taille est susante pour protger des donnes dont le niveau de scurit est SECRET [NIST 2007, p.67] 19 Cryptographie cl publique 20 C'est--dire il est trs dicile de calculer la cl secrte partir des informations connues (cl publique, etc) en un temps raisonnable 21 En fait, la signature numrique est cre en signant sur la hachage du message[Krawczyk 1997]

4.3. Modles formels


k A,{B,kAB }kAS kkkk kkk5 S SSSSSSS{A,k } SSSSAB kBS SSSS SSSS S)/ B
{M }kAB

31

kkk kkkk k k k k o k

Fig.

4.3: Protocole Wide-Mouthed-Frog

L'expditeur A genre une nouvelle cl de session kAB , elle cre un message qui se compose de l'identit de la destinataire B et la cl de session. Ce message est chir par la cl secrte kAS partage entre A et le serveur d'authentication S : {B, kAB }kAS . Puis, A envoie au serveur S la composition : A, {B, kAB }kAS . Le serveur S obtient la cl de session kAB et la destinataire B en dchirant le message {B, kAB }kAS . Ensuite, S envoie B le message chir par la cl secrte partage kBS : {A, kAB }kBS . B chire alors le message M sous la cl partage kAB , et l'envoie A. Message 1. A S : Message 2. S B : Message 3. B A :

A, {B, kAB }kAS {A, kAB }kBS {M }kAB

Le protocole "Wide-Mouthed-Frog" utilise la cryptographie symtrique an de protger des informations changes sur les rseaux. Il n'exite que deux personnes A et S qui procdent la cl secrte kAS , grce la cryptographie symtrique, le contenu du message {B, kAB }kAS est donc protg contre les autres. La cl secrte kAS n'est partage que entre le serveur S et la destinataire B , le contenu du message {A, kAB }kBS ne peut tre dchir que par S et B . En utilisant ce protocole, les deux interlocuteurs sont convaincus que la cl de session kAB est change de faon scurise entre eux. Ils peuvent alors s'changent de faon scurise des messages en les chirant par cette cl.
4.3 Modles formels

Le modlisation d'un protocole n'est pas simplement une traduction symbolique de la spcication de cet protocole. En eet, considrons le protocole illustr dans la gure 4.1, sa spcication peut tre traduite en une reprsentation symbolique dcrite ci-dessous :

A B : {{k }skA }pkB BA:


Fig.

{m}k

4.4: Reprsentation symbolique du protocole

32

Chapitre 4. Vrication des protocoles et mthodes formelles

La reprsentation 4.4 ne parle que d'un droulement normal du protocole, il est assez facile d'y s'apercevoir de quelques lacunes :  il n'y a auccun existence d'attaquant : sa capacit, ses activits, etc.  la reprsentation ne peut parler rien de proprit de scurit qu'elle assure (dans ce cas c'est le secret du message m).  le comportement de chaque participant est ambigu : si le participant B ne reoit pas le premier message, est-ce qu'il envoie le deuxime message ?. La modlisation doit est donc capable de dcrire non seulement les activits du protocole mais encore l'environnement dans lequel ce protocole se droule. L'environnement du protocole est eectivement les activits des attaquants et leurs capacits. De plus, la modlisation doit fournir exactement et formellement des proprits de scurit que le protocole assure. De nombreux modles ddis la vrication des protocoles cryptographiques ont t dvelopps dans littrature, tels ques les systmes de contraintes[Millen 2001], les rgles de rcriture[Cervesato 1999], les clauses de Horn[Blanchet 2001], les strand spaces[Fabrega 1999] ou les algbres de processus[Abadi 2001, Schneider 1998]22 . Ces modles peuvent tre diviss en deux grandes familles : les modles de traces et les algbres de processus [Cortier 2005, p.11]. Les modles de traces reprsentent les protocoles et les attaquants par des rgles d'infrence. Les rgles dcrivent les transitions possibles entre traces. Les traces contiennent en gnral l'ensemble des messages circulants sur le rseau et ventuellement les tats locaux des participants ou des annotations dcrivant explicitement les transitions eectues[Cortier 2005, p.11]. Dans ces travaux, nous aborderons un modle de traces particulier : les clauses de Horn (cf. section 4.3.3). Les algbres de processus reprsentent le protocole par des processus. Cela correspond une modlisation plus proche de l'implmentation des protocoles : chaque participant est reprsent par un processus indpendant des processus reprsentant les autres rles[Cortier 2005, p.11]. En particulier, nous utiliserons un modle de l'algbre de processus : le spi calcul (cf. section 4.3.2). Dans ces travaux, nous nous concentrons plutt sur des mthodes d'algbre de processus parce qu'elles correspondent une modlisation plus proche de l'implmentation des protocoles. C'est--dire, il est assez facile de crer une reprsentation formelle partir d'une spcication informelle de protocole et d'implmenter un protocole si nous savons sa reprsentation formelle23 . Cependant, nous utiliserons aussi les modle de traces pace qu'ils permettent de reconstruire facilement des attaques.

4.3.1 Algbre de processus


Au-del des programmes squentiels, qui prennent des donnes en entre et fournissent des rsultats en sortie, beaucoup de systmes informatiques sont paUne discription courte des modles peut tre consulte dans [Cortier 2003, p.19-21] En fait, la reprsentation d'un protocole en spi calcul ressemble un reprsentation d'une fonction en le langage de programmation Caml[INRIA 2010]
23 22

4.3. Modles formels

33

rallles, c'est--dire composs de plusieurs processus qui s'excutent simultanment et s'changent des messages. L'algbre de processus (ou calcul de processus) est un formalisme mathmatique pour la description et l'tude des systme concurrents[Garavel 2003, p.1]. Le processus s'addresse aux comportements d'un systme. Nous pouvons imaginer qu'un systme est caractris (ou dni) par ses comportements dans les interactions avec des autres. Ainsi, le systme est quelque chose qui montre des comportements. Nous considrons ici des exemples :  Excution d'un logiciel : quand un logiciel fonctionne, d'une part il communique toujours avec d'autres services du systme informatique. D'autre part, il est caratris par ses comportements (ex. pour un chier MP3, une application multimdia restitue ses sons, un diteur de chiers binaires ache ses octes).  Activits d'une machine : un distributeur automatique de caf nous ore une tasse de caf si le montant d'argent que nous lui donnons est susant, sinon il attend et compte (avec chaque sou) jusqu' le montant d'argent est susant. Dans les cas ci-dessus, l'excution du logiciel et celui du distributeur de caf peuvent tre considres comme des processus. Chacune d'entre elles change son comportement au long de sa vie. Le comportement du systme se compose gnralement de : (1) un ensemble des actions que ce systme peut ectue, (2) un ordre avec lequel les actions sont ectues. Pour modliser un systme particulier, nous ne mettons que en valeur certains aspects de son comportement et les autres aspects sont laisss passer, c'est--dire on ne considre que une abstraction ou une idalisation d'un systme rel[Baeten 2009, p.1]. Par exemple, dans la spcication du protocole de communication scuris SSH[Ylonen 2006b], nous ngligons tous les dtails qui sont concerns la couche physique, tels que les signaux lectriques, ou sa modulation. Nous nous concentrons plutt sur les algorithmes de l'tabilissement de cls ou d'authentication[Ylonen 2006a]. L'abstraction d'un systme est cre par une ralisation des observations sur ce systme (en d'autres termes, sur des comportements du systme). Une activit24 est constate pour chaque observation ectue sur le systme. Ainsi, l'abstraction du systme se compose des plusieurs activits discrtes, le processus s'appelle aussi systme vnements discrets 25 [Baeten 2009, p.1]. Pour illustrer la modlisation par processus, nous dcrivons dans la gure 4.5 un exemple d'un distributeur automatique des boissons : l'opration du distributeur des boissons est modlise par un diagramme d'tats-transitions. L'tat start n'est que un tat-faux 26 , la machine commence en attendant des sous (tat 1) jusqu' l'utilisateur met deux sous (tat 2). A cet tat, si l'utilisateur appuye sur le button tea, la machine lui donne une tasse de th et elle change son tat 1. Si l'utilisateur continuer met deux sous, la machine change son tat 3. A l'tat 3, si l'utilistateur
Une activit est une priode de temps pendant lequel l'tat du systme ne change pas[Naoufel 2002] 25 Discrete Event System 26 pseudo-state
24

34

Chapitre 4. Vrication des protocoles et mthodes formelles

appue sur le button cof f e, la machine lui donne une tasse de caf et elle change son tat 1. start
, WVUT PQRS ONML HIJK
2p

il
tea

- _^]\ XYZ[

2p

- _^]\ XYZ[

cof f e

Fig.

4.5: Diagramme tats-transitions d'un distributeur des boissons

Le process est illustr par le diagramme d'tats-transitions 4.5 qui se compose des tats et des transitions, l'tat 1 est la fois l'tat initial et l'tat nal27 . Une transition signie l'excution d'une activit, le processus comprend donc des activits : 2p, tea, cof f e. Le comportement est une suite des activits successives de l'tat initial l'tat nal, le processus se compose donc deux comportements : 2p . tea et 2p . 2p . cof f e. Le terme algbre signie une structure mathmatique qui se compose d'un ensemble des valeurs et des oprations sur les valeurs. Les oprations bncient des proprits algbriques, tels que commutavit, associativit, idempotence, distributivit[Wing 2002, p.3]. L'algbre de processus est donc un algbre qui se muni d'un ensemble des processus et les oprations sur les processus (ex. la composition parallle, l'addition). Nous donnons ici la dnition du groupe en mathmatiques pour illustrer clairement le terme algbre de processus :

Groupe. Un groupe est un ensemble G muni d'une opration interne (g, g ) g g vriant les proprits suivantes :  il existe un lment e G tel que pour tout g G, e g = g e = g (existence d'un lmnt neutre )  pour tout g G, il existe g G tel que g g = g g = e (existence d'un inverse )  pour tous g, g , g G, on a g (g g ) = (g g ) g ) (associativit )

Le groupe28 est donc une structure mathmatique qui consiste en un ensemble des lmnts et une opration qui satisfait des axiomes du groupe. Il en va de mme pour l'algbre de processus : l'algbre consiste en un ensemble des processus et des oprations satisfaissant des axiomes prdnis. Les axiomes permettent de raliser des calculs sur les processus.
27 28

Dans ce cas, le diagramme tats-transitions est en fait un automate Un exemple simple d'un groupe est l'ensemble des rels non nuls avec la multiplication

4.3. Modles formels

35

4.3.2 Pi-calcul et spi-calcul


Nous consacrons cette section prsenter une mthode de l'algbre de processus trs exible pour la modlisation des systmes de multi-processus, le calcul. Nous aborderons aussi une extension cryptographique du calcul, le spi calcul, qui est une algbre de processus trs adapte la modlisation des protocoles cryptographiques.

Pi-calcul
Le calcul[Milner 1999] modlise un systme de communication en dnissant formellement ses processus. Le processus se caractrise par une liste des activits. Il peut envoyer ou recevoir des messages par ses canaux, de mme qu'il peut ectuer des actions internes. Le processus en calcul est donc reprsent par une formule des termes dnissant ses activits, ses messages changs et ses canaux. En fait, il existe de nombreuses versions de calcul. Ces versions se distinguent par ses propres dnitions des termes, qui reprsentent les structures des messages changs et dnissent des oprations internes. Nous dcrivons ici une version particulire dont les termes sont dnis par la grammaire :

. L, M, N = x, y, z, . . . a, b, c, k, s, . . . (M, N )

termes variable nom paire

Les noms a, b, c, k, s reprsentent des donnes atomiques, alors que les variables x, y, z peuvent tre substitues par n'importe quel message. La paire (M, N ) reprsente une structure de message. En suite, les processus sont dnis par la grammaire :

. P, Q = M N .P M (x).P 0 P |Q !P (new a)P

processus mission reception processus nul composition parallle rplication restriction

Le processus M (x).P reoit un message sur le canal29 M , le stocke dans la variable x, puis execute P . Le processus M N .P envoie un message, qui est dni par le terme N sur le canal M , puis s'execute comme le processus P . Le processus 0 dni un cas spcial o il s'agit d'un processus qui ne fait rien. Le processus P |Q
29

Le canal est reprsent par un terme

36

Chapitre 4. Vrication des protocoles et mthodes formelles

se compose de deux processus concurrents P et Q. Le processus !P veut dire qu'il comprend des plusieurs processus P qui fonctionent simultanment. Le processus (new a)P cre un nouveau nom priv a, puis s'execute comme le processus P . Pour illustrer la modlisation de protocoles en calcul, nous dcrivons cidessous une modlisation de la premire tape d'un protocole trs rpandu sur l'Internet, le TCP[Postel 1981]. L'tablissement de la connexion du protocole TCP est ralis grce au mcanisme appel three way handshake :
{m}SY N

Ao

{m}SY N _ACK {m}ACK

B
/

Fig.

4.6: Etablissement d'une connexion TCP

L'tablissement d'une connexion TCP entre deux parties A (l'metteur) et B (le rcepteur) se droule comme le suivant :  Etape 1 : l'metteur A initialise l'tablissement en transmettant un segment dont le drapeau SY N est activ (le bit SY N du segment est mise 1) au rcepteur B .  Etape 2 : le rcepteur B reoit le segment initial provenant de l'metteur A, il rpond un accus de rception tant un segment dont le drapeau SY N et le drapeau ACK sont activs.  Etape 3 : l'metteur A transmet au rcepteur B un accus de rception tant un segment donc le drapeau ACK est activ. A partir de cette spcication informelle, le calcul modlise formellement l'tablissement par un systme PT CP de deux processus indpendants PA et PB qui correspondent respectivement aux rles de A et B :

PA = c mSY N . c(xSY N _ACK ) . c mACK . FA PB = c(xSY N ) . c mSY N _ACK . c(xACK ) . QB PT CP


Fig.

= PA |PB

4.7: Modle formel en calcul de l'tablissement TCP

Le processus PA modlise des activits de l'metteur A. Il se compose de quatre activits (processus) squentielles : c mSY N , c(xSY N _ACK ), c mACK et FA . La suite des activits signie que le processus PA doit fonctionner conformment l'ordre dni par la suite : il doit transmettre le segment SY N , reprsent par le nom mSY N avant il peut recevoir le segment SY N _ACK , reprsent par la variable xSY N _ACK . Le nom c reprsente un canal publique, qui signie l'environnement publique de l'Internet, tous les segments sont envoys sur un environnement publique. Le processus FA signie le fonctionnement de l'metteur A aprs l'tablissement

4.3. Modles formels

37

de la connexion. Le processus PB modlise des activits du rcepteur B , il se compose de quatre processus squentiels : c(xSY N ), c mSY N _ACK , c(xACK ) et QB . Le processus QB signie le fonctionnement du rcepteur B aprs l'tablissement de la connexion. Finalement, le protocole d'tablissement de la connexion TCP PT CP est aussi un processus qui se compose deux processus concurents PA et PB . Le calcul utilise des rgles propres pour modliser les interactions entre des processus, s'appellant rlations de raction : TAU : REACT : PAR : RES : STRUCT :

.P + M P (a.P + M )|(a.P ) + N P |Q P P P |Q P |Q P P (new a)P (new a)P P P si P P et Q Q QQ


Fig.

4.8: Rlations de raction

Les signications de ces rgles peuvent tre consultes dans [Milner 1999, p.34]. Nous ne utilisons que ici le rgle REACT pour modliser les interactions entre deux processus PA et PB . Il sut de remarquer que ces interactions sont des activits externes de PA et de PB . Ils sont cependant des activits internes du processus PT CP :

PT CP = PA |PB = c mSY N . c(xSY N _ACK ) . c mACK . FA | c(xSY N ) . c mSY N _ACK . c(xACK ) . QB c(xSY N _ACK ) . c mACK . FA | c mSY N _ACK . c(xACK ) . QB c mACK . FA | c(xACK ) . QB FA | QB
Il en rsulte que
REACT REACT REACT

PT CP FA | QB
L'quation ci-dessus signie que : aprs l'tape de l'tablissement ni avec succs30 , le protocole PT CP se transforme en l'intraction entre deux processus FA et
30 En fait, cette modlisation n'est pas tout fait complte, il faut ajouter chaque processus PA et PB des oprations ayant pour but de vrier des messages reu. Pour simplier les expressions formelles de A (PA ) et de B (PB ) nous ignorons ces oprations

38

Chapitre 4. Vrication des protocoles et mthodes formelles

QB qui reprsente l'change des donnes entre PA et PB lorsque la connexion TCP a t tablie.

Spi-calcul
Le spi calcul est une extension31 de pi calcul. Il est propos la premire fois par M. Arbadi et A. D. Gordon[Abadi 1998] ayant pour but de modliser et de vrier les protocoles cryptographiques. La version originale de calcul[Milner 1999] n'a pas d'oprations cryptographiques qui sont ncessaires pour la modlisation des protocoles cryptographiques. Les auteurs ont tendu donc calcul en y ajoutant des primitives cryptographiques : spi-calcul = pi-calcul + cryptographiques primitives Les oprations cryptographiques en spi calcul sont dnies par les paires (constructeur, destructeur)32 . En gnral, le constructeur reprsente le chirement et le destructeur reprsente le dchirement. Les primitives cryptographiques (cf. section 4.2.1) sont reprsentes comme les suivantes :  Chirement symtrique Constructeur : chirement de x sous la cl y , sencrypt(x, y ) Destructeur : dchirement sdecrypt(sencrypt(x, y ), y ) y  Chirement asymtrique Constructeur : chirement de x sous la cl y , pencrypt(x, y ) gnration de la cl publique partir de la cl secrte y , pk (y ) Destructeur : dchirement pdecrypt(pencrypt(x, y ), y ) y  Signature numrique Constructeur : signature du x avec la cl secrte y , sign(x, y ) gnration de la cl publique partir de la cl secrte y , pk (y ) Destructeur : vrication de signature checksign(sign(x, y ), pk (y )) x
Fig.

4.9: Modlisation des primitives cryptographiques

Les constructeurs sont ajouts dans la grammaire des termes. Ils permettent doncs de construire de nouveaux termes.

. L, M, N = x, y, z, . . . a, b, c, k, s, . . . (M, N ) f (M1 , . . . , Mn )
31 32

termes variable nom paire application de constructeur

Remarquons qu'il existe plusieurs versions dirents de calcul Dans ces travaux, nous utilisons les expressions proposes par B. Blanchet[Blanchet 2008, p.19]

4.3. Modles formels

39

Les destructeurs n'apparaissent pas dans les termes car ils manipulent plutt les termes dans les processus33 . La grammaire de processus en spi calcul sont tendue en ajoutant des oprations comme la suivante :

. P, Q = M N .P M (x).P 0 P |Q !P (new a)P


let x = g (M1 , . . . , Mn ) in P esle Q let x = M in P if M = N then P then Q

processus mission reception processus nul composition parallle rplication restriction application de destructeur dnition locale conditionnelle

Les destructeurs sont des fonctions partielles que les processus peuvent appliquer. Le processus let x = g (M1 , . . . , Mn ) in P esle Q essaie d'valuer g (M1 , . . . , Mn ) ; si cela russit, x est li au rsultat obtenu et P est excut ; sinon, Q est excut. La dnition locale let x = M in P est gale une substitution P {M/x} qui assigne le nom M la variable x du processus P . La condition if M = N then P then Q excute P si M et N se rduisent vers le mme terme, sinon elle excute Q[Blanchet 2008, p.19]. Pour illustrer la modlisation en spi calcul des protocoles cryptographiques, nous dcrivons ci-dessous la reprsentation formelle du protocole de distribution de cls de Denning-Sacco (cf. gure 4.1) :

PA = (new k ) (new skA ) let pkA = pk (skA ) in c pkA . c(pkB ) . c encrypt(sign(k, skA ), pkB ) . 0 PB = (new m) (new skB ) let pkB = pk (skB ) in c(pk ) . c pkB . c(mencrypt ) . let msign = pdecrypt(mencrypt , pkB ) in
let k = checksign(msign , pk ) in

c sencrypt(m, k ) . 0 P =PA |PB


Fig.

4.10: Modle formel en spi calcul du protocole Denning-Sacco

Les processus PA , PB correspondent respectivement aux participants A et B . Le protocole est reprsent par le processus P qui se forme de deux processus PA et PB fonctionnant paralllement. Le processus PA gnre deux cls fraches : k de la
33

C'est--dire, les destructeurs sont utiliss pour modliser des activits de processus

40

Chapitre 4. Vrication des protocoles et mthodes formelles

cryptographique symtrique (elle sera la cl de session), skA de la cryptographique asymtrique. Puis, PA construit la cl publique pkA correspondant la cl secrte skA en utilisant le constructeur pkA = pk (skA ). Ensuite, la cl publique pkB est envoye sur le canal publique c : c pkA . Le processus PA reoit la cl publique de B sur le canal c : c(pkB ), il signe sa cl de session k avec sa cl secrte skA par le constructeur sign(k, skA ). La signature numrique est chire avec la cl publique de B en appliquant le constructeur encrypt(sign(k, skA ), pkB ), puis la signature chire est envoye sur le canal publique c : c encrypt(sign(k, skA ), pkB ) . Le processus PB gnr aussi une cl secrte de la cryptographique asymtrique skB . Il cre la cl publique correspondante en utilisant le constructeur pkB = pk (skB ). Il reoit une cl publique sur le canal publique c et la stocke dans le variable pk : c(pk ), puis il met sa cl publique sur ce canal : c pkB . Le processus PB reoit le message sur le canal publique c et le stocke dans la variable mencrypt , c'est une signature chire. Il utilise sa cl publique pour dchire ce message, le rsultat du dchirement est assign la variable msign . Le processus B vrie la donne msign en utilisant la cl publique reue pk , si la vrication est nie avec succs, il utilise la cl de session k tant reue par la vrication pour chire le message m : sencrypt(m, k ). Enn, il met le message chir sur le canal publique c : c sencrypt(m, k ) . Nous avons tudi la modlisation des protocoles en calcul (cf. gure 4.7) et des protocoles cryptographiques en spi calcul (cf. gure 4.10). Les modles formels sont crs naturellement partir des spcications informelles.

4.3.3 Modle de traces et clauses de Horn


Il existe une autre approche de la modlisation des protocoles, s'appelle modles de traces. Le modle de traces a t utilis la premire fois par D. Dolev et A. Yao[Dolev 1983] pour modliser et vrier des protocoles cryptographiques. Ils ont proposs une reprsentation formelle des protocoles cryptographiques en utilisant des rgles de rcriture34 . Une variante de la modlisation sous forme de rcriture est la modlisation sous forme de clauses de Horn. Cette modlisation prsente l'avantage de permettre l'utilisation des techniques dj dveloppes sur les clauses comme la mthode de rsolution[Cortier 2009, p.10]. Dans cette section, nous prsenterons une mthode de modlisation et de vrication base sur les clauses de Horn, propose par B. Blanchet et X. Allamigeon[Allamigeon 2005, Blanchet 2001]. En basant sur cette mthode, ils ont cr aussi un outil informatique, ProVerif[Blanchet 2005], qui permet de vrier les protocoles cryptographiques et de reconstruire de l'attaque contre les protocole vulnrables.
34 Ils utilisent des rgles de rcritutre dans une classe des protocoles, s'appelle protocole de cascade [Dolev 1983, p.3]

4.3. Modles formels Clauses de Horn

41

Les clauses de Horn sont des clauses logiques35 qui comportent au plus un atome positif. Les clauses de Horn donc s'crivent sous la forme :

(r1 r2 . . . rn ) h
ou

r1 r2 . . . rn h
Les clauses de Horn peuvent tre utilises pour modliser l'excution des protocoles cryptographiques et les vrier. L'ide d'utiliser les clauses de Horn a t propose la premire fois par Weidenbach[Weidenbach 1999]. Les clauses de Horn sont aussi le formalisme au cur du logiciel ProVerif, un outil de vrication automatique des protocoles cryptographiques, dvelopp par Blanchet B.[Blanchet 2001]. La modlisation d'un protocole en clauses de Horn est en fait celle des capacits de l'attaquant, qui se construisent par les oprations cryptographiques et par les caractres propres du protocole. Les capacits de l'attaquant se composent des capacits de dduction et des connaissances. Les oprations dans la gure 4.9 sont modlises sur les formes de clauses de Horns :

I (x) I (y ) I (sk ) I (pencrypt(m, pk (sk ))) I (sk ) I (m) I (k ) I (sencrypt(m, k )) I (k )

I (pair(x, y )) Forme la paire de deux messages I (pk (sk )) Cre une cl publique d'une cl secrte I (m) Dchire un message avec une cl secrte I (sencrypt(m, k )) Chire un message avec une cl partage I (m) Dchire un message avec une cl partage

I (m) I (pk ) I (pencrypt(m, pk )) Chire un message avec une cl publique

La notion logique prdicat unaire36 I reprsente la connaissance de l'attaquant 37 . Les capacits initiales38 de l'attaquant se modlisent en considrant l'ensemble ni de clauses[Cortier 2009, p.35] :

CI0 = {I (t) | t I0 }

(4.1)

La clause I (m) I (pk ) I (pencrypt(m, pk )), reprsente une capacit de dduction de l'attaquant, signie que, si l'attaquant sait le message m et la cl publique pk , il peut raliser une chirement asymtrique pour crer le message chir
Une clause logique s'est forme d'une disjonction () des atomes logiques Un prdicat se rfre un proprit que le subjet possde, par exemple le prdicat attacker(m) veut dire : l'attaquant attacker connat le message m 37 Par exemple, le prdicat I (m) signie que l'attaquant sais m 38 Remarquons que l'capacit de l'attaque s'crire en un prdicat, l'capacit de dduction de l'attaquant s'crire en un clause de Horn
36 35

42

Chapitre 4. Vrication des protocoles et mthodes formelles

pencrypt(m, pk ). La clause I (sk ) I (pk (sk )) veut dire que, si l'attaquant sait la cl secrte sk , il peut crer la cl publique correspondante pk (sk ). La clause I (pencrypt(m, pk (sk ))) I (sk ) I (m) signie que, si l'attaquant sait le message chir (par le chirement asymtrique) et il sait aussi la cl secrte, il peut dchire le message pour savoir le texte claire. L'ide principale de la vrication des procotoles est de dcouvrir toutes les capacits de l'attaquant en utilisant un systme de dduction 39 . Un systme de dduction est un ensemble ni des rgles, chacun d'eux peut s'crire en un clause de Horn : u1 u2 . . . un u
tant donn un systme de dduction, le prdicat t est dductible en un pas partir d'un ensemble de prdicats S s'il existe u1 , . . . , un S et une rgle de dduction[Cortier 2009, p.21] :

u1 . . . un t
Le prdicat t est dductible partir de S s'il existe une suite nie t1 , . . . , tn tel que : ti+1 est dductible en un pas partir de S {t1 , . . . , ti } 0 i n 1 et t = tn . Le protocole comprend des rgles, chacun d'entre eux est reprsent de faon informel par un chang de message complexe entre des participants. Pour chaque protocole particulire, l'attaquant peut l'expoiter de faon propre. Dans le cas gnral, ses capacits tant obtenues par l'expoitation d'un protocole, sont modlises par des clauses de Horn sur la forme :

I (u) I (v )
En dbut de la modlisation, les capacits de l'attaquant se trouvent dans l'ensemble CI0 (cf. quation 4.1). L'ensemble de capacits s'est augment en ajoutant des nouveaux prdicats qui sont dductibles partir de CI0 en appliquant les rgles de dduction situs dans la modlisation de l'attaquant et dans la modlisation du protocole. Nous illustrons la modlisation des protocoles cryptographiques en donnant cidessous un exemple d'une version simplie du protocole de distribution de cls Denning-Sacco[Denning 1981] illustre dans le gure 4.1 :

A B : {{k }skA }pkB BA: {m}k


La modlisation des capacits de l'attaquant en clauses de Horn se base sur les travaux de B. Blanchet[Blanchet 2001, p.3]. Elle se divise en deux tapes : (1) modliser les capacits tant obtenues par les oprations cryptographiques, (2) modliser les capacits tant obtenues en exploitant le protocole propre.
39 L'utilisation de systme de dduction en la vrication des protocoles cryptographiques est aussi propose la premire fois par D. Dolev et A. C. Yao, ils utilisent un ensemble des rgles de rduction [Dolev 1983, p.5]

4.3. Modles formels

43

Modliser les capacits tant obtenues par les oprations cryptographiques : le protocole Denning-Sacco utilise des primitives cryptographiques de la cryptographique asymtrique et de la cryptographique symtrique. Les capacits de l'attaquants sont modlises par les clauses :
attacker(m) attacker(pk ) attacker(sk ) attacker(pencrypt(m, pk (sk ))) attacker(sk ) attacker(m) attacker(sk ) attacker(sign(m, sk )) attacker(m) attacker(k ) attacker(sencrypt(m, k )) attacker(k ) attacker(pencrypt(m, pk )) attacker(pk (sk )) attacker(m) attacker(sign(m, sk )) attacker(m) attacker(sencrypt(m, k )) attacker(m)

L'attaquant sait les deux cls publiques de A et de B . Ainsi, ses connaissances initiales sont :

attacker(pk (skA )), attacker(pk (skB ))

Modliser les capacits tant obtenues en exploitant le protocole propre : l'environnement des intractions entre A et B est publique, tout le monde peut couter, intercepter, changer les messages envoys par ces interlocuteurs. Dans le premier message : A B : {{k }skA }pkB , A met toujour le message {{k }skA }pkB s'il obtient la cl publique de B : pkB . Alors, un attaquant actif X peut trompe A en l'envoyant sa cl publique pk (skX ) et puis il va obtenir le message {{k }skA }pkX . Le premier message permet donc d'ajouter une clause :
attacker(pk (x)) attacker(pencrypt(sign(k, ska ), pk (x)))
De faon analogue pour le deuxime message B A : {m}k , B rpond toujours ce message s'il peut dchire le message prcdent et vrier le rsultat. Un attaquant actif peut trompe B en l'envoyant un message pencrypt(sign(k , ska ), pk (x)) qu'il a stock auparavant. Dans ce cas l, l'attaquant va obtenir le message {m}k . Le deuxime message permet donc d'ajouter une clause :

attacker(pencrypt(sign(k , skA ), pk (skB ))) attacker(sencrypt(s, k ))


Les clauses de la modlisation du protocole propre (les clauses obtenues par les deux messages), les clauses obtenues par les primitives cryptographiques utilises et les connaissances initiales de l'attaquant forment un systme de dduction qui reprsente le modle formel en clauses de Horn du protocole. Nous remarquons que le systme de dduction du protocole, cr par les clauses de Horn, cache les activits du protocole. En fait, ce systme ne reprsente que les capacits de l'attaquant.

44
4.4

Chapitre 4. Vrication des protocoles et mthodes formelles


Modles formels des attaques

Nous avons tudi la modlisation formelle des protocoles cryptographiques par spi calcul et par les clauses de Horn. Cette section est consacr reprsenter les modles formels des attaques contre un protocole cryptographique. Revenons la section 4.1.3, un protocole de scurit vise assurer des proprits de scurit. L'attaque contre un protocole donc vise casser le proprit de scurit que le protocole assure. Dans ces travaux, nous n'aborderons que aux protocoles dont la proprit de scurit est le secret. Il existe deux notions de secret[Abadi 2000, p.14], chacune d'entre elles est signicative dans un modle formel. L'une se base sur l'quivalence40 entre des processus, cette notion est utilise dans les modles d'algbres de processus. L'autre se base sur les connaissances que l'attaquant peut dduire en utilisant un systme de dduction, il est bien entendu que cette notion est utilise dans les modles de traces.

4.4.1 Attaques en spi calcul


Etant donn un process P reprsentant un protocole de scurit, le protocole veut assurer le secret d'un donne, qui est reprsent par la variable x du processus. Le processus s'crit donc P (x). Le processus P (x) protge le secret de x si P (M ) et P (N ) sont quivalents pour tous les termes M et N [Abadi 2000, p.14]. Intuitivement, l'quivalence entre P (M ) et P (N ) signie que un autre processus, qui communique avec P , ne peut jamais dterminer si la variable x du processus P (x) est assigne M ou N . L'quivalence est illustre par un exemple : le processus c sencrypt(x, K ) qui envoie le message chir {x}K sur le canal c, ne peut pas protger le secret de x contre un attaquant qui sait le canal c et la cl K . L'attaquant contre ce processus peut tre reprsent par le processus Q

Q = c(m) . let y = sdecrypt(m, K ) in c y


En utilisant des rgles des ractions (cf. gure 4.8), nous pouvons dduire :

P (M )|Q =c sencrypt(M, K ) |c(m) . let y = sdecrypt(m, K ) in c y c M P (N )|Q =c sencrypt(N, K ) |c(m) . let y = sdecrypt(m, K ) in c y c N
Alors, Q peut toujours distingue P (M ) de P (N ). L'attaquant contre un processus gnral P (x) est donc dni par un processus Q. Il va essayer de dtecter le changement de la variable x. Autrement dit, l'attaquant est un processus Q, tel que le processus P |Q met x sur un canal publique[Abadi 2005, p.11]41 .

L'quivalence observationnelle est trs importante dans la dmonstration formelle de la vrication des protocoles cryptographique[Cortier 2009, 65] 41 Il est bien entendu que si P |Q met x sur un canal publique, le changement de x sera dtect

40

4.4. Modles formels des attaques

45

4.4.2 Attaques en clauses de Horn


Pour la modlisation en clauses de Horn, le protocole ne peut pas protger une donnes x si x se trouve dans l'ensemble de connaissances de l'attaquant qui est cr par un systme de dduction. Il n'existe pas d'une expression explicite d'attaque en clauses de Horn. En fait, l'attaque est trouve par la rsolution du systme de dduction, il est donc dcrite par une trace qui est cre par l'algorithme de rsolution ectu sur le systme de clauses de Horn.

Solution la mthode gnrique d'attaque


Sommaire
5.1 Mthode gnrique d'attaque . . . . . . . . . . . . . . . . . . 47

Chapitre 5

5.1.1 Plan d'attaque et analyses . . . . . . . . . . . . . . . . . . . . 5.1.2 Solution propose . . . . . . . . . . . . . . . . . . . . . . . . .


5.2 Reprsentation de l'attaque contre Waledac . . . . . . . . .

47 48
49

5.2.1 Modlisation du protocole de communication . . . . . . . . . 5.2.2 Attaque contre la distribution de la cl de session . . . . . . .

50 51

5.1

Mthode gnrique d'attaque

Au chapitre prcdent, nous avons prsent des connaissances thoriques de la vrication automatique des protocoles cryptographiques. Ce chapitre est consacr proposer une solution la mthode gnrique d'attaque contre les botnets. Cette solution suivre le plan d'attaque propose dans la gure 3.8. Elle se base sur les travaux originaux de R. Milner[Milner 1999] en calcul, sur les travaux de M. Abadi et A. D. Gordon[Abadi 1998] en spi calcul et la dnition formelle d'attaque[Abadi 2000, Abadi 2005], et sur les travaux de B. Blanchet et X. Allamigeon[Blanchet 2005, Allamigeon 2005] en vrication des protocoles par les clauses de Horn et en reconstruction d'attaque.

5.1.1 Plan d'attaque et analyses


Nous rviserons le plan d'attaque gnrique propos dans la section 3.6.3. Puis nous analyserons en dtail chaque tape dans ce plan pour construire une solution ralisable.

Plan d'attaque
Nous avons vu dans la section 3.6.3, l'approche propose (cf. gure 3.8) pour l'attaque gnrique contre les botnets comprend trois tapes les plus importantes : 1. Modliser le protocole de communication du botnet. 2. Vrier le modle obtenu.

48

Chapitre 5. Solution la mthode gnrique d'attaque


3. Reconstruire l'attaque si le protocole est vulnrable.

Le but de notre plan n'est rien d'autre qu'une solution rele, c'est--dire nous voulons crer un systme informatique qui permet d'attaquer automatiquement les botnets. Cependant, nous visons une attaque gnrale qui casse la scurit du protocole de communication. Cette attaque est considre comme une base sur laquelle les autres attaques peuvent se drouler1 .

Analyses
La premire tape peut tre ralise en utilisant une mthode d'algbre de processus (une rvision courte des travaux existants peut tre consulte dans l'annexe B) ou celle de clauses de Horn. D'une part, un algbre de processus, par exemple spi calcul, nous permet de construire naturellement un protocole de communication. D'autre part, les clauses de Horn ne modlise pas le protocole, ils construisent plutt l'ensemble de capacits d'attquant. La deuxime tape peut tre ralise aussi par l'algbre de processus ou les clauses de Horn. Cependant, la vrication des protocoles en utilisant les outils d'algbre de processus est assez complique2 . Il est dicile de raliser une telle vrication par un algorithme tant capable d'tre implment en un logiciel. D'autre part, la vrication par les clauses de Horn peut tre ralise en utilisant des algorithmes de rsolution sur les clauses3 . L'algbre de processus nous permet d'crire une attaque formelle sur la forme d'un processus. Cette forme nous permet d'implmenter facilement ce attaque dans un systme informatique. Cependant, la rconstruction d'une telle attaque en algbre de processus est dicile. En fait, il n'existe pas encore de mthodes permettant de reconstruire les attaques en modle de l'algbre de processus. En clauses de Horn, les deux auteurs B. Blanchet et X. Allamigeon ont propos une mthode de la reconstruction d'attaques. De plus, ils ont implment aussi un outil, appel ProVerif[Blanchet 2005], qui permet de reconstruire automatiquement les attaques.

5.1.2 Solution propose


partir des analyses ci-dessus, nous proposons une solution ralisable l'attaque gnrique contre les botnet en concrtisant des tapes du plan thorique. Le cur de la solution est l'outil ProVerif qui permet la fois de vrier un protocole en forme de spi calcul et de reconstruire d'attaque si le protocole est vulnrable. Cette solution se compose des tapes : 1. Dcouvrir le protocole de communication du botnet
Par exemple, l'attaque Sybil et le faux-rpteur dans le cas de botnet peuvent s'eectuer seulement si les messages des bots sont dchirs et modis 2 Une dmonstration formelle de secret ou celle de authetication en spi calcul est base sur l'quivalence observationnelle , une telle dmonstration du protocole Wide-Mouthed-Frog peut tre consulte dans [Abadi 1998, p.35] 3 Un algorithme de rsolution sur les clauses peut tre consult dans [Blanchet 2008, p.28]
1

5.2. Reprsentation de l'attaque contre Waledac


2. Modliser ce protocole en spi calcul 3. Vrier ce protocole en utilisant ProVerif

49

4. Si le protocole est vulnrable, reconstruire l'attaque sous forme de spi calcul en utilisant ProVerif 5. Implmenter l'attaque (dans un systme informatique) protocole cryptographique modliser ce protocole en spi calcul

dcouvrir le protocole de communication du botnet reconstruire l'attaque sous forme de spi calcul en utilisant ProVerif

vrier ce protocole en utilisant ProVerif

yes

protocole est vulnrable ?

no implmenter l'attaque s'arrter

Fig.

5.1: Solution ralisable

5.2

Reprsentation de l'attaque contre Waledac

Dans cette section, nous appliquerons la mthode ci-dessus pour le cas du botnet Waledac en dcrivant les rprsentations en spi calcul du protocole de communication du botnet. En fait, le protocole est trs vulnrable et il est assez facile de dcouvir une attaque de l'homme milieu contre ce protocole. Il existe mme une autre attaque plus simplie grce la dcouverte de la cl K1 . De plus, nous pouvons aussi utiliser ProVerif pour le vrier et recontruire l'attaque contre lui. L'implmentation par le langage ddi4 de ProVerif peut tre consulte dans l'annexe A.
4

Domain Specic Language

50

Chapitre 5. Solution la mthode gnrique d'attaque

5.2.1 Modlisation du protocole de communication


Le rseau du botnet Waledac (cf. section 3.3.1) a l'architecture hirarchique se composant de 4 couches : 1. Spammeurs : les esclaves, envoyent des spams 2. Repeateurs : les relais, transmettent des informations de contrle du botnet 3. Protecteurs : les serveurs HTTP, cachent et protegent l'existence du serveur de contrle 4. Serveur(s) de contrle : chef du botnet, contrle son fonctionnement. Si nous ne considerons que les messages de commande circulant entre les spammeurs et le serveur de contrle, les rpteurs et les protecteurs ne sont rien d'autres que les machines de relais qui ne retransmettent que ces messages. Alors, nous pouvons considrer qu'il existe un canal virtuel entre les spammeurs et le serveur de contrle.
messages c b a a ` ` _ ^ ^ ] ] \ [ [ Z Y c d e Y X X e W + s f f g

Spammeur o

messages

/ Repeateur o messages / Protecteur o messages

/ Serveur

Fig.

5.2: Communications entre les couches du botnet

Sur le point de vue de scurit, l'tape le plus importante du protocole de communication entre un spammeur et le serveur de contrle est la distribution de la cl de session5 , parce que si nous connaissons la cl de session, nous pouvons dchirer tous les messages circulants.
pkspam

Spammeur o
o
Fig.

{ksession }pkspam messageksession

Serveur
/

5.3: Distribution de la cl session entre le spammeur et le serveur

Cette tape se compose des messages : Message 1. spammeur serveur : Message 2. serveur spammeur : Message 3. spammeur serveur :
5

{pkspammeur }K1 {ksession }pkspammeur {message}ksession

Cette tape est initialise par le message getkey (cf. 3.4.1)

5.2. Reprsentation de l'attaque contre Waledac

51

Nous remarquons que la cl K1 a t dcouverte par rtro-ingnierie, alors le premire message peut tre simpli un message clair, comme le gure 5.3. Nous modlisons donc le protocole de distribution de cl de session en spi calcul :

Spammer Server Pdistribution

(new skspam ) c pk (skspam ) . c(m) . let k = pdecrypt(m, skspam )


in c sencrypt(M, k )

(new ksession ) c(pkspam ) . c pencrypt(ksession , pkspam ) . c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) Spammer|Server

5.2.2 Attaque contre la distribution de la cl de session


Le protocole cryptographique du botnet n'est pas scuris du tout. Nous pouvons aisment le casser grce la dcouverte de la cl K1 , et la scurit du protocole est un jeu d'enfants ! ! !. Cependant, nous prsentons ici une autre attaque plus complique, l'attaque de l'homme du milieu :
pkspam

pkadv

/
adv

Spammeur o
o
Fig.

{ksession }pkspam {message}ksession

Adversaire o
/ o

{ksession }pk

Serveur
/

{message}ksession

5.4: Attaque contre protocole cryptographic du Waledac

Dans cette attaque, l'attaquant intercepte et change les messages circulant entre le spammeur et le serveur de contrle. Il intercepte la cl publique du spammeur et la change sa cl publique. Puis, il envoie sa cl publique au serveur de contrle. Le serveur utilise cette cl pour chire la cl de session, et envoie la cl de session chire spammeur. L'attaquant intercepte ce message encore une fois, dchire ce message en utilisant sa cl publique. L'attaquant rechire le message avec la cl publique du spammeur, et envoie le message rechir spammeur. Avec cette attaque, le spammer et le serveur de contrle ne peuvent pas reconnatre l'existence de l'attaquant. La modlisation de l'attaque en spi calcul :

Attacker

(new skatt ) c(pkspam ) . c pk (skatt ) . c(mserver ) . let ksession = pdecrypt(mserver , skatt ) in c pencrypt(ksession , pkspam ) . c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )

Attack

Attacker|Pdistribution

Nous pouvons maintenant montrer que l'attaque casse la condentialit du protocole :

52

Chapitre 5. Solution la mthode gnrique d'attaque

Attack

Attacker|Pdistribution (new skatt ) c(pkspam ) . c pk (skatt ) . c(mserver ) . let ksession = pdecrypt(mserver , skatt ) in c pencrypt(ksession , pkspam ) . c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )

| (new skspam ) c pk (skspam ) . c(m) . let k = pdecrypt(m, skspam )


in c sencrypt(M, k )

| (new ksession ) c(pkspam ) . c pencrypt(ksession , pkspam ) . c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) c(mserver ) . let ksession = pdecrypt(mserver , skatt ) in c pencrypt(ksession , pkspam ) . c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )
REACT

| c(m) . let k = pdecrypt(m, skspam ) in c sencrypt(M, k ) | c pencrypt(ksession , pkatt ) . c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) c(mserver ) . let ksession = pdecrypt(mserver , skatt ) in c pencrypt(ksession , pkspam ) . c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )
REACT

| c(m) . let k = pdecrypt(m, skspam ) in c sencrypt(M, k ) | c pencrypt(ksession , pkatt ) . c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) c pencrypt(ksession , pkspam ) . c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )
REACT

| c(m) . let k = pdecrypt(m, skspam ) in c sencrypt(M, k ) | c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) c(Mencrypted ) .
let M = sdecrypt(Mencrypted , ksession ) in Q(M )
REACT

| c sencrypt(M, ksession ) | c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) Q(M ) | c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M )
Il est en rsulte que
REACT

5.2. Reprsentation de l'attaque contre Waledac

53

Attack Q(M ) | c(Ms ) . let M = sdecrypt(Ms , ksession ) in F (M ) Q(M ) est un processus quelconque de l'attaquant, le processus Attacker peut donc toujours distingue P (M ) et P (N ) (ex. Q(M ) c M ). De plus, le protocole vise protger le message M (ou N ). C'est--dire, l'attaquant peut casser le secret du protocole.

Conclusion et perspective
Sommaire
6.1 6.2 6.3 6.4 Contribution Limite . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 56 57 57 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Perspective Conclusion

Chapitre 6

6.1

Contribution

Les contributions du stage sont rappeles : les travaux raliss pendant la priode de stage se concentrent sur l'attaque contre des protocoles cryptographiques utiliss par des botnets. Dans la section 3.6.3, nous proposons un nouveau "framework" servant construire une attaque gnrique contre les botnets. Une telle attaque casse la scurit des protocoles de communication des botnet, donc peut tre utilise comme une base sur laquelle les attaques successives peuvent se droulent. Dans la section 4.4.1, nous proposons une nouvelle ide de la modlisation de l'attaque en spicalcul. L'attaque est reprsente comme un processus qui se fonctionne paralllement au protocole, et essaie rvler des informations que le protocole protge. Cette modlisation nous permet de mettre en application une attaque formelle car la reprsentation en spi calcul d'un processus est proche de sa reprsentation en un langage de programmation. Dans le chapitre 5, nous donnons des analyses dtaills pour la mise en place du framework. D'une part, nous expliquons la ncessit d'utilisation des mthodes formelles permettant de vrier automatiquement les protocoles cryptographiques. Nous transformons donc un problme rel des botnets en un problme assez formel pour proter les mthodes thoriques existantes. D'autre part, nous dcrivons clairement quelle mthode approprie utiliser dans chaque tape du framework et proposons une solution ralisable du framework en se basant sur un outil de vrication automatique, ProVerif. Nous appliquons ces mthodes dans un cas particulier du botnet Waledac. Dans la section 5.2, nous prsentons une reprsentation du protocole de communication utilis par le botnet en spi calcul. Puis, nous utilison ProVerif pour vrier cette reprsentation1 . L'attaque contre Waledac est modlise par un processus en spi
1

Le script de ProVerif est dcrit dans l'annexe A

56

Chapitre 6. Conclusion et perspective

calcul, et nous dcrivons une dmonstration formelle qu'elle casse la condentialit du protocole. Notre framework ne se limite pas aux tels protocoles errons comme ceux de Waledac. Il est capable de dtecter des vulnrabilits (de protocole cryptographique) de n'importe quel botnet. Finalement, nous implementons un simulateur2 de Waledac en C++. Ce simulateur nous permet de visualiser le fonctionnement du botnet.
6.2 Limite

La premire limite, il est bien entendu que notre framework n'est pas encore implmnt comme un systme informatique. Ainsi nous ne pouvons que prvoir qu'il est feasible. Nous ne pouvons pas parler des dicults reles de la ralisation du framework. Notre approche rencontre aussi des limit thorique. La premire limite concerne la version de calcul (ou spi calcul) utilise : c'est une version monoadic dans laquelle nous ignorons la structure de tous les messages. En fait, cette simplication peut entraner des erreurs. Pour illustrer cette situation, nous dcrivons ici un exemple assez thorique3 :
6 mmmm S m m mmm mmm mmmmmmmm m m m m{ m A,B,I m A ,{IB }kSB }kSA vmm
A,B mmmm {IB }kSB

/B

Fig.

6.1: Variant du protocole Needham-Schroeder

Le variant du protocole d'authentication de NeedhamSchroeder[Needham 1978] illustr ci-dessus est prsent dans [Abadi 1999, p.5], nous ne faisons attention que aux trois premires messages : Message 1. A S : Message 2. S A : Message 3. A B :

{A, B } {A, B, IA , {IB }kSB }kSA {IB }kSB

A envoie son identit et l'identit de l'interlocuteur B au serveur S . Puis, le serveur renvoie A des informations condentielles IA et IB qui sont chires avec les cls partages kSB et kSA . A reoit le message {A, B, IA , {IB }kSB }kSA , il le dchire en utilisant la cl kSA et fait suivre le donne {IB }kSB B . Dans le cas spcial : A et B sont une mme personne, s'appelle X : lorsque X reoit le message {IX }kSX mais X ignore la structure du message, il croit que le message reu
Ce simulateur peut tre consulte dans l'annexe D Ce n'est pas tout fait un exemple qui concerne directement l'attaque, cependant il est un avertissement de mauvais utilisation si la structure de message est ignore
3 2

6.3. Perspective

57

est {X, X, IX , {IX }kSX }kSX et alors il le dchire en utilisant la cl kSX , puis fait suivre une partie du message dchir. Dans ce cas l, X a rvl une information condentielle. Une autre limite thorique rside l'algorithme de rsolution de ProVerif : dans le cas gnral, cet algorithme ne s'arrte pas[Blanchet 2001, p.9]. Nous remarquons que la vrication du protocole, dans le cas gnral, est aussi un problme NPcomplet[Rusinowitch 2001]. Nous ne pouvons pas encore rsoudre compltement le problme de la reconstruction d'attaque en spi calul. En thorique, cette reconstruction peut tre obtenue par la trace de l'alogrithme de rsolution en clauses de Horn. Cependant, l'outil utilis, ProVerif, ne peut pas donner une reprsentation de l'attaque en spi calul.
6.3 Perspective

Une solution plus complte peut tre obtenue en utilisant la version polyadic du pi calcul[Milner 1991]. L'extension cryptographique de pi calcul polyadic a t propose par M. Abadi et B. Blanchet[Abadi 1999, Abadi 2005]. Dans notre approche, la reconstruction d'attaque se base sur une transformation de spi calcul aux clauses de Horn. Nous souhaitons donc avoir une methode qui permet de reconstruire directement l'attaque en spi calcul. Le bi-graph est une nouvelle mthode cre par R. Milner[Milner 2001]. Il permet aussi de modliser les processus concurents de faon plus forte que pi calcul, sa extension cryptographique donc est une approche potentielle pour l'analyse automatique des protocoles cryptographiques.
6.4 Conclusion

De nos jours, les botnets deviennent de plus en plus compliqus. Pour les liminer, il est ncessaire de coordonner plusieurs mthodes. Il existe des mthodes qui sont considres comme "thoriques". Cependant, ces mthodes nous permettent de rsoudre le problme de faon plus radicale. Dans ce stage, nous avons prouv que il est possible d'appliquer les mthodes thoriques pour proposer un framework gnrique d'attaque des botnets. Notre approche vise exploiter des vulnrabilts des protocoles de communication des botnet, particulirement les protocoles cryptographiques.

ProVerif
Sommaire
A.1 A.2 ProVerif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modlisation du protocole de Waledac . . . . . . . . . . . . . 59 59

Annexe A

A.1

ProVerif

ProVerif[Blanchet 2005] est un vricateur automatique de protocoles dvelopp par B. Blanchet et X. Allamigeon. ProVerif permet de vrier un protocole qui s'crit en spi calcul ou en clauses de Horn. Dans le cas gnral, le vricateur est proximatif[Blanchet 2001, p.2], c'est--dire s'il dit qu'il existe de vulnrabilit, c'est peut-tre une alerte fausse. Cependant, s'il dit qu'il n'existe pas de vulnrabilit, le protocole est scuris.
A.2 Modlisation du protocole de Waledac

Nous implmentons ici le protocole de communication du botnet Waledac en utilisant langage ddi de ProVerif.

(* TA Thanh Dinh (Ralis au LHS - LORIA - Nancy) Protocole du botnet Waledac Spammeur -> Serveur : pkSpam Serveur -> Spammeur : {sskServer}pkSpam *) (* Paramtres *) param attacker = active. param reconstructTrace = true. param traceDisplay = short. (* Chiffrement asymtrique *) fun pencrypt/2. fun pk/1.

60
reduc pdecrypt(pencrypt(m,k), pk(k)) = k. (* Chiffrement symtrique *) fun sencrypt/2. reduc sdecrypt(sencrypt(x,y),y) = x. (* Environnement *) free c. (* Cl de session *) private free s. (* Attaquant *) query attacker:s. (* Processus *) let spam = new skSpam; let pkSpam = pk(skSpam) in out(c, pkSpam). let server = in(c, x); let npk = x in out(c, sencrypt(s, npk)). process spam | server

Annexe A. ProVerif

Le protocole est modlis par spi calcul. Nous dnissons tout d'abord des primitives cryptographiques :

(* Chiffrement asymtrique *) fun pencrypt/2. fun pk/1. reduc pdecrypt(pencrypt(m,k), pk(k)) = k. (* Chiffrement symtrique *) fun sencrypt/2. reduc sdecrypt(sencrypt(x,y),y) = x.
Le canal publique sur lequel les messages sont changs est modlis par une variable :

(* Environnement *) free c.
La cl de session gnere par le serveur est modlise par une variable prive :

A.2. Modlisation du protocole de Waledac


(* Cl de session *) private free s.
Nous voulons vrier si l'attaquant est capable d'obtenir cette cl :

61

(* Attaquant *) query attacker:s.


Nous excutons le code par l'outil ProVerif :

./proverif -color -in pi piwaledac


Et nous recevons le rsultat :

Process: ( new skSpam_10; {4}let pkSpam_11 = pk(skSpam_10) in {5}out(c, pkSpam_11); 0 ) | ( {1}in(c, x_8); {2}let npk_9 = x_8 in {3}out(c, sencrypt(s,npk_9)); 0 ) -- Query not attacker:s[] Completing... Starting query not attacker:s[] goal reachable: attacker:s[] 1. The attacker has some term y_40. attacker:y_40. 2. The message y_40 that the attacker may have by 1 may be received at input {1}. So the message sencrypt(s[],y_40) may be sent to the attacker at output {3}. attacker:sencrypt(s[],y_40). 3. By 2, the attacker may know sencrypt(s[],y_40). By 1, the attacker may know y_40. Using the function sdecrypt the attacker may obtain s[]. attacker:s[]. A more detailed output of the traces is available with param traceDisplay = long.

62
out(c, pk(skSpam_10_2)) at {5} in(c, a_1) at {1} out(c, sencrypt(s,a_1)) at {3} The attacker has the message s. A trace has been found. RESULT not attacker:s[] is false.

Annexe A. ProVerif

ProVerif nous informe que le protocole entr n'est pas scuris :

The attacker has the message s. A trace has been found. RESULT not attacker:s[] is false.
Le prdicat attacker(s) est f alse, c'est--dire, l'attaquant est capable de savoir la cl de session s. De plus, ProVerif trouve un attaque, il nous dit A trace has been found. Nous remarquons que si l'attaquant est passive, c'est--dire s'il ne peut que lire des messages circulant, le protocole est scuris. En eet, nous changons le paramtre :

param attacker = active.


Et nous recevons le rsultat suivant :

Process: ( new skSpam_10; {4}let pkSpam_11 = pk(skSpam_10) in {5}out(c, pkSpam_11); 0 ) | ( {1}in(c, x_8); {2}let npk_9 = x_8 in {3}out(c, sencrypt(s,npk_9)); 0 ) -- Query not attacker:s[] nounif mess:c[],x_27/-5000 Completing... Starting query not attacker:s[] goal reachable: mess:c[],y_36 & attacker:y_36 -> attacker:s[]

A.2. Modlisation du protocole de Waledac


1. We assume as hypothesis that attacker:y_41. 2. The attacker initially knows c[]. attacker:c[]. 3. We assume as hypothesis that mess:c[],y_41.

63

4. The message y_41 that may be sent on channel c[] by 3 may be received at input {1}. So the message sencrypt(s[],y_41) may be sent on channel c[] at output {3}. mess:c[],sencrypt(s[],y_41).

5. By 2, the attacker may have the channel c[]. By 4, the message sencrypt(s[],y_41) may be sent on this channel. So the attacker may obtain the message sencrypt(s[],y_41) by listening on this channel. attacker:sencrypt(s[],y_41). 6. By 5, the attacker may know sencrypt(s[],y_41). By 1, the attacker may know y_41. Using the function sdecrypt the attacker may obtain s[]. attacker:s[]. Could not find a trace corresponding to this derivation. RESULT not attacker:s[] cannot be proved.
Il nous dit qu'il n'est pas possible de dterminer si l'attaquant peut obtenir la cl de session :

RESULT not attacker:s[] cannot be proved.


Ainsi, il ne peut pas trouver d'attaque en disant : Could not nd a trace corresponding to this derivation.

Annexe B

Algbre de processus
Sommaire
B.1 B.2 B.3 Processus Squentiels Communicants LOTOS . . . . . . . . . . . . . 65 65 66 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pi-calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Se situant dans le monde des algbres de processus, il existe de nombreuses approches ayant pour but de modliser et de vrier des protocoles cryptographiques. Nous considerons dans cette annexe quelques mthodes existantes.

B.1

Processus Squentiels Communicants

Le processus squentiels communicants CSP1 est un algbre de processus, propos la premire fois par C. A. R Hoare[Hoare 1978]. En CSP, le processus est caractris par une trace (une suite d'activits)[Hoare 1985, p.19]2 . Cette trace est une abstraction mathmatique des interactions entre ce processus et l'environement dans lequel il se fonctionne. Le CSP permet aussi de modliser des interactions entre des processus en utilisant l'change de messages sur des canaux[Hoare 1985, p.113]. Le CSP est utilis pour modliser et vrier des protocoles cryptographiques par de nombreux chercheurs, ex[Schneider 1998]. Une explanation plus complte de la modlisation et d la vrication des protocoles cryptographiques peut tre consulte dans[Ryan 2001].

B.2

LOTOS

Le LOTOS [Bolognesi 1987]3 est un langage d'algbre des processus. Il permet de spcier l'architecture et le fonctionnement de systmes distribus[Fraikin 2001, p.1]. Le langage LOTOS peut tre utilis pour modliser les protocoles de scurit et les oprations cryptographiques[Germeau 1997].
Communicating Sequential Processes Pour le cas gnral, le processus n'est pas tout fait une suite d'activits dterministes, le CSP permet de modliser un processus par une notion indterministe de trace[Hoare 1985, p.81] 3 Language of Temporal Ordering Specication
2 1

66
B.3 Pi-calcul

Annexe B. Algbre de processus

L'algbre de processus calcul est propos la premire fois en 1993 par Robin Milner[Milner 1999], est un langage de programation simple mais trs exible. Le -calcul spcie le comportement de processus concurrents, et il joue le rle de la fondation de la programmation concurente au mme titre que le -calcul en programmation squentielle. Un programme en calcul est un systme dont les processus se fonctionnent paralllement en changeant entre eux des messages via des canaux, un processus possde d'ensemble propre des canaux sur lesquels il peut envoyer ou recevoir des messages[Abadi 1998]. La version originale du calcul ne possde pas des oprations cryptographiques. Cependant, le calcul est trs exible et il permet donc toujours d'y ajouter des notations modlisant les protocoles cryptographiques. En 1998, M. Abadi et C. Fournet ont tendu la premire fois le calcul en proposant le spi-calcul [Abadi 1998]. En 2001, ils ont gnralis le spi calcul en dnissant le calcul appliqu [Abadi 2001], leur nouveau modle permet de reprsenter les proprits des primitives cryptographiques (cf. 4.2.1) par des thories quationnelles[Baeten 2009, p.11].

Annexe C

Modles des protocoles cryptographiques

Sommaire
C.1 C.2 Modle symbolique Modle calculatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 68

Jusqu' maintenant, les mthodes formelles de l'analyse des protocoles cryptographiques peuvent tre classies en deux approches. La premire approche repose sur une modlisation symbolique (ou modle de Dolev-Yao) des excution du protocole, les primitives cryptographiques dans cette modlisation sont considres comme des boites noires. La deuxime approche repose sur un modle calculatoire qui prend en considration les probabilites et la complexit algorithmique. Le modle symbolique prsente l'avantage de permettre des preuves de scurit beaucoup plus simples que dans le modle calculatoire et souvent automatique. Cependant le modle calculatoire permet de dnir une notion trs forte de scurit, garantissant n'importe quelles attaques probabilistics et polynomiales[Cortier 2009, p.9].

C.1

Modle symbolique

Le modle symbolique1 a t propos la premire fois par D. Dolev et A. Yao[Dolev 1983]. Ce modle traite les primitives cryptographiques comme des boites noires, les messages sont des termes sur les fonctions cryptographiques et l'attaquant est restreint calculer l'aide de ces fonctions. Le modle symbolique propose donc la cryptographique parfaite dans laquelle l'adversaire sais la texte clair dans le message chir si et seulement s'il possde la cl[Blanchet 2008, p.6]. Pour illustrer l'approche symbolique, on montre un exemple simple d'un protocole cryptographique donn dans [Blanchet 2008, p.3]. Le protocole est un variant simple du protocole de distribution de cls de Denning-Sacco cl publique[Denning 1981]. Dans ce protocole, les fonctions cryptographiques asym1

Appel aussi modle de Dolev-Yao

68

Annexe C. Modles des protocoles cryptographiques

triques sont dnies comme le suivant :

pencrypt(plain, pkey ) : plain pkey cipher pdecrypt(cipher, skey ) : cipher skey plain sign(plain, skey ) : plain skey signature sencrypt(plain, key ) : plain key cipher
Le protocole se compose de deux participants A et B . Le participant A choisit une cl frache (cl de session) k chaque excution du protocole. Il signe cette cl avec sa cl secrte skA , et chire le message obtenu avec la cl publique de don interlocuteur B , et lui envoie le message. Quand il le reoit, B le dchire en utilisant sa cl secrte skB , vrie la signature de A et obtient la cl k .
{{k}skA }pkB

A
o
Fig.

sk

C.1: Variant simple du protocole de Denning-Sacco

En utilisant les fonctions cryptographiques dnies ci-dessus, on peut reprsenter le protocole par les quations suivantes :

A B : pencrypt(sign(k, skA ), pkB ) B A : sencrypt(s, k )


C.2 Modle calculatoire

Le modle calculatoire est dvlopp au dbut des annes 1980 par Goldwasser, Micali[Goldwasser 1984]. Il permet de raisonner sur des questions de complexit et de probabilit, car les primitives cryptographiques sont considres comme des vrais algorithmes et l'intrus y est modlis comme un algorithme qui peut s'excute ecacement[Hrdegen 2007, p.10].

Simulateur du botnet Waledac


D.1 Conception du simulateur

Annexe D

TM Linux

An de visualiser des activits du botnet Waledac, nous avons dvelopp sur deux version du simulateur en C++. L'une utilise un thread pour chaque bot du botnet et l'autre sans. Dans le premier cas cela permet le calcul en parallle, rendant la simulation plus proche de la ralit, chaque bot fonctionnant de manire indpendante, dans le deuxime cas, les actions des bots sont eectues squentiellement, le ou les actions du bot numerot 2 sont eectues aprs le ou les actions du bot 2, ce qui est moins raliste. Cette deuxime version est utile cependant lorque nous souhaitons lancer la simulation sur un seul processeurs, puisqu'elle ncessite moins de ressources1 . Le simulateur est implmnt de faon orient objet. Il se compose de classes dcrits ci-dessous Classe Bot : Tout les bots de Waledac (spammers, repeaters, attackers, protecters, server) drivent de cette classe. Classe Spammer : Cette classe implmente les fonctionnalites d'un bot de type spammeur. Classe Repeater : Cette classe implmente les fonctionnalites d'un bot de type repeateur. Classe Attacker : Cette classe implmnte les fonctionnalites d'un bot de type attaquant. Elle drive de la classe Repeater (la plupart des attaques sur Waledac se font en introduisant des rpteurs). Classe Protecter Cette classe implmente les fonctionnalites d'un bot de type protecteur. ServerCC : Cette classe implmente les fonctionnalites d'un bot de type serveur de contrle. Nous utilisons galement des bibliothques Boost[Boost 2010], Qt[Nokia 2010] et VTK[VTK 2010] (avec support Qt). La communication simple entre des bots est implmente par un routage de messages dcrit par le gure D.1. Les bots utilisant la mthode send_message() pour envoyer un type particulire de message. Les rpteurs et les protecteurs ne retransmettent que des messages en utilisant aussi la mthode send_message(). Le serveur manipule ces messages par la mthode process_message().

1 nous conomisons le changement de contexte eectu par le systme d'exploitation lorqu'il bascule d'un thread l'autre

70

Annexe D. Simulateur du botnet Waledac

Le rsultat de chaque mthode est un code reprsentant l'ordre du serveur de contrle.

Fig.

D.1: Routage de messages

D.2

Exprimentation

Le programme a des paramtres entrs. Par dfaut, le simulateur du botnet se compose de 20 rpeateurs, 15 protecteurs, 100 spammeurs, et 5 attackers (cf. D.2).

Fig.

D.2: Paramtres par dfaut

L'architecture hirarchique de Waledac est visualise dans la gure D.3. La couche plus haute se compose d'un seul serveur de contrle. La couche plus base se compose de plusieurs spammeurs. Les activits de Waledac sont simules par le programme. Le simulateur commence avec plusieurs spammeurs : ces spammeurs sont reprsents par les noeuds rouges, les connections entre les spammeurs sont reprsentes aussi par les lignes rouges, gure D.4. Nous simulons l'attaque Sybil en ajoutant des faux-rpteurs. Lorque la liste de rpteurs d'un spammeur est remplie par les identits de faux-rpteurs, nous disons que ce rpteur est compromis, et nous le mettons en vert, gure D.5.

D.2. Exprimentation

71

Fig.

D.3: Simulateur de Waledac

Fig.

D.4: Le dbut du simulateur

Fig.

D.5: Tous les spammeurs sont compromis

Bibliographie
[Abadi 1998] M. Abadi et A.D. Gordon. A calculus for cryptographic protocols : The spi calculus. Rapport technique SRC-149, Digital Equipment Corporation, System Research Center, Janvier 1998. http://www.hpl.hp.com/ techreports/Compaq-DEC/SRC-RR-149.pdf. 38, 47, 48, 66 [Abadi 1999] M. Abadi. Secrecy by typing in security protocols. Journal of the ACM (JACM), vol. 46, no. 5, pages 749786, 1999. 56, 57 [Abadi 2000] M. Abadi. Security protocols and their properties. NATO ASI SERIES F COMPUTER AND SYSTEMS SCIENCES, vol. 175, pages 3960, 2000. 44, 47 [Abadi 2001] M. Abadi et C. Fournet. Mobile values, new names, and secure communication. ACM SIGPLAN Notices, vol. 36, no. 3, page 115, 2001. 32, 66 [Abadi 2005] M. Abadi et B. Blanchet. Analyzing security protocols with secrecy types and logic programs. Journal of the ACM (JACM), vol. 52, no. 1, page 146, 2005. 44, 47, 57 [Allamigeon 2005] X. Allamigeon et B. Blanchet. Reconstruction of attacks against cryptographic protocols. In 18th IEEE Workshop Computer Security Foundations, 2005. CSFW-18 2005, pages 140154, 2005. 40, 47 [atrocity 2010] atrocity. Les botnets - Comment s'en protger ?, Mercredi 2010. http://atrocity.kazeo.com/Tutoriels-DDoS/ Les-botnets-Comment-s-en-proteger,a1883506.html. ix, 5 [Bacher 2005] P. Bacher, T. Holz, M. Kotter et G. Wicherski. Know your enemy : Tracking botnets. The Honeynet Project, 2005. http://www.honeynet.org/ papers/bots/. 19 [Baeten 2009] JCM Baeten, T. Basten et MA Reniers. Process algebra : Equational theories of communicating processes. Cambridge University Press New York, NY, USA, 2009. 33, 66 [Barthlemy 2005] P. Barthlemy, R. Rolland et P. Vron. Cryptographie : Principes et mises en oeuvre. Hermes Science Publications, 2005. 16 [Blanchet 2001] B. Blanchet et I. Rocquencourt. An ecient cryptographic protocol verier based on Prolog rules. In 14th IEEE Computer Security Foundations Workshop, 2001. Proceedings, pages 8296, 2001. 32, 40, 41, 42, 57, 59 [Blanchet 2005] B. Blanchet. ProVerif automatic cryptographic protocol verier user manual. CNRS, Dpartement dInformatique, Ecole Normale Suprieure, Paris, 2005. 40, 47, 48, 59 [Blanchet 2008] B. Blanchet. Vrication automatique de protocoles cryptographiques : modle formel et modle calculatoire. Habilitation Diriger des

74

Bibliographie
Recherches. PhD thesis, Ecole Normale Suprieure, Novembre 2008. 27, 28, 38, 39, 48, 67

[Bolognesi 1987] T. Bolognesi et E. Brinksma. Introduction to the ISO specication language LOTOS. Computer Networks and ISDN systems, vol. 14, no. 1, pages 2559, 1987. 65 [Boneh 1999] D. Boneh. Twenty years of attacks on the RSA cryptosystem. NoticesAmerican Mathematical Society, vol. 46, pages 203213, 1999. 30 [Boost 2010] Boost. Boost C++ Libraries, 2010. http://www.boost.org/. 69 [Botezatu 2008] B. Botezatu. Anatomy of a Botnet, 2008. http://www. malwarecity.com/blog/anatomy-of-a-botnet-196.html. ix, 4, 5 [Burrows 1990] M. Burrows, M. Abadi et R. Needham. A Logic of authentication. Rapport technique, Digital Systems Research Center, Fvrier 1990. http: //www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-39.pdf. 30 [Calvet 2009a] J. Calvet et P. M. Bureau. Analyse en profondeur de Waledac et de son rseau. MISC, vol. 45, Septembre 2009. 9, 12, 14, 18, 23 [Calvet 2009b] J. Calvet et P. M. Bureau. Malware Authors Don't Learn, and That's Good ! Proceedings of the 4th International Conference on Malicious and Unwanted Software, Octobre 2009. 9 [Cervesato 1999] I. Cervesato, N.A. Durgin, P.D. Lincoln, J.C. Mitchell et A. Scedrov. A meta-notation for protocol analysis. In Proceedings of the 12th IEEE Computer Security Foundations WorkshopCSFW, volume 99, pages 5569, 1999. 32 [CGI 2002] CGI. tude technique. Cryptographie cl publique et signature numrique. Principes de fonctionnement, 2002. www.cgi.com/cgi/pdf/cgi_ whpr_35_pki_f.pdf. 30 [Chiang 2007] K. Chiang et L. Lloyd. A case study of the Rustock rootkit and spam bot. In The First Workshop in Understanding Botnets, 2007. 20 [Comon 2002] H. Comon et V. Shmatikov. Is it possible to decide whether a cryptographic protocol is secure or not. Journal of Telecommunications and Information Technology, vol. 4, no. 2002, pages 515, 2002. 21 [Cortier 2003] V. Cortier. Vrication automatique des protocoles cryptographiques. PhD thesis, Ecole Normale Suprieure de Cachan, Mars 2003. 32 [Cortier 2005] V. Cortier. Vrier les protocoles cryptographiques. Technique et Science Informatique, vol. 24, pages 115140, 2005. 28, 29, 32 [Cortier 2009] V. Cortier. Analyse des protocoles cryptographiques : des modles symboliques aux modles calculatoire. Habilitation Diriger des Recherches, Novembre 2009. 27, 40, 41, 42, 44, 67 [Daemen 1999] J. Daemen et V. Rijmen. AES proposal : Rijndael. 1999. 15 [DeMillo 1982] R.A. DeMillo, N.A. Lynch et M.J. Merritt. Cryptographic protocols. In Proceedings of the fourteenth annual ACM symposium on Theory of computing, pages 383400. ACM, 1982. 28

Bibliographie

75

[Denning 1981] D.E. Denning et G.M. Sacco. Timestamps in key distribution protocols. Communications of the ACM, vol. 24, no. 8, pages 533536, 1981. 21, 27, 42, 67 [Desnos 2009] A. Desnos. vol. 46, 2009. 20

Implmentation de virus K-aires en Python. MISC,

[Dolev 1983] D. Dolev et A. Yao. On the security of public key protocols. IEEE Transactions on information theory, vol. 29, no. 2, pages 198208, 1983. 40, 42, 67 [Douceur 2002] J. Douceur. The Sybil attack. Peer-to-Peer Systems, pages 251260, 2002. 18 [Ducrot 2007] F. Ducrot, M. Danho et X. Marronnier. Les botnets. Scurit Informatique, vol. 61, Octobre 2007. 3 [EFnet 2010] EFnet. Eris Free Network, Octobre 2010. http://www.efnet.org/. 3 [Eggdrop 2008] Eggdrop. Eggdrop, Avril 2008. http://www.eggdrop.fr. 3 [EggHeads 2008] EggHeads. A quoi sert un robot IRC, Avril 2008. http://www. eggdrop.fr/Introduction_aux_eggdrops. 3 [ENS 2004] ENS. Conception et preuves d'algorithmes cryptographiques, 2004. http://www.di.ens.fr/~wwwgrecc/Enseignement/CoursCryptoMMFAI. pdf. 30 [Fabrega 1999] F.J.T. Fabrega, J.C. Herzog et J.D. Guttman. Strand spaces : Proving security protocols correct. Journal of computer security, vol. 7, no. 2, pages 191230, 1999. 32 [Fielding 1999] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach et T. Berners-Lee. Hypertext Transfer Protocol  HTTP/1.1. RFC 2616 (Draft Standard), Juin 1999. Updated by RFCs 2817, 5785. 11 [Filiol 2004] E. Filiol. Strong Cryptography Armoured Computer Viruses Forbidding Code Analysis : the Bradley virus. Rapport technique RR-5250, INRIA, 2004. 20 [Fortier 2005] H. Fortier. La scurit par l'obsecurit : un concept dangereux, Septembre 2005. 22 [Fraikin 2001] B. Fraikin et Tchoumtchoua J. Prsentation de la bote outils CADP : Application au protocole POTS, 2001. ftp://ftp.inrialpes.fr/ pub/vasy/publications/others/Fraikin-Tchoumtchoua-01.pdf. 65 [Garavel 2003] H. Garavel. Dfense et illustration des algebres de processus. Actes de l'Ecole d't Temps Rel, vol. 2003, 2003. 33 [Garey 1979] M.R. Garey et D.S. Johnson. Computers and intractability. a guide to the theory of np-completeness. a series of books in the mathematical sciences. W. H. Freeman and Company, San Francisco, Calif, 1979. 20 [Germeau 1997] F. Germeau et G. Leduc. Model-based design and verication of security protocols using LOTOS. Rutgers University, 1997. 65

76

Bibliographie

[Goldwasser 1984] S. Goldwasser et S. Micali. Probabilistic encryption. Journal of computer and system sciences, vol. 28, no. 2, pages 270299, 1984. 68 [Hoare 1978] C.A.R. Hoare. Communicating sequential processes. Communications of the ACM, vol. 21, no. 8, page 677, 1978. 65 [Hoare 1985] C.A.R. Hoare. Communicating sequential processes. Prentice Hall, 1985. http://www.usingcsp.com/cspbook.pdf. 65 [Holz 2008] T. Holz. Other Aspects of Storm Worm, 2008. 20 [Honeynet 2010] Honeynet. The Honeynet Project, 2010. 19 [Hund 2008] R. Hund, M. Hamann et T. Holz. Towards Next-Generation Botnets. In European Conference on Computer Network Defense, 2008. EC2ND 2008, pages 3340, 2008. 20 [Hrdegen 2007] Heinrich Hrdegen. Vrication des protocoles cryptographiques : Comparaison des modles symboliques avec une application des rsultats  Etude des protocoles rcursifs. PhD thesis, Universit Henri Poincar - Nancy I, Novembre 2007. 68 [InfectionVectors 2004] InfectionVectors. Agobot and the Kit-chen Sink, Juillet 2004. 4 [INRIA 2010] INRIA. Le langage Caml, 2010. http://caml.inria.fr/. 32 [Keizer 2009] G. Keizer. Concker cashes in, installs spam bots and scareware, 2009. http://www.computerworld.com/s/article/9131380/Conficker_ cashes_in_installs_spam_bots_and_scareware. 10 [Krawczyk 1997] H. Krawczyk, M. Bellare et R. Canetti. HMAC : Keyed-Hashing for Message Authentication. RFC 2104 (Informational), Fvrier 1997. 30 [Lions 1996] J. L. Lions. Ariane 5 : Flight 501 Failure Report. By the Inquiry Board. Rapport technique, European Space Agency (ESA) et Centre National d'Etudes Spatiales (CNES), 1996. http://sunnyday.mit.edu/accidents/ Ariane5accidentreport.html. 26 [Mao 2003] W. Mao. Modern cryptography : theory and practice. Prentice Hall Professional Technical Reference, 2003. 15, 20, 27 [Menezes 1997] A.J. Menezes, P.C. Van Oorschot et S.A. Vanstone. Handbook of applied cryptography. CRC, 1997. 15, 16, 29 [Millen 2001] J. Millen et V. Shmatikov. Constraint solving for bounded-process cryptographic protocol analysis. In Proceedings of the 8th ACM Conference on Computer and Communications Security, page 175. ACM, 2001. 32 [Milner 1991] R. Milner. The polyadic -calculus : a tutorial. Logic and Algebra of Specication, vol. 94, pages 91180, 1991. 57 [Milner 1999] R. Milner. Communicating and mobile systems : the -calculus. Cambridge University Press, 1999. 35, 37, 38, 47, 66 [Milner 2001] R. Milner. Bigraphical reactive system : basic theory. Rapport technique 523, University of Cambridge, Computer Laboratory, 2001. 57

Bibliographie

77

[Monniaux 2009] D. Monniaux. Analyse statique : de la thorie la pratique. Habilitation Diriger des Recherches. PhD thesis, Universit Joseph-Fourier Grenoble I, Juin 2009. 26 [Nachreiner 2008] C. Nachreiner et S. Pinzon. Understanding and Blocking the New Botnets, Avril 2008. http://www.watchguard.com/docs/whitepaper/wg_ botnet_wp.pdf. 3 [Naoufel 2002] C. Naoufel. Conception, modlisation et simulation de systmes de production. Notes de cours, 2002. http://lgpp.epfl.ch/webdav/site/ lgpp/shared/Cours/MOSISP/MOSISP-Chap4.pdf. 33 [Needham 1978] R.M. Needham et M.D. Schroeder. Using encryption for authentication in large networks of computers. Communications of the ACM, vol. 21, no. 12, page 999, 1978. 20, 56 [NIST 1999] NIST. Data Encryption Standard. Rapport technique, National Institute of Standards and Technology, Octobre 1999. 15 [NIST 2001] NIST. Advanced Encryption Standard, Novembre 2001. 12, 15 [NIST 2007] NIST. Recommendation for Key Management - Part 1 : General. Rapport technique, National Institute of Standards and Technology, Mars 2007. 15, 30 [Nokia 2010] Nokia. Qt, 2010. http://qt.nokia.com/. 69 [Oikarinen 1993] J. Oikarinen et D. Reed. Internet Relay Chat Protocol. RFC 1459 (Experimental), Mai 1993. Updated by RFCs 2810, 2811, 2812, 2813. 3 [O'Neil 2010] S. O'Neil. Skype's Biggest Secret Revealed, 2010. http://www. enrupt.com/index.php/2010/07/07/skype-biggest-secret-revealed. 23 [OpenSSL 2010] OpenSSL. Cryptography and SSL/TLS Toolkit, Janvier 2010. http://www.openssl.org/. 12 [Postel 1981] J. Postel. Transmission Control Protocol. RFC 793 (Standard), Septembre 1981. Updated by RFCs 1122, 3168. 36 [Poulsen 2004] K. Poulsen. FBI busts alleged DDoS Maa, 2004. http://www. securityfocus.com/news/9411. 6 [Rivest 1978] R.L. Rivest, A. Shamir et L. Adleman. A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, vol. 21, no. 2, page 126, 1978. 12, 15 [Rivest 1992] R.L. Rivest. The RC4 Encryption Algorithm. Inc., March, vol. 12, 1992. 20 [Rusinowitch 2001] M. Rusinowitch et M. Turuani. Protocol insecurity with nite number of sessions is NP-complete. In 14th IEEE Computer Security Foundations Workshop, 2001. Proceedings, pages 174187, 2001. 57 [Ryan 2001] P. Ryan et S.A. Schneider. The modelling and analysis of security protocols : the csp approach. Addison-Wesley Professional, 2001. 65

78

Bibliographie

[Salman 2010] A. B. Salman. Know something interesting about Skype ?, 2010. http://www1.cs.columbia.edu/~salman/skype/. 23 [Sarat 2008] S. Sarat et A. Terzis. Measuring the storm worm network, 2008. http: //www.cs.jhu.edu/~sarat/storm.pdf. 10 [Schneider 1998] S. Schneider. Verifying authentication protocols in CSP. IEEE Transactions on Software Engineering, vol. 24, no. 9, pages 741758, 1998. 32, 65 [Schneier 2001] B. Schneier. Cryptographie applique : algorithmes, protocoles et codes source en c. Vuibert Informatique, 2001. 16 [Seward 2008] Julian Seward. bzip2 and libbzip2, 2008. http://bzip.org/. 14 [Skochinsky 2006] I. Skochinsky. Reversing Microsoft Visual C++ Part II : Classes, Methods and RTTI, 2006. http://www.openrce.org/articles/full_view/ 23. 11 [Skype 2010] Skype. Skype, 2010. http://www.skype.com/. 22 [Stamford 2002] S. Stamford, V. Paxson et N. Weaver. How to own the internet in your spare time. In Proceedings of the 11th USENIX Security Symposium, 2002. 20 [Stinson 2006] D.R. Stinson. Cryptography : theory and practice. CRC press, 2006. 16 [Stock 2009] B. Stock, J. Gobel, M. Engelberth, F.C. Freiling et T. Holz. Walowdac Analysis of a Peer-to-Peer Botnet. In European Conference on Computer Network Defense, 2009. (EC2ND) 2009, Novembre 2009. ix, 11, 12 [Symantec 2007] Symantec. PrettyPark.Worm, 2007. http://www.symantec.com/ security_response/writeup.jsp?docid=2000-121508-3334-99. 4 [Sysoev 2010] Igor Sysoev. nginx [engine x] a HTTP and reverse proxy server, Aot 2010. http://nginx.org/. 13 [TechNet 2010] TechNet. Cracking Down on Botnets, Fvrier 2010. 19 [Tenebro 2009] G. Tenebro. Waledac, Part 2 : Its Bootstraps and Armor, 2009. http://www.symantec.com/connect/fr/blogs/ waledac-part-2-its-bootstraps-and-armor. ix, 13 [Trackers 2010] Spam Trackers. Canadian Health and Care Mall, Mai 2010. http: //spamtrackers.eu/wiki/index.php/Canadian_Health%26Care_Mall. 10 [UPX 2010] UPX. Ultimate Packer for eXecutables, 2010. sourceforge.net/. 11

http://upx.

[Vogt 2007] R. Vogt, J. Aycock et M. Jacobson. Army of botnets. In Network and Distributed System Security Symposium (NDSS), 2007. 20 [VTK 2010] VTK. VTK - The Visualization Toolkit, 2010. http://www.vtk.org/. 69

Bibliographie

79

[Weidenbach 1999] C. Weidenbach. Towards an automatic analysis of security protocols in rst-order logic. Automated Deduction CADE-16, pages 7070, 1999. 41 [Wikipdia 2010] Wikipdia. Vol 501 d'Ariane 5, Juin 2010. wikipedia.org/wiki/Vol_501_d'Ariane_5. 26

http://fr.

[Wing 2002] J.M. Wing. FAQ on -Calculus. Microsoft Research, Dcembre 2002. 34 [Ylonen 2006a] T. Ylonen et C. Lonvick. The Secure Shell (SSH) Authentication Protocol. RFC 4252 (Proposed Standard), Janvier 2006. 33 [Ylonen 2006b] T. Ylonen et C. Lonvick. The Secure Shell (SSH) Protocol Architecture. RFC 4251 (Proposed Standard), Janvier 2006. 33 [Young 1996] A. Young et M. Yung. Cryptovirology : Extortion-based security threats and countermeasures. In IEEE Symposium on Security and Privacy, pages 129141, 1996. 20 [Young 2004] A. Young et M. Yung. Malicious cryptography : Exposing cryptovirology. John Wiley & Sons, 2004. 20

Index
quivalence observationnelle, 44, 48 abstraction, 33 AES, 15 algbre de processus, 32, 33 architecture pair--pair, 4 architecture traditionnelle, 4 attaque de l'homme du milieu, 17, 28 attaque par rejeu, 30 attaque Sybil, 18 autorit de certication, 28 BSoD, 26 calcul de processus, 33 certicate authority, 28 chirement parfait, 28 cl de session, 15 clause de Horn, 41 Communicating Sequential Processes, 65 comportement, 33 cryptocounter, 20 cryptographie cl publique, 30 cryptographie cl secrte, 29 cryptographie asymtrique, 30 cryptographie symtrique, 29 cryptographique parfaite, 67 cryptovirologie, 20 CSP, 65 dductible en un pas, 42 DDoS, 6 Denning-Sacco, 39, 42 discrete event system, 33 faux rpteur, 17 groupe, 34 idalisation, 33 ingnierie sociale, 10 man-in-the-middle attack, 17 modles de traces, 32 monoadic, 56 Needham-Schroeder, 20 nginx, 13 NP-complet, 20 observation, 33 pi-calcul, 35 polyadic, 57 primitive cryptographique, 27 Processus Squentiels Communicants, 65 proprit de scurit, 29 protecteurs, 13 ProVerif, 41 rlations de raction, 37 rpteurs, 12 Rambot, 20 renieur de paquets, 22 replay attack, 30 RList, 12, 14 RSA, 16 Rustock, 20 serveur de contrle, 13 signature numrique, 30 Skype, 22 spam, 6 spammeur, 12 spi-calcul, 38 SSH, 33 Storm, 10, 20 super-rpteur, 18 systme vnements discrets, 33 systme de dduction, 42

Index
TCP, 36 virus Bradley, 20 Waledac, 10 Walowdac, 11 Wide-Mouthed-Frog, 30

81

Vous aimerez peut-être aussi