Download - MODÉLISATION ET SÉCURITÉ DES RÉSEAUX
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.
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.
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
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.
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