modÉlisation et sÉcuritÉ des rÉseaux

115
ALEXANDRE CORMIER MOD ´ ELISATION ET S ´ ECURIT ´ E DES R ´ ESEAUX emoire pr´ esent´ e `alaFacult´ e des ´ etudes sup´ erieures de l’Universit´ e Laval dans le cadre du programme de maˆ ıtrise en informatique pour l’obtention du grade de maˆ ıtre ` es sciences (M.Sc.) FACULT ´ E DES SCIENCES ET DE G ´ ENIE UNIVERSIT ´ E LAVAL QU ´ EBEC DECEMBRE 2007 c Alexandre Cormier, 2007

Upload: others

Post on 08-Feb-2022

13 views

Category:

Documents


0 download

TRANSCRIPT

ALEXANDRE CORMIER

MODELISATION ET SECURITE DES RESEAUX

Memoire presentea la Faculte des etudes superieures de l’Universite Lavaldans le cadre du programme de maıtrise en informatiquepour l’obtention du grade de maıtre es sciences (M.Sc.)

FACULTE DES SCIENCES ET DE GENIEUNIVERSITE LAVAL

QUEBEC

DECEMBRE 2007

c©Alexandre Cormier, 2007

Resume

L’avenement d’Internet revolutionne l’acces a l’information, mais contribue egale-

ment a l’essor de nouveaux services, notamment le commerce electronique, a l’allegement

de la bureaucratie et a l’arrivee d’une multitude de e-services. Or, le developpement de

cette technologie de l’information s’est accompagne d’une panoplie de problematiques.

Parmi celles-ci, les plus inquietantes ont trait a la securite puisqu’elles mettent en peril

le bon fonctionnement de ces services.

Le present memoire approfondit ces problematiques de securite selon une approche

formelle : les algebres de processus. Dans un premier temps, le fruit de la recherche

sur les failles de securite reseau de niveau deux et trois de la couche TCP/IP et d’une

etude comparative de l’expressivite des principales algebres de processus est presente.

Dans un second temps, les caracteristiques souhaitees d’une algebre de modelisation de

reseau sont mises en exergue et sont integrees dans la syntaxe et la semantique d’une

nouvelle algebre. Finalement, une nouvelle algebre de processus pour la modelisation de

reseau, Netcal, ainsi que les principes d’un systeme de detection de failles d’architecture

et de configuration de reseau sont explicites.

Avant-propos

Je tiens a remercier toutes les personnes qui, de pres ou de loin, ont contribue

a la reussite de mon passage a la maıtrise en informatique. Je desire remercier tout

particulierement mes parents et ma soeur : leur confiance en moi et leur stimulation

sont des constantes d’une valeur inestimable. Je remercie egalement ma copine, Anne-

Margot, pour sa patience, sa comprehension, son appui et ses encouragements tout au

long de la redaction de ce memoire. Enfin, cette grande aventure n’aurait pas eu la

meme saveur sans la presence de Daniel Godbout ; grace a lui, l’etude et le travail en

laboratoire s’est avere agreable, et les discussions de securite informatique, riches et

stimulantes.

A ma chere et tendre Anne-Margot

Un monde si beau, si bon, cyber !

Table des matieres

Resume ii

Avant-propos iii

Table des matieres v

Liste des tableaux viii

Table des figures ix

Introduction 1

I Etat de l’art 4

1 Securite des reseaux d’ordinateurs 5

1.1 Couches de l’architecture TCP/IP . . . . . . . . . . . . . . . . . . . . . . 8

1.1.1 Niveau physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.2 Niveau liaison de donnees . . . . . . . . . . . . . . . . . . . . . . 8

1.1.3 Niveau reseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.4 Niveau transport . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.1.5 Niveau application . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Principales composantes reseau . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.1 Repeteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.2 Commutateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.2.3 Pont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.4 Routeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2.5 Routeur/commutateur . . . . . . . . . . . . . . . . . . . . . . . . 14

1.2.6 Securite du statut commutateur . . . . . . . . . . . . . . . . . . . 15

1.3 Protocoles de niveau 2 et leurs impacts de securite . . . . . . . . . . . . . 16

1.3.1 Address Resolution Protocol . . . . . . . . . . . . . . . . . . . . . 16

1.3.2 Spanning Tree Protocol . . . . . . . . . . . . . . . . . . . . . . . 19

1.3.3 Cisco Discovery Protocol . . . . . . . . . . . . . . . . . . . . . . . 21

Table des matieres vi

1.4 Protocoles de niveau 3 et leurs impacts de securite . . . . . . . . . . . . . 22

1.4.1 IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.4.2 Securite du protocole IPv4 . . . . . . . . . . . . . . . . . . . . . . 24

1.4.3 Internet Control Message Protocol . . . . . . . . . . . . . . . . . 24

1.4.4 Securite du protocole ICMP . . . . . . . . . . . . . . . . . . . . . 25

1.4.5 IRDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

1.4.6 Securite du protocole IRDP . . . . . . . . . . . . . . . . . . . . . 28

1.4.7 Autres protocoles de niveau 3 . . . . . . . . . . . . . . . . . . . . 28

1.5 Protocoles de niveau 5 et leurs implications de securite . . . . . . . . . . 29

1.5.1 Simple Network Management Protocol . . . . . . . . . . . . . . . 29

1.6 Synthese des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.6.1 Attaques de niveau 2 . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.6.2 Attaques de niveau 3 . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.6.3 Propriete des vulnerabilites des protocoles . . . . . . . . . . . . . 35

2 Algebres de processus 37

2.1 CCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.1.2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.1.3 Semantique operationnelle . . . . . . . . . . . . . . . . . . . . . . 42

2.1.4 Sommaire et evolution du langage . . . . . . . . . . . . . . . . . . 45

2.2 π-calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.2.2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

2.2.3 Notions de noms libres et lies . . . . . . . . . . . . . . . . . . . . 47

2.2.4 Congruence structurelle . . . . . . . . . . . . . . . . . . . . . . . 47

2.2.5 Mobilite et migration de la portee des restrictions . . . . . . . . . 49

2.2.6 Variantes du π-calcul . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.2.7 Passage d’une structure de donnees . . . . . . . . . . . . . . . . . 52

2.3 Semantiques de non-entrelacement . . . . . . . . . . . . . . . . . . . . . . 53

2.4 Calcul Ambient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.4.1 Primitive de mobilite . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.4.2 Primitives de communication . . . . . . . . . . . . . . . . . . . . 58

2.4.3 Semantique operationnelle . . . . . . . . . . . . . . . . . . . . . . 60

2.4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

II Travaux originaux 62

3 Modelisation reseau et detection de failles 63

3.1 Architecture d’un systeme de detection de failles . . . . . . . . . . . . . . 65

Table des matieres vii

3.2 Niveau d’abstraction du modele . . . . . . . . . . . . . . . . . . . . . . . 66

3.3 Etude comparative des algebres de processus dans un contexte de securite

reseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.4 Modelisation avec CCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.4.1 CCSVP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.4.2 Limites de CCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3.5 Modelisation avec π-calcul . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.5.1 Expressivite du π-calcul . . . . . . . . . . . . . . . . . . . . . . . 74

3.5.2 Limites du π-calcul . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.6 Modelisation avec π-calcul version comprenant l’egalite . . . . . . . . . . 81

3.7 Modelisation a l’aide du calcul Ambient . . . . . . . . . . . . . . . . . . . 83

3.7.1 Expressivite du calcul Ambient . . . . . . . . . . . . . . . . . . . 86

3.7.2 Discussion sur le modele . . . . . . . . . . . . . . . . . . . . . . . 92

3.7.3 Ajout au modele . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3.7.4 Limites du modele . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.7.5 Viabilite du calcul Ambient dans sa forme actuelle . . . . . . . . . 95

3.8 NetCal : Un calcul pour la modelisation d’un systeme et la detection de

failles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

3.8.1 Syntaxe et semantique . . . . . . . . . . . . . . . . . . . . . . . . 95

3.8.2 Valeur ajoutee de NetCal . . . . . . . . . . . . . . . . . . . . . . . 97

Conclusion 101

Bibliographie 104

Liste des tableaux

1.1 Contenu de la table system du MIB-2. . . . . . . . . . . . . . . . . . . . 31

1.2 Capacites acquises par les protocoles exploites. . . . . . . . . . . . . . . . 36

2.1 Syntaxe de CCS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.2 Semantique operationnelle de CCS. . . . . . . . . . . . . . . . . . . . . . 42

2.3 Syntaxe du π-calcul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.4 Semantique operationnelle du π-calcul. . . . . . . . . . . . . . . . . . . . 48

2.5 Syntaxe du calcul Ambient : primitives de mobilite. . . . . . . . . . . . . 56

2.6 Syntaxe du calcul Ambient : primitives de mobilite et de communication. 59

2.7 Regles de congruence structurelle. . . . . . . . . . . . . . . . . . . . . . . 60

2.8 Regle de reduction du calcul Ambient. . . . . . . . . . . . . . . . . . . . 60

3.1 Differentes attaques en fonction de la couche reseau. . . . . . . . . . . . . 66

3.2 Syntaxe de CCS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.3 Processus CCS de composantes reseau. . . . . . . . . . . . . . . . . . . . 70

3.4 Syntaxe du π-calcul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.5 Syntaxe du calcul Ambient : Primitives de mobilite et de communication 83

3.6 Approximation en π-calcul des primitives du calcul Ambient. . . . . . . . 84

3.7 Definition du processus paquet du modele Ambient. . . . . . . . . . . . . 87

3.8 Representation graphique du processus ambient trame8023. . . . . . . . 87

3.9 Definition du processus hote du modele Ambient. . . . . . . . . . . . . . 88

3.10 Definition du processus commutateur du modele Ambient. . . . . . . . . 89

3.11 Definition du processus routeur du modele Ambient. . . . . . . . . . . . . 90

3.12 Modelisation d’un reseau Ethernet calcul Ambient. . . . . . . . . . . . . 91

3.13 Modelisation d’un reseau Internet calcul Ambient. . . . . . . . . . . . . . 92

3.14 Syntaxe de NetCal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

3.15 Semantique du NetCal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Table des figures

1.1 Pile TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Architecture TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3 La trame Ethernet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4 Niveau d’analyse du commutateur. . . . . . . . . . . . . . . . . . . . . . 12

1.5 Niveau d’analyse du routeur. . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.6 Niveau d’analyse du commutateur. . . . . . . . . . . . . . . . . . . . . . 14

1.7 Diagramme d’etat des commutateurs participant au STP. . . . . . . . . . 20

1.8 Identifiants des objets du Management Information Base. . . . . . . . . . 30

1.9 Attaques au niveau de la couche liaison de donnees. . . . . . . . . . . . . 34

1.10 Attaques au niveau de la couche reseau. . . . . . . . . . . . . . . . . . . 35

2.1 Arbre de synchronisation du processus α.β.0 . . . . . . . . . . . . . . . . 43

2.2 Arbre de synchronisation du processus P2. . . . . . . . . . . . . . . . . . 43

2.3 Elargissement de portee d’une occurrence privee. . . . . . . . . . . . . . . 50

2.4 Reduction de la portee d’une occurrence privee. . . . . . . . . . . . . . . 51

3.1 Diagramme de flux des processus reseau du tableau 3.3. . . . . . . . . . . 69

3.2 Diagramme de flux du processus Reseau. . . . . . . . . . . . . . . . . . . 79

Introduction

L’appetit pour l’information n’est pas caracteristique du XXI siecle, loin de la. Un

rapide coup d’oeil dans le passe permet d’ailleurs de le constater, notamment avec la

multiplication des inventions qui ont facilite sa diffusion. Des le XV siecle, l’imprime-

rie permet un essor sans pareil du partage de l’information. Puis, la fin du XIX siecle

et le debut du XX s’accompagnent de l’arrivee successive d’une panoplie de mediums

de communication : le telephone, la radio et la television. Par la suite, l’informatique

s’impose peu a peu et les ordinateur s’introduisent dans la vie quotidienne de tout un

chacun. Et cela est d’autant plus vrai depuis l’avenement d’Internet a la fin du XX

siecle. Definitivement, Internet constitue l’un des elements cles d’une ere centree sur la

cueillette, le traitement et la diffusion de l’information.

Internet revolutionne donc l’acces a l’information. Il est meme permis d’avancer que

l’introduction d’Internet a completement revolutionne les facons de faire des institu-

tions, entreprises et individus y ayant acces. Grace a Internet, les institutions peuvent

offrir toute une gamme de services en ligne, partager entre elles l’information sensible

qu’elles detiennent au sujet des citoyens, et traiter electroniquement les rapports d’im-

pot en un temps record. De son cote, une PME peut vendre ses produits en ligne via

son site Web, contacter ses fournisseurs par courriel, partager de l’information a ses

actionnaires et controler ses inventaires a distance. Enfin, un individu peut dorenavant

effectuer un changement d’addresse electroniquement, transiger des fonds entre deux

comptes bancaires, et realiser des achats en ligne avec sa carte de credit sans devoir

sortir de la maison.

Il va sans dire que toutes les possibilites qu’offre Internet en font un outil incontour-

nable, autour duquel s’organise dorenavant la vie des particuliers, des compagnies et des

organismes gouvernementaux. Or, cela ne se fait pas sans heurts. L’information sensible

qui transige par ce reseau maintenant planetaire et la dependance qui en decoule ne sont

pas sans risques. Le developpement accelere de cette technologie n’a pas ete suivi d’un

Introduction 2

deploiement aussi rapide des mesures de securite necessaires a assurer la protection des

donnees qui circulent sur ce reseau. Et certains individus l’ont bien compris et tentent

d’en profiter. De fait, au cours des dernieres annees, un net accroissement des problemes

de securite a ete observe.

Les failles de securite presentes sur les reseaux informatiques sont notamment ex-

ploitees par des individus, communement appeles pirates informatiques, qui parviennent

a s’introduire dans des reseaux informatiques d’entreprises et a y voler de l’information

sensible. Les pirates informatiques ne sont pas les seuls a user de ce type de pratiques

pour parvenir a leurs fins, les gouvernements font de meme [12] et les ressources dont

ils disposent font craindre le pire.

Il va sans dire que nombreuses sont les craintes liees a l’exode des bases de don-

nees renfermant des donnees confidentielles. Malheureusement, Internet facilite dans

plusieurs cas l’espionnage industrielle, le vol d’identite, la fraude et a donne naissance a

de nouvelles formes de terrorisme, soit l’hacktivisme [11] et le cyberterrorisme, devenues

monnaie courante. Il est aise de croire que les pertes dues a une forme ou a une autre

de ces abus se chiffrent en milliards de dollars et ce, annuellement. A la lumiere de ces

risques et de la dependance actuelle a ces reseaux, la securite informatique prend tout

son sens, toute son importance.

Plusieurs raisons peuvent etre mises de l’avant pour expliquer les problemes de secu-

rite existants. Au premier chef, la grande complexite des systemes et l’imbroglio de leur

interaction, dont tres peu de gens ont une comprehension approfondie et globale a la

fois des systemes, des protocoles de communication et des paradigmes de securite qui en

resultent. Pourtant, des efforts considerables et des montants substantiels sont investis

pour assurer la securite des systemes. Cependant, malgre toute l’energie canalisee pour

la decouverte et la mise en place de solutions de securite, il appert que la securite n’est

pas garantie ; lorsqu’une solution de securite est implantee, cette derniere est ad hoc,

autrement dit, celle-ci est jugee fiable jusqu’a preuve du contraire.

Le probleme residerait donc dans cette maniere de concevoir et de percevoir la

securite des solutions, c’est-a-dire en la prenant pour acquise. Bien que cette approche

puisse convenir a bon nombre de systemes, ce niveau de securite n’est toutefois pas

aproprie a la totalite d’entre eux. Par exemple, pour certains systemes necessitant un

haut niveau de securite, il est essentiel d’avoir une approche formelle qui puisse garantir

Introduction 3

la securite, a tout le moins prevenir les abus et les intrusions. L’elaboration de politiques

de securite devient necessaire et l’assurance quelles sont respectees, vitale. C’est dans

ce cadre que se situe ce memoire.

L’approche formelle utilisee dans ce memoire se situe aux fonctions de base des

reseaux. Plus precisement, il s’agit d’une etude de faisabilite de modelisation des reseaux

a l’aide d’algebres de processus. Bien que les algebres de processus aient vu le jour il

y a plus de 20 ans, leurs applications et, surtout, leur utilite a modeliser les reseaux,

n’ont pas encore ete demontrees. Il va sans dire qu’au cours de meme cette periode,

la complexite des reseaux a atteint un niveau tel que leur representation exhaustive a

l’aide d’une algebre est parfaitement impensable. Le travail est donc de determiner, en

analysant les interactions reseau et les protocoles de communication, les caracteristiques

necessaires des reseaux afin de pouvoir modeliser les failles de securite s’attaquant aux

fonctions de base des reseaux.

Organisation du memoire

La premiere partie se veut une introduction aux failles de securite des reseaux

TCP/IP. L’ensemble des couches reseau y est introduit, ainsi que les protocoles et les

differents equipements reseau oeuvrant a ces niveaux. Les principales failles de securite

ainsi que des exemples d’exploitation des vulnerabilites sont presentes, et l’effort est par

la suite porte sur la synthese de ces failles et de leurs caracteristiques.

La seconde partie constitue un survol des differentes algebres de processus, princi-

palement celles abordant la concurrence de processus, les localisations et le passage de

valeurs. Les principaux protocoles y sont modelises et les limites des differentes algebres

en terme d’expressivite de failles reseau sont explicitees.

La troisieme partie fait l’etude comparative de l’efficacite des differentes algebres de

processus pour exprimer les proprietes reseau. Une algebre specialisee pour ce type de

modelisation est presentee et nombre d’exemples de modelisation sont proposes.

Premiere partie

Etat de l’art

4

Chapitre 1

Securite des reseaux d’ordinateurs

Introduction

Depuis les 10 dernieres annees, l’evolution de la communication entre les ordinateurs

a donne Internet tel que connu de sa forme actuelle. A l’image de la communication

entre les hommes, les machines usent de protocoles d’echange leur permettant de donner

un sens au dialogue. Ces protocoles sont, a l’instar du parler, des langages formels com-

portant des regles strictes. Quiconque voulant developper un systeme de communication

devra le concevoir en respectant les regles du protocole d’echange.

Concretement, ce systeme de communication est, pour le reseau Internet, l’archi-

tecture TCP / IP, aussi appele pile TCP/IP . Cette pile constitue un ensemble de

standards originalement developpes par l’Advanced Research Projects Agency (ARPA)

du Departement americain de la Defense. Ce developpement a permis la mise en place

du premier reseau d’ordinateurs appele ARPANET et le developpement de ces stan-

dards s’est solde par l’ensemble des systemes nationaux et internationaux de reseau

d’ordinateur connus sous le nom d’Internet.

Les principaux protocoles definissant cette architecture sont les suivants :

1. IP(Internet Protocol) : de niveau reseau, il assure un service d’acheminement sans

connexion ;

2. TCP(Transmission Control Protocol) : de niveau transport, il fournit un service

de connexion avec qualite de service ; et

3. UDP(User Datagram Protocol) : de niveau transport, il assure le transport mais

n’assure aucune qualite de service.

Chapitre 1. Securite des reseaux d’ordinateurs 6

TCP UDP

IP

telnet FTP DNS SNMP

niveau 4:

niveau 5:

niveau 3:

Fig. 1.1 – Pile TCP/IP.

Tel qu’illustre a la figure 1.1, le protocole IP forme la base de la pile TCP/IP. Il

est le protocole de niveau 3 de l’architecture, la couche reseau, et offre uniquement un

service d’adressage puisque, originalement, il fut concu pour l’interconnexion simple des

reseaux. Il achemine des donnees selon n’importe quel mode de transfert de paquets et

les paquets IP sont mutuellement independants les uns des autres. Ainsi ils sont tous

traites individuellement. Ce traitement s’effectue par les routeurs, des ordinateurs ayant

des interfaces sur plusieurs reseaux et ayant la fonctionnalite d’acheminer les paquets

entre ces differents reseaux.

Les paquets TCP et UDP sont des paquets de niveau 4, aussi appeles couche trans-

port de l’architecture. Les paquets TCP sont tres complexes. Ils contiennent de nom-

breux parametres de resolution de problemes pour les niveaux inferieurs, notamment les

pertes de trame. Les paquets UDP offrent, pour leur part, un mode de communication

tres simple. Ils n’etablissent pas de connexion et ne contiennent aucune fonctionnalite.

Les paquets UDP offrent un service de transport aux protocoles applicatifs autonomes,

ne demandant que peu de services de la part de la couche transport. En general, ces

protocoles applicatifs assurent eux-memes la qualite de service.

Les protocoles de niveau 5 sont de type applicatif, ils sont propres a des applications

particulieres telles que : Telnet, FTP, MSN, HTTP.

L’architecture TCP/IP est illustree a la figure 1.2. Les protocoles les plus pres du

medium de communication sont des protocoles dit de bas niveau et inversement, les pro-

tocoles superieurs sont de haut niveau. Chaque couche est mutuellement independante,

offrant et recevant des services des couches limitrophes.

La puissance de ce protocole repose sur ces quelques principes :

1. Souplesse de l’architecture ; et

2. intelligence distribue du controle.

La grande interoperabilite de l’architecture TCP/IP permet sa mise en oeuvre sur

n’importe quel type de reseau existant. L’implantation de la pile TCP/IP sur chaque

Chapitre 1. Securite des reseaux d’ordinateurs 7

application application

transport transport

réseau réseau

liaison liaison

physique physique

médium de communication

Fig. 1.2 – Architecture TCP/IP.

hote assure la grande stabilite d’Internet en decentralisant son controle. Paradoxale-

ment, ces memes elements de souplesse et de robustesse contribuent a rendre Internet

insecure. L’administration et la gestion des reseaux TCP/IP doivent s’effectuer sur

chaque sous-reseau, ce qui s’avere fastidieux et tres complexe. Considerant egalement le

caractere distribue du controle d’Internet, ces deux facteurs sont les principales sources

d’insecurite d’Internet.

Organisation du chapitre

Dans les prochaines sections, les differentes couches reseau sont abordees ainsi que les

equipements et les protocoles qui leur sont associes. Pour chaque couche de l’architecture

TCP/IP, une introduction suivie des principales composantes et protocoles oeuvrant a

ces niveaux sont proposes.

Puisqu’il n’est pas possible de couvrir la totalite des protocoles, l’accent est mis

sur les protocoles ayant les taches les plus sensibles et, incidemment, ayant l’impact le

plus grand d’un point de vue de securite reseau. Finalement, l’effort se concentre sur

l’extraction de proprietes de securite pour chaque protocoles abordes.

Chapitre 1. Securite des reseaux d’ordinateurs 8

1.1 Couches de l’architecture TCP/IP

1.1.1 Niveau physique

La couche physique est la premiere couche des modeles OSI et TCP/IP. Elle est

responsable de la transmission des messages entre les ordinateurs. Les informations

y sont numerisees, c’est-a-dire transformees en une sequence de 0 et de 1. Une fois

la numerisation effectuee, des techniques de transmission de flux binaire telle que la

modulation en phase, en frequence ou en amplitude sont utilisees pour le transport de

l’information.

La couche physique est abordee seulement par souci de completude mais ne sera pas

detaillee davantage. D’une part, elle releve beaucoup du genie electrique et d’autre part,

les considerations de securite de cette couche sont d’ordre physique et electrique et non

logique comme les couches subsequentes. Tout de meme, deux composantes agissant a

ce niveau sont abordees soit le repeteur et le pont.

1.1.2 Niveau liaison de donnees

Le niveau trame, aussi appele couche liaison, est le second niveau du standard OSI

et le second niveau de la pile TCP/IP. Il constitue la couche du modele qui permet

d’etablir, de maintenir et de liberer les connexions entre les differentes entites du reseau.

Il offre un service de correction d’erreurs a la couche reseau en agissant sur le flux

binaire en provenance du reseau. Ce taux de correction n’est pas absolu quoi qu’il se

revele efficace. Il correspond a un seuil minimum defini dans la norme ISO 8886. Le

service tangible rendu par cette couche est la delimitation des messages dans le flux de

donnees tel qu’illustre a la figure 1.3.

Dans le cas des reseaux Ethernets, de type paquet, la trame ne contient pas d’in-

formation de routage, mais seulement de l’information d’adressage. Les informations de

routage sont contenues dans la section Donnees de la trame.

Plusieurs sortes de communication Ethernet se sont succedees dans le temps. La

premiere, encore tres rependue, utilise l’adresse MAC sur 6 octets comme reference

unique tout au long du transit de la trame vers l’equipement de gestion de la section

reseau.

Chapitre 1. Securite des reseaux d’ordinateurs 9

preambule adresse destinataire adresse expéditeur proto Données FCS

8 octets 6 octets 6 octets 4 octets2 octets

Fig. 1.3 – La trame Ethernet.

Bien que les nouveaux reseaux utilisent frequemment des niveaux trames plus deve-

loppes, comportant notamment des informations d’aiguillage et de routage, la grande

majorite des reseaux formant Internet utilisent Ethernet. Toutefois, un nombre non

negligeable d’internautes utilisent le protocole PPP pour joindre leur fournisseur de

service, sans compter que les protocoles ATM, X.25 et LLC sont egalement en utilisa-

tion pour les reseaux etendus.

Le niveau Ethernet est un des niveaux les plus meconnus des administrateurs reseau

et certainement le niveau ayant le plus d’impact lorsqu’il est le siege d’attaque reseau.

Puisque cette couche est transparente du point de vue des autres couches, une attaque

de niveau 2 reussie compromet normalement les couches superieures de la pile TCP/IP.

1.1.3 Niveau reseau

Le role du niveau paquet est de transporter, d’une extremite a l’autre du reseau,

des blocs de donnees provenant d’une fragmentation des messages du niveau superieur,

le niveau transport.

L’ensemble des paquets allant d’un meme emetteur vers un meme destinataire s’ap-

pelle un flot. Celui-ci peut etre long ou court, selon la nature du service qui l’a cree. Il

peut s’agir de quelques paquets pour du trafic de signalisation ou d’un nombre impor-

tant dans le cas d’un transfert de fichier de grande taille.

Bien que les deux termes niveau paquet et couche reseau soient utilises, il n’y a pas

de distinction entre les termes, ils sont synonymes.

Plusieurs protocoles existent au niveau paquet, mais uniquement la version 4 du

protocole IP est explicitee.

Chapitre 1. Securite des reseaux d’ordinateurs 10

1.1.4 Niveau transport

La couche transport, de niveau 4, est responsable de faire correspondre les ports

de communication utilises sur chaque ordinateur. La pile TCP/IP prevoit que chaque

ordinateur possede 65535 ports de communication. Chaque application doit utiliser un

port de communication pour etablir un flot de donnees entre un serveur et un client.

Heureusement, les services ont des ports de communication qui leur sont attitres par

defaut, facilitant ainsi la communication entre un serveur et ses clients.

Les flots TCP sont de loin plus complexes que les flots UDP qui n’offrent aucun

service de connexion et n’ont comme objectif que je faire correspondre les informations

en provenance de la couche application a un port de communication. TCP, pour sa

part, prevoit une qualite de service en regard des pertes de paquets et du delai lors

de la transmission. Bien que plusieurs failles reseau se situent a ce niveau, les sections

subsequentes se concentrent sur les failles de niveau 2 et 3 uniquement.

1.1.5 Niveau application

La couche application, de niveau 5, est quand a elle la couche utilisee par les appli-

cations executees dans les contextes utilisateurs ou noyau des systemes d’exploitation.

Chaque application qui doit communiquer sur un reseau prevoit un protocole qui lui

est propre.

Au niveau application, l’abstraction du reseau est totale. Le cheminement de l’infor-

mation, transportee dans des paquets UDP ou TCP, encapsules dans des paquets reseau

IP et encapsules dans des trames Ethernet est transparent du point de vue applicatif.

Une famille complete de failles de securite se situe a ce niveau. Par contre, les failles

de niveaux inferieurs sont plus importantes puisqu’elles sont parfaitement invisibles

depuis le niveau 5, le reseau etant abstrait.

Chapitre 1. Securite des reseaux d’ordinateurs 11

1.2 Principales composantes reseau

1.2.1 Repeteur

Le repeteur est une composante agissant uniquement a la couche physique. Equipe-

ment reseau bon marche, il etait tres souvent utilise a une epoque ou les commutateurs

n’etaient pas aussi accessibles et abordables qu’aujourd’hui. Bien que son utilisation

decroıt avec le temps, il est tout de meme encore repandu au seins de plusieurs entre-

prises.

Le fonctionnement du repeteur est simple : sur reception d’un signal a une entree-

sortie (E/S), il replique ce meme signal sur l’ensemble des autres E/S. L’avantage de

son usage est la mise en reseau simple et rapide d’ordinateurs. Par contre, le niveau

de securite est nul puisque la totalite des communications transitant via le repeteur

sont achemines a tous les ordinateurs branches a la composante. Il va sans dire que

l’utilisation d’un repeteur pour distribuer des trames n’est pas securitaire. Aujourd’hui,

la majeure partie des efforts de securisation des reseaux focalise sur l’isolement des flux

d’information. Avec un repeteur, le niveau d’exposition aux risques d’incidents est eleve

et est definit comme etant le statut repeteur.

1.2.2 Commutateur

Les commutateurs sont les equipements les plus evolues oeuvrant au niveau trame.

Les commutateurs agissent au niveau 2 de la couche OSI et peuvent commuter par

circuit ou par paquet. Dans le cas d’une trame de type ATM, il s’agit d’une commuta-

tion par circuit alors que l’utilisation des trames Ethernets resulte d’une commutation

par paquet. Independamment du type de commutation, les commutateurs ont habi-

tuellement de quatre a trente-deux E/S1 et assurent l’acheminement des trames aux

destinataires choisis. Lorsqu’une trame est recue sur une E/S, le commutateur verifie

si elle est destinee au meme port. Le cas echeant, elle est recopiee et reenvoyee, sinon,

elle est copiee sur le bus a haut-debit a destination des autres ports. L’entete de cette

trame est alors analysee et, en fonction de l’adresse de destination, est copiee sur le

port correspondant. Habituellement, ce sont les hotes du reseau qui sont branches aux

ports du commutateur quoiqu’il est possible d’y brancher d’autres commutateurs. Ce

type de branchement permet de former une arborescence de commutateurs et d’etendre

1Entree-Sortie, aussi appelees port. Il ne faut toutefois pas les confondre avec les ports de commu-

nication du niveau transport.

Chapitre 1. Securite des reseaux d’ordinateurs 12

un reseau Ethernet.

médium de communication

liaison

physique

Fig. 1.4 – Niveau d’analyse du commutateur.

Au cours des annees, les fonctionnalites des commutateurs ont grandement evolues.

Certains sont maintenant en mesure de faire des reseaux IP locaux en y dediant un

ou plusieurs de leurs ports. Ces memes commutateurs agissent a la fois sur le niveau

liaison de donnees et sur le niveau reseau. Ces commutateurs sont a meme d’attribuer

une adresse IP a une ou plusieurs de leurs interfaces. Les commutateurs de niveau 3

sont abordes a la section 1.2.5.

Le commutateur offre une securite supplementaire comparativement au repeteur.

L’aiguillage physique des trames vers les ports concernes fait passer le statut de secu-

rite du statut repeteur au statut commutateur. Ce nouveau statut vise a eviter qu’un

utilisateur malveillant accede aux trames qui ne lui sont pas destinees. Le statut com-

mutateur augmente ainsi substantiellement le niveau de securite.

Bien que le niveau de securite soit accru, il existe certaines limites. Les hotes ne

peuvent plus directement acceder aux trames qui ne leurs sont pas destinees mais

peuvent tout de meme acceder a la totalite des trames qui sont emises sur l’adresse de

multidiffusion. Cette adresse, utilisee par plusieurs applications et protocoles, contient

souvent de l’information permettant a un attaquant d’effectuer une etape de reconnais-

sance et de proceder a des attaques plus complexes. L’impact de ce type d’attaque sur

le reniflage de trames en mode diffusion est approfondi a la section 1.2.5.

1.2.3 Pont

Le pont unit des reseaux, proches ou distants, en interpretant les deux premieres

couches du modele OSI ou, a l’inverse, il permet de subdiviser un reseau unique en

sous-reseau pour en accroıtre les performances. Ces caracteristiques en font un organe

uniquement utilise dans les environnements de reseau local.

Chapitre 1. Securite des reseaux d’ordinateurs 13

liaison

physique

médium de communication

réseau

Fig. 1.5 – Niveau d’analyse du routeur.

Le niveau d’analyse du pont est le meme que celui du commutateur a la figure 1.4.

Le pont a habituellement deux interfaces reseau et fait simplement passer les paquets

d’une interface a l’autre. Ainsi, il cree un seul reseau virtuel a partir d’un ensemble de

sous-reseaux, en ignorant les protocoles des couches superieures et en supportant plu-

sieurs types de couche MAC, pouvant relier des sous-reseaux qui utilisent des protocoles

differents. Dans le premier cas, le pont sert a relier des reseaux de meme type. Dans

le second, l’analyse se fait a un niveau superieur, la couche LLC commune, puis est

reencapsulee dans la couche MAC.

L’utilisation de ponts est par contre limitee en presence d’un trop grand nombre

d’ordinateurs. Le pont enregistre dans une table interne les adresses de toutes les sta-

tions connectees au reseau d’entreprise et possede une limite de stockage d’adresses. De

plus, cette table est rafraıchie grace au protocole Address Resolution Protocol (ARP),

notamment par les gratuitous ARP, et supporte donc mal la mobilite des stations d’un

point de vue securite.

1.2.4 Routeur

Le routeur copie et fait suivre les paquets ou les datagrammes entre les differents

reseaux. Le routeur est semblable au pont, tout en agissant sur la couche reseau.

Contrairement au commutateur, il ne peut a lui seul former un reseau et ne peut non

plus, comme un pont, constituer un reseau unique a partir de plusieurs sous-reseaux.

Le routeur a comme fonction l’interconnexion de reseaux differents dans la mesure ou

les adresses des utilisateurs des reseaux distants ne sont connues que par leur adresse

respective de niveau paquet (IP) et non par l’adresse de niveau physique (MAC). Les

routeurs sont des equipements dependant des protocoles utilises. Ce qui les distingue

Chapitre 1. Securite des reseaux d’ordinateurs 14

liaison

physique

médium de communication

réseau

Fig. 1.6 – Niveau d’analyse du commutateur.

c’est la facon avec laquelle ils implantent les protocoles et les standards. Aussi, selon le

systeme d’exploitation2 les fonctionnalites et les configurations seront differentes.

Les routeurs peuvent etre plusieurs sur un meme reseau afin de se repartir la charge

de routage et assurer une redondance. Plus il y a proximite avec les couches superieures

du modele TCP/IP, plus il y a de cas de failles de securite. Les routeurs sont des

composantes reseau qui sont souvent dupees. En effet, les protocoles de routage utilises

par les routeurs peuvent facilement etre alteres, il n’y a qu’a penser a RIP [23] et

OSPF [24]. Le protocole Simple Network Management Protocol (SNMP) peut servir a

changer sa configuration et maintes attaques reseau peuvent etre initiees en abusant de

la communication entre le routeur et les autres equipements reseau.

1.2.5 Routeur/commutateur

Les differentes techniques de transfert examinees peuvent se superposer pour for-

mer des techniques de transfert hybrides. En general, les superpositions concernent les

equipements utilisant des protocoles de niveau 2 et 3. Lorsque le protocole utilise par

la piece d’equipement reseau se situe au niveau 2, une commutation a lieu alors qu’un

aiguillage a lieu lorsque celui-ci se situe au niveau 3.

Dans le cas ou plusieurs de ces equipements sont present sur le reseau, ce sont les

protocoles de type MPLS (MultiProtocol Label-Switching) qui sont d’usage. Le cas d’un

routage de niveau trame et une d’une commutation de niveau paquet est alors possible.

Certaines informations remontent au niveau paquet pour etre commutees alors que

d’autres peuvent etre aiguillees directement au niveau trame. Ce cas de figure peut se

2hyperonyme du terme anglais firmware.

Chapitre 1. Securite des reseaux d’ordinateurs 15

trouver dans les reseaux qui ont une double adresse ; par exemple, une adresse complete

de niveau trame et une reference pour le niveau paquet. Lorsqu’une trame arrive dans

un noeud, celui-ci recupere l’adresse de niveau trame. Si le niveau 2 n’est pas connu, il

est possible de decapsuler la trame pour recuperer le paquet et examiner la reference

de ce niveau qui indiquera la direction a prendre. Il en est ainsi des reseaux locaux

Ethernet qui, outre l’adresse de niveau trame, portent les paquets X.25, munis d’une

reference de niveau paquet.

1.2.6 Securite du statut commutateur

Reniflage multidiffusion

A l’instar des repeteurs, les commutateurs acheminent les trames au destinataire

uniquement, offrant un gain notoire terme de securite. Par contre, plusieurs applications

et protocoles utilisent le mode multidiffusion. Les trames acheminees a la totalite des

hotes du reseau Ethernet peuvent potentiellement etre lues par un hote malveillant.

Par defaut, les interfaces reseau n’interpretent que les trames qui leur sont destinees.

Or, rien n’empeche un usager de mettre son interface en mode promiscuite3 et de lire

la totalite des trames acheminees sur son interface.

De cette facon, la majorite du temps, un attaquant peut obtenir une liste interessante

d’informations telles que :

1. les serveurs DHCP ;

2. les masques sous-reseau ;

3. les adresses MAC et IP associees aux ordinateurs ;

4. la liste des hotes actifs ;

5. les noms NETBios ;

6. le mot de passe hache des utilisateurs Windows tentant d’acceder un dossier par-

tage ; et

7. l’identification des systemes d’exploitation.

Moins commun, mais non pas rare, l’attaquant peut renifler de l’information issue

de mauvaises configurations reseau ou de mauvaises pratiques de securite, a savoir :

1. le mot de passe SNMP4 ;

3traduction de : promiscious.4traduction du terme anglais community string.

Chapitre 1. Securite des reseaux d’ordinateurs 16

2. les informations de routage telles que RIP et OSPF, et

3. les trames et paquets STP et HSRP.

1.3 Protocoles de niveau 2 et leurs impacts de se-

curite

1.3.1 Address Resolution Protocol

Le protocole ARP [13] fait partie des protocoles les plus utilises. Le but du protocole

consiste a proposer une methode de conversion des adresses reseau vers les adresses d’un

reseau local. Il permet aux machines de resoudre les adresses sans utiliser une table sta-

tique d’adresses, ce qui repond bien au caractere dynamique des reseaux d’aujourd’hui.

Le protocole ARP est un incontournable compte tenu que la quasi-totalite des adresses

reseau sont attribuees dynamiquement avec BOOTP ou DHCP, ce qui complexifie la

relation entre les adresses physiques et les adresses reseau des machines.

Fonctionnement du protocole ARP

Un reseau Ethernet n’adresse pas les trames avec des adresses IP, mais avec des

adresses MAC. Ainsi, lorsqu’un paquet IP parvient a un reseau Ethernet, il doit etre

encapsule dans une trame Ethernet afin de pouvoir transiter sur le nouveau reseau

Ethernet. La composante effectuant ce travail d’encapsulation est le routeur. Pour que

le message soit correctement achemine a destination, le routeur est responsable de faire

correspondre l’adresse de destination MAC a l’adresse de destination IP.

Sur un sous-reseau de type Ethernet, quatre types de message ARP existent :

1. ARP Request : une requete ARP typiquement envoyee en mode multidiffusion

(Qui est ipb, informez ipa).

2. ARP Reply : une reponse ARP typiquement en reponse a une requete ARP, ce

message instruit l’emetteur de la requete ARP (ipb est a macb).

3. RARP Request : une requete ARP inversee ; cette requete prend la forme (Qui est

maca, informez macb).

4. RARP Reply : une reponse ARP inversee ; cette reponse prend la forme (macb est

a ipb).

Chapitre 1. Securite des reseaux d’ordinateurs 17

Cas d’utilisation

Un ordinateur A d’adresse ipa veut communiquer avec l’ordinateur B d’adresse

ipb. Pour que les trames de A se rendent a B, elles doivent posseder la bonne adresse

Ethernet de destination : macb. Comme toutes les composantes utilisant la pile TCP/IP,

A a une table de correspondance comportant des entrees de forme : ipx → macx. Afin

d’avoir la bonne correspondance entre ipb et macb, A doit peupler sa table en emettant

une requete ARP :

( Qui est ipb, informez maca ).

Ne sachant pas ou se trouve l’hote B, cette trame est envoyee en mode diffusion.

Sur reception, l’hote B forge une reponse :

(ipb est a macb).

Ce paquet est unicast vers l’adresse ipa. Une fois cet echange effectue, l’hote A a

desormais l’entree ipb → macb dans sa table et est en mesure d’adresser correctement

ses trames a destination de B.

Dans un environnement commute, la trame est transmise au commutateur qui, a

l’aide de sa table d’association maci → portj, achemine cette trame sur le bon port

de communication a destination de l’hote B.

Deni de service a l’aide de ARP

Un attaquant A est a l’ecoute sur le reseau. A recoit une requete :

(Qui est ipb, informez macc).

L’attaquant A repond :

(ipc est a macx)

La victime, ayant mis l’entree ipx → macb a jour dans sa table de correspon-

dance, croit acheminer a la bonne destination sa trame. L’action d’empoisonner une

table de correspondance peut, dans ce cas, provoquer un deni de service d’une duree

egale au temps d’expiration de l’entree (ipb → macx) dans la table de l’hote B. Ce

Chapitre 1. Securite des reseaux d’ordinateurs 18

temps d’expiration peut varier d’un systeme d’exploitation a un autre mais correspond

generalement a 30 secondes.

Sachant qu’une reponse (ipc est a macx) actionne la mise a jour de la table de

correspondance, un attaquant A peut simplement envoyer des reponses gratuites5 ipc

est a macx. a sa ou ses victimes. Le resultat serait le meme.

Les attaques, visant principalement des hotes, peuvent egalement avoir pour cible

des routeurs et des commutateurs. L’attaquant qui envoie un tres grand nombre de

trames ARP au commutateur peut voir le commutateur cesser toute transmission dans

le cas ou il y aurait debordement d’entree dans la table ARP. Selon ce cas de figure, le

deni de service coupe la communication du reseau Ethernet completement.

Selon les fabricants, le commutateur peut cesser toute communication et necessiter

un redemarrage, ou se transformer en repeteur ! En mettant son interface reseau en

mode promiscuite, l’attaquant peut recevoir la totalite des trames circulant sur le reseau

Ethernet, puisqu’il force le niveau de securite du sous-reseau du statut commutateur au

statut repeteur.

Homme dans le milieu

Une attaque de type homme dans le milieu6 survient lorsqu’un attaquant parvient

a s’inserer dans la communication entre deux victimes et leur faire mutuellement croire

qu’il est le destinataire des messages.

Un attaquant A a deux voisins, soit B et C. A peut empoisonner les tables de ses

voisins de deux facons :

1. il attend qu’un des hotes fassent une request ARP du type (Qui est ipb, informez

macc) et il repond alors rapidement (ipb est a maca) ; ou

2. il envoie une reponse ARP gratuite, sans requete prealable.

Ainsi, en combinant ces methodes, l’attaquant A peut envoyer a B :

(ipc est a maca).

et a C :

5gratuitious ARP6traduction directe de man in the middle (MiM). Ce concept etant complet, il aurait ete difficile de

le traduire autrement sans que le lecteur ayant le concept MiM se meprenne.

Chapitre 1. Securite des reseaux d’ordinateurs 19

(ipb est a maca).

En ayant respectivement usurper l’identite de C pour B et l’identite de B pour C,

l’attaquant s’insere dans la communication de ses victimes et les contraint, a leur insu,

a lui acheminer leurs messages. A peut alors retransmettre aux bons destinataires les

trames lues ou manipulees, ou simplement supprimer les trames voulues.

1.3.2 Spanning Tree Protocol

Le protocole STP fait partie du standard IEEE 802.1 pour le controle d’acces au

media. Le protocole a pour object la prevention des boucles dans les reseaux Ethernet.

Lorsqu’il y a une boucle, les communications se degradent de facon exponentielle jus-

qu’a la congestion generale. Par contre, pour des fins de disponibilite, il est tres utile

d’avoir des commutateurs redondants. Advenant le cas ou un des equipements cessent

de fonctionner, le second peut prendre le relai et ainsi assurer le service. STP sert prin-

cipalement a permettre cette redondance de commutateurs tout en ne laissant qu’une

seule voie active a la fois.

Pour offrir la redondance des chemins, l’algorithme de STP prevoit l’existence de

plusieurs chemins et la capacite de forcer certains commutateurs dans un etat bloque,

pour ne permettre qu’un seul chemin a la fois. Dans le cas ou un chemin n’est plus

disponible, ou que la qualite de la transmission est insuffisante, un nouveau chemin est

elu et l’ancien passe a l’etat bloque.

STP prevoit que son utilisation soit transparente du point de vue des stations. En

pratique, certains delais peuvent etre experimentes par les utilisateurs lorsqu’un des

commutateurs cesse de fonctionner. Un delai approximatif de 30 secondes peut etre

observe avant la releve.

Fonctionnement de STP

Tous les commutateurs du reseau Ethernet etendu participant au protocole STP

recoltent de l’information sur les commutateurs. Cette transmission s’effectue a l’aide

des messages BPDU7 et permet :

1. l’election d’un commutateur pere pour former une topologie STP stable ;

7Bridge Protocol Data Units.

Chapitre 1. Securite des reseaux d’ordinateurs 20

initialisation

bloque

ecoute

apprentissage

actif

desactive

Fig. 1.7 – Diagramme d’etat des commutateurs participant au STP.

2. l’election d’un commutateur designe pour chaque segment LAN ; et

3. le bloquage des boucles du reseau commute en placant les commutateurs redon-

dants dans l’etat bloque.

Les commutateurs participants passent par differents etats pour atteindre une to-

pologie STP stable. Ce changement d’etat est pilote par un parametre de ponderation

contenu dans le BPDU. Ce parametre quantifie l’efficacite du commutateur a acheminer

les trames. Le diagramme representant les differents etats par lesquels les commutateurs

passent est illustre a la figure 1.7.

Deni de service a l’aide de STP

Un attaquant reniflant une trame STP sur le reseau obtient l’identifiant unique du

commutateur actif, la ponderation associee a son segment d’appartenance et l’identifiant

du commutateur emettant le BPDU. Un attaquant peut s’immiscer dans l’election du

commutateur actif en forgeant un faux BPDU, qui contient une fausse adresse source

et une meilleure ponderation.

L’election du faux commutateur provoque un deni de service compte tenu que le

vrai segment est bloque et le faux, active. Cette coupure de service est, bien entendu,

Chapitre 1. Securite des reseaux d’ordinateurs 21

experimentee par la totalite des hotes du reseau Ethernet, puisqu’aucune trame ne

peut etre acheminee vers l’exterieur. Seules les trames destinees au meme sous-reseau

peuvent circuler. Ce deni de service dure un temps t egale au temps de reaction de STP

necessaire a l’election d’un nouveau commutateur actif.

Un attaquant peut toutefois continuer d’emettre de faux BPDU pour allonger le

temps du DOS.

MiM a l’aide de STP

L’etablissement d’un MiM a l’aide de STP necessite les memes etapes initiales que

le deni de service. L’idee consiste a manipuler l’election du commutateur actif. Dans

ce cas, puisque l’attaquant veut s’inserer dans le reseau STP, il doit etre branche sur

deux reseaux Ethernet simultanement et ajoute son adresse MAC au BPDU forge.

Aussitot l’election gagnee, l’attaquant commence a recevoir les trames. Il peut alors lire

et manipuler les messages reseau avant de les acheminer sur sa seconde interface vers

les prochains noeuds de l’arborescence STP.

1.3.3 Cisco Discovery Protocol

CDP est un protocole de niveau 2 proprietaire de Cisco System. Il est principalement

utilise pour obtenir les adresses des composantes voisines et leur plateforme. CDP sert

egalement a obtenir du routeur les interfaces en service. CDP a donc ete cree pour

partager de l’information sur les composantes reseau Cisco et est inclus sur l’ensemble

des equipements du fabricant. CDP peut etre utilise de facon ponctuelle ou continue.

La trame CDP contient l’information suivante :

1. l’adresse IP ;

2. la version de son systeme d’exploitation de la composante reseau ;

3. son architecture8 ; et

4. ses capacites.

Le champs capacite de la composante determine son type9 et indique si la compo-

sante comprend ou non le protocole IGMP.

8x86, Motorola, etc.9routeur, commutateur, pont transparent, etc.

Chapitre 1. Securite des reseaux d’ordinateurs 22

Il est egalement possible de combiner l’utilisation du protocole SNMP a celui de

CDP pour acquerir une plus grande quantite d’information. En plus des informations

comprises dans les trames CDP, les ingenieurs de Cisco System ont prevu une utilisa-

tion combinee de CDP avec le protocole SNMP. Ainsi, une application de gestion des

composantes reseau peut effectuer des requetes SNMP a l’agent SNMP d’une compo-

sante CDP voisine. Il existe un MIB a cette fin. Il est disponible sur le site web de

Cisco. La definition du MIB et le fonctionnement du protocole SNMP sont exposes a

la section 1.5.

Deni de service a l’aide de CDP

L’epuisement de ressources peut occasionner un deni de service. Un utilisateur mal-

veillant peut, a l’aide d’un grand nombre de trames CDP legitimes, remplir la memoire

de l’equipement reseau vise, forcant ainsi un redemarrage automatique de l’equipement.

Du point de vue d’un attaquant, cette attaque peut s’averer interessante puisqu’elle

peut par la suite etre integree dans des attaques reseau de plus grande envergure.

Identification des composantes

Considerant que la reconnaissance et la quete d’information sur le reseau sont les

etapes preliminaires a toute attaque reseau, CDP est une source notable d’information

pour un hote malicieux. L’activation du protocole CDP entraıne la fuite d’informations

telles que presentees a la section 1.3.2 et plus encore lorsque CDP est combine a SNMP.

L’information rendue disponible est ainsi accessible a tous ; le protocole ne prevoit aucun

chiffrement ni authentification.

1.4 Protocoles de niveau 3 et leurs impacts de se-

curite

1.4.1 IPv4

La premiere apparition du protocole IPv4 date de 1981. Le protocole a ete formalise

dans le RFC 791. Theoriquement, il est sense etre supplante par son successeur, IPv6,

Chapitre 1. Securite des reseaux d’ordinateurs 23

depuis 2005 mais, en pratique, il est aise de croire qu’il restera actif pour les cinq a dix

prochaines annees a venir.

Un reseau Internet est vu par l’utilisateur comme un reseau virtuel qui intercon-

necte les machines grace auxquelles la communication est possible. Comme un reseau

physique, le reseau Internet, a l’aide de son protocole IP, permet de recevoir et de trans-

mettre les paquets. L’analogie s’explique du fait que le reseau Internet fait abstraction

du chemin physique que les paquets suivront, introduisant ainsi la notion de circuit

virtuel. Le circuit virtuel sur lequel les paquets sont aiguilles est oriente de facon a

respecter une heuristique de qualite de service (QoS).

Ce circuit virtuel est responsable de l’acheminement des paquets et se fait de facon

non fiable et sans connexion. Un paquet peut etre duplique, egare ou remis hors sequence

sans que le destinataire en soit informe. Il est egalement dit sans connexion puisque

chaque paquet est traite independamment des autres.

Le protocole a deux principales fonctions : l’adressage et la fragmentation. Pour

fournir ces services, le protocole Internet se base sur ces quatres parametres : le type de

service10, le temps de vie11, les options et le checksum).

Le temps de vie est une borne superieure indiquant le nombre maximum de sauts

qu’un paquet peut effectuer sur le reseau. La valeur du champ ttl est decrementee a

chaque saut. Dans le cas ou le ttl atteint zero, il est detruit. Ce mecanisme d’auto-

destruction evite qu’un paquet soit indefiniment aiguille ou redirige.

Les options ont historiquement ete pensees pour offrir, en fonction du parametrage

de la machine qui aiguille le paquet, un certain service d’estampillage (timestamp), un

identifiant du niveau de securite et un service deterministe et probabiliste d’aiguillage :

le strict source routing et le loose source routing.

Les options d’aiguillage offertes sont meconnues mais fonctionnelles. Elles offrent la

possibilite de specifier une partie ou la totalite des noeuds qu’emprunte le paquet en

transit vers sa destination.

10type of service (tos).11time to live (ttl).

Chapitre 1. Securite des reseaux d’ordinateurs 24

1.4.2 Securite du protocole IPv4

Identification des systemes d’exploitation

La valeur du ttl est codee sur 8 bites, donc ce dernier peut prendre une valeur entre

0 et 255. Puisque l’implantation du protocole IP differe d’une pile TCP/IP a l’autre, il

est generalement possible de distinguer les systemes d’exploitation sur un reseau et de

comparer les valeurs des champs ttl entre elles.

Bien que le champ ttl ne constitue pas une facon absolue de departir les differents

systemes d’exploitation populant un reseau, il est neanmoins un indicateur qui, cor-

rele avec d’autres indicateurs issuent d’autre protocoles, est a la base d’une approche

probabiliste fiable d’identification des systemes d’exploitation distants.

1.4.3 Internet Control Message Protocol

Le protocole de controle de message Internet (Internet Control Message Protocol)

(ICMP)) est utilise dans l’architecture d’Internet pour identifier les erreurs reseau. Ce

protocole fait reference au groupe d’actions que les hotes et les routeurs utilisent pour

determiner la presence d’un probleme reseau. Lorsqu’un routeur intermediaire detecte

un probleme reseau pendant le transit d’un paquet, il envoie normalement un message

d’erreur ICMP a l’hote source dans le but de l’aviser. Le protocole prevoit aussi que dans

certains cas, un hote genere lui-meme un message d’erreur ICMP lorsqu’il experimente

un probleme en traitant un datagramme. Ces messages d’erreurs sont envoyes depuis le

protocole de transport utilise sur le reseau. Dans le cas du protocole TCP, la politique

de recouvrement est la suivante :

1. si le probleme reseau rapporte est considere comme une erreur critique12, la

connexion en cours sera interrompue ; ou

2. Si le probleme reseau rapporte est considere comme une erreur simple13, l’erreur

est archivee et le paquet fautif est retransmis jusqu’a ce qu’il soit recu ou que la

connexion expire.

12Traduction libre du terme hard error.13Traduction libre des termes soft error.

Chapitre 1. Securite des reseaux d’ordinateurs 25

ICMP pour le procotole IP

Le RFC 792 [19] specifie le fonctionnement d’ICMP avec le protocole IP. Il definit

notamment un ensemble de messages d’erreurs pouvant etre utilises par les hotes et les

systemes intermediaires pour communiquer les erreurs reseau.

Le RFC [21] specifie les messages d’erreurs ICMP de type 3 et de codes 2, 3 et 4 :

1. destination non disponible : protocole non-disponible ;

2. destination non disponible : port non-disponible ; et

3. destination non disponible : fragmentation necessaire et option de non-fragmentation

selectionnee.

Ces messages doivent etre consideres comme des erreurs critiques puisque, chacune

de ces erreurs doit entraıner une interruption de communication.

1.4.4 Securite du protocole ICMP

Le protocole ICMP presente plusieurs vulnerabilites, dont les principales causes sont

liees au fait que :

1. La securite n’a pas ete consideree lors de la conception de ce protocole.

2. Aucun systeme d’exploitation n’a respecte les RFC lors de l’implantation du pro-

tocole.

3. Le protocole est responsable du bon fonctionnement d’Internet.

Premierement, tout comme la plupart des protocoles supportant Internet, ICMP

n’a pas ete concu de facon securitaire. A l’epoque, le risque associe a ces protocoles

n’etait pas percu ; cette insouciance passee est responsable d’un nombre considerable

d’attaques reseau.

Deuxiemement, la majorite de l’identification passive14 et active des hotes sur In-

ternet est effectuee a l’aide du protocole ICMP. Un attaquant est donc en mesure de

detecter le systeme d’exploitation ainsi que sa version a l’aide du protocole ICMP.

Finalement, le protocole ICMP a de grandes responsabilites en regard du soutien et

du controle d’Internet, les voici :

14traduction de passive et active finger printing.

Chapitre 1. Securite des reseaux d’ordinateurs 26

1. le controle des sessions ;

2. la determination de la latence des reseaux ;

3. la verification de la disponibilite des hotes ;

4. la redirection du trafic ;

5. la gestion de la congestion ;

6. la detection des commutateurs et des routeurs ; et

7. le rapport d’erreurs lors du transit d’information.

Compte tenu de ces responsabilites et de l’absence de securite lors de sa concep-

tion, il n’est pas surprenant que l’impact des vulnerabilites du protocole ICMP soit si

important.

Les vulnerabilites du protocole ICMP pourraient faire un ouvrage a elles seules, mais

un exemple concret est tout de meme presente a la section suivante.

Attaque ICMP contre TCP

Dans un contexte TCP, le traitement des erreurs ICMP [21] definit qu’au sein d’une

pile TCP/IP, la session TCP concernee doit etre avisee de l’erreur ICMP recue. De

facon a faire correspondre le message ICMP a la session TCP, une partie du paquet

fautif, incluant le 4-tuple15 necessaire a la correspondance, est inclus dans le message

ICMP. Lorsque la session est avisee du message qui lui est destine, elle peut traiter

l’erreur et executer l’action appropriee.

Les RFC [21] et [20] ne prevoient aucune verification de securite lors de la corres-

pondance du message d’erreur ICMP et de la connexion TCP. Il suffit que le contenu

du message ICMP contienne le bon 4-tuple pour que le message d’erreur soit associe a

l’instance de session TCP correspondante.

Consequemment, un attaquant peut forger un message ICMP vers un hote victime

et l’associer a une session TCP existante, a condition qu’il soit en mesure de deviner

ou d’acquerir le 4-tuple de la session. Un attaquant peut obtenir cette information

de plusieurs facons. A ce sujet, quelques approches ont ete proposees a la conference

CanSecWest 2004 [25], quoique la plupart du temps, aucune approche particuliere n’est

necessaire. Puisque la majorite des services utilisent des ports sources predefinis, seul

le port client doit etre decele. Dans le pire des cas, un attaquant aura 6451116 paquets

15Le 4-tuple d’une session TCP est (ips, ipd, ports, portd) soit les IP source et destination ainsi que

les ports sources et destination.16(65535 ports de communication − 1024 premiers ports reserves).

Chapitre 1. Securite des reseaux d’ordinateurs 27

ICMP a forger vers la victime pour faire correspondre le message ICMP malicieux a la

connexion TCP voulue.

Attaque d’annulation a l’aveugle d’une session Le comportement des hotes de-

fini en [21] stipule qu’un hote doit abandonner toute session qui recoit un message d’er-

reur critique ICMP. Un attaquant peut donc utiliser le protocole ICMP pour mettre en

branle une attaque d’annulation a l’aveugle17 d’une session, c’est-a-dire forcer l’aban-

don d’une session etablie entre deux hotes sans qu’ils aient a s’emiscer dans la session

a l’aide d’une attaque MiM. Pour y parvenir, l’attaquant forge une message d’erreur

critique contenant le bon 4-tuple ICMP et l’envoie a l’un ou l’autre des points de la

session TCP. La session en cours sera immediatement abandonnee.

Attaque de reduction de bande passante En suivant la procedure decrite a la

section 1.4.4, une attaque similaire peut etre amorcee, dans la mesure ou l’attaquant

forge un paquet ICMP de type congestion a la source. Dans ce cas-ci, au lieu de forcer

l’abandon de la session, c’est la bande passante qui est reduite.

1.4.5 IRDP

Le protocole IRDP a ete concu pour fournir un service de decouverte de routeur sur

un sous-reseau. Pour qu’un hote du reseau puisse transmettre des datagrammes vers un

autre reseau, il doit connaıtre l’adresse IP du routeur de son reseau d’appartenance,de

facon a ce que celui-ci achemine par la suite son datagramme vers le bon reseau.

Issu du protocole ICMP, IRDP est une extension de celui-ci et prevoit 2 types de

message :

1. l’annonce d’un routeur ; et

2. et la sollicitation d’un routeur.

L’annonce d’un routeur se fait de facon periodique. Elle contient une liste de routeurs

et leur niveau de priorite. IRDP prevoit que l’hote ajoute directement a sa table de

routage l’adresse contenu dans l’annonce du routeur.

IRDP est notamment utilise par defaut par les hotes Windows antecedant au systeme

Windows 2000.

17traduction de : blind connection reset.

Chapitre 1. Securite des reseaux d’ordinateurs 28

1.4.6 Securite du protocole IRDP

Attaque MiM du protocole IRDP

Un utilisateur malicieux peut faire une attaque en multidiffusion ou cibler une vic-

time particuliere. Pour se faire, il commence par forger une fausse annonce en se pre-

tendant routeur prioritaire. Tel qu’indique dans le RFC du protocole, l’hote met a jour

sa table de routage et considere desormais que l’attaquant est le nouveau routeur.

Afin de faire un MiM, l’attaquant commence par causer un deni de service tempo-

raire au routeur en utilisant le protocole ARP ou CDP, tel qu’aborde aux sections 1.3.1

et 1.3.3. Il emet ensuite un faux paquet IRDP qu’il transmet a la victime. Une fois que

la victime a mis a jour sa table de routage, elle envoie la totalite des paquets desti-

nes vers Internet via l’attaquant. L’attaquant, en presence d’un MiM unidirectionnel,

peut rendre le MiM bidirectionnel en usant du protocole ARP, tel que precise a la

section 1.3.1.

Bien que IRDP soit principalement utilise par les hotes NT4, il est toujours present

dans les parcs informatiques des grandes entreprises et etait toujours de service pour le

site Hotmail de Microsoft il y a a peine quelques annees de cela.

1.4.7 Autres protocoles de niveau 3

Plusieurs autres protocoles agissant au niveau 3 sont vulnerables a des attaques

reseau. Tout comme le protocole ICMP, ils ont ete concus pour des fonctionalitees clees

sans egard a la securite. Plusieurs protocoles ont des responsabilites de gestion des flux

reseau sans pour autant assurer le niveau de securite necessaire. Ces protocoles sont les

suivants :

1. HSRP : Hot Swap Routeur Protocol ;

2. IGMP : Ip Group Multicast Protocol ;

3. RIP : Routing Ip Protocol ;

4. OSPF : Open Shortest Path First ;

5. BGP : Border Gateway Protocol ;

6. IGRP : Interior Gateway Routing Protocol ; et

7. EIGRP : Extended Interior Gateway Routing Protocol.

Chapitre 1. Securite des reseaux d’ordinateurs 29

Les deux premiers, HSRP et IGMP sont respectivement responsables de la redon-

dance des routeurs et de la gestion des flux multidiffusion. Les autres sont des protocoles

de routage. Ils possedent tous des vulnerabilites similaires permettant d’inserer ou d’al-

terer la configuration du routage sur le reseau d’appartenance des composantes qui

dialoguent a l’aide de ces protocoles.

1.5 Protocoles de niveau 5 et leurs implications de

securite

Les protocoles de niveau applicatif sont habituellement plus securises que les pro-

tocoles formant la base d’Internet et se situant aux niveaux 2 et 3. La securite des

protocoles applicatifs peut etre prise en charge a plusieurs niveaux de la pile TCP/IP

et utilisent frequemment des canaux de communications chiffres. Par contre, du point

de vue de la couche applicative la gestion du reseau est transparente, les attaques visant

les protocoles 2 et 3 permettent souvent de compromettre les applications supperieures.

Par exemple, une connexion HTTPS entre un client et un serveur peut etre sabotee

si un attaquant effectue un DoS sur le serveur ou le client a l’aide du protocole ARP

(voir 1.3.1).

Les protocoles applicatifs ne sont pas abordes en detail dans ce document pour

deux motifs. D’une part, ils ont leurs propres paradigmes de securite et, d’autre part,

ils jouent un role secondaire en terme de securite reseau puisqu’ils se situent a la derniere

couche de la pile TCP/IP. Un seul protocole est explicite en raison de son importance

de gestion des composantes reseau, le protocole SNMP.

1.5.1 Simple Network Management Protocol

Le protocol de gestion de reseau simplifiee (Simple Network Message Protocol (SNMP))

est a la fois un service et le nom d’un protocole. Ce service est offert sur les ports 161

et 162 et habituellement encapsule par le protocole de transport UDP. Il sert a la ges-

tion distante des composantes reseau et joue un role central sur les reseaux TCP/IP.

Cette gestion reseau prevoit un centre de gestion18 pouvant communiquer avec plusieurs

composantes reseau egalement appelees agents. Plusieurs sortes d’agents SNMP ont ete

18network management station.

Chapitre 1. Securite des reseaux d’ordinateurs 30

prevus pour la gestion reseau, notamment les hotes, les commutateurs, les routeurs, les

terminaux et les imprimantes.

Cette gestion reseau est rendue possible grace a trois elements :

1. Une base d’information de gestion19(MIB) [26] prevoyant les variables qui contiennent

l’information accessible pour la gestion du reseau.

2. Une methode d’organisation et de referencement des informations prevues dans

le MIB, la structure de l’information de gestion20(SMI) [27].

3. Le protocole de communication entre le poste de gestion et les agents appele

SNMP [28].

ccitt(0) iso(1)joint−iso−ccitt(2)

org(3)

dod(6)

internet(1) <−− 1.3.6.1

directory(1) mgmt(2) experiments(3) private(4)

mib(1) <−− 1.3.6.1.2.1

system(1) interfaces(2) at(3) ip(4) icmp(5) tcp(6) udp(7)

enterprises(1)

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

....

Internet SMI

Fig. 1.8 – Identifiants des objets du Management Information Base.

Modes d’operation

Trois modes d’operation sont prevus par SNMP :

19traduction de : Management Information Base.20Structure of Management of Information.

Chapitre 1. Securite des reseaux d’ordinateurs 31

1. la lecture d’une valeur contenue dans le MIB par le poste de gestion(GET) ;

2. l’affectation d’une valeur a une variable du MIB(SET) par le poste de gestion ; et

3. la transmission d’une trappe (trap), d’un agent a un poste de gestion, contenant

un message qui traduit un changement important dans l’etat de l’agent.

Information disponible

Variable Reference relative (oid) Description

sysDescr.0 (.1.0) Une description de l’agent comprenant

le systeme d’exploitation en usage

et le type d’agent

sysObjectID.0 (.2.0) Description du role de la composante.

sysUpTime.0 (.3.0) Le temps en centieme de seconde

depuis que la composante a ete initialise.

sysContact.0 (.4.0) Le nom du responsable de la

composante ainsi que la methode

pour la rejoindre.

sysName.0 (.5.0) Le nom administratif assigne

a la composante.

La convention etant que ce nom doit etre

le nom de domaine de la composante.

sysLocation.0 (.6.0) l’emplacement physique ou la composante

est situee.

sysServices.0 (.7.0) Un identifiant numerique indiquant le

niveau de la couche OSI ou sont

offerts les services de cette

composante.

Tab. 1.1 – Contenu de la table system du MIB-2.

Tel qu’illustre dans la figure 1.8, l’arborescence du MIB compartimente l’information

par categorie. Par exemple, la section system, ayant comme referentiel 1.3.6.1.2.1.1.,

comprend les variables decrites dans la table 1.1. Ainsi, pour faire la lecture de la

variable sysContact d’une composante offrant le service SNMP, il suffit d’utiliser la

methode get pour l’oid 1.3.6.1.2.1.1.4.0.

Parmi les autres informations prevues par le RFC, il y a notamment celle concer-

nant :

1. les interfaces ;

Chapitre 1. Securite des reseaux d’ordinateurs 32

2. le nombre de connexions actives/passees ;

3. les statistiques de communication pour les protocoles de transport ainsi que les

protocoles ICMP et SNMP ;

4. les ports acceptant les communications ainsi que leur restriction ACL ;

5. les tables ARP ; et

6. les tables de routage.

[26] a prevu une section a remplir par les fabricants. Cette section, nomme enterprise,

contient l’information que les fabricants y ajoutent, conformement au standard [27].

La majorite des fabricants rendent disponible cette information, permettant ainsi de

developper des applications de gestion reseau, mais egalement d’elargir la portee des

attaques a ces tables. Dans le cas des routeurs et des commutateurs, la section enterprise

contient les parametres de configuration et, parfois, le mot de passe ou sa valeur hachee.

Securite du protocole SNMP

Comme plusieurs autres protocoles de gestion, SNMP est devenu quasi indispensable

au cours des deux dernieres decennies. Concu a une epoque ou la securite n’etait pas

l’objet de preocupations, il constitue encore aujourd’hui l’un des protocoles reseau les

plus faciles a exploiter.

La premiere version du protocole, notee SNMPv1, n’a aucune primitive de securite,

sauf certaines restrictions d’acces basees sur l’adresse source du poste de gestion. La

seconde version, SNMPv2, prevoit l’utilisation d’un secret partage. Les messages envoyes

sont munis de ce secret21.

Le protocole SNMP herite egalement des problemes de securite relatifs au protocole

de transport UDP. Agissant sans connexion, ce protocole est vulnerable a la tromperie22

et, donc, susceptible a plusieurs attaques.

Fuite d’information sensible depuis le protocole SNMP

Une quantite substantielle de routeurs et de commutateurs ont le service SNMP

active. Or, l’administrateur peut oublier de le fermer, ou encore il est necessaire pour

l’administration distante d’un routeur.21Il s’agit du nom de communaute, qui, pour la version 2 est parametrable. Pour la version 1, le nom

publique a habituellement les droits de lecture et le nom private, les droits de lecture et d’ecriture.22traduction du terme anglais spoofing.

Chapitre 1. Securite des reseaux d’ordinateurs 33

Dans le premier cas, l’attaque est tres simple, il s’agit d’utiliser, sous Unix, les outils

SNMP tels que snmpget, snmpset ou snmpwalk. Par exemple, avec un point d’acces

D-Link, l’utilisation de la commande snmpwalk s’effectue de la facon suivante :

snmpwalk −Os −c pub l i c −v 1 ip {d−l i n k } e n t e r p r i s e s

Cette derniere parcourt la section enterprises de MIB du routeur. Parmi les valeurs

recues se trouvent les entrees suivantes :

. . . e n t e r p r i s e s . 1 7 1 . 1 1 . 3 7 . 4 . 3 . 1 . 1 . 0 = STRING: ” l o g i n ”

e n t e r p r i s e s . 1 7 1 . 1 1 . 3 7 . 4 . 3 . 1 . 2 . 0 = STRING: ”motdepasse ” . . .

Le nom d’utilisateur et le mot de passe se trouvent non chiffre dans la configuration

du routeur. Plus inquietant encore, il suffit de dialoguer avec le routeur et le protocole

SNMP pour qu’ils transmettent les informations sensibles.

Grace a ces informations, l’attaquant peut, etablir une connexion Telnet en mode

administrateur sur le point d’acces en usant du nom d’utilisateur et du mot de passe

recus du routeur.

Attaque de force brute a l’aveugle du protocole SNMP sur UDP

Une des methodes de securisation du protocole SNMP est de permettre uniquement

les connexions provenant d’une source consideree comme fiable. Habituellement, cette

source est un autre ordinateur du reseau de l’entreprise ou un partenaire.

Cette attaque est plus complexe. L’agent SNMP victime requiert une cle de commu-

naute particuliere et permet uniquement les connexions de certaines sources autorisees.

Les prealables de l’attaque sont d’identifies :

1. l’organisation a laquelle appartient le routeur ;

2. Lip :la liste d’adresses Internet appartenant a l’organisation ; et

3. la publication du MIB fabricant le routeur.

L’utilisation des commandes whois et dig ainsi que des recherches Internet permette

generalement de trouver reponses aux trois etapes preliminaires. Il s’agit d’une phase

standard de reconnaissance.

Ensuite, il s’agit d’elaborer un petit programme qui, pour chaque element de la liste

Lip, forge un paquet SNMP ayant comme source l’element, le IP du routeur, le OID,

ainsi que la valeur a changer.

Chapitre 1. Securite des reseaux d’ordinateurs 34

Certe, l’attaquant ne peut pas lire les resultats des requetes mais, en connaissant un

OID particulier, il peut le modifier a distance lorsqu’il trouve enfin le bon IP et le bon

secret.

1.6 Synthese des attaques

Les attaques reseau repertoriees font principalement parties des couches liaison et

reseau.

1.6.1 Attaques de niveau 2

Ces vulnerabilites visent principalement les protocoles ayant des responsabilites sur

le flux des donnees sur le reseau Ethernet. La figure 1.9 represente les vulnerabilites des

protocoles de la couche liaison. En somme, l’attaquant reussit a alterer ou a controler

l’aiguillage des trames sur le reseau Ethernet.

application

transport

réseau

liaison

physique

application

transport

réseau

liaison

physique

liaison

physique

Serveur Client

Attaquant

L’attaquant altere letransfert des trames.

Fig. 1.9 – Attaques au niveau de la couche liaison de donnees.

Cet aiguillage lui permet de forcer un deni de service ou de s’immiscer dans le flux

de la communication, causant un MiM. A ce niveau, la portee des attaques est limitee

au reseau Ethernet.

1.6.2 Attaques de niveau 3

Ces vulnerabilites affectent les protocoles responsables du routage et de l’adminis-

tration des reseaux. Encapsulee dans un paquet IP, la portee de l’attaque ne se limite

Chapitre 1. Securite des reseaux d’ordinateurs 35

plus a un reseau Ethernet, elle est inter-reseau et permet d’alterer le routage des paquets

distants.

application

transport

réseau

liaison

physique

application

transport

réseau

liaison

physique

liaison

physique

reseau

Serveur Client

Attaquant

L’attaquant altere leroutage des paquets.

Fig. 1.10 – Attaques au niveau de la couche reseau.

1.6.3 Propriete des vulnerabilites des protocoles

Il est desormais possible d’extraire de chaque protocole les capacites acquises par

un attaquant qui reussit a exploiter correctement les failles de securite des protocoles.

Les failles de securite ici repertoriees sont inherentes aux protocoles et ont ete concues

vulnerables23. Des failles telles que le deni de service Cisco par des paquets IPv4 et

IPv6 [31] [32] malicieux, ou tout autre deni de service issu d’une faille d’implantation,

ne sont pas pris en consideration.

23traduction de l’expression : flawed by design.

Chapitre 1. Securite des reseaux d’ordinateurs 36

Tab. 1.2 – Capacites acquises par les protocoles exploites.

identification MiM DOS fuite d′information

ARP • •

V LAN

STP • •

CDP • •

HSRP • •

IRDP • •

RIP • •

OSPF • •

HSRP • •

ICMP • • •

IP •

SNMP • • • •

Chapitre 2

Algebres de processus

Introduction

Ce chapitre, dedie aux algebres de processus, se revele d’une utilite appreciable pour

la lecture et la comprehension de la derniere partie du memoire, c’est-a-dire les travaux

originaux. Il s’agit d’une introduction aux algebres de processus et d’un apercu de l’etat

de l’art.

Le dictionnaire definit le terme processus comme une serie d’actions ou d’evene-

ments, tandis qu’une algebre est un langage ayant des regles syntaxique et semantique.

Une algebre de processus est une technique de description formelle pour des systemes

complexes, plus particulierement ceux qui communiquent et s’executent en parallele.

Au cours des 20 dernieres annees, plusieurs algebres ont ete developpees, dont les plus

connues sont certainement ACP, CCS et TCSP. Ces algebres offrent une base commune

que voici :

1. Une modelisation compositionnelle : les algebres de processus fournissent un en-

semble restreint de constructions ce qui permet toutefois de construire des sys-

temes d’envergure en composant avec de plus petits systemes. Par exemple, CCS

comporte cinq operateurs dont un de composition.

2. Une semantique operationnelle : les algebres de processus sont generalement equi-

pees d’une semantique operationnelle structurelle (SOS) de Plotkin [3] decrivant

les actions atomiques des capacites d’un systeme. En utilisant les SOS, les sys-

temes peuvent etre representes par les formules d’une algebre, puis convertis en

Chapitre 2. Algebres de processus 38

systemes de transitions d’etats1.

3. Un raisonnement sur les comportements : les algebres de processus ont la possi-

bilite d’utiliser les relations d’equivalences pour definir des equivalences de com-

portement de systemes ou les preordres pour des notions de raffinement entre

systemes.

Approche generale

L’approche generale de verification de systeme avec les algebres de processus consiste,

d’une part, a exprimer un systeme SY S et, d’autre part, a decrire d’un point de vue

macroscopique le comportement souhaite du systeme, SPEC. Il est alors possible d’eta-

blir que le systeme SY S respecte les specifications SPEC avec l’equivalence ou, qu’il

raffine SPEC avec la notion de preordre.

L’etablissement de la veracite de SY S en relation avec SPEC peut s’effectuer de

facon syntaxique ou de facon semantique. Dans le premier cas, il s’agit d’axiomatiser la

relation de comportement de facon a demontrer qu’une expression peut etre transformee

en une autre via des manipulations syntaxiques. Dans le deuxieme cas, il s’agit de definir

directement la relation de comportement et la semantique operationnelle de facon a

demontrer qu’elles sont associees.

Les avantages de l’approche algebrique sont les suivants :

1. l’ingenieur du systeme n’a qu’un seul langage a apprendre ;

2. les processus associes peuvent etre substitues les uns aux autres ; et

3. les processus peuvent etre minimises.

Provenance

Les algebres de processus peuvent etre percues comme etant une generalisation de

la theorie classique des langages formels et des automates [2], portant precisement sur

la specification et le comportement des systemes plutot que sur la generation et la

reconnaissance du langage. Les algebres de processus cadrent aussi avec le principe des

1Traduction de : state transition diagram.

Chapitre 2. Algebres de processus 39

automates cellulaires [1]. En effet, une cellule interagit avec son environnement et adopte

une reaction appropriee tout en ajoutant des notions telles que la programmabilite, le

non determinisme, la topologie dynamique, et le comportement adaptatif.

Les algebres de processus constituent une base importante pour l’ingenierie des sys-

temes en fournissant un support a la specification, a la verification, a l’implantation, aux

tests ainsi qu’aux autres etapes du cycle de vie des activites critiques de ces systemes.

Plusieurs autres domaines gagnent a utiliser les algebres de processus, comme l’ingenie-

rie des langages de programmation et leur semantique, la theorie de la complexite, la

programmation temps-reel, l’analyse et la modelisation des performances.

Organisation

Ce deuxieme chapitre couvre trois algebres de processus qui peuvent etre utilisees

pour modeliser le comportement des composantes reseau presentees au premier cha-

pitre. La premiere algebre, CCS, est une algebre de processus pure, qui se concentre

uniquement sur la synchronisation des processus. La seconde, est le π-calcul, version

evoluee de CCS, porte sur la nature et les vecteurs de communication inter-processus.

Finalement, le calcul Ambient, base sur le π-calcul, ajoute une notion additionnelle de

representation spatiale des processus.

2.1 CCS

2.1.1 Introduction

A ce jour, CCS est sans contredit l’algebre de processus la plus connue. Cette algebre,

developpee par Milner au cours des annees 70, est l’objet d’une premiere publication

1980 intitulee a Calculus of Communicating System [7]. Quelques reeditions, issues de

l’evolution de la theorie, apparaissent au cours des annees suivantes [8][9]. Cette algebre

est la premiere sur le sujet et aura une influence marquante sur le developpement des

algebres de processus pour les decennies a venir.

L’algebre CCS poursuit deux principaux objectifs en regard des systemes complexes ;

le premier etant leur observation, le second, l’etude de leur structure. Cette observa-

tion vise, de facon suffisamment exhaustive, a decrire la concurrence des systemes pour

Chapitre 2. Algebres de processus 40

determiner avec precision les comportements qui seront vus ou experimentes par un

observateur. Ainsi, aucune distinction entre deux systemes est visible sans les desas-

sembler pour etudier leur fonctionnement interne. Le second objectif consiste a etudier

la structure de ces systemes afin de mettre en lumiere la concurrence des agents les

constituant ; ces agents qui communiquent et se synchronisent mutuellement.

En fait, ces objectifs peuvent etre consideres comme un seul et meme puisque, lors de

l’elaboration de cette theorie, Milner considere que l’observation d’un systeme s’effectue

en communiquant avec celui-ci ; l’observateur et le systeme formant un plus grand sys-

teme. Consequemment, l’observation et la communication etant indissociables, observer

un systeme ne peut se faire sans interagir avec lui. Par ailleurs, Milner voit en CCS plus

qu’une algebre, notamment en considerant la derivation des expressions qui joue un role

important dans la description du dynamisme des comportements.

CCS permet de modeliser les systemes et leurs interactions. L’entite representant

l’expression d’un systeme en CCS est un processus, aussi appele agent. Ainsi, la notation

P α−−→ Q denote un processus P pouvant effectuer l’action α et se comporter par la

suite comme le processus Q.

Il est interessant de noter que durant l’elaboration de sa theorie, Milner a base son

raisonnement sur les arbres de synchronisations(AS). Ceux-ci s’apparentent a l’expres-

sion du comportement des systemes. C’est pourquoi tout processus CCS possede un

arbre de synchronisation qui lui est propre. Les AS s’apparentent egalement aux dia-

grammes de transitions d’etats. Les arcs et les noeuds de ces diagrammes representent

respectivement les actions et les etats du systeme modelise. Chaque action effectuee

par un processus peut etre une action invisible, interne au processus, ou une action de

synchronisation avec un processus de son environnement.

Tout processus CCS est exprime selon les regles syntaxiques du tableau 2.1, abordees

a la section suivante, et evolue selon des regles de derivation particulieres presentees a

la section 2.1.3.

2.1.2 Syntaxe

Tab. 2.1 – Syntaxe de CCS.

P ::= 0 α.P P P + P P | P P [f ] P \ L

Chapitre 2. Algebres de processus 41

Definition 1 Soit un ensemble A = {a, b, c, ...} d’action atomique realisable par les

processus. Soit A = {a, b, c, ...} l’ensemble des co-actions. Soit τ l’action intra-systeme

aussi appelee action silencieuse. L’alphabet Act d’actions correspond a :

Il est a noter que les actions α et α sont complementaires. La fonction − est une

bijection sur l’ensemble Act, qui peut etre etendue a tous ces sous-ensembles.

Voici un exemple pour illustrer la definition 1. Dans le contexte precis d’interac-

tion et d’observation d’un systeme complexe tel qu’un reseau telephonique, l’action

click correspond au decrochage du telephone. Inversement, la co-action click represente

l’etablissement d’un circuit entre le combine et la centrale telephonique. Cette action est

une reaction directe et simultanee du systeme telephonique a l’action click. Du point de

vue d’un technicien observant le systeme, l’action τ represente le changement invisible

d’etat du systeme. Ce dernier n’experimente ni click ni sa co-action click. L’etat du

systeme telephonique a pourtant change quoique cette action a ete silencieuse.

Definition 2 Soit I, l’ensemble des identifiants de processus. Soit P l’identifiant d’un

processus. Tout P ∈ I est exprime selon les regles de syntaxe enumerees au tableau 2.1.

Le syntagme 0 represente l’inaction d’un processus. Il peut egalement etre represente

par le processus nil. Un processus P evoluant vers 0 est devenu inerte, il n’interagit plus

avec l’environnement. L’operateur prefixe . represente toujours un processus pouvant

faire une action. Dans ce cas, α.P effectue l’action α pour ensuite se comporter comme

P . L’operateur de composition + est l’operateur non deterministe. Il represente, dans

le cas P + Q, le processus pouvant se comporter comme P ou Q. P | Q est la

composition parallele du processus P et Q. P et Q peuvent evoluer separement ou de

maniere synchronisee pour former une action silencieuse. P [f ] est le processus dans

lequel une substitution f de la forme x → y a ete effectuee, tandis que le processus

P \ L est le processus ayant une restriction sur l’ensemble L.

Les operateurs binaires + et | respectent les lois suivantes2 :

associativite Pσ(QσR) = (PσQ)σR

commutativite PσQ = QσP

nullite3 Pσ0 = P

La section suivante presente les regles de derivation des processus sous la forme

d’une semantique operationnelle.

2L’operateur σ est generique et represente respectivement les operateurs + et |.

Chapitre 2. Algebres de processus 42

Tab. 2.2 – Semantique operationnelle de CCS.

Prefixage :�

α.P α−−→ P

Definition :

R α−−→ Q,Pdef= R

P α−−→ Q

Composition :

P α−−→ P ′

P + Q α−−→ P ′

Q α−−→ Q′

P + Q α−−→ Q′

Entrelacement

P α−−→ P ′

P | Q α−−→ P ′ | Q

Q α−−→ Q′

P | Q α−−→ P | Q′

Synchronisation :

P α−−→ P ′, Q α−−→ Q′

P | Q τ−−→ P ′ | Q′

Restriction :

P α−−→ P ′

P \ L α−−→ P ′ ssi α /∈ L U L

Renommage :

P α−−→ P ′

P [f ] f(α)−−−−−→

P ′[f ]

2.1.3 Semantique operationnelle

La semantique operationnelle de CCS est presentee au tableau 2.2 ; elle definit de

facon formelle le role de chaque operateur. L’operateur de base est celui de prefixage et

exprime la possibilite du processus a effectuer une action quelconque. Par exemple, le

processus reboot.P peut executer l’action reboot et se comporter par la suite comme le

processus P . Cette execution s’ecrit :

reboot.P reboot−−−−−−→ P

De meme, le processus α.β.0 ne peut qu’effectuer de facon sequentielle les actions α et

β et devenir inactif. Comme tout processus CCS, α.β.0 possede un arbre de synchroni-

sation qui lui est propre. Cet arbre est represente a la figure 2.1.

L’operateur de definition,def=, permet d’assigner un processus a un identifiant. Nous

Chapitre 2. Algebres de processus 43

Fig. 2.1 – Arbre de synchronisation du processus α.β.0

a

b

pouvons definir des processus recursifs comme suit :

Terredef= tourne.Terre

Ce processus represente le processus Terre qui tourne indefiniment.

Les operateurs non deterministes + et | sont respectivement les operateurs de com-

position et d’entrelacement.

Le premier operateur represente un choix binaire. Le processus suivant :

P2

def= α.β.Q + γ.δ.R

illustre l’utilisation de l’operateur +. Son evolution prend l’une des formes suivantes :

α.β.P + γ.δ.Q α−−→ β.P β−−→

P

α.β.P + γ.δ.Q γ−−→

δ.Q δ−−→ Q

Cette evolution est non deterministe et correspond a l’arbre de synchronisation illustre

a la figure 2.2. Selon l’action initiale a ou g, l’arbre resultant sera b.P ou d.Q.

Fig. 2.2 – Arbre de synchronisation du processus P2.

a

b

g

d

P Q

Chapitre 2. Algebres de processus 44

L’operateur |, dit d’entrelacement, permet a deux processus d’evoluer en parallele.

Par exemple, un processus SY S1

def= P | Q ou P

def= x.0 et Q

def= x.0. SY S1 a trois

evolutions possibles :

1. P se synchronise avec l’environnement : (x.0 | x.0) x−−→ (0 | x.0)

2. Q se synchronise avec l’environnement : (x.0 | x.0) x−−→ (x.0 | 0)

3. P et Q se synchronisent mutuellement : (x.0 | x.0) τ−−→ (0 | 0)

Les deux premiers cas sont determines par la regle Entrelacement et le dernier, par

la regle Synchronisation de la semantique operationnelle du tableau 2.2.

Puisque l’evolution du systeme SY S1 est non deterministe, il est impossible de pre-

voir quelle sera l’evolution de SY S1. Toutefois, il est possible de restreindre le processus

et, pour ainsi dire, l’empecher de communiquer avec son environnement. C’est l’opera-

teur \ est responsable de cette restriction.

L’operateur de restriction prohibe certaines synchronisations avec l’environnement.

Autrement dit, l’operateur specifie les actions internes a un processus. Dans le cas d’un

systeme SY S2 = (SY S1 | y.R) \ {x}, le systeme ne pourra qu’effectuer les actions

suivantes :

SY S1 | y.R τ−−→ SY S ′

1 | y.R

SY S1 | y.R y−−→

SY S1 | R

Les actions x et x etant prohibees avec l’environnement, seules les actions τ ou y

(y) sont permises.

Le dernier operateur, celui du renommage, est celui de derniere importance. N’of-

frant aucune expressivite supplementaire, il permet toutefois de simplifier l’ecriture et

d’illustrer un changement apporte a un systeme de facon conviviale. f est une fonction

de renommage : f : Proc. → Proc.. Elle prend un processus en entree et retourne un

processus substitute. Cette utilite peut etre illustree dans l’exemple suivant.

Soit les processus ci-dessous :

Pdef= x.y.P ′

Qdef= x.y.Q′

SY S3

def= x.y.0 | y.y.R | x.y.P ′ | y.x.y.0

une substitution de P par Q s’effectue comme suit :

SY S3[P/Q] ≡ x.y.0 | y.y.R | x.y.Q′ | y.x.y.0

Chapitre 2. Algebres de processus 45

2.1.4 Sommaire et evolution du langage

Des efforts ont ete apportes pour permettre de raisonner non seulement sur la syn-

chronisation des processus mais egalement sur la nature des valeurs echangees. Cette

version de CCS, abordee par Milner en [33], est habituellement appelee la version full

CCS ou value-passing CCS (CCS-VP). Cette derniere, est plutot abstraite puisque

l’attention est portee sur les variables et non sur le domaine des valeures echangees.

Seules les variables etant passees en parametre, les canaux de communication sont,

pour leur part, statiques. Alleger le langage du caractere statique des canaux represente

un tour de force colossal et resulte en un langage tres expressif, soit le π-calcul. Ce

dernier est considere comme l’evolution meme du CCS-VP et est presente a la section

suivante.

2.2 π-calcul

2.2.1 Introduction

Le π-calcul [37] est un modele mathematique de processus qui, lors de l’interac-

tion des processus, permet de modifier la topologie des canaux de communication. La

singularite de ce calcul est le transfert des canaux de communication entre processus.

Le processus recevant un canal peut utiliser ce dernier pour poursuivre l’interaction

avec l’environnement et de nouveaux processus. Le passage de canaux s’apparente aux

notions de controle d’acces et a l’acces de ressources ; il procure au π-calcul toute sa

puissance expressive.

Bien que le π-calcul puisse etre considere comme une forme specialisee de CCS-VP,

il offre une expressivite accrue en considerant la migration de la portee de variables

echangees. Cela constitue toute la puissance expressive du π-calcul.

2.2.2 Syntaxe

Soit un ensemble N de noms parcouru par les metavariables a, b, c, ..., z, et un en-

semble I d’identifiants d’agents, parcouru par les metavariables P , Q, R. L’ensemble

des agents possibles, aussi appele processus, est represente par la table 2.3. Ils peuvent

Chapitre 2. Algebres de processus 46

Tab. 2.3 – Syntaxe du π-calcul.

Prefixes α ::= ax emission

a(x) reception

τ silencieux

Agents P ::= 0 nul

α.P prefixe

P + P sommation

P | P parallele

if x = y then P egalite

if x 6= y then P inegalite

(νx)P restriction

A(y1, ..., yn) identifiant

Definitions A(x1, ..., xn)def= P (tel que i 6= j ⇒ xi 6= xj)

prendre les formes suivantes :

1. L’agent nul 0 : Il represente un processus qui n’evolue plus, qui est inerte.

2. Un prefixe d’emission ax.P : Le processus emet sur le port a le message x et se

comporte ensuite comme P .

3. Un prefixe de reception : a(x).P : Le processus recoit sur un canal a une variable

x. Apres reception, le processus se comporte comme P .

4. Un prefixe silencieux τ.P : Le processus evolue en P sans interagir avec l’environ-

nement. Cette action est intrinseque a l’agent.

5. La sommation P + Q : Le processus P +Q a l’opportunite de se comporter comme

P ou Q de facon non deterministe. La sommation peut egalement prendre la forme

suivante∑

i∈IPi pour representer i opportunites distinctes de comportements au

sein d’un agent.

6. La composition parallele P | Q : Aussi appele entrelacement, le processus peut

faire evoluer de facon independante le processus P , le processus Q, ou faire mu-

tuellement communiquer les processus P et Q dans le cas ou ils ont un canal

commun de communication.

7. L’egalite if x = y then P : Le processus se comporte comme P dans la mesure

ou x et y sont egaux sinon, il se comporte comme 0.

8. L’inegalite if x 6= y then P : Le processus se comporte comme P advenant le cas

ou x et y ne sont pas egaux sinon, il se comporte comme 0.

Chapitre 2. Algebres de processus 47

9. La restriction (νx)P : Le processus se comporte comme P avec une restriction

sur l’utilisation du nom x, c’est-a-dire que P ne peut communiquer avec son

environnement avec le canal de communication x. L’usage du nom x se limite aux

communications internes au processus P .

10. Un identifiant A(y1, ..., yn) ou n est l’arite de A. Tout identifiant a une definition

de la forme A(x1, ..., xn)def= P ou A(y1, ..., yn) se comporte comme P avec les

variables xi substituees par yi (yi ∈ {y1, ..., yn} sont mutuellement distincts). La

definition d’un agent peut s’apparenter a la declaration d’une fonction tandis que

l’identifiant represente l’invocation de la fonction.

La semantique operationnelle du π-calcul est presentee au tableau 2.4.

2.2.3 Notions de noms libres et lies

Le prefixe a(x).P lie x dans P . Toutes les occurrences de x dans P sont dites lies.

Contrairement au prefixe d’emission ax.P , x n’est pas lie dans P . Le prefixe a un sujet

a et un objet x, ou l’objet est dit libre dans le prefixe d’emission et lie dans le prefixe de

reception. Le prefixe silencieux τ n’a ni sujet ni objet. L’operateur de restriction (νx)P

lie egalement x a P . Il est l’homonyme de l’operateur \ en CCS.

Contrairement a CCS-VP, ou les restrictions sont intrinseques a un processus, les

restrictions π-calcul sont mobiles. Puisque π-calcul ne fait pas de distinction entre l’emis-

sion d’un canal et d’une variable, la restriction sur un canal doit, en π-calcul, suivre

le canal en question. Cette mobilite de la portee des restrictions est la principale com-

plexite du π-calcul et la raison de sa grande expressivite.

D’un point de vue plus formel, les ensembles des noms libres et lies dans l’agent P

sont respectivement representes par les fonctions fn(P ) et bn(P ). L’ensemble des noms

lies de P , bn(P ), est defini de tel sorte qu’il contient tous les noms lies en P et, que

si A(x)def= Q alors bn(A(x)) = bn(Q) ou x = x1, ...xn. Finalement, n(P ) est l’ensemble

fn(P ) ∪ bn(P ) des noms de P .

2.2.4 Congruence structurelle

La syntaxe d’ecriture d’agent etant tres concrete, des agents dotes de la meme

fonction sont differencies par ce manque d’abstraction. Par exemple, des agents P | Q

et Q | P representent la meme chose : une composition parallele des agents P et Q.

Chapitre 2. Algebres de processus 48

Tab. 2.4 – Semantique operationnelle du π-calcul.

STRUCT:

P ′ ≡ P, P α−−→ Q,Q ≡ Q′

P ′ α−−→ Q′

PREFIXE:−

α.P α−−→P

SUM:

P α−−→P ′

P + Q α−−→P ′

MATCH:

P α−−→P ′

if x = x then P α−−→P ′

MISMATCH:

P α−−→P ′, x 6= y

if x 6= y then P α−−→P ′

PAR:

P α−−→ P ′, bn(α) ∩ fn(Q) = ∅

P | Q α−−→ P ′ | Q

COM:

P a(x)−−−−→

P ′, Q au−−−→ Q′

P | Q τ−−→ P ′{u/x} | Q′

RES:

P α−−→ P ′, x /∈ n(α)

(νx)P α−−→ (νx)P ′

OPEN:

P ax−−−→ P ′, a 6= x,w /∈ fn((y)P ′)

(νx)P aνx−−−−→ P ′

Chapitre 2. Algebres de processus 49

De facon intuitive, il appert que ces processus sont equivalents. Par contre, d’un point

de vue syntaxique, ces agents sont distincts. Afin d’etablir une correspondance entre

la syntaxe et la structure d’un agent, il importe de definir une notion de congruence

structurelle.

Plusieurs formes de congruences structurelles existent dans la litterature, quoique au-

cune definition canonique existe et que chacune d’elles a son merite. Voici une congruence

structurelle fonctionnelle.

Conguence structurelle La congruence structurelle≡, est definie comme la congruence

la plus simple et respecte les regles suivantes :

1. Si P et Q sont des variants par l’α-conversion, alors P ≡ Q

2. Les operateurs + et | sont commutatifs (P | Q ≡ Q | P ), associatifs ((P | Q) | R ≡

P | (Q | R)), et respectent P | 0 ≡ P

3. Les lois de la migration de portes suivantes :

(a) (νx)0 ≡ 0

(b) (νx)(P | Q) ≡ P | ((νx)Q) si x /∈ fn(P )

(c) (νx)(P + Q) ≡ P + (νx)Q si x /∈ fn(P )

(d) (νx)if u = v then P ≡ if u = v then (νx)P si x 6= u ∧ x 6= v

(e) (νx)if u 6= v then P ≡ if u 6= v then (νx)P si x 6= u ∧ x 6= v

(f) (νx)(νy)P ≡ (νy)(νx)P

2.2.5 Mobilite et migration de la portee des restrictions

Le processus suivant, y(x).P , evolue vers P via une action d’emission arbitraire sur

le port de communication y. Le cas echeant, cette evolution vers P selon les regles

de la semantique s’appelle combinaison hative, dans le cas ou une valeur recue sur le

canal y est immediatement substituee dans le processus P . Dans le cas du π-calcul, la

combinaison est dite tardive puisque l’assignation est effectuee plus tard. Considerant

le delai de l’assignation, les regles de transition de la semantique operationnelle doivent

prevoir des restrictions sur les variables recues. Par exemple, pour effectuer la regle

(PAR), l’action α doit satisfaire bn(α) ∩ fn(Q) = ∅ de telle sorte qu’il n’y ait pas

d’interference entre le processus P et Q.

Chapitre 2. Algebres de processus 50

Communication des occurrences liees

Les communications d’occurrences liees sont particulieres et n’ont pas d’equivalent

en CCS. Cette particularite tient du fait que ce type de communication peut elargir ou

reduire la portee des occurrences suite a une transition.

Elargissement de portee Dans le cas du processus suivant,

(νx)(yx.P ′ | R) | y(z).Q | S τ−−→ (νx)(P ′ | R | Q{x/z}) | S

la transition du processus elargit la portee de x. P et R, partagent l’occurrence liee x,

et elargissent la portee de x a Q en lui emettant la valeur liee x sur le port y dans le

cas ou x /∈ fn(Q). Ce processus est illustre a la figure 2.3.

x

xx

xx

y yP P

R R

QQ

t

Fig. 2.3 – Elargissement de portee d’une occurrence privee.

Reduction de portee Pour ce second processus,

(νx)(yx.P | R) | y(x).Q τ−−→ P | (νx)(R | Q)

la transition du processus reduit la portee de x. Cette reduction de portee est possible

seulement si, apres la transition, x /∈ fn(P ). P , n’ayant plus la reference x vers R, est

exclus de la portee de x. Nous pouvons egalement dire qu’il y a eu migration de portee

de P vers Q. L’illustration du second processus se trouve a la figure 2.4.

Tel qu’illustre dans les figures 2.3 et 2.4, les canaux sont representes par des lignes.

Les canaux prives ont leurs noms aux extremites tandis que les canaux publiques ont

leurs noms au centre. Les lignes pointillees indiquent la portee de la variable x. Dans le

cas ou x ∈ fv(Q′), les occurrences libres de x dans Q′ se retrouvent accidentellement

Chapitre 2. Algebres de processus 51

x

x

yP

R

Q

t

yP Q

x

x

R

Fig. 2.4 – Reduction de la portee d’une occurrence privee.

liees a cet elargissement de portee. Dans un tel cas, une α-conversion du x doit etre

effectue dans l’agent resultant

(νx)(yx.P | R) | y(z).Q | S τ−−→ (x′)(P{x′/x} | R{x′/x} | Q{x′/z}) | S

ou x′ est un nom nouvellement cree4

2.2.6 Variantes du π-calcul

Version polyadique

La premiere variante de l’algebre s’appelle la version polyadique du π-calcul [36]. Par

opposition a la version standard du π-calcul, version monoadique du calcul, la version

polyadique permet le passage de plusieurs valeurs simultanement lors d’une seule et

meme emission. Par exemple, pour deux vecteurs x et y, la version polyadique du calcul

permet l’evolution suivante :

a(x).P | a〈y〉 τ−−→ P{y/x} | Q

Comme la version monoadique, {y/x} represente une substitution. Dans ce cas de

figure, la substitution est une fonction injective pour laquelle chaque variable yi est

renommee par la variable xi correspondante.

Pour eviter les inconsistances, la version polyadique standard prevoit que les vecteurs

y et x soient de meme arite. Plusieurs travaux portent sur l’extension de la version

4aussi appele nom frais.

Chapitre 2. Algebres de processus 52

polyadique du calcul, notamment sur des systemes de types pour les vecteurs emis et

recus.

Version d’ordre superieur

Sur le continuum de l’evolution de la version monoadique et polyadique du π-calcul

se trouve le π-calcul d’ordre superieur [37]. Cette version du calcul permet desormais

de passer en parametre des processus entiers. Soient les variables X,Y, Z, un processus

a desormais deux nouveaux prefixes : a(X) et a〈X〉. Ces prefixes representent respec-

tivement la reception d’un agent dans un recepteur X et l’emission d’un agent X tel

qu’illustre dans l’exemple suivant

a〈bu.0〉.b(x) | a(X).(X | cv) τ−−→ b(x) | bu.0 | cv

Le processus emis, bu.0 est transfere en totalite et peut evoluer lors de la prochaine

transition.

Ce type de transition offre un interet certain, neanmoins une attention particuliere

doit etre portee a l’effet de bord suivant :

a〈bu.0〉.b(x) | a(X).(X | cv.P ) τ−−→ b(x) | bu.0 | cv.bu.P{bu.0/X}

Tel que modelise ci-dessus, la duplication d’un processus, dans le cas ou des occur-

rences de X se trouvent dans P , peut entraıner certaines complications. Par exemple,

le processus passe en parametre se trouve lie a toutes les occurrences liees de X dans

P . Bien que cela puisse etre considere comme une caracteristique interessante, elle peut

egalement causer certains problemes de duplicat.

Encore faut-il definir une semantique juste qui sera suffisamment restrictive pour

eviter les effets indesirables. Il serait egalement interessant de proposer un systeme de

types pour les agents en transit.

2.2.7 Passage d’une structure de donnees

Plusieurs autres extensions du π-calcul existent et, au fur et a mesure que de nou-

veaux besoins apparaissent, d’autres extensions seront formees. L’approche du develop-

pement d’extensions est fonctionnelle mais peut parfois etre remplacee par une construc-

tion algebrique. A titre d’exemple, des constructions algebriques du π-calcul monoadique

Chapitre 2. Algebres de processus 53

approximent tres bien les besoins qui ont motive la creation de la version polyadique

du π-calcul.

Pdef= xu.xv.P

Qdef= x(y).x(z).Q′

Rdef= x(y).x(z).R′

Dans le cas ou P , la structure de donnees tuple, doit transmettre (u,v) a un meme

processus dans l’environnement (νx)(P | Q | R). Ce tuple, une valeur atomique, doit

etre transmis dans sa totalite pour avoir une signification. La structure du processus P

ne peut garantir qu’un meme processus acquiert la totalite du tuple, tel que l’illustrent

les transitions suivantes :

(νx)(P | Q | R) τ−−→ τ−−→ (νx)(P ′ | x(z).Q′ | x(z).R′)

Suite a ces transitions, le tuple du processus P est denature puisque u et v ont ete

scindees. Le calcul polyadique repond adequatement a ce probleme quoiqu’il s’avere

possible de preserver l’integrite du tuple grace a une construction monoadique :

Pdef= (νt)(xt.P ′ | tu.tv.0)

Qdef= x(w).w(y).w(z).Q′

Rdef= x(w).w(y).w(z).R′

L’evolution de ce nouvel environnement offre deux finalites, soit :

(νx)(P | Q | R) τ−−→ τ−−→ τ−−→ (νx)(P ′ | R′ | Q)

ou

(νx)(P | Q | R) τ−−→ τ−−→ τ−−→ (νx)(P ′ | R | Q′)

Ainsi, le tuple est transmis en totalite au processus Q ou au processus R sans qu’il soit

denature. Cette nouvelle construction n’est qu’un exemple de l’expressivite du π-calcul

et un exemple pertinent de construction algebrique usant de l’elargissement de portee

d’un nom prive. Plusieurs autres besoins peuvent etre combles a l’aide de constructions

plus complexes, telles que presentees dans la derniere partie de ce memoire.

2.3 Semantiques de non-entrelacement

Les algebres de processus peuvent etre enrichies grace a une notion de localite qui

decrit, de facon explicite, la distribution spatiale des processus. Les localites representent

Chapitre 2. Algebres de processus 54

des entites physiques ou, plus generalement, des unites de distribution dans lesquelles

les processus sont regroupes en fonction de criteres de partage de ressources. Au sein

de processus concurrent, les localites sont naturellement associees avec des groupes

de composantes paralleles. Les localites interviennent au sein de la semantique des

processus et influencent les comportements observables.

Au debut des annees 90, les localites ont ete ajoutees pour permettre le non-

entrelacement5 des algebres de processus. Ce non-entrelacement permet de discriminer

les processus paralleles, ajoutant ainsi une nouvelle forme de restriction visant l’inter-

action entre processus.

Recemment, les localites sont apparues dans plusieurs nouvelles algebres pour ex-

primer les processus mobiles. Ces nouvelles algebres exposent la mobilite, de facon a

permettre aux agents de raisonner selon leur distribution spatiale. Dans ces nouveaux

calculs, les localites sont non seulement des unites de distribution mais egalement des

unites de communication, de migration, d’echec et de securite. Une algebre destinee a

l’expression de la mobilite et de la securite est l’objet de la section suivante.

2.4 Calcul Ambient

Le calcul Ambient a ete developpe par Cardelli et Gordon [6] au cours des annees

90. L’objectif de leurs travaux etait d’offrir un calcul qui permettaient d’exprimer tout

les aspects de la mobilite, en visant principalement les agents mobiles et le code mobile.

L’inspiration de ce travail provenait du potentiel de la mobilite des agents sur Internet.

La distribution geographique des composantes d’Internet fait naturellement reference

aux paradigmes de cette mobilite notamment a la gestion de la bande passante et du

delai. La formalisation du deplacement des agents au sein des langages de haut-niveau

demeure un terrain en friche, ouvrant ainsi la porte a cette nouvelle application des

methodes formelles.

La principale difficulte des agents mobiles n’est pas la mobilite en soi, mais plutot la

consideration des domaines administratifs. Anciennement, l’adressage des ordinateurs

presents sur Internet avait un adressage plat6, c’est-a-dire unidimensionnel. Il suffi-

sait de connaıtre l’adresse IP d’une machine pour communiquer avec elle. Aujourd’hui,

considerant que la plupart des domaines ont leurs propres controles d’acces et ce, pour

l’entree et la sortie des flux d’information, la segregation en domaines administratifs

5traduction du terme anglais : noninterleaving.6traduction de flat space model.

Chapitre 2. Algebres de processus 55

complique les communications : l’espace d’adressage n’est plus plat mais presente une

arborescence de domaines administratifs. De la sorte, un agent mobile desireux de se

deplacer d’un domaine A a un domaine B devra acquerir la permission de quitter le

premier domaine et obtenir la permission d’entrer dans le second. Cette gestion des

autorisations peut etre effectuee a tous les niveaux de l’arborescence, necessitant une

gestion d’autorisation multi-paliers.

Le calcul Ambient provient originalement du π-calcul. et constitue une evolution

majeure grace a l’ajout de l’ambient. L’ambient est un lieu clos, tel que defini dans

le π-calcul, ou des processus evoluent. Egalement considere comme une frontiere, il

delimite ce qui est accessible de ce qui ne l’est pas. Plusieurs exemples de codes et

d’agents mobiles se representent bien au moyen des ambients, notamment : un applet

(delimite par un fichier), un espace d’adressage virtuel (delimite par le segment de

memoire alloue), et un ordinateur portable (delimite par ses ports de communication).

A l’inverse, un thread (ou la frontiere des ressources accessibles est floue) et tout autre

lien logique ou abstrait qui peut y avoir entre certaines collections d’objets ne constitue

pas un exemple.

Un ambient peut contenir d’autres ambients, permettant ainsi l’organisation hierar-

chique des ambients telle que cela fut expose avec les domaines administratifs.

Considere comme une meme unite atomique, l’ambient se deplace entierement. Si

un ordinateur portable se deplace du bureau a la maison, l’ensemble des ressources se

deplacement egalement.

Le nom de l’ambient est un concept important puisqu’il sert a l’identification de

l’ambient et a son controle d’acces. Il est une entite qui peut etre creee, passee et a

partir de laquelle il est possible d’extraire des capacites. Habituellement, le vrai nom

d’un ambient ne sera pas transmis, seules des capacites specifiques le seront.

2.4.1 Primitive de mobilite

Les primitives du calcul sont de deux types : l’une de mobilite et l’autre de com-

munication. La syntaxe des primitives de mobilite est explicitee au tableau 2.5. Les

premiers operateurs propres aux processus que sont la restriction (ν n), l’inaction 0 et

la composition parallele P |Q, ont le meme sens qu’en π-calcul. Pour sa part, la replica-

tion !P est une composition parallele de processus identique. Sa definition est recursive

et prend la forme suivante !P ≡ P | !P . Les primitives n[P ] et M.P sont respectivement

les primives d’ambient et de capacite.

Chapitre 2. Algebres de processus 56

Tab. 2.5 – Syntaxe du calcul Ambient : primitives de mobilite.

Processus :

P,Q ::= (ν n)P | 0 | P |Q | !P | n[P ] | M.P

Noms :

n

Capacits :

M ::= in n | out n | open n

Ambient

n[P ] est un ambient de nom n contenant un processus P . Tout processus P interne

a un ambient peut evoluer et cette evolution peut se produire lorsque l’ambient est

en deplacement. Or, selon la nature de l’ambient et du medium de communication,

l’evolution d’un processus en deplacement peut sembler insensee. Neanmoins, il est

opportun de penser en ces termes : un agent mobile transitant sur Internet ne peut pas

raisonner entre deux sites de receptions alors qu’un ordinateur portable en deplacement

entre deux domaines administratifs peut aisement changer d’etat. Par consequent, toute

reduction de P devient la reduction de n[P ]. Cette regle prend la forme suivante :

P → Q⇒ n[P ]→ n[Q]

Generalement, un ambient contient une arborescence induite par l’imbrication d’am-

bients au sein d’autres ambients. Chaque noeud de cette arborescence peut contenir un

nombre arbitraire de processus paralleles, de sous-ambients (des fils) et un seul super-

ambient (un pere). Les noms des ambients ne sont pas necessairement uniques, plusieurs

ambients peuvent porter le meme nom, qu’ils soient paralleles ou imbriques, comme c’est

le cas pour !n[P ] ou n[n[P ] | Q].

Capacites

Les operations qui alterent la hierarchie structurelle des ambients, tel que le passage

d’une page web dans un parefeu, sont les capacites des agents. Ces capacites, notees

Chapitre 2. Algebres de processus 57

M.P , representent un processus executant une action regulee par M et qui se comporte

par la suite comme P . L’operateur seriel . proscrit toute evolution de P avant l’execu-

tion de M .

Trois types de capacites existent : une pour entrer dans un ambient (entry), une

pour en sortir (exit) et une pour eclater un ambient (open). Les capacites sont fournies

par les noms. Par exemple, in n.Q determine la capacite du processus a entrer dans

un ambient voisin de nom n. La connaissance du nom permet donc d’entrer, de sortir

ou de detruire un ambient donne. Les noms determinent deux autres comportements.

Dans le cas ou un processus souhaite executer une capacite sur un ambient absent, il

y a blocage jusqu’a l’apparition d’un tel ambient. Dans le cas ou plusieurs ambients

portant le meme nom sont presents, la selection de l’ambient sur lequel la capacite sera

executee est non deterministe.

Trois regles de reductions decoulent de ces trois capacites. Dans le cas de in n, la

regle est la suivante :

entry : n[in m.P | Q] | m[R]→ m[n[P | Q] | R]

Le processus in m.P fait migrer son ambient n dans un ambient voisin m dans la mesure

ou il y a au moins un ambient de nom m qui est voisin. Suite a cette execution, in n.P

devient P . P | Q au sein de n se situe desormais un niveau plus bas dans la hierarchie

d’ambients puisque, auparavant, il etait au niveau de ambient m.

La capacite de sortie, out m a la regle de reduction suivante :

exit : m[n[out m.P | Q] | R]→ n[P | Q] | m[R]

Cette fois, le processus out m.P evolue vers P dans le cas ou l’ambient d’appartenance

n est un sous-ambient de m. Du meme coup, l’ambient n passe a un niveau superieur

de la hierarchie d’ambients, desormais voisin de l’ambient m.

La capacite d’eclatement, open n, dissout l’ambient n, precipitant son contenu dans

l’ambient le contenant. La regle decrivant cette capacite est la suivante :

open : open n.P | n[Q]→ P | Q

Cette operation tend a avoir plus d’impact que les autres capacites. D’une part, P

devient parallele au processus Q, dont les capacites sont inconnues. D’autre part, Q est

pratiquement teleporte d’un environnement a un autre. Par contre, deux faits moderent

cette capacite :

Chapitre 2. Algebres de processus 58

1. la dissolution de n est initiee par le processus open n.P , et

2. la capacite open n est fournie par l’ambient n, qui gere lui-meme la portee de son

nom.

Mouvement

Il y a deux primitives de mouvement d’un ambient. Un ambient peut lui-meme se

deplacer ou etre deplace par un autre processus. Le premier type de mouvement est

determine comme etant un deplacement subjectif et le second,un deplacement objectif.

L’approximation du deplacement subjectif par un deplacement objectif sera abordee

dans les sections suivantes.

Le deplacement objectif apporte un nouveau type d’agent appele agent de controle.

Un agent de controle est injecte depuis un super-ambient. De hierarchie superieure, cet

agent est en mesure d’injecter un processus arbitraire dans un sous-ambient. Donnant

le prefixe mv au deplacement objectif, voici les regles auxquelles sont assujetties ces

primitives de mouvement :

n[ mv in m.P | m[Q] ] → n[ m[P | Q] ] (2.1)

m[mv out m.P | R] → P | m[R] (2.2)

Les primitives de mouvement objectif, mv in et mv out, se distinguent des autres

primitives par leur prefixe mv. Dans le premier cas, le processus de controle mv in m.P ,

du super-ambient n, injecte le processus P dans le sous-ambient m. Dans le second cas,

un phenomene inverse est observe : le processus de controle mv out m.P ejecte le

processus P de l’ambient m, le projettetant dans son super-ambient.

2.4.2 Primitives de communication

Malgre que la portion de l’algebre qui traite purement de la mobilite soit Turing-

complet, il n’y a aucune communication ni operateur de liaison. Ces operateurs sont

d’interet pour former des processus s’exprimant facilement avec le π-calcul.

De maniere a respecter les frontieres et le concept de l’ambient, il est necessaire que

ces primitives de communication soient intrinseques a un ambient, ou encore, que toute

communication extrinseque soit restreinte par les capacites.

Chapitre 2. Algebres de processus 59

Tab. 2.6 – Syntaxe du calcul Ambient : primitives de mobilite et de communication.

processus :

P,Q ::= (ν n)P | 0 | P |Q | !P | M [P ] | M.P | (x).P | 〈M〉

capacitees :

M ::= x | n | in M | out M | open M | ε | M.M ′

Ces nouvelles primitives sont ajoutees au tableau 2.6. Pour la plupart, elles sont

identiques a celles identifiees au tableau 2.5, a l’exception de la reception ((x).P ) et de

l’emission asynchrone d’une valeur (〈M〉). Les capacites sont egalement adaptees : la

variable, x ; la capacite nulle, ε ; et un chemin d’acces, M.M , qui represente une serie

de capacite.

Necessairement, l’emission d’un nom sera plutot rare dans le contexte de program-

mation avec le calcul Ambient, puisque le calcul offre l’opportunite de monitorer l’inter-

action entre ambients. A l’inverse, il sera plus frequent de vehiculer des capacites afin

de controler les interactions entre les ambients, puisque lier le nom d’un ambient dans

un autre ambient octroit un pouvoir excessif. Ce passage de capacite est similaire aux

versions polyadiques des algebres de processus, considerant qu’une serie M ::= M.M ′ de

capacites est echangee. Par exemple, (in n.in m.in p).Q peut etre interprete et transmis

comme in n.in m.in p.Q.

La distinction entre une variable liee par une restriction et une variable liee par une

reception constitue une autre particularite nee de l’ajout des primitives de communica-

tion. Generalement, n,m, p, q est utilise pour les noms et w, x, y, z, pour les variables.

Entrees-sorties

Grace au mecanisme de communication asynchrone, il est desormais possible pour

un processus de recevoir une capacite (x).P et d’emettre une capacite 〈M〉. La commu-

nication la plus simple s’effectuant dans un ambient suit la regle de reduction suivante :

(x).P | 〈in n.in m, in p.Q〉 → P{x← (in n.in m, in p.Q)}

Une action d’emission emet une capacite (ou un nom) dans l’espace local et lie celle-ci

a une variable dotee d’une portee. Cette regle, essentiellement la meme que la regle

Chapitre 2. Algebres de processus 60

Tab. 2.7 – Regles de congruence structurelle.

P ≡ P P | Q ≡ Q | P

P ≡ Q⇒ Q ≡ P (P | Q | R ≡ P | (Q | R)

P ≡ Q,Q ≡ R⇒ P ≡ R !P ≡ P | !P

P ≡ Q⇒ (ν n)P ≡ (ν n)Q (ν n)(ν m) ≡ (ν m)(ν n)P

P ≡ Q⇒ P | R ≡ Q | R (ν n)(P | Q) ≡ P | (ν n)Q if n /∈ fn(P )

P ≡ Q⇒!P ≡!Q (ν n)(m[P ]) ≡ m[(ν n)P ] if n 6= m

P ≡ Q⇒ n[P ] ≡ n[Q] P | 0 ≡ P

P ≡ Q⇒M.P ≡M.Q (ν 0) ≡ 0

!0 ≡ 0

P ≡ Q⇒M [P ] ≡M [Q] ε.P ≡ P

P ≡ Q⇒ (x).P ≡ (x).Q (M.M ′).P ≡M.M ′.P

Tab. 2.8 – Regle de reduction du calcul Ambient.

n[in m.P | Q] | m[R]→ m[n[P | Q] | R] P → Q⇒ (ν n)P → (ν n)Q

m[n[out m.P | Q] | R]→ n[P | Q] | m[R] P → Q⇒ n[P ]→ n[Q]

open n.P | n[Q]→ P | Q P → Q⇒ P | R→ Q | R

(x).P | 〈M〉 → P{x←M}

P ′ ≡ P, P → Q,Q ≡ Q′ ⇒ P ′ → Q′

de reception du π-calcul asynchrone, est pourtant executee dans un contexte qui est

propre au calcul Ambient. En effet, pour permettre le passage des noms et des capacites,

ceux-ci sont compris dans un meme ensemble syntaxique. Or, certaines complications

surviennent tel que l’expriment les cas suivants :

(x).x.P | 〈n〉 → (x.P ){x ← n} (2.3)

(x).x[P ] | 〈(in m.in p)〉 → (x[P ]){x ← (in m.in p)} (2.4)

Pour pallier ces problemes, plusieurs systemes de types ont ete proposes pour le calcul

Ambient [34] [35].

2.4.3 Semantique operationnelle

La semantique operationnelle du calcul Ambient se base sur la congruence entre

processus et sur des regles de reduction. Cette forme de semantique est inspiree de la

relation de reaction propose par Milner pour le π-calcul [18], elle meme inspiree de

la machine abstraite chimique de Berry et Boudol [17]. Les regles entry, exit et open

Chapitre 2. Algebres de processus 61

demeurent les memes, auxquelles quelques regles ont ete ajoutees au tableau 2.8. Elles

sont d’ores et deja utilisees sur un ensemble de noms/capacites etendus. A ces regles de

reduction s’additionnent les regles de congruence structurelle, tres intuitives, fournies

au tableau 2.7.

2.4.4 Conclusion

Dans le cas du calcul Ambient, le calcul est dit de non-entrelacement puisqu’il dis-

tingue les processus paralleles entre eux. Les ambients sont des unites sequentielles de

calcul, qui elles-memes peuvent contenir des sous-unites de calcul. Ces structures de

sous-unites vont jusqu’a former des arborescences de lieu de calcul distinct. Le calcul

Ambient constitue un aboutissement d’une panoplie de travaux inspires du π-calcul tout

en etant une forme plus appliquee et concrete du calcul original.

Deuxieme partie

Travaux originaux

62

Chapitre 3

Modelisation reseau et detection de

failles

Telle que connue sous sa forme actuelle, la securite reseau porte un nom hautement

paradoxal en raison de son caractere peu securitaire. D’une part, la plupart des reseaux

offre un sentiment de securite aux administrateurs et a la direction des entreprises ou

organisations, sans toutefois etre conformes aux politiques de securite en vigueur. La

securite de ces reseaux est ad hoc, c’est-a-dire que le reseau est considere securitaire,

jusqu’a preuve du contraire. Or, cette approche ne suffit pas a la majorite des organi-

sations necessiteuses d’un niveau minimal de securite, alors qu’elle se revele totalement

deficiente voire dangeureuse pour celles qui requierent un niveau de securite eleve.

D’autre part, de par leur complexite, les systemes et applications comportent ne-

cessairement des failles de securite. Grace au travail des fabricants et de chercheurs en

securite, un certain nombre d’entre elles seront identifiees et seront l’objet de publica-

tions. Les principales sources de publication sont :

1. les fabricants d’equipements ; et

2. les groupes de pirates.

Or, malgre ces efforts pour pallier les failles, il n’en demeure pas moins que la securite

des reseaux n’est pas assuree. En voici les principales limites.

Les fabricants ont frequemment ete erratiques dans la publication des failles de se-

curite. Pour des motifs d’ordre economique, les fabricants tardent a publier les commu-

niques de securite et a developper les correctifs necessaires, esperant un retour d’inves-

tissement sur leurs equipements. Il en resulte que des compagnies telles que Cisco sys-

Chapitre 3. Modelisation reseau et detection de failles 64

tem promouvoient toujours en 2005 l’utilisation du protocole d’authentification LEAP1

comme solution securitaire d’authentification d’acces et de prestation de services. Dans

les faits, Cisco system a ete avisee en 2003 d’une faille du protocole LEAP qui rend

les utilisateurs vulnerables a l’usurpation de leurs mots de passe haches. Cette meme

annee, un programme nomme asleap a ete developpe afin d’exploiter cette faille du

protocole. En combinant un outil tel que John The Ripper a asleap, un attaquant peut

effectuer des attaques de cracage de mots de passe permettant de decouvrir l’association

(identifiant , mot de passe) d’un utilisateur. Consciente de l’importance de l’IDUL2 et

de son utilisation lors de l’authentification des etudiants et du personnel, l’Universite

Laval suit pourtant les recommandations de Cisco system et promeut toujours l’utili-

sation du LEAP a titre de methode complementaire d’authentification.

Les pirates informatiques sont aussi des pourvoyeurs importants de publication de

failles de securite. Des groupuscules de pirates decouvrent parfois des failles de securite

significatives, mais retardent parfois leur publication afin de pouvoir les exploiter. La

recherche de nouvelles failles de securite est guidee par des objectifs fort differents, qu’il

s’agisse de pirates ou de professionnel de la securite. Il va sans dire que les motifs des

pirates peuvent etre inquietants.

A la lumiere de ce qui precede, il appert que, d’une part, parce que l’approche

ad-hoc donne un faux sentiment de securite et que, d’autre part, nonobstant l’origine

de l’identification des failles de securite, fabricants ou pirates, les correctifs de securite

sont souvent disponibles plusieurs mois apres leur decouverte, permettant ainsi leur

exploitation, il est justifie de vouloir developper une nouvelle approche de securisation

des reseaux.

C’est precisement dans cette optique que les methodes formelles seront utilisees pour

repondre aux besoins de securite. L’application des methodes formelles a contribue a

l’avancement de plusieurs domaines, notamment celui des systemes concurrents et de la

verification des protocoles d’authentification. Ainsi, plusieurs defauts de conception et

d’implantation ont ete mis au jour sans meme user de methode de preuve. Contrairement

a la verification des protocoles d’authentification, l’ensemble des scenarios d’interaction

reseau est vaste et le caractere dynamique des reseaux fait frequemment varier la nature

et le nombre de ces scenarios. Puisque le domaine de la securite reseau est si complexe,

il est impossible de verifier l’implantation de chaque composante, la configuration de

chaque equipement et le bon fonctionnement en concurrence des differents equipements

et de leurs differentes configurations. Cela genere une panoplie de scenarios dont certains

peuvent violer les politiques de securite.

1acronyme provenant de l’anglais : Lightweight Extensible Autentication Protocol.2acronyme : Identifiant Unique de l’Universite Laval.

Chapitre 3. Modelisation reseau et detection de failles 65

Pour repondre a ces besoins de verification, un systeme comportant une multitude

de modeles deterministes des constituants reseaux a ete imagine. Realises a l’aide d’une

algebre de processus, ces modeles rendent possible la verification de politiques de secu-

rite propres a un reseau modelise. Les premiers efforts pour l’elaboration de ce systeme

ont principalement ete portes sur l’architecure du systeme et sur le niveau d’abstraction

necessaire aux modeles pour adresser un niveau de problemes de securite juge suffisant.

Les sections 3.1 et 3.2 presentent respectivement l’architecture du systeme de detec-

tion de failles et le niveau d’abstraction requis dans les modeles. Par la suite, moult

algebres de processus sont utilisees pour modeliser des reseaux. Une etude comparative

de l’expressivite de chacun a ete realisee et est presentee a la section 3.3. Constatant

qu’aucune algebre ne possede l’expressivite necessaire pour atteindre le niveau d’abs-

traction recherche, une algebre comportant l’ensemble des caracteristiques necessaires

est definie et explicitee a la section 3.8.

3.1 Architecture d’un systeme de detection de failles

L’objectif du systeme de detection de failles d’architecture consiste a verifier si

certaines politiques de securite reseau sont violees. Compte tenu que l’interaction entre

les differentes composantes d’un reseau atteint un haut niveau de complexite, les failles

de securite qui en decoulent sont nombreuses et inherentes aux systemes ou a leurs

configurations. Ainsi, le moindre changement apporte a un reseau peut occasionner de

nouveaux problemes de securite.

Un tel systeme pourrait, par exemple, verifier que l’ajout d’un pont inter-entreprise

respecte les politiques de securite des entreprises concernees. Il pourrait egalement aider

a evaluer l’impact du changement de configuration d’une composante ou du deplacement

d’un serveur vers un nouveau domaine administratif.

Reseau ::=n∏

i

Composantei

Composantei ::=n∏

j

Protocolej

Protocolei ∈ {ARP, ICMP, IP, UDP, STP,HSRP, V PN, ...}

Le developpement d’un tel systeme s’effectue selon le cheminement standard de la mode-

lisation. Une base de donnees des protocoles utilises par les reseaux doit etre construite

et le comportement des composantes reseau, modelise. Afin de permettre la construc-

tion, de facon triviale, de nouveaux modeles reseaux formes de composantes et de pro-

tocoles prealablement modelises, cette modelisation doit etre la plus generique possible.

Chapitre 3. Modelisation reseau et detection de failles 66

Tab. 3.1 – Differentes attaques en fonction de la couche reseau.

niveaux attaques

2 manipulation des tables ARP, DOS, MiM, usurpation

3 manipulation des tables de routage, DOS, MiM usurpation

4 DOS, fingerprinting

5 buffer overflow, race condition, format string, etc

Ces nouveaux reseaux peuvent etre verifies de facon formelle afin que de nouvelles failles

de securite puissent y etre detectees.

3.2 Niveau d’abstraction du modele

Le but premier de la modelisation consiste a doter un ordinateur d’une capacite

de raisonner sur un systeme complexe. Cette modelisation constitue une abstraction

du vrai systeme, permettant, d’une part, de reduire sa complexite et, d’autre part, de

concentrer les efforts sur les attributs d’interet. Le defi du modelisateur est d’extraire

les attributs du systeme sans pour autant le denaturer, conservant ainsi l’essence meme

de ce qui est a verifier.

L’approche standard de la verification formelle prevoit une identification prealable

des caracteristiques devant etre examinees. Dans la mesure ou la verification qui en

resulte s’avere insatisfaisante, le modele doit etre revu et raffine. La verification de

la section handoff du protocole GSM constitue un exemple d’application de cette ap-

proche. Cette modelisation reste simple lorsque l’objectif de verification est la detection

de conditions d’interblocage3

En ce qui a trait au systeme de detection de failles, les proprietes a verifier sont

d’un tout autre ordre. Contrairement au modele GSM, la question suivante se pose :

quelle section de quel protocole permet d’exploiter une vulnerabilite ? Les attaques

reseau peuvent provenir d’une panoplie de sources : les cinq couches de la pile TCP/IP

peuvent etre la cible d’attaques. Lorsqu’une attaque se produit a une couche inferieure,

cette attaque est transparente du point de vue d’un observateur a une couche superieure.

Le tableau 3.1 recense des types d’attaques en fonction de la couche reseau concernee.

3traduction du terme deadlock.

Chapitre 3. Modelisation reseau et detection de failles 67

Pour modeliser ces differentes attaques reseau, une modelisation precise des proto-

coles est requise. Voici des exemples de proprietes pouvant etre testes.

Etant donne un reseau R, est-il possible :

1. qu’un attaquant puisse, a partir du segment reseau sans fil, intercepter un fichier

en transit dans le segment reseau interne ?

2. qu’un ordinateur de la zone DMZ puisse directement contacter la base de donnees

centrale ?

3. de causer un deni de service reseau4 sur le serveur DNS ?

4. d’experimenter une boucle dans le routage des paquets du reseau ?

5. d’evader l’ACL5 pour le trafic egress6 ?

Pour parvenir a ce type de verifications, au minimum les caracteristiques reseau

suivantes doivent etre modelisees :

1. la topologie niveau 2 des reseaux ;

2. les flux de donnees et les differents chemins qu’ils empruntent ; et

3. des structures complexes telles que des tables de routage.

Ces caracteristiques serviront de base a l’etude comparative des differents algebre

de processus.

3.3 Etude comparative des algebres de processus

dans un contexte de securite reseau

Au cours des 30 dernieres annees, plusieurs algebres de processus ont ete developpees

pour de multiples domaines d’application. Nombre de besoins de modelisation peuvent

ainsi trouver reponse dans les algebres existantes, ou encore, dans la bonification de

celles-ci. Or, en raison de l’existence de la panoplie d’algebres disponibles, il s’avere

qu’une etude prealable de leurs caracteristiques et de leur expressivite dans le cadre

de la modelisation reseau soit necessaire pour proceder a la selection d’une algebre

de processus appropriee. Dans la mesure ou aucune algebre existante ne reponde aux

besoins de modelisation, un nouveau calcul devra etre cree.

Concretement, une fois le survol des algebres effectue, deux options sont possibles

soit : utiliser une algebre simple telle que CCS et y ajouter les fonctionnalites voulues,

4c.-a-d. a partir d’un protocole de la couche 4 ou moins.5Acronyme : Access Control List.6Flot sortant du reseau.

Chapitre 3. Modelisation reseau et detection de failles 68

Tab. 3.2 – Syntaxe de CCS.

Prefixe :

α ::= ax | a | τ

Agents :

P ::= 0 | α.P | P + P | P | P | P \ {α1, α2, ... , αn}

soit identifier l’algebre qui s’approche le plus des besoins de modelisation et y apporter

des constructions algebriques pour repondre aux besoins.

Considerant les specificites du systeme de detection de failles enumerees a la sec-

tion 3.2, une evaluation du potentiel d’expressivite de chacune des algebres etudiees

peut etre effectuee et l’approche a adopter, determinee.

3.4 Modelisation avec CCS

La premiere algebre etudiee est CCS. Pour evaluer les limites de son expressivite

en regard du systeme de detection de failles, un reseau de niveau 2 est cree, tel que

represente a la figure 3.4. L’objectif de cette modelisation est d’obtenir un reseau forme

de processus CCS generiques, c’est-a-dire des processus qui peuvent etre reutilises dans

un autre modele sans modification prealable. Quatre composantes forment le reseau,

soit un routeur routeur1, un commutateur switch1 et 2 ordinateurs hote1 et hote2.

Les processus hotei sont les hotes simples du reseau. Ces processus se synchronisent

avec le reseau Ethernet pour recevoir ou emettre une trame sur le reseau. Ces processus

sont instrumentes des actions mes recui et mes envi pour permettre d’experimenter la

reception et l’emission de messages, du point de vue d’un observateur.

Le processus DataLinki modelise la couche physique du reseau. Il s’agit du medium

de transmission reliant les differents equipements entre eux. Cette couche physique ne

fait aucune erreur de transmission. Ainsi, le cable de l’hote1 est :

DataLink1 ::= mac send1.mac receive1.DataLink1

Un hote voulant communiquer sur le reseau doit envoyer sa trame via ce cable en

synchronisant son action mac sendi avec la co-action du cable mac sendi.

Chapitre 3. Modelisation reseau et detection de failles 69

switch_1

routeur_1

hote_2hote_1

DL1 DL2

DL2

DL3

DL1

DL3

DL4

Fig. 3.1 – Diagramme de flux des processus reseau du tableau 3.3.

Le processus switchi est le processus central du modele ; il est responsable de la

commutation. Le processus recoit une trame sur une interface x, y ou z et la redistri-

bue de facon non deterministe sur une des deux autres interfaces. Ainsi, advenant le

cas ou le commutateur recoit une trame sur son interface x, l’action mac receivex est

synchronisee avec sa co-action mac receivex. Par la suite, le processus switch1, dont la

forme est la suivante :

mac sendy.switchi + mac sendz.switchi

synchronisera son action mac sendy ou mac sendz avec un des cables reliant routeur1

ou hote2 au commutateur.

Le processus routeuri est theoriquement responsable de faire le pont inter-reseau,

en faisant correspondre une adresse IP a une adresse MAC. Puisque cette modelisation

se situe au niveau 2, ce passage au niveau IP ne peut etre observe depuis le niveau

2 de la couche TCP/IP. Dans ce modele, seules les actions au niveau 2 de la couche

TCP/IP sont observables. Sur reception d’une trame, le routeur achemine de facon non

deterministe la trame vers le reseau Ethernet interne (LAN) ou externe (WAN).

Les processus du reseau ayant ete abordes, il est desormais possible de composer un

reseau a partir de la mise en parallele de ces processus. Reseau1 est le resultat de cette

modelisation compositionnelle et il a le comportement suivant :

Chapitre 3. Modelisation reseau et detection de failles 70

Tab. 3.3 – Processus CCS de composantes reseau.

hotei ::= mac sendi.mes envi.hotei + mac receivei.mes recui.hotei

switchi ::= mac receivex.(mac sendy.switchi + mac sendz.switchi) +

mac receivey.(mac sendx.switchi + mac sendz.switchi) +

mac receivez.(mac sendx.switchi + mac sendy.switchi)

routeuri ::= mac receivex.(mac sendy.routeuri + mac sendx.routeuri) +

mac receivey.(mac sendy.routeuri + mac sendx.routeuri)

DataLinki ::= mac sendi.mac receivei.DataLinki

Reseau1 = ( hote1 | hote2 |∏3

i DataLinki |

switch1 |

routeur1 )

ou∏3

i DataLinki ≡ (DataLink1 | DataLink2 | DataLink3).

N’interferant pas avec l’exterieur, le processus Reseau1 sera clos sous LAN1 :

( Reseau1 )\LAN1

ou LAN1 = {mac sendi,mac receivei | 1 6 i 6 3}

Il appert que, suite a une certaine evolution : Reseau1 ǫ−−→ Reseau′

1, une trace

d’execution simulant le transfert d’un message de l’hote1 a l’hote2 existe. La voici :

Reseau1 τ−−→ mes env1.hote1 | mac receive1.DataLink1 | Reseau′

1

mes env1−−−−−−−−→mac receive1.DataLink1 | Reseau′

1

τ−−→ mac send2.switch1 + mac send3.switch1 | Reseau′

1

τ−−→ mac receive2.DataLink2 | Reseau′

1

τ−−→ mes recu2.hote2 | Reseau′

1

mes recu2−−−−−−−−−→Reseau1

Chapitre 3. Modelisation reseau et detection de failles 71

En assumant que le reseau possede une politique de securite interdisant la commu-

nication entre ces deux hotes, des mesures de protection peuvent etre mises en place.

Une des possibilites consiste a empecher le trafic entre les ports 1 et 2 du commuta-

teur. Cette mesure de protection, la plus efficace pour ce reseau, se nomme l’isolement

de ports7. Contrairement aux pare-feux oeuvrant au niveau 3 et plus de l’architecture

TCP/IP, l’isolement de port s’effectue au niveau 2 de l’architecture, la couche liaison de

donnees. Il s’agit de parametrer le commutateur pour qu’il ne transfere pas les trames

en provenance d’un port x vers les ports yi | 1 6 i 6 Nb MAX PORT .

Le nouveau reseau prend la forme suivante :

Reseau1[switch′/switch]

qui devient le processus suivant apres la transition de renommage,

Reseau1 = ( hote1 | hote2 |∏3

i DataLinki |

switch′

1 |

routeur1 )

ou switch′

1, avec sa nouvelle configuration, prend la forme de :

switchi ::= mac receive1.(mac send2.switchi + mac send3.switchi) +

mac receive2.(mac send1.switchi + mac send3.switchi) +

mac receive3.(mac send1.switchi + mac send2.switchi)

Apres configuration du port-isolation, le commutateur switch‘1 empeche la commu-

nication directe entre les ports 1 et 2, isolants ainsi les hotes.

3.4.1 CCSVP

Tel qu’aborde a la section 2.1.3, CCSVP est la version de CCS prevoyant le passage

de valeur.

Bien que cette extension soit frequemment utilisee et qu’elle puisse avoir sa propre

semantique, elle n’offre pas de gain significatif d’expressivite. Chaque construction de

type α.P ou α ∈ {ax, a(x)} a une representation equivalente en CCS. L’equivalent se

7de l’anglais : port-isolation.

Chapitre 3. Modelisation reseau et detection de failles 72

simule en CCS en figeant dans le nom d’une action le nom envoye. Ainsi, les processus

CCSV P P , Q et R mis en parallele

P | Q | R

ou

P ::= x(a).P

Q ::= x(b).Q

R ::= x(a).R′ + x(b).R′′

peuvent s’exprimer ainsi en CCS :

P ::= x envoi a.P

Q ::= x envoi b.Q

R ::= x envoi a.R′ + x envoi b.R′′

De facon plus formelle, a(x).E est represente par∑

a(u).E{u/x} : u ∈ dom x, ou u est

une valeur particuliere et x une variable. D’autres travaux ont vise a developper une

semantique qui ne reduit pas l’echange a de pures synchronisations sur une quantite

potentiellement infinie de ports indexes par les donnees. Ces memes travaux evitent

egalement le renommage des variables n’etant pas locales aux processus engages dans

la communication [16].

3.4.2 Limites de CCS

La premiere limite de CCS consiste en son unique concentration sur la synchro-

nisation des agents. Pour simuler le passage d’une vraie valeur, il faut, a l’image de

l’approximation CCSVP en CCS, coder dans le nom de l’action les differents para-

metres emit sur le reseau et prevoir, pour chacun des messages possibles, sa co-action.

Un agent ne peut donc pas recevoir une valeur n’ayant pas ete prevue dans le modele.

Par exemple, l’hote hote1 envoi un paquet ip sur le reseau. Son action d’emission aura

une forme similaire a :

mac send macs1 macd1 tos800 ips1 ipd1

Pour chaque action d’emission comprenant les variables macsi, macdi, tosx,ipsj,ipdj,

une co-action doit etre creee. Definitivement, cette approche n’est pas souhaitable ; la

totalite des scenarios possibles d’emission et de reception sont a prevoir.

Les changements apportes aux processus reseau mettent en evidence le caractere

statique du modele CCS. Il est impossible de faire un modele reseau concret forme de

Chapitre 3. Modelisation reseau et detection de failles 73

processus reseau generiques. Chaque processus doit etre reprogramme en fonction de

la topologie et de toutes autres modifications apportees au modele. Selon les besoins

stipules a la section 3.2, CCS n’est pas generique en regard des capacites de commutation

et de transfert de paquets. De plus, aucune entite n’est veritablement vehiculee sur le

reseau. Il va sans dire que la modelisation avec CCS consiste a prevoir l’infinite de

scenarios d’interaction reseau possibles.

3.5 Modelisation avec π-calcul

Au cours des vingt dernieres annees, le π-calcul a grandement evolue. Plusieurs

versions existent quoiqu’elles sont mal repertoriees. La version du π-calcul presentee

ci-dessous s’apparente grandement a la version initiale. Elle est dotee d’une syntaxe

minimale presentee au tableau 3.4.

Tab. 3.4 – Syntaxe du π-calcul.

Prefixe :

π ::= x〈y〉 | x(y) | τ

Agents :

P ::= 0 |∑

i∈I πi.Pi | P1 | P2 | (υx)P |def= P

Grandement influencee par CCS, deux principales caracteristiques ont ete ajoutees

au π-calcul soit :

1. la dualite de l’entite nom-canal ; et

2. la notion de portee d’une entite.

La dualite de l’entite nom-canal est propre au π-calcul. Elle se distingue de CCS

qui ne considere qu’une entite, l’action. Dans le π-calcul, un nom peut a la fois designer

un message ou un canal de communication. L’entite message est une occurrence libre et

l’entite canal, une occurrence liee. Lors de l’interaction entre processus, les canaux com-

muniques permettent de modifier dynamiquement l’interaction entre les processus. Un

modele reseau exprime en π-calcul peut donc etre dynamique et conserver l’historique

des communications passees.

La deuxieme distinction, la notion de portee, se traduit par le caractere prive d’oc-

currence. L’operateur de restriction permet de privatiser une occurrence comme suit :

(νx)P | Q. Ainsi, x n’est connu que par P , rendant impossible toute communication

entre Q et P sur ce canal.

Chapitre 3. Modelisation reseau et detection de failles 74

Afin de demontrer le gain d’expressivite genere par ces distinctions, la modelisa-

tion du reseau de la figure 3.4 est reprise avec le π-calcul. L’echange dynamique des

canaux de communication entre les differents processus est particulierement approprie

a la modelisation des reseaux d’ordinateur. Par exemple, tel qu’illustre a la figure 2.3,

l’echange d’un canal de communication permet de retracer la source de l’emission, ce

que la modelisation CCS ne permet pas.

3.5.1 Expressivite du π-calcul

Tout au long de cette section, la modelisation des composantes du reseau, illustree

a la figure 3.4, est abordee de nouveau. Contrairement au modele CCS du tableau 3.3,

qui simule le passage d’un paquet par une serie de synchronisations entre les processus

DataLinki et les composantes reseau, une entite est veritablement echangee entre les

hotes. Cette entite, soit le processus paquet, est vehiculee et sa mobilite est simulee par

les primitives du π-calcul.

Dans le cadre d’un travail futur, il serait interessant de representer cette modelisation

par des graphes. Ces illustrations contribueraient certainement a la comprehension des

processus. Toutefois, seules les notations suivantes ainsi que certains abus de langage

seront utilises afin de mettre l’emphase sur les fonctions des sequences de primitives des

prochains processus.

Notations

x(−→z i..n) → x(zi+1).x(zi+2).x(zi+3). ... .x(zi+n) (3.1)−→z (... zi 7→ x ...) → z1().z2()...zi(x)...zn() (3.2)

−→m → −→m(z) (3.3)

x(−→zn) indique une reception sequentielle de valeurs dans la version monoadique du

calcul. Le vecteur z d’arite n est transmis sur le meme canal x.

−→z (... zi 7→ x ...) indique une reception de valeur sur un vecteur de canaux z d’arite

n. La notation souligne que seule l’assignation a x de la valeur emise est importante.

x(−→zn) est utilise lorsque qu’aucun interet n’est porte a la valeure emise et que seule

la syncronisation des canaux a de l’importance. Cette notation est utilisee pour la

Chapitre 3. Modelisation reseau et detection de failles 75

modelisation des commutateurs et routeurs.

Trame

L’abstraction du paquet reseau represente une trame (ms,md, ips, ipd, X), ou ms

et md forment l’entete de la trame Ethernet avec les adresses MAC sources et des-

tination, ips et ipd les adresses ip source et destination et X, le contenu du mes-

sage. Le processus Pkti suivant represente cette trame encapsulee dans un paquet ip :

Pkti(pkt)def=

(ν ms)(ν md)(ν ips)(ν ipd)(ν X)(

(ν −→u 1..5)(Acces(pkt) | Get ms(ms) +

Get md(md) +

Get ips(ips) +

Get ipd(ipd) +

Get X(X)).Pkti(pkt))

Le processus paquet est une structure de donnees permettant la lecture des champs

de la trame, sans interference avec l’environnement. Pour permettre cette interference,

des canaux prives sont fournis pour la lecture des valeurs. Le processus Access et les

processus Get∗ sont respectivement responsables d’offrir les canaux prives de lecture et

de transmettre les valeurs sur ceux-ci. Ils sont representes ci-dessous :

Acces(pkt)def= pkt〈−→u 1..5〉.Acces(pkt)

Get ms(ms)def= u1〈ms〉.Get ms(ms)

Get md(md)def= u2〈md〉.Get md(md)

Get ips(ips)def= u3〈ips〉.Get ips(ips)

Get ipd(ipd)def= u4〈ipd〉.Get ipd(ipd)

Get X(X)def= u5〈X〉.Get X(X)

Les noms lies −→u 1..5 sont prives pour l’ensemble des processus du tableau precedent.

C’est pourquoi leur restriction n’est pas exprimee a meme le processus Acces, mais

plutot dans le processus Pkti.

Puisque le π-calcul ne permet pas le passage d’un processus, l’echange d’un paquet

doit donc etre simule. La programmation du processus paquet a pour objectif de simuler

la mobilite de cette structure de donnees sur le reseau avec le partage de son canal

d’acces prive pkt. La mobilite du paquet est donc simulee : il n’y a pas une veritable

mobilite du paquet. De fait, ce sont plutot les composantes reseau qui ont acces au

Chapitre 3. Modelisation reseau et detection de failles 76

paquet qui doivent s’echanger une reference8 vers ce paquet. La mobilite du paquet est

ici approximee par la mobilite de sa reference entre les processus.

Ainsi, la notion de trame est un avancement majeur par rapport au modele CCS

precedent.

1. le message echange sur le reseau est une vraie entite ;

2. le message echange est une structure de donnees issue d’une construction alge-

brique ;

3. la modelisation concerne desormais le niveau 3 de la pile TCP/IP ; et

4. le paquet peut, de facon deterministe, etre route ou commute en fonction d’une

analyse des IP et des MAC de destination.

Les hotes

Les hotes du reseau sont, pour leur part, representes par les processus Hote1 et

Hote2. Pour simplifier le modele, seul Hote1 envoie un paquet sur le reseau.

Hote1〈pkt〉def= dl〈pkt〉.Hote2

Hote2〈pkt〉def= dl(pkt).T raitement(pkt).(dl〈pkt〉.Hote2 + Hote2)

Il appert que Hote1 envoie un paquet et se comporte ensuite comme Hote2. Hote2

recoit un paquet, fait un traitement fictif Traitement(pkt) et, en fonction de celui-ci,

repond ou non au paquet.

La raison pour laquelle Hote1 est exprime en fonction de Hote2 est simple : non

seulement cette modelisation met en evidence le fait que Hote1 raffine Hote2 (seul

Hote1 emet un paquet sur le reseau), mais une fois l’emission du paquet effectuee,

Hote1 doit perdre toute reference sur Pkt, tel qu’illustre a la figure 2.4. Cette perte de

reference s’explique du fait qu’un paquet ne peut plus etre lu ou altere une fois emis.

En effet, pkt, le canal prive d’acces a la structure Pkt, est emis par Hote1 a l’aide

du prefixe dl〈pkt〉. Dans la mesure ou Hote1 ne perd pas toute reference sur la structure

de donnees Pkt, il y a elargissement de la portee de pkt, tel que presente a la figure 2.3.

Des inconsistances, comme l’acces simultane au paquet par deux composantes reseau

differentes, pourraient alors avoir lieu.

8Le canal prive fait office de pointeur, tel qu’il est entendu dans le langage C.

Chapitre 3. Modelisation reseau et detection de failles 77

Commutateur

Tout comme le processus Hote2, Switch1, le commutateur est a l’ecoute sur le re-

seau. Il implante une partie du standard IEEE sur les ponts transparents [30]. Puisque

le processus est tres complexe, les notations 3.1 et 3.2 seront utilisees. De plus, des en-

sembles d’actions seront substitues par des processus ayant un nom evocant la fonction

des actions echangees. Afin de respecter la syntaxe du π-calcul, il faudra substituer les

processus Getmac et Sendi par leurs prefixes.

Switch1〈−→s 〉

def=

∑nbPort

i (ν maci..n)(

(dli(pkt).Getmac(pkt,mac).(mac |∑nbPort

i Send(maci, dli, pkt).Switch1〈−→s 〉))

Getmac〈pkt,mac〉def= pkt(−→x ).−→x (...x2 7→ mac...)

Sendi〈maci, dli, pkt〉def= maci.dli〈pkt〉

Le parametre −→s de l’identifiant Switch1〈−→s 〉 est le vecteur de configuration du

processus commutateur et contient les noms libres du processus.

Le commutateur a nbPort ports de communication. Il n’initie pas de communication,

mais peut recevoir a tout moment une trame pkt sur un des ports de communication.

Lorsqu’une trame est recue, la commutation est effectuee en fonction de l’adresse des-

tination md. Ainsi, une macro Getmac extrait l’adresse destination de la trame recue

et permet a la macro Sendi de transferer la trame sur le bon port.

L’intelligence du commutateur, c’est-a-dire sa capacite a commuter, est programmee

avec une structure similaire a un switch case. Dans l’exemple ci-dessous, mac sera

instanciee avec l’adresse MAC de la trame md tout en utilisant la notation 3.3. La

transition

(mac |n∑

i∈MAC

maci.Pi) τ−−→ Pi

s’effectue pour une adresse de destination MAC correspondant au bon port. Ainsi, dans

le cas ou md = m1 :

(mac |n∑

i∈MAC

maci.Pi) τ−−→ dlm1〈pkt〉

Chapitre 3. Modelisation reseau et detection de failles 78

Routeur

Le routeur a sensiblement la meme definition que le processus commutateur. Il est

defini comme suit :

Routeur〈−→r 〉def=

(ν ipi..n)(∑4

i=3dli(pkt).Getip〈pkt, ipd〉.(ipd | ip1.dl3〈pkt〉 +

ip2.dl3〈pkt〉 +

ip3.dl4〈pkt〉).

Routeur〈−→r 〉)

Getip〈pkt, ipd〉def= pkt(−→x ).−→x (...x4 7→ ipd...)

Sendi〈maci, dli, pkti〉def= maci.dli〈pkt〉

Le parametre −→r de l’identifiant Routeur〈−→r 〉 est le vecteur de configuration du

processus contenant ses noms libres.

Tout comme le commutateur, il recoit un paquet et route celui-ci en fonction des

parametres du processus Pkt. Contrairement au commutateur qui transmet les trames

en fonction de l’adresse de destination mac md, le routeur effectue le transfert de paquets

en fonction de l’adresse de destination ip ipd. Le processus Getip extrait les champs de la

structure Pkti et assigne la valeur de l’adresse de destination ip a ipd. Ainsi, tout comme

le processus Switchi, le paquet est aiguille en usant de la meme construction algebrique

que pour la commutation de Switch. Cette fois, un processus generique Send ne peut

pas etre utilise puisque le routage est effectue en fonction de la topologie du reseau.

Ainsi, si ipd = ip3, le paquet est achemine vers l’exterieur de ce reseau, tandis que pour

le cas ipd = ip2, le paquet est reachemine vers l’interieur du reseau. Le commutateur le

recoit et l’achemine sur le bon port.

Reseau

Grace a la modelisation compositionnelle, le reseau R de la figure 3.2 est cree par la

mise en parallele des processus switch1, routeur1, pkt, hote1 et hote2.

(ν dl1..3)Reseau1

def= ( (νpkt)(Pkt1〈pkt〉 | hote1〈pkt〉) | hote2〈pkt〉 |

switch1 |

routeur1 )

Chapitre 3. Modelisation reseau et detection de failles 79

switch_1

routeur_1

hote_2hote_1

DL1 DL2

DL2

DL3

DL1

DL3

DL4

Fig. 3.2 – Diagramme de flux du processus Reseau.

Il faut egalement ajouter comme hypothese que les liens de donnees dli sont prives

entre les sources et les destinations. Ainsi, le lien dl1 est prive entre Hote1 et Switch1,

dl2 est prive a Hote2 et Switch1, dl3 est prive a Routeur1, Switch1 et dl4 sont prives

a Routeur1, et la composante reseau partagent le meme lien physique dl4 avec le rou-

teur. Ces hypotheses sont necessaires puisque la syntaxe du π-calcul ne prevoit pas un

partage aussi complexe des occurrences privees. Il est a noter qu’il est possible d’elabo-

rer une construction algebrique qui permet l’initialisation du processus Reseau1. Cette

construction aurait comme role de partager les occurrences privees avant toute evolution

du processus Reseau1.

Discussion sur ce modele

Il est interessant de constater que ce reseau peut facilement etre etendu. Il est

possible de brancher une interface du processus routeur vers d’autres routeurs, passant

ainsi d’un LAN a un WAN9 ou a un Internet. Par exemple :

WANdef=

n∏

1

Reseaui |m∏

j

Routeur′j

dans lequel les processus Routeur′j sont des routeurs de plus haut niveau.

9traduction de : Wide Area Network.

Chapitre 3. Modelisation reseau et detection de failles 80

3.5.2 Limites du π-calcul

Manque de genericite dans la modelisation

La version actuelle du π-calcul comporte certaines limites. Par exemple, l’aiguillage

et le transfert des donnees n’est toujours pas generique puisque les processus reseaux

peuvent uniquement etre mis en parallele avec des composantes prealablement definies

dans l’ensemble H des hotes du reseau.

Deni de service

Advenant le cas ou des hotes non inclus dans l’ensemble H etaient ajoutes au reseau,

le manque de genericite pourrait provoquer des denis de service. Dans le cas ou le

commutateur ou le routeur recevait une trame contenant une macd ou un ipd inconnus,

ce processus se comportera alors comme 0. La section du processus Switch responsable

de la commutation vers deux hotes, est un bon exemple :

(mac | mac1.Send(mac1, dl1, pkt) + mac2.Send(mac2, dl2, pkt))

Lors du traitement de la trame, le processus Switch fait la substitution suivante

{mac/macd} ou macd est l’adresse MAC de destination de la trame. Dans le cas ou

macd 6= mac1 et macd 6= mac2, le processus Switchi se comportera comme 0.

Dans le cas precedent, la construction algebrique permet la commutation de deux

macs uniquement. Afin de simuler une reseau reel, le branchement doit se faire en

fonction d’une infinite de mac possible. La section 3.5.2 presente une methode pour

pallier a cette limitation.

Commutation et routage primitif

Pour les memes raisons enoncees precedemment, la forme du processus responsable

du routage et de la commutation ne peut router ou commuter des trames qui n’ont pas

ete prealablement figees dans le code du commutateur ou du routeur.

Chapitre 3. Modelisation reseau et detection de failles 81

Multidiffusion complexe

L’algebre actuelle ne permet pas d’adresser l’emission en mode multidiffusion. Pour

le permettre, un ensemble de processus Pkti modelisant les differents paquets pouvant

circuler sur le reseau est requis, tel que defini ci-dessous :

(ν dl1..3)Reseau2

def= (

∏n

i (νpkti)(Pkti〈pkti〉 | hote1 | hote2 |

switch1 |

routeur1 )

Cette limite complexifie les modeles et rend impossible leur genericite en π-calcul.

De meme, les paquets qui circulent doivent avoir ete prealablement programmes et

ajoutes au reseau. Afin de permettre la manipulation d’un ensemble infini d’element,

deux nouvelles regles sont ajoutees a la section suivante. Ces dernieres contribuent a

rendre davantage generique les modeles π-calcul.

3.6 Modelisation avec π-calcul version comprenant

l’egalite

Deux nouvelles regles semantiques sont desormais ajoutees aux regles semantiques

du π-calcul.

match :

P α−−→ P ′

[x = x]P α−−→ P ′

mismatch :

P α−−→ P ′

[y 6= x]P α−−→ P ′

A premiere vue, l’operateur [] est une forme superflue10 du langage puisque, dans la

definition des composantes switch et routeur de la section precedente, la construction

input(x).x.0 |n∑

i

ai.Pi

10traduction de : sugaredform.

Chapitre 3. Modelisation reseau et detection de failles 82

suffisait a aiguiller dans le cas ou x ∈ {ai, ai+1, ai+2, ..., an}. Cette construction peut

effectivement aiguiller en fonction de la valeur de x, mais seulement pour un ensemble

fini de noms. De plus, le processus qui aiguille x doit figer dans son code la structure

de controle permettant de distinguer x des autres valeurs.

Considerant de nouveau le processus Routeur1, la construction d’une forme plus

intuitive du processus est possible :

Routeur2〈−→r 〉

def=

(ν ipi..n)(∑4

i=3dli(pkt).Getip〈pkt, ipd〉.([ipd = ip1]dl3〈pkt〉 +

[ipd = ip2]dl3〈pkt〉 +

[ipd = ip3]dl4〈pkt〉).

Routeur〈−→r 〉)

Il est egalement possible de permettre au routeur de traiter les Pkti ayant un ipd

arbitraire. De la sorte, telle une vraie table de routage, une table de routage generique

independante de la cardinalite de H peut etre formee :

Routeur3〈−→r 〉

def=

(ν ipi..n)(∑4

i=3dli(pkt).Getip〈pkt, ipd〉.([ipd = ip1]dl3〈pkt〉 +

[ipd = ip2]dl3〈pkt〉 +

[ipd = ip3]dl4〈pkt〉) +

[ipd 6= ip3]dldefault〈pkt〉.

Routeur〈−→r 〉)

L’ajout des regles match et mismatch permet d’aiguiller le trafic sur dl3 si ipd = ip1

ou ipd = ip2 ou sur dl4 autrement. Contrairement a la version du π-calcul presentee a

la section precedente, une infinite d’adresses peuvent etre traitees par Routeur3. Les

operateurs match et mismatch accroient l’expressivite du π-calcul et permettent, dans

certain cas, le traitement de paquets qui n’ont pas ete prealablement prevus lors de la

modelisation du reseau.

Chapitre 3. Modelisation reseau et detection de failles 83

Tab. 3.5 – Syntaxe du calcul Ambient : Primitives de mobilite et de communication

Processus :

P,Q ::= (ν n)P | 0 | P |Q | !P | M [P ] | M.P | (x).P | 〈M〉

Capacits :

M ::= x | n | in M | out M | open M | ε | M.M ′

3.7 Modelisation a l’aide du calcul Ambient

En tant qu’algebre recente, le calcul Ambient requiert des efforts et des developpe-

ments supplementaires pour atteindre la maturite du π-calcul. Non seulement reste t-il

des logiques a construire, mais de nouveaux systemes de types devront egalement etre

elabore pour permettre de raisonner sur la mobilite et resoudre certaines inconsistances,

notamment celles enoncees a la section 2.4.2. Base sur le π-calcul, cette algebre offre

des fonctionnalites interessantes pour la modelisation de reseaux d’ordinateurs. Deux

principales caracteristiques distinguent le calcul Ambient du π-calcul, les voici :

1. les capacites ; et

2. les localites.

Naturellement, l’integration de ces nouvelles caracteristiques a grandement transformee

l’algebre, la differenciant davantage du π-calcul d’origine. Bien que ces caracteristiques

soient propres au calcul Ambient, la section suivante presente une methode d’approxi-

mation de ces fonctionnalites en π-calcul.

Approximation π-calcul

La notion de localite est la pierre angulaire de l’algebre qui, tout comme le π-

calcul, permet un environnement dynamique. Contrairement au π-calcul, le dynamisme

du calcul Ambient est du au mouvement des localites qui s’apparentent hautement au

passage de processus. Les regles regissant ces deplacement sont des primitives du langage

nommees capacites. L’execution d’une capacite in n, out n ou open n transforme ou

fusionne des environnements et permet les echanges entre les agents compris dans les

differents environnements. Des approximations des primitives d’ambient sont possibles

avec des constructions algebriques du π-calcul. Ces approximations sont representees

au tableau 3.6.

Chapitre 3. Modelisation reseau et detection de failles 84

Tab. 3.6 – Approximation en π-calcul des primitives du calcul Ambient.

entry :

n in m.P | ξ1 | m ξ2 → ξ1 | m n P | ξ2 ≈π

a(−→x ).P︸ ︷︷ ︸

n

| ξ1 | (ν−→x )(a〈−→x 〉 | ξ2)︸ ︷︷ ︸

m

→∗ ξ1 | (ν−→x )( P ′

︸︷︷︸

n

| ξ2

︸ ︷︷ ︸

m

)

ssi (fn(ξ2)⋃

fn(P ′))⋂

fn(ξ1) = ∅

exit :

ξ1 | m n out m.P | ξ2 → n P | ξ1 | m ξ2 ≈π

(ν−→x )( P︸︷︷︸

n

| ξ2︸︷︷︸

m

)→∗ P ′

︸︷︷︸

n

| ξ1 | (ν−→x )(ξ2)︸ ︷︷ ︸

m

ssi (fn(P ′)⋃

fn(ξ1))⋂

fn(ξ2) = ∅

open :

m n ξ1 | open n | ξ2 → m ξ1 | ξ2

Chapitre 3. Modelisation reseau et detection de failles 85

L’approximation de la premiere primitive, entry, s’effectue avec deux environnements

ξ1 et ξ2 et un processus de migration a〈−→x 〉. L’environnement ξi set un ensemble de

processus intrinseques au premier ou au deuxieme milieu. Le processus de migration

est, pour sa part, responsable de passer un vecteur −→x d’occurrences privees ou les

occurrences communiquees sont les noms libres du milieu ξ2. Par la suite, le processus

P doit perdre toute reference des noms libres de l’environnement ξ1. En n’etant pas une

primitive du language, cette perte de reference doit avoir ete prealablement figee dans

le code du processus.

L’approximation de la deuxieme primitive, exit, est effectue de facon similaire. Une

fois de plus, apres la migration, les communications entre l’environnement de provenance

ξ1 sont a couper et l’etablissement des communications avec les processus du nouvel

environnement ξ2 sont rendues possibles.

La derniere primitive, open, est pour le moins inusitee d’un point de vue π-calcul.

Dans un contexte d’agent mobile transitant dans une hierarchie de sites de reception

(ambients), il est normal que le milieu ait un pouvoir sur l’agent mobile puisqu’il est

pourvoyeur des ressources. En π-calcul, cette notion de pouvoir sur un processus n’est

pas directement transferable. Differentes approches peuvent etre utilisees pour l’approxi-

mation de la primitive. Par exemple, il est possible de faire une construction algebrique

ou un processus est force d’emettre ses occurrences privees a un super-processus, per-

mettant la communication du super-processus avec des sous-processus prives. Une fois

de plus, les processus devront avoir ete concus pour cette tache, rendant statique le

processus de changement d’environnement.

Raisonnement

Les notions de capacite et de localite apportent une nouvelle forme de raisonnement.

Contrairement au π-calcul, qui raisonne sur la migration de la portee des canaux de com-

munication, le calcul ambiant permet de raisonner sur la veritable migration des agents,

ce qui rend dynamique l’environnement des agents. N’etant plus une algebre d’entre-

lacement, les processus du calcul Ambient sont desormais discrimines en fonction de

leurs emplacements. Comparativement au π-calcul, le calcul ambient a ete specialement

concu pour raisonner sur la migration d’agents. Pouvant migrer a travers differents do-

maines administratifs, le focus du raisonnement a ete transfere au profit des localites.

Il en resulte que l’expressivite des operateurs match, mismatch et de l’operateur non

deterministe + est perdue. De facon similaire a celle utilisee au tableau 3.6, l’approxima-

tion de ces operateurs est rendue possible en calcul Ambient. Cette approximation aura

toutefois des contraites similaires a l’approximation des capacites du π-calcul en calcul

Chapitre 3. Modelisation reseau et detection de failles 86

Ambient et ne retrouveront pas une expressivite equivalente. L’operateur ! constitue un

ajout d’interet au calcul et est distinct de l’operateur recursifdef= du π-calcul. Ce gain

d’expressivite est utile pour la modelisation reseau et il sert notamment a construire

des processus qui emettent et recoivent une infinite de valeurs distinctes :

!(νm)〈m〉

!a(x).P

3.7.1 Expressivite du calcul Ambient

Notation prealable Deux notations sont repertoriees dans la litterature pour repre-

senter les processus du calcul Ambient. La premiere est celle qui a ete adoptee jusqu’a

maintenant ; la seconde prend la forme suivante :

n in m.P | Q | m R

Cette notation est equivalente a celle-ci :

n[in m.P | Q] | m[R]

Definition I,M sont respectivement les ensembles des adresses IP et MAC du modele.

Definition La fonction stackEuScriptM(macd) est une fonction injective associant a

une variable macd le nom de l’ambient stack correspondant.

Definition La fonction portEuScriptM(macd) est une fonction injective associant a une

variable macd le nom de l’ambient portsi .

Definition La fonction portEuScriptI(macd) est une fonction injective associant a une

variable macd le nom de l’ambient portsi .

Definition La fonction hostEuScriptI(ipd) est une fonction injective associant a une

variable ipd le nom de l’ambient host correspondant.

Chapitre 3. Modelisation reseau et detection de failles 87

Paquet reseau

Voici la representation du processus paquet en calcul Ambient :

trame 8023idef= (ν 8023i)(8023i[ms[!〈macs〉] | md[!〈macd〉] | packet ip)]

packet ipdef= ip[ips[!〈ips〉] | ipd[!〈ipd〉] | payload pyld]

payload pylddef= pyld[ ]

Tab. 3.7 – Definition du processus paquet du modele Ambient.

La representation graphique du calcul permet de saisir plus rapidement la definition.

Cette representation se trouve au tableau 3.8.

La vraie notation du processus trame est la suivante :

trame 8023i macs et macd avec packet ip ips et ipd avec payload pyld

tandis que celle du processus paquet est :

packet ip ips et ipd avec payload pyld

Pour des raisons de lisibilite, une notation abregee est adoptee.

Les reseaux modelises sont de type Ethernet, c’est pourquoi les trames en circulation

doivent etre de type 802.3. De ces trames, seul le champs tos11 est abstrait du modele.

La trame, de niveau 2, encapsule le processus packet ip qui abstrait tous les champs du

paquet IP sauf l’adresse source et destination. L’ambient pyld correspond au niveau 4

de la couche TCP/IP et peut encapsuler des datagrammes TCP, UDP ou ICMP, selon

de la profondeur de la modelisation. Puisque le present modele raisonne uniquement

sur les couches 2 et 3 du modele TCP/IP, le processus payload pyld ne sera pas defini

de facon plus approfondie.

8023i ms !〈macs〉 | md !〈macd〉 | ip ips !〈ips〉 | ipd !〈ipd〉 | pyld

Tab. 3.8 – Representation graphique du processus ambient trame8023.

Tout comme la trame du π-calcul, la trame de la figure 3.8 correspond a une trame

Ethernet. Cependant elle contient des details supplementaires qui ne sont pas reellement

utilises pour le raisonnement. A l’image des canaux prives de la trame du π-calcul, la

11type of service.

Chapitre 3. Modelisation reseau et detection de failles 88

trame 8023i evite l’interference semantique a l’aide de la notion d’ambient. L’ambient,

un environnement ou les processus peuvent evoluer, evite cette interference en discri-

minant les processus paralleles par leur localite. A l’image du canal prive, le processus

responsable de la lecture de macs sera seul dans l’ambient ms et, en consequence, ne

pourra pas etre interrompu.

Hote

A l’instar des autres modeles, le processus hote est un processus qui emet et recoit

des messages sur le reseau.

hostidef= hosti[(ν stack)(stack[!(ν8023i)(trame 8023i | !firewall)] |

!((x).mv in x.mv in md.(y).mv out md.in stack(y).〈x〉))]

pilotedef= mv in 8023i.out stack.out hosti.mv out hosti.〈8023i〉

Tab. 3.9 – Definition du processus hote du modele Ambient.

L’hote de ce modele emet ou recoit des trames sur son reseau d’attache. La construc-

tion !(ν 8023i) represente une infinite de noms 8023 distincts, puisqu’a chaque duplica-

tion, un nouveau nom est cree. Ainsi, les hotes de ce modele peuvent emettre et recevoir

une infinite de trames.

Le processus pilote est responsable de faire transiter les paquets de la pile TCP/IP

(stack) vers l’exterieur de l’hote. Pour y parvenir, pilote s’injecte dans le processus trame

avec la capacite mv in 8023, pilote cette trame hors de l’hote a l’aide des capacitees

out stack.out hosti, et sort de cette trame avec mv out hosti pour finalement annoncer

la trame dans son nouvel environnement a l’aide de 〈8023i〉.

Cette annonce s’effectue en emettant de facon asynchrone le nom de l’ambient de

la trame. Le processus qui recoit le nom de la trame obtient le plein controle sur son

ambient.

L’hote raisonne egalement sur la trame entrante avec le processus :

!((x).mv in x.mv in md.(y).mv out md.in stack(y).〈x〉)

Il recoit une infinite de trames en prenant une copie de l’adresse mac de destination,

(x).mv in x.mv in md.(y)

Chapitre 3. Modelisation reseau et detection de failles 89

et achemine la trame dans la pile TCP/IP, dans le cas ou cette adresse est bien adressee

a l’hote hosti.

(y).mv out md.in stack(y).〈x〉

Dans le cas ou la trame ne lui est pas destinee, le processus trame se comporte comme

0 12 puisque sa capacite in stack(y) ne lui permet pas d’entrer dans le processus pile

stack de l’hote hosti.

Commutateur

Le commutateur possede 24 ports de communication relies a un bus de donnees.

L’aiguillage se fait sur le bus qui transmet la trame en transit sur le port correspon-

dant. Le micrologiciel13 du commutateur est abstrait du modele et seul le processus

d’aiguillage est conserve. De plus, pour permettre au commutateur d’etre branche a un

autre commutateur ou a un routeur, l’uplink, est egalement modelise. Le modele de ce

commutateur ambient se trouve au tableau 3.10.

switchidef= switchi[(ν bus)(bus[aiguille |

∑24

i portsi ] | input)]

aiguilledef= !trame8023∗ |

!((x).mv in x.mv in md.(y).mv out md.mv in ip.out x.in 8023∗

mv out ip.mv in md.〈y〉.mv out md.in portM(y).in host(y))

portsidef= portsi [!fw]

fwdef= !(x).mv in x.out portsi .〈x〉

uplinksi

def= !(x).mv in x.out uplinks

i .out portsi .out bus.out switchi.〈x〉

inputdef= !(x).mv in x.in bus.〈x〉

Tab. 3.10 – Definition du processus commutateur du modele Ambient.

Les entrees/sorties du commutateur sont ses ports de communication. Plus de de-

tails seront fournis a la section 3.7.1 a propos du fonctionnement et de l’utilite des

processus uplinksi et input. Dans le cas ou le commutateur recoit une trame sur un

port, le processus fw s’injecte dans celle-ci, pilote cette trame vers le bus de donnees

du commutateur et annonce la trame pour que le processus aiguille puisse prendre

la releve. aiguille s’injecte a son tour dans la trame et achemine celle-ci vers le port

12Pas tout a fait vrai. La regle stack[tramei] ≡ 0 ssi stack /∈ fn(tramei). Eventuellement, les trames

rejettees pourraient interagir entre elles. Ce bruit semantique n’interfere pas avec le modele puisque

pour stack[trame1 | ... | tramen] stack /∈ fn(trame1 | ... | tramen).13traduction francaise de firmware.

Chapitre 3. Modelisation reseau et detection de failles 90

concerne (portM(x)). Dans le cas ou la trame en transit a une destination inconnue ou

illicite, elle est silencieusement filtree grace a :

n[P ] ≡ 0 ssi n /∈ fn(P )

Consequemment, lorsque la fonction portM(x) retourne un nom de portsi inexistant,

cette trame en transit devient inerte.

Le processus responsable de la commutation est le processus aiguille. Il suit le

meme raisonnement que le processus pare− feu pour l’hote. L’utilisation des fonctions

injectives est un abus du langage.

Routeur

routeuridef= routeuri[(ν bus)bus[!route |

∑24

i portri ]]

routedef= !trame8023∗ |

!((x).mv in x.mv in ip mv in ipd.(y).mv out ipd

.out x.in 8023.mv out ip.in portI(y).in hostI(y)

uplinkri

def= !(x).mv in x.out uplinkr

i .out portri .out bus.out routeuri.〈x〉

Tab. 3.11 – Definition du processus routeur du modele Ambient.

Finalement, le processus routeur possede une definition similaire a celle du com-

mutateur et est presentee au tableau 3.11. Les paquets reseau recus sont aiguilles en

fonction de leurs adresses IP de destination. La modelisation s’apparente davantage a

un vrai routeur, puisqu’il decapsule la trame Ethernet recue, l’analyse et l’encapsule

de nouveau afin de l’acheminer vers le reseau Ethernet voisin. La definition est sensi-

blement la meme que celle du processus commutateur, a l’exception du sous-processus

route qui decapsule, analyse et encapsule les trames en transit. Tout comme le proces-

sus commutateur, un paquet devant etre emis a un hote n’etant pas assigne a un port

devient inerte.

Reseau

Une fois l’ensemble des composantes reseau modelisees, il est possible de former

un reseau qui, par imbrication des processus composantes, est a l’image des reseaux

Chapitre 3. Modelisation reseau et detection de failles 91

d’ordinateurs. A titre d’exemple, le processus commutateur est defini au tableau 3.10 :

switchi bus portsi fw | ... | portn fw | aiguille | input

Sous sa forme actuelle, le commutateur ne possede aucune entree/sortie. Pour lui per-

mettre de fonctionner, des composantes doivent lui etre branchees.

La composition des reseaux est simple et directe : les composantes sont imbriquees

dans les ports, tel qu’illustre au tableau 3.12 :

switch1 bus ports1 fw | host1 | ports2 fw | host2 | aiguille | input

Tab. 3.12 – Modelisation d’un reseau Ethernet calcul Ambient.

Les hotes host1 et host2 sont branches au commutateur switch1. Ce reseau de niveau

2 est fonctionnel et les hotes peuvent s’echanger une infinite de trames. Le modele

prevoit que, comme tout lien physique, l’environnement entre hosti et portsi a comme

unique fonction le transit des trames d’une entite a l’autre.

L’explication des processus uplinksi et input a ete differee a la presente section,

puisque leur fonction est propre au reseautage.Tout comme de vrais commutateurs, les

processus switchi ont la capacite de communiquer avec un autre commutateur ou rou-

teur. Dans les cas precis ou les processus uplinksi et input interviennent, ils permettent

l’interconnexion des composantes reseau entre elles.

Toujours dans le but de respecter la hierarchie des ambients et l’analogie du bran-

chement des composantes entres elles, les processus uplinksi et input ont ete developpes.

Leur utilisation est illustree au tableau 3.13 pour la modelisation d’Internet. Pour per-

mettre une organisation similaire des processus pour la modelisation du reseau Ethernet

du tableau 3.12, tel un commutateur branche dans un routeur, le processus switchi doit

etre imbrique dans l’ambient portri du routeur. Le flux d’information en provenance du

routeur vers le commutateur entre directement dans l’ambient switchi. Le processus

input achemine les messages recus vers l’ambient bus, ou le processus aiguille prend

la releve et achemine la trame vers le bon port. Pour sa part, le processus uplinksi

est responsable du flux d’informations en provenance de commutateur vers le routeur,

c’est-a-dire vers les super-ambients de switchi.

Grace aux processus uplinksi et input, il est desormais possible de brancher des

commutateurs a des routeurs, de facon a former des reseaux de niveau 3. Les processus

Chapitre 3. Modelisation reseau et detection de failles 92

uplinkri sont equivalents aux processus uplinks

i , quoiqu’ils servent aux routeurs. Afin

de demontrer la facilite avec laquelle un Internet peut etre modelise, le tableau 3.13

organise des routeurs de facon a lier plusieurs reseaux Ethernet entre eux.

routeuri bus portr1 routeurj | fw | portr2 switchj | fw | ... | route | inputr

Tab. 3.13 – Modelisation d’un reseau Internet calcul Ambient.

3.7.2 Discussion sur le modele

Tel que le demontrent les processus des tableaux 3.13 et 3.12, il est maintenant

possible de former une infinite de reseaux composes de commutateurs, de routeurs

et d’hotes en reliant des composantes entre elles. Il est egalement possible d’ajouter

des protocoles de plus haut niveau, par exemple TCP, UDP et HTTP, pour qui les

communications du niveau 2 et 3 sont parfaitement transparentes. Cette transparence

est due aux veritables encapsulations et decapsulations effectuees lors de la commutation

ou du routage des trames ou des paquets.

3.7.3 Ajout au modele

L’ajout d’une imbrication d’ambients representant les differents niveaux des piles

TCP/IP des hotes constituerait un ajout des plus interessants au modele. Un ambient

stack est present dans le modele, quoique seulement pour les processus host. Une mode-

lisation prenant la forme suivante peut etre integree a chaque composante reseau usant

de la pile TCP/IP :

stack1[S1 | stack2[S2 | stack3[S3 | stack4[S4stack5[S5]]]

Les ambients stacki representent les differents niveaux de la pile : stack1 etant la

couche physique ; stack2, la couche liaison de donnees ; stack3, la couche reseau ; stack4,

la couche transport ; et stack5, la couche application. Pour leur part, les processus Si

sont responsables de rendre les services aux couches limitrophes stacki−1 et stacki+1

et de faire circuler l’information vers ces dernieres. Ces processus seraient egalement

responsables de former les trames d’entrees et de sorties.

Chapitre 3. Modelisation reseau et detection de failles 93

3.7.4 Limites du modele

A premiere vue, le calcul Ambient appert fort interessant pour la modelisation re-

seau, or, neanmoins, il presente des limitations a considerer.

Routage primitif

Considerant le besoin de dynamisme des modeles dans le contexte de modelisa-

tion, cette version du calcul Ambient ne permet pas de faire un routage adequat. Cela

constitue la premiere limite du modele. De fait, bien que les localites permettent de re-

presenter fidelement la definition interne des composantes, le routage demeure primitif

sans les operateurs match, mismatch, et +. Les composantes commutateur et routeur,

servant a aiguiller, doivent figer dans leur code14 la portion d’aiguillage et de routage !

Plusieurs fonctions injectives ont ete utilisees pour simplifier la notation et la rendre

plus elegante. Or, cela a egalement fait perdre aux modeles leur caractere generique.

Programmation multi-agents

La seconde limite du calcul est l’omission de l’operateur non deterministe +, puis-

qu’elle rend la programmation des composantes concurrente. La seule facon de modeli-

ser plusieurs choix de comportements est de les representer en parallele. Ce contexte de

programmation concurrente ne convient pas a la definition de composantes reseau. Qui

plus est, compte tenu que l’evolution des composantes dans la hierarchie d’ambients

est regie par les capacites, chaque processus devient autonome et possede sa propre

volonte. Par consequent, le style de programmation passe du mode concurrent au mode

multi-agents. Dans la mesure ou les commutateurs, les trames et les hotes ne sont pas

des systemes multi-agents, leur modelisation n’est pas fidele a la realite ; il n’y a qu’a

penser aux trames qui s’annoncent d’elles-meme lorsqu’elles arrivent dans un nouvel

environnement.

Restrictions compromisent

A ces deux limites s’ajoute celle concernant la definition. Toutes occurrences privees

a une portee et seuls les processus inclus dans la portee de la restriction connaissent

14hardcoded.

Chapitre 3. Modelisation reseau et detection de failles 94

l’occurrence privee. Il s’avere que le principe de restriction est moins important dans

le calcul Ambient, puisqu’il existe une nouvelle facon de discriminer l’interaction entre

processus, l’ambient. Toutefois, considerant que la connaissance d’un nom concretise

parfois une capacite :

ν n)(n[P ] | 〈n〉) | (x).in x.Q→∗ (ν n)n[p | Q]

la restriction demeure importante et se trouve compromise par l’approche de modeli-

sation. Un processus imbrique est forcement compris dans la portee d’une occurrence

privee, tel que l’exemple suivant le demontre :

(ν n)(n[P | m[Q]])

Le processus Q est inclus dans la portee de l’occurrence privee n.

Il se revele impossible d’apporter des modifications a la semantique de l’algebre, ou

possiblement d’ignorer ce bruit semantique, dans la mesure ou ces erreurs sont reperto-

riables et qu’il est pensable de les deceler et de les ignorer lors de la verification.

Hierarchie de composantes

Bien qu’a premiere vue les proprietes des ambients representent bien la hierarchie

des composantes reseau, une restriction de taille subsiste : il s’avere impossible d’im-

briquer une composante dans deux ambients simultanement. La dualite de l’ambient

n’existe pas ! Cette limite du calcul a un impacte considerable sur la modelisation re-

seau et plusieurs cas concrets ne peuvent etre modelises avec la forme actuelle du calcul

Ambient. En voici deux :

1. un hote a deux interfaces sur deux reseaux differents ; et

2. un reseau comportant des boucles.

Cette limite est due a un manque d’expressivite du langage. Bien que le calcul

Ambient offre la possibilite de raisonner sur la migration d’agent, cette migration s’ef-

fectue uniquement au sein d’imbrications d’ambients, qui forment a leur tour des ar-

borescences d’ambients. L’interconnexion des ordinateurs ne forme pas uniquement des

arborescences, mais egalement des graphes.

Chapitre 3. Modelisation reseau et detection de failles 95

3.7.5 Viabilite du calcul Ambient dans sa forme actuelle

Le calcul Ambient n’est que partiellement fonctionnel dans sa forme actuelle. Malgre

les constructions algebriques ou des modifications aux regles semantiques qui peuvent

etre apportees, les limites du calcul semblent trop grandes. L’algebre a principalement

ete concue pour raisonner sur la mobilite des agents et le partage des ressources au

sein de sites de reception, c’est-a-dire au niveau 5 de la couche TCP/IP. Le contexte de

modelisation actuel ne doit pas abstraire les premieres couches de la pile TCP/IP.

Or, les proprietes de localites demeurent interessantes et pourraient servir a une

algebre repondant sur mesure a nos besoins de modelisation.

3.8 NetCal : Un calcul pour la modelisation d’un

systeme et la detection de failles

Les sections 3.4.2, 3.5.2 et 3.7.4 abordent les limites des algebres CCS, π-calcul

et calcul Ambient. Decidement, ces dernieres ne suffisent pas a modeliser un reseau

d’ordinateurs de facon suffisament detaillee pour permettre de trouver des failles de

securite, ce qui motive principalement la formation du present calcul, NetCal.

Nombre de chercheurs etudiant les algebres de processus estiment qu’il est plus

aise d’utiliser une semantique operationnelle primitive complementee de constructions

algebriques. D’autres preferent modifier les semantiques operationnelles complexes des

calculs afin d’integrer les fonctionnalites necessaires a meme le calcul. Or, cette deuxieme

approche est celle privilegiee par l’auteur : le calcul initial retenu est le π-calcul et seules

les fonctionnalites necessaires y sont ajoutees.

La section 3.8.1 presente la syntaxe et la semantique du nouveau langage NetCal.

Puis, finalement, la section 3.8.2 explique la necessite d’avoir apporte ces modifications

au π-calcul.

3.8.1 Syntaxe et semantique

Soit un ensemble N de noms parcourus par les metavariables a, b, c, ..., z. Soit un

ensemble P de processus parcouru par les metavariables X,Y, Z. Soit un ensemble I

Chapitre 3. Modelisation reseau et detection de failles 96

Tab. 3.14 – Syntaxe de NetCal.

Prefixes α ::= ax emission d′un nom

a〈X〉 emission d′un agent

a(x) reception d′un nom

a(X) reception d′un agent

τ silencieux

Agents P ::= 0 Nul

α.P Prefixe

P + P Sommation

P | P Entrelacement

if x = y then P else P Branchement egalite

if x 6= y then P else P Branchement inegalite

(νx)P Restriction

A(y1, ..., yn, Yi, ..., Ym) Identifiant

Definitions A(x1, ..., xn, Xi, ..., Xn)def= P (tel que i 6= j ⇒ xi 6= xj)

d’identifiants d’agents parcouru par les metavariables P ,Q,R. Les differentes formes

d’agents sont representees au tableau 3.14 et elles peuvent prendre les formes suivantes :

1. L’agent nul 0 : Le processus inerte.

2. Un prefixe d’emission de noms ax.P : Le processus emet sur le port a le message

x et se comporte ensuite comme P .

3. Un prefixe d’emission d’agents a〈X〉.P : Le processus emet sur un port a un

processus X et se comporte par la ensuite comme P .

4. Un prefixe de reception de noms a(x).P : Le processus recoit sur un canal a une

variable x. Apres reception, le processus se comporte comme P .

5. Un prefixe de reception d’agents a〈X〉.P : Le processus recoit sur un canal a un

processus X. Apres reception, le processus se comporte comme P .

6. Un prefixe silencieux τ.P : Le processus evolue en P sans interagir avec l’environ-

nement. Cette action est intrinseque a l’agent.

7. La sommation P + Q : Le processus P +Q peut se comporter comme P ou Q de

facon non deterministe. Il est aussi possible de noter la sommation∑

i∈IPi pour

representer i opportunites distinctes de comportements au sein d’un agent.

8. L’entrelacement P | Q : Le processus peut faire evoluer de facon independante le

processus P , le processus Q, ou bien faire mutuellement communiquer les proces-

sus P et Q dans le le cas ou ils ont un canal commun de communication.

Chapitre 3. Modelisation reseau et detection de failles 97

9. L’egalite if x = y then P else Q : Le processus se comporte comme P dans le

cas ou x et y sont egaux, sinon, il se comporte comme Q.

10. L’inegalite if x 6= y then P else Q : Le processus se comporte comme P dans le

cas ou x et y ne sont pas egaux, sinon, il se comporte comme Q.

11. La restriction (νx)P : Le nom x est connu uniquement du processus P et ne peut

etre utilise que pour des communications internes.

12. Un identifiant A(y1, ..., yn, Yi, ..., Ym) ou n + m est l’arite de A. Tout identifiant a

une definition de la forme A(x1, ..., xn, X1, ..., Xm)def= P , ou A(y1, ..., yn, Y1, ..., Ym)

se comporte comme P avec les noms xi et les processus Xi remplaces par les noms

et processus yi et Yi.

Les changements apportees au π-calcul sont les suivants : modification quant a

l’emission et a la reception d’agents, et de nouvelles regles d’egalite et d’inegalite. Le

tableau 3.15 presente la semantique du NetCal.

Ces modifications ajoutent l’expressivite requise pour la modelisation du systeme

de detection de failles.

3.8.2 Valeur ajoutee de NetCal

Diffusion multimode

La premiere caracteristique de l’algebre est de permettre les differents modes de

diffusion experimentes dans les reseaux d’ordinateurs, soit :

1. la diffusion individuelle15 ;

2. la multidiffusion16 ; et

3. la diffusion generale17.

NetCal permet d’implanter facilement ces modes de diffusion. En effet, il est possible

de former un agent de la forme A(P )def= P | A(P ) qui duplique une infinite de fois

un processus P . Dans un contexte de modelisation reseau, un paquet PKT generique

peut donc etre duplique.

Par exemple, au sein d’un commutateur, le processus responsable de dupliquer un

paquet sur les ports de communication peut etre modelise comme suit :

port1〈PKT 〉.(port2)〈PKT 〉 | ... | portn〈PKT 〉)

15traduction de unicast.16traduction de multicast.17traduction de broadcast.

Chapitre 3. Modelisation reseau et detection de failles 98

Ainsi, un paquet recu sur le port d’un commutateur est duplique sur les n ports de

communication du commutateur.

Processus generiques

Il est entendu par processus generique un processus polyvalent qu’il est possible de

reconfigurer grace a ses parametres. Soit le processus suivant :

P (c)def= c(x).x.P (c)

Ce processus est generique en regard de sa capacite a communiquer de l’information sur

un canal. Dans un autre environnement, P peut etre reutilise en modifiant son canal

de reception de la facon suivante :

P (d)def= d(x).x.P (d)

Dans le cas d’un processus ayant la capacite d’aiguiller un message en fonction d’une

valeur, telle que :

Q(c)def= c(x).(x | y1.P1.Q(c) + y2.P2.Q(c))

ce processus recoit une valeur x et se comporte comme P1 si x = y1, comme P2 si

x = y2, et comme 0, sinon. Au sujet de sa caracteristique d’aiguillage, ce processus

se dit generique uniquement s’il est possible de parametrer la capacite du processus a

aiguiller. Par exemple, le processus Q(c) est generique s’il est reformule comme suit :

Q(c, R)def= c(x).(x | R)

ou R correspond a y1.P1 +y2.P2. Dans cette situation precise, le processus est generique

en regard de sa capacite a aiguiller. Il pourra etre reutilise dans un second environnement

ou il doit se comporter comme P1 si x = y1, comme P2 si x = y2, et comme P3 dans le

cas ou x = y3 si R est remplace par y1.P1 + y2.P2 + y3.P3.

Cette propriete est desormais rendue possible grace au passage de processus.

Entites mobiles

Tel que cela a ete demontre aux sections 2.2 et 3.5, le π-calcul ne supporte pas le pas-

sage de processus d’une part, et le deplacement des processus paquet est simule par la

Chapitre 3. Modelisation reseau et detection de failles 99

migration de la portee des canaux echanges, d’autre part. Bien que cette simulation par-

raisse acceptable, du moins a premiere vue, elle ne s’avere pas ideale pour de multiples

raisons. Premierement, l’hote recevant un paquet reseau n’a pas pleinement controle

sur celui-ci. De fait, il n’a qu’une reference vers le processus paquet. Deuxiemement,

deux hotes reseau pourraient acceder simultanement a un meme paquet. Troisiement,

les constructions algebriques permettant les differents modes de diffusion sont tres com-

plexes.

NetCal permet, a l’aide du passage de processus, la circulation des entites mobiles

distinctes sur le reseau. Cette forme de modelisation s’apparente davantage a la realite

et allege les modeles des problemes mentionnes precedemment.

Expressivite des operateurs d’egalite et d’inegalite

Les sections 3.7.4 et 3.5.2 font etat des limites du calcul Ambient et du π-calcul

concernant l’aiguillage des paquets. En effet, pour permettre un aiguillage adequat, les

constructions algebriques devaient coder a la dure18 l’aiguillage de chaque paquet, prea-

lablement prevu lors de la modelisation. Cette limite de taille a motive la modification

des operateurs d’egalite et d’inegalite de facon a fournir l’expressivite necessaire pour

un aiguillage adequat. Il en resulte que des paquets peuvent etre aiguilles sans avoir ete

prealablement codes pour cette fin.

18traduction de hardcoded.

Chapitre 3. Modelisation reseau et detection de failles 100

Tab. 3.15 – Semantique du NetCal.

STRUCT:

P ′ ≡ P, P α−−→ Q,Q ≡ Q′

P ′ α−−→ Q′

PREFIXE:−

α.P α−−→P

SUM:

P α−−→P ′

P + Q α−−→P ′

MATCH1:

P α−−→ P ′, x = y

if x = y then P else Q α−−→ P ′

MATCH2:

Q α−−→ Q′, x 6= y

if x = y then P else Q α−−→Q′

MISMATCH1:

P α−−→ P ′, x 6= y

if x 6= y then P else Q α−−→ P ′

MISMATCH2:

Q α−−→ Q′, x = y

if x 6= y then P else Q α−−→Q′

PAR:

P α−−→ P ′, bn(α)⋂

fn(Q) = φ

P | Q α−−→ P ′ | Q

COM1:

P a(x)−−−−→

P ′, Q au−−−→ Q′

P | Q τ−−→ P ′{u/x} | Q′

COM2:

P a(X)−−−−−→

P ′, Q a〈U〉−−−−−→

Q′

P | Q τ−−→ P ′{U/X} | Q′

RES:

P α−−→ P ′, x /∈ α

(νx)P α−−→ (νx)P ′

OPEN:

P ax−−−→ P ′, a 6= x

(νx)P aνx−−−−→ P ′

Conclusion

Ce memoire presente d’abord les principales failles de securite des protocoles d’ad-

ministration des reseaux d’ordinateurs. Centre sur les protocoles de bas niveaux, la

premiere partie caracterise les failles et offre une synthese en vue d’une modelisation

eventuelle a l’aide d’une algebre de processus. Dans le but de determiner l’algebre ideale

pour cette modelisation, un survol des principales algebres de processus est effectue en

seconde partie. Consequemment, ces algebres sont utilisees a des fins de modelisation

de reseaux ou des reseaux complets d’ordinateurs sont modelises. Cette modelisation,

bien que sommaire, est suffisante a la presentation des principaux paradigmes de mo-

delisation reseau et permet de determiner les fonctionnalites manquantes aux algebres

etudiees en regard des besoins de modelisation. Puis, de ces ajouts nait une algebre,

NetCal. Cette derniere permet de modeliser les protocoles de communication ainsi que

la configuration des composantes reseau. Modelisation faite, differentes formes de ve-

rifications peuvent servir a determiner de nouvelles vulnerabilites pour des reseaux

modelises.

Securite reseau

Bien que plusieurs formes de failles existent sur les reseaux d’ordinateurs, les failles

etudiees sont celles visant les niveaux 2 et 3 de la couche TCP/IP. Ces failles peuvent

generer des impacts substantiels puisque leur exploitation est imperceptible pour les

services de niveaux superieurs. Des proprietes propres aux protocoles etudies ont ete

extraites et correspondent aux capacites acquises par un attaquant exploitant une des

failles.

L’objectif de cette premiere partie du memoire a subi moult iterations en cours de

redaction. De fait, l’approche initiale visait a couvrir les composantes reseau. Puis, suite

aux premieres modelisations reseau, il s’est avere evident que la modelisation des com-

posantes n’etait qu’une infime partie de la modelisation dans sa globalite et que l’effort

principal de modelisation allait devoir se jouer au niveau des protocoles de communica-

Conclusion 102

tion. En effet, les composantes reseau ne sont qu’un agencement de protocoles combines

a des fonctionnalites supplementaires propres a leur micrologiciels19. La modelisation

des configurations particulieres de micrologiciels peut ensuite s’effectuer en substituant

les processus des composantes reseau, tel que cela a ete propose a la section 3.4 du pre-

sent memoire. Finalement, une quantite importante de failles se situent au niveau 2 et 3

de la couche TCP/IP. Or, puisque ces failles doivent etre adressees avant de s’attaquer

aux failles de niveaux superieurs, la section de securite reseau est consacree aux failles

agissant a ces niveaux.

Algebres de processus

Afin de modeliser les failles de securite reseau abordees au premier chapitre, un

survol de l’etat de l’art des algebres de processus est suggere. Ces algebres se pretent

bien a la modelisation puisqu’elles constituent des langages formels, qu’elles ont des

syntaxes simples et expressives et qu’elles permettent la verification de proprietes de

securite.

L’apprentissage des premieres algebres, CCS et π-calcul, a ete realise dans les en-

vironnements de modelisation Concurrent Workbench, JACK [38] et HAL [39]. L’ap-

proche privilegiee consistait a effectuer un survol des algebres de processus actuelles

dans le but d’identifier une algebre specialement dediee a la modelisation reseau ou

bien des algebres generiques qui, de par leur expressivite, offriraient de modeliser les

reseaux d’ordinateurs avec un niveau de detail suffisant pour permettre la verification

des proprietes de securite enumerees au premier chapitre.

Systeme de detection de failles d’architecture

Les efforts de modelisation reseau ont principalement consiste a etudier l’expressivite

des algebres CCS, π-calcul et calcul Ambient. Cette etude comparative se voulait em-

pirique et visait a modeliser des reseaux d’ordinateurs pour determiner l’algebre la plus

appropriee en regard des besoins repertories a la section 3.2. Bien que l’expressivite des

algebres etudiees s’est revelee surprenante, aucune d’entre elles n’est specifiquement

dediee a la modelisation reseau. Ainsi, puisqu’aucune des algebres ne possedait l’ex-

pressivite requise, l’algebre NetCal, derivee du π-calcul, a ete definie afin de fournir les

fonctionnalites requises pour satisfaire les besoins identifies et repertories.

19traduction francaise de firmware.

Conclusion 103

Travaux futurs

Dans le but d’approfondir et de poursuivre les travaux amorces dans ce memoire,

nombre d’elements pourraient etre porteurs, notamment l’elaboration d’une applica-

tion facilitant la modelisation des reseaux. Par exemple, JACK, un projet de recherche

abouti, pourrait servir de base a la construction de cet outil. Ce dernier servirait a

faciliter la modelisation et de la verification de systeme. Deux avenues sont encore pos-

sibles pour la verification. D’une part, la notion d’equivalence permettrait de decouvrir

des failles dans un reseau modelise. Par exemple, a l’image d’un systeme SY S et d’une

specification SPEC, ou une forme d’equivalence offrirait d’etablir que SY S respecte la

specification SPEC, un reseau Res et une trace abstraite de faille V uln verifierait si

une faille V uln peut etre exploitee sur le reseau Res.

Une autre avenue de recherche consiste a elaborer un langage de description de pro-

prietes puis a implanter un algorithme de verification de la securite reseau par rapport

a des proprietes donnees.

Bibliographie

[1] Neumann, J. von “Theory of self-reproducing automata” A.W. Burks ,ed., Urbana,

University of Illinois Press (1966)

[2] Hopcroft, J.E., Ullman, J.D. “Introduction to Automata Theory, Languages and

Computation” Addison-Wesley (1979)

[3] Plotkin, G.D. “A structural approach to operational semantics”, Report DAIMI

FN-19, Computer Science Departement, Aarhus University 1981

[4] Lacasse, A.,Couture, M. “Modelisation de reseaux”, Rapport technique, Universite

Laval 2003

[5] Vitek, J.,Castagna, G. “Seal : A Framework for Secure Mobile Computation,”

[6] Cardelli, L.,Gordon, A. D., “Mobile Ambients,” 1999.

[7] Milner, R “A calculus of communication systems” Springer-Verlag, 1980

[8] Milner, R “A calculus of communication systems - Part II” Springer-Verlag, 1980

[9] Milner, R “A calculus of communication systems - Part III” Springer-Verlag, 1980

[10] Milner, R.,Parrow, J., Walker, D. “A calculus of mobile processes, Parts 1-2,”

Information and computation, 100(1),1-77. 1992

[11] “http ://fr.wikipedia.org/wiki/Hacktivisme”

[12] “http ://asia.cnet.com/news/security/0,39037064,39197226,00.htm”

[13] Plummer, D. “Request For Comment 826” 1982

[14] Information Sciences Institute, University of Southern California “Request For

Comment 791 for DARPA Information Processing techniques Office” 1981

[15] Arkin, O. “ICMP Usage in Scanning” 2001

[16] Cleaveland, R., Yankelevich, D. “Framework for Value-Passing Processes.”, Pages

326-338 of : Proceedings of POPL’94. 1994

[17] Berry, G. et G. Boudol. “The chimical abstract machine.”, Theorical Computer

Science 96(1),217-248. 1992

[18] Milner, R. “Functions as processes.”, Mathematical Structures in Computer

Science, 2,119-141. 1992

Bibliographie 105

[19] Postel, J. “Internet Control Message Procotol”, STD 5 , RFC 792, 1981

[20] Information Sciences Institute, Universite of Southern California “Transmission

Control Protocol”, STD 5 , RFC 793, 1981

[21] Braden, S. “Requirement for Internet Hosts - Communication Layers”, STD 3 ,

RFC 1122 1989

[22] Postel, J. “Transmission Control Protocol”, STD 7, RFC 793 1981

[23] Hedrick, C. “Routing Information Protocol”, RFC 1058 June 1988

[24] Moy, J. “OSPF Version 2”, RFC 1247 July 1991

[25] Watson, P. “Sliping in the Window : TCP Reset Attacks”, CanSecWest Conference,

2004

[26] McCloghrie, K. “Management Information Base for Network Management of

TCP/IP-based internets”, STD 4, RFC 1213 1991

[27] Rose, M., McCloghrie, K. “Structure and Indentification of Management of Infor-

mation for TCP/IP-based internets”, STD 4, RFC 1213 1990

[28] Case, J., Fedor, M., Schoffstall, M., Davin, J. “A Simple Network Management

Protocol (SNMP)”, RFC 1157 1990

[29] McPherson, D., Dykes, B. “Virtual Private LANs IEEE standards”, RFC 3069

2001

[30] Postel, J., Reynolds, J. “A Standard for the Transmission of IP Datagrams over

IEEE 802 Networks”, RFC 1042 1988

[31] Bulletin de securite Cisco System. “http ://www.cisco.com” 2003

[32] Bulletin de securite Cisco System. “http ://www.cisco.com” 2005

[33] Milner, R., “A Calculus of communicating systems”, Lecture Notes in Comput.

Sci. 92, Springer-Verlag 1980

[34] Cardelli, L.,Ghelli, G.,Gordon A., “ Types for the ambient calculus” Journal of

Information and Computation 2002

[35] Cardelli, L.,Ghelli, G.,Gordon A., “ Mobility Types for Mobile Ambients” Lecture

Notes in Computer Science 1999

[36] Milnet, R., “ The polyadic Pi-calculus : a tutorial.”, Technical Report ECSLFCS

-91-180, ECSLFCS 1991

[37] Walker, D., Sangiori, D. “ The Pi-Calculus : A Theory of Mobile Processes” Cam-

bridge University Press 2003

[38] Freitas L.,Cavalcanti A.,Sampaio A., “ JACK : A Framework for Process Algebra

Implementation in Java”Proceedings of XVI Simpesio Brasileiro de Engenharia de

Software, Sociedade Brasileira de Computacao 2002

Bibliographie 106

[39] Ferrari G.,Gnesi S.,Montanari U.,Pistore M.,Ristori G., “ Verifying mobile pro-

cesses in the HAL environment. In Proc. of Computer Aided Verication” CAV98,

volume 431 of Lecture Notes in Computer Science. Springer-Verlag 1998