Vous êtes sur la page 1sur 342

Michal Zalewski

Menaces sur le rseau


Scurit informatique : guide pratique des attaques passives et indirectes

Menaces sur le rseau


Guide pratique des attaques passives et indirectes

Michal Zalewski

CampusPress a apport le plus grand soin la ralisation de ce livre an de vous fournir une information complte et able. Cependant, CampusPress nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation. Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle. CampusPress ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes. Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurs propritaires respectifs.
Publi par CampusPress 47 bis, rue des Vinaigriers 75010 PARIS Tl. : 01 72 74 90 00 Mise en pages : TyPAO Collaboration ditoriale : Marie-France Claerebout ISBN : 978-2-7440-4031-3 Copyright 2009 Pearson Education France Tous droits rservs CampusPress est une marque de Pearson Education France Titre original : Silence on the wire. A Field Guide to Passive Reconnaissance and Indirect Attacks Traduit de lamricain par Philippe Beaudran Relecture technique : Paolo Pinto (Sysdream) ISBN original : 1-59327-046-1 Copyright 2005 by Michal Zalewski All rights reserved

No Starch Press www.nostarch.com

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code.

Pour Maja

propos de lauteur
Michal Zalewski est un chercheur autodidacte sur la scurit de linformation qui a travaill sur des sujets allant de la conception du matriel et des systmes dexploitation la gestion des rseaux. Il a dcouvert de nombreux bogues, est un membre actif de Bugtraq depuis le milieu des annes 1990 et a crit des utilitaires de scurit populaires comme p0f, un utilitaire de ngerprinting passif du systme dexploitation. Il a galement publi un certain nombre dtudes sur la scurit qui ont t acclames. Michal a travaill comme expert pour la scurit dans plusieurs entreprises de renom, dont deux gants des tlcommunications, la fois dans son pays natal, la Pologne, et aux tats-Unis. En plus dtre un fervent chercheur et un programmeur occasionnel, Michal sintresse galement lintelligence articielle, aux mathmatiques appliques, llectronique et la photographie.

Remerciements
Nous remercions vivement Paolo Pinto (Sysdream) pour sa prcieuse collaboration et son soutien technique, sans lesquels ldition franaise de cet ouvrage naurait pu voir le jour.

Table des matires


propos de lauteur ................................................................................................... Remerciements ........................................................................................................... Avant-propos ..................................................................................................................... Introduction ...................................................................................................................... Quelques mots de lauteur .......................................................................................... propos de cet ouvrage ............................................................................................. Partie I La source 1. Lcoute du clavier ....................................................................................................... Le besoin de hasard .................................................................................................... Gnrer automatiquement des nombres alatoires .......................................... La scurit des gnrateurs de nombres pseudo-alatoires ............................. Entropie entre-sortie : votre souris vous parle ............................................... Interruptions : un exemple pratique ................................................................ Fonctions de rsum ........................................................................................ De limportance dtre pdant ......................................................................... Lentropie ne doit pas tre gche ................................................................... Attaques : les implications dun changement soudain de paradigme ............. Examen plus dtaill des motifs dans le temps en entre ............................... Tactiques de dfense immdiates .................................................................... Les gnrateurs de nombres alatoires matriels : une meilleure solution ? .................................................................................. Matire rexion ...................................................................................................... Les attaques distance fondes sur le temps .................................................. Exploiter les diagnostics du systme ............................................................... Reproduction de limprvisible ....................................................................... 2. Des efforts supplmentaires ne sont jamais inutiles ................................................. Lhritage de Boole .................................................................................................... 7 8 10 11 12 13 15 17 18 19 20 24 24 26 26 27 27 29 30 V V XV 1 1 2

VIII

Menaces sur le rseau

Vers loprateur universel ........................................................................................... La loi de De Morgan en pratique .................................................................... La commodit est une ncessit ...................................................................... Englober la complexit ................................................................................... Vers le monde matriel ............................................................................................... Un ordinateur sans lectricit ..................................................................................... Une conception dordinateur lgrement plus classique ............................................ Portes logiques ................................................................................................ Des oprateurs logiques aux calculs ........................................................................... Du sablier lectronique lordinateur ........................................................................ La machine de Turing et les suites complexes dinstructions ................................... Utilisation pratique, enn ................................................................................ Le Graal : lordinateur programmable ............................................................ Des amliorations par simplication ............................................................... Le partage des tches ...................................................................................... tapes dexcution .......................................................................................... Le moins de mmoire possible ........................................................................ Plus dactions la fois : le pipelining ............................................................. Le gros problme des pipelines ....................................................................... Implications : de subtiles diffrences ......................................................................... Utiliser les motifs dans le temps pour reconstruire les donnes ..................... Bit par bit ......................................................................................................... En pratique .................................................................................................................. Optimisation early-out ................................................................................................ Code fonctionnel, faites-le vous-mme ........................................................... Prvention ................................................................................................................... Matire rexion ...................................................................................................... 3. Les dix ttes de lhydre ................................................................................................ TEMPEST : lespionnage des missions TV ............................................................. Les limitations de la condentialit ............................................................................ tablir la provenance des donnes .................................................................. Divulgation malencontreuse : *_~1q@@... et le mot de passe est ............ 4. Travailler pour le bien de tous ....................................................................................

30 31 32 33 34 35 36 36 37 40 43 45 45 46 47 48 50 51 52 53 54 55 56 57 59 61 62 63 64 66 67 68 71

Table des matires

IX

Partie II Un endroit sr 5. Les Blinkenlights ......................................................................................................... Lart de transmettre des donnes ................................................................................ De votre courrier lectronique des bruits intenses aller et retour ................................................................................................... De nos jours ..................................................................................................... Parfois, un modem est juste un modem .......................................................... Les collisions sous contrle ............................................................................ Les coulisses : la soupe de cble et comment la grer .................................... Les blinkenlights et les communications ........................................................ Les consquences des diodes esthtiques ................................................................... Construire son propre dispositif despionnage ....................................................... et lutiliser avec un ordinateur ................................................................................ Empcher que les DEL ne divulguent des donnes (et pourquoi cela ne fonctionne pas) .......................................................................... Matire rexion ...................................................................................................... 6. chos du pass ............................................................................................................. Construire la tour de Babel ......................................................................................... Le modle OSI ................................................................................................ La phrase manquante .................................................................................................. Matire rexion ...................................................................................................... 7. La scurit dans les rseaux commuts ..................................................................... Un peu de thorie ........................................................................................................ La rsolution de ladresse et la commutation .................................................. Les rseaux virtuels et la gestion du trac ...................................................... Attaques sur larchitecture .......................................................................................... Le CAM et linterception du trac .................................................................. Autres exemples dattaques : DTP, STP, trunks .............................................. Prvention des attaques .............................................................................................. Matire rexion ...................................................................................................... 8. Lenfer, cest les autres ................................................................................................ Les indicateurs logiques et leur utilisation inhabituelle ............................................. Montrez-moi ce que vous tapez et je vous dirai qui vous tes ........................ Les bits inattendus : des donnes personnelles dissmines partout .......................... Les failles du wi- ...................................................................................................... 79 80 82 88 89 90 93 95 96 97 99 103 106 109 110 111 112 115 117 118 118 120 123 123 124 124 125 127 129 130 131 132

Menaces sur le rseau

Partie III Dans la jungle 9. Un accent tranger ...................................................................................................... Le langage dInternet .................................................................................................. Routage naf .................................................................................................... Le routage dans le monde rel ........................................................................ Lespace dadressage ....................................................................................... Des empreintes digitales sur lenveloppe ........................................................ Internet Protocol ......................................................................................................... Version du protocole ....................................................................................... Le champ IHL ................................................................................................. Le champ Service (8 bits) ............................................................................... La longueur totale (16 bits) ............................................................................. Ladresse IP source .......................................................................................... Ladresse IP de destination .............................................................................. Lidentiant du protocole de la quatrime couche .......................................... Le TTL ............................................................................................................ Les paramtres Flags et Offset ........................................................................ Numro didentication ................................................................................. Somme de contrle .......................................................................................... Au-del du protocole IP .............................................................................................. Le protocole UDP ....................................................................................................... Introduction ladressage des ports ................................................................ Rsum de len-tte UDP ................................................................................ Les paquets TCP ......................................................................................................... Flags de contrle : la poigne de main TCP .................................................... Autres paramtres de len-tte TCP ................................................................ Options TCP .................................................................................................... Les paquets ICMP (Internet Control Message) .......................................................... Le ngerprinting passif ............................................................................................... Examiner les paquets IP : les origines ............................................................. Time to Live initial (couche IP) ...................................................................... Le ag DF (couche IP) ................................................................................... Le numro IP ID (couche IP) .......................................................................... Type de service (couche IP) ............................................................................ Les champs Nonzero et Must Be Zero (couches IP et TCP) ........................... Port source (couche TCP) ............................................................................... Taille de fentre (couche TCP) ........................................................................ Pointeur durgence et valeurs du numro dacquittement (couche TCP) ....... 137 138 139 140 141 143 143 144 145 145 145 146 146 146 146 147 149 150 150 151 152 153 153 154 158 159 162 164 164 165 165 166 166 167 168 168 169

Table des matires

XI

Lordre des options (couche TCP) ................................................................... Dcalage de fentre (couche TCP, option) ...................................................... Maximum Segment Size (TCP Layer, option) ................................................ Donnes Timestamp (couche TCP, option) ..................................................... Autres types de ngerprinting passif ............................................................... Le ngerprinting passif en pratique ............................................................................ Les applications de ngerprinting passif .................................................................... Collecter des donnes statistiques et des incidents de connexion ................... Optimisation du contenu ................................................................................. laboration dune politique ............................................................................. La scurit du pauvre ...................................................................................... Test de scurit et dcouverte du rseau ......................................................... Proling du consommateur et invasion de la vie prive .................................. Espionnage et reconnaissance furtive ............................................................. Protection contre le ngerprinting .............................................................................. Matire rexion : le dfaut fatal de la fragmentation IP ........................................ Fragmentation TCP ......................................................................................... 10. Stratgies avances pour compter les moutons ....................................................... Les avantages et les implications du ngerprinting passif classique .......................... Un bref historique des numros de squence ............................................................. Obtenir plus dinformations des numros de squence .............................................. Coordonnes temporises : images des squences dans le temps .............................. Une galerie de jolies images de la pile TCP/IP .......................................................... Attaques utilisant les attracteurs ................................................................................. Retour au ngerprinting du systme ........................................................................... ISNProber, la mise en pratique de la thorie ................................................... Empcher lanalyse passive ....................................................................................... Matire rexion ...................................................................................................... 11. La reconnaissance des anomalies ............................................................................. Les bases des pare-feu de paquets .............................................................................. Filtrage et fragmentation sans tats ................................................................. Filtrage sans tats et perte de synchronisation du trac .................................. Les ltres de paquets tats ............................................................................ Rcriture de paquet et NAT ........................................................................... Lost in Translation ........................................................................................... Les consquences du masquerading ........................................................................... La taille des segments .................................................................................................

169 170 170 170 171 171 174 174 175 175 175 176 176 176 177 178 180 183 184 186 188 189 194 199 202 203 204 204 207 208 209 210 212 213 214 215 216

XII

Menaces sur le rseau

Suivi tats et rponses inattendues ........................................................................... Fiabilit ou performances : la controverse sur le bit DF ............................................ Cas dchec du Path MTU Discovery ............................................................. La lutte contre PMTUD et ses retombes ....................................................... Matire rexion ...................................................................................................... 12. Fuite des donnes de la pile ...................................................................................... Le serveur de Kristjan ................................................................................................ Des dcouvertes surprenantes ..................................................................................... Rvlation : la reproduction du phnomne ............................................................... Matire rexion ...................................................................................................... 13. Fume et miroirs ........................................................................................................ Lusurpation dadresse IP : le scan de port avanc ..................................................... Larbre qui cache la fort ................................................................................ Lidle scan ....................................................................................................... Se dfendre contre lidle scan ..................................................................................... Matire rexion ...................................................................................................... 14. Lidentication du client : vos papiers, sil vous plat ! .......................................... Camouage ................................................................................................................. Dnition du problme ................................................................................... Vers une solution ............................................................................................. Une (trs) brve histoire du Web ................................................................................ Notions lmentaires sur le protocole de transfert hypertexte ................................... Amliorer HTTP ......................................................................................................... La rduction de la latence : du bricolage ........................................................ La mise en cache du contenu .......................................................................... La gestion des sessions : les cookies ............................................................... Le mlange des cookies et du cache ............................................................... Empcher lattaque utilisant les cookies en cache .......................................... La dcouverte des trahisons ........................................................................................ Exemple simple danalyse comportementale .................................................. Donner un sens aux graphiques ....................................................................... Au-del du moteur... ........................................................................................ et au-del de lidentication ....................................................................... Prvention ................................................................................................................... Matire rexion ......................................................................................................

218 219 219 221 222 225 225 226 228 229 231 232 232 233 236 236 237 238 239 240 240 242 244 244 246 249 250 251 252 253 255 256 257 259 259

Table des matires

XIII

15. Les avantages dtre une victime ............................................................................. Connatre les mesures de lattaquant .......................................................................... Se protger : observer les observations ...................................................................... Matire rexion ......................................................................................................

261 262 266 267

Partie IV Vision densemble 16. Le calcul parasitaire, ou comment lunion fait la force ......................................... Lutilisation des processeurs distants ......................................................................... Considrations pratiques ............................................................................................ Les dbuts du stockage parasitaire ............................................................................. Rendre possible le stockage parasitaire ...................................................................... Applications, considrations sociales, et dfense ....................................................... Matire rexion ...................................................................................................... 17. La topologie du rseau .............................................................................................. Capturer linstant ........................................................................................................ Utiliser les donnes de topologie pour identier lorigine du trac ........................... La triangulation du rseau laide des donnes de la topologie maille ................................................................................................ Lanalyse de la saturation du rseau ........................................................................... Matire rexion ...................................................................................................... 18. En regardant le vide .................................................................................................. Les tactiques dobservation directe ............................................................................ Lanalyse des retombes du trac de lattaque ........................................................... Dtecter les donnes malformes ou mal diriges ..................................................... Matire rexion ...................................................................................................... pilogue ............................................................................................................................. Notes bibliographiques ..................................................................................................... Index .................................................................................................................................. 271 272 275 277 279 287 288 289 290 292 294 295 298 299 300 303 305 307 309 311 317

Avant-propos

Que faut-il pour crire un livre sur la scurit informatique ? Ou, plutt, que faut-il pour crire un roman sur linformatique moderne ? Il faut un auteur jeune mais trs expriment qui possde des talents dans de nombreux domaines, dans de nombreux aspects de linformatique, des mathmatiques et de llectronique (et peut-tre un intrt pour la robotique) mais qui sintresse galement dautres sujets apparemment sans rapport (y compris, disons-le, la photographie rotique). Enn, bien sr, il doit avoir lenvie dcrire et le talent pour le faire. Il tait une fois dans une fort sombre et vierge des arbres qui, grce la magie des arbres (les cellules du cerveau), donnrent naissance un bit dinformation. Ds sa naissance, il partit naviguer sur une rivire aux ots tumultueux qui se jetait dans une mer immense (Internet) pour fonder un nouveau foyer, mourir ou peut-tre prendre place dans un muse. Et ainsi commence notre rcit. Que notre bit soit bon ou mauvais, la rivire le conduit dans un premier temps dans un resplendissant chteau blanc (bien que beaucoup le considrent encore comme une bote noire). Il franchit lentre et sapproche de la rception pour signaler son arrive. Sil ntait pas si naf, il aurait pu constater un groupe de bits patibulaires qui observent larrive des bits distance, en notant la frquence laquelle ils se prsentent et quittent la rception. De toute faon, il na dautre choix que de senregistrer.

XVI

Menaces sur le rseau

Une fois repos, notre hros est invit se joindre un groupe de ses congnres. Ensemble, ils sentassent sur un radeau pneumatique dj fort us et dont le fond est jonch de dchets (mais sagit-il bien de dchets ?) sans doute laisss l par le groupe qui les a prcds. En respectant les feux de circulation et en se faulant dans les embouteillages, nos bits parviennent nalement gagner un refuge sr o ils accostent. Seront-ils reprs depuis les chteaux et les phares alentour ? Quelquun surveille-t-il les feux de circulation depuis leur dpart ? Quelquun allume-t-il les lumires sur le quai o ils dbarquent et les prend en photo ? Les mchants bits usurpent-ils leur identit et les prcdent-ils ? Nos bits ne le savent pas. Et, donc, ils embarquent sur un autre bateau et naviguent vers la mer... Le voyage de notre confrrie de bits se poursuit, et de nombreux dangers les guettent. Non, le livre de Michal ne cache pas de dtails techniques sous lapparence dun conte de fes, comme je viens de le faire. Tout en restant divertissant, il nonce directement tous les faits et donne rapidement des rponses la plupart des problmes noncs au dbut de chaque chapitre. Bien que Menaces sur le rseau soit unique de nombreux gards, deux caractristiques lui permettent de se dmarquer des autres ouvrages : tout dabord, il fournit des informations dtailles sur la quasi-totalit des tapes essentielles du traitement des donnes qui permettent aujourdhui "linterconnexion", depuis la pression sur une touche du clavier jusquau rsultat que cette action entrane. Il dnit ensuite les problmes de scurit si souvent ngligs et peu tudis qui sont inhrents chaque tape de la mise en rseau et lensemble du processus. Les questions de scurit abordes montrent lart de la recherche des failles aussi bien du point de vue de lattaquant que du dfenseur et encouragent le lecteur poursuivre ses propres recherches. Manifestement, un ouvrage sur la scurit informatique ne peut pas tre exhaustif. Dans
Menaces sur le rseau, Michal a choisi dlibrment de ne pas aborder les attaques et les

failles trs connues et pourtant trs dangereuses sur lesquelles se concentre la majorit de la communaut qui se consacre aux problmes de scurit de linformation. Il vous parlera des attaques fondes sur le temps dopration des touches du clavier mais ne vous rappellera pas que les "chevaux de Troie" qui permettent de contrler distance un ordinateur sont actuellement la fois plus frquents et plus faciles utiliser quaucune de ces attaques. Pourquoi parler de lcoute du clavier et laisser de ct les chevaux de Troie ? Parce que les attaques fondes sur le temps sont largement sous-estimes et mal comprises, mme par les professionnels de la scurit, tandis que les chevaux de Troie sont bien connus et reprsentent une menace vidente. La vulnrabilit aux attaques fondes sur le temps est une proprit

Avant-propos

XVII

inhrente la conception de nombreux composants, tandis quimplanter un cheval de Troie exige soit un bogue du logiciel soit quun utilisateur nal fasse une erreur. De mme, et quelques exceptions prs, vous ne trouverez pas la moindre mention dans cet ouvrage des bogues logiciels les plus courants ni mme des bogues des classes gnriques des logiciels comme le "dpassement de tampon". Si les failles de scurit informatiques les plus communes ne vous sont pas familires et que vous dsiriez en savoir plus sur ces sujets, vous devrez pour suivre ce livre vous plonger dans des lectures moins passionnantes sur Internet et dans dautres ouvrages, en particulier dans les documents qui abordent le systme dexploitation spcique que vous utilisez. Mais vous vous demandez peut-tre pourquoi tudier le silence, puisque le silence nest rien. Oui, dans un sens mais, de ce point de vue, le zro aussi nest rien. Or zro est aussi un nombre, un concept sans lequel nous ne pouvons pas vraiment comprendre le monde. Apprciez autant que possible le silence. Alexander Peslyak Fondateur et directeur technique de la socit Openwall mieux connu sous le pseudo Solar Designer Chef de projet Openwall Janvier 2005

Introduction

Quelques mots de lauteur


On pourrait croire que je suis un geek informatique depuis lenfance, mais ma rencontre avec les problmes de scurit des rseaux sest produite par accident. Jai toujours aim exprimenter, explorer de nouvelles ides et relever des ds en thorie bien dnis mais pas si simples en pratique ; des problmes qui exigent pour les rsoudre dadopter une approche novatrice et crative mme si jchoue nalement trouver une solution. Quand jtais jeune, jai pass la plus grande partie de mon temps effectuer des tentatives parfois risques et souvent stupides en chimie, mathmatiques, lectronique et nalement en informatique plutt que faire du vlo dans mon quartier toute la journe (jexagre probablement un peu, mais ma mre semblait toujours tre inquite). Peu de temps aprs ma premire rencontre avec Internet (au milieu des annes 1990, peut-tre huit ans aprs avoir cod mon premier programme "Hello world" sur une machine 8 bits que jadorais), jai reu une demande inhabituelle par e-mail : un mailing de masse qui, cest difcile croire, me demandait (ainsi qu plusieurs milliers dautres personnes) de rejoindre une quipe de hackers chapeau noir. Ce message ne ma pas pouss entrer dans ce milieu (peut-tre en raison de mon fort instinct de conservation, ce que dautres considrent comme de la lchet), mais il ma en quelque sorte incit explorer le domaine de la scurit informatique plus en dtail. Ayant fait beaucoup de programmation en amateur, jtais fascin par lide de considrer le

Menaces sur le rseau

code avec un autre point de vue et dessayer de trouver un moyen pour quun algorithme fasse quelque chose de plus que ce quil tait cens faire. Internet me semblait parfait pour les ds dont je rvais un systme important et complexe reposant sur un seul principe : on ne peut vraiment avoir conance en personne. Et cest ainsi que tout a commenc. Je nai pas la culture que vous pourriez attendre dun spcialiste en scurit informatique, une profession qui est en train de devenir monnaie courante aujourdhui. Je nai jamais reu aucune ducation formelle en science informatique et je ne suis pas bard de diplmes. La scurit a toujours constitu une de mes principales passions (et maintenant ma profession). Je ne suis pas le strotype du geek informatique et je prends de temps autre de la distance par rapport mon travail, voire mloigne compltement de tout ordinateur. Que cela soit un mal ou un bien, tout cela a inuenc la forme et le contenu de ce livre. Je donne ma vision de la scurit informatique, dune manire diffrente de lenseignement traditionnel. Pour moi, la scurit ne reprsente pas un seul problme rsoudre ni un processus unique suivre. Il sagit non pas de matriser un domaine spcique mais de voir lensemble de lcosystme et de comprendre chaque composant.

propos de cet ouvrage


Mme dans la faible lueur dispense par nos crans, nous ne sommes encore que des tres humains. Nous avons appris faire conance aux autres, et nous ne voulons pas tre trop paranoaques. Nous avons besoin de trouver un compromis raisonnable entre scurit et productivit pour vivre confortablement. Nanmoins, Internet est diffrent du monde rel. Se conformer aux rgles napporte aucun avantage lensemble et commettre des mfaits ne nous laisse gnralement que peu de remords. Nous ne pouvons tout simplement pas faire conance au systme et il nexiste pas de rgle unique qui puisse tre applique tous les problmes. Instinctivement, nous traons une ligne de dmarcation entre "nous" et "eux" an de crer une le depuis laquelle nous regardons les navires pirates naviguer lhorizon. Bientt, des problmes de scurit commencent apparatre, des anomalies localises qui peuvent tre facilement identies, analyses et rsolues. De ce point de vue, les intentions des agresseurs semblent tre claires et, si nous sommes vigilants, nous pouvons les voir approcher et les arrter. Pourtant, le monde virtuel est diffrent : scurit ne signie pas absence de bogues ; la scurit ne consiste pas rester hors de porte des attaques. Chaque processus ou presque qui implique le traitement ou la transmission dinformation a sur la scurit des consquences qui deviennent visibles linstant o nous regardons au-del de lobjectif

Introduction

que le processus essaie datteindre. Comprendre la scurit est lart de franchir cette ligne de dmarcation et dadopter un point de vue diffrent. Ce livre nest pas conventionnel, du moins je lespre. Il ne sagit ni dun recueil de problmes ni dun guide pour scuriser vos systmes. Il commence par suivre lhistoire des informations, depuis le moment o vos mains touchent le clavier jusqu leur arrive lautre extrmit du rseau. Il traite de considrations technologiques et de leurs consquences sur la scurit, en mettant laccent sur des problmes qui ne peuvent pas tre qualis de bogues, car il ny a pas dattaquant, pas de faille analyser ni rsoudre ou parce que ces attaques sont indtectables (elles ne peuvent du moins pas tre distingues de lactivit normale). Lobjectif de ce livre est de dmontrer que le seul moyen de comprendre Internet est davoir le courage de dpasser les spcications ou de les lire entre les lignes. Comme le sous-titre lindique, ce livre met laccent sur la condentialit et les problmes de scurit inhrents aux communications et linformatique de tous les jours. Certains de ces problmes ont des consquences importantes, tandis que dautres sont simplement intressants et stimulants. Aucun naura dimpact dvastateur immdiat sur lenvironnement ou ne dtruira les donnes du disque dur. Cet ouvrage sadresse aux professionnels et aux amateurs chevronns des technologies de linformation qui veulent rchir et qui dsirent en apprendre davantage sur les consquences peu videntes des dcisions prises lors de la conception. Il se destine ceux qui veulent apprendre utiliser ces subtilits pour prendre le contrle de leur environnement et acqurir un avantage sur le monde extrieur. Ce livre est divis en quatre sections. Les trois premires parties abordent les diffrentes tapes de la transmission des donnes et des technologies qui sont dployes pour cela. La dernire section porte sur le rseau dans son ensemble. Chaque chapitre traite des technologies utilises chaque tape du traitement des donnes, examine leurs implications en matire de scurit, montre leurs effets secondaires, indique si possible des moyens daborder ces problmes et comment explorer le sujet plus en dtail. Dans la mesure du possible, jessaie dviter les graphiques, tableaux et autres spcications (mais vous trouverez de nombreuses rfrences en bas de page). Comme vous pouvez facilement trouver beaucoup de documentation de rfrence en ligne, mon objectif est avant tout de rendre ce livre agrable lire. Nous commenons ?

Partie I
La source
O il est question des problmes qui surgissent bien avant que les informations ne soient envoyes sur le rseau.

1
Lcoute du clavier
O lon apprend que les touches du clavier peuvent tre surveilles distance.

Ds le moment o vous appuyez sur une touche du clavier, linformation que vous envoyez commence un long priple dans le monde virtuel. Quelques microsecondes avant que les paquets ne transitent par les bres optiques ou par satellite, chaque morceau dinformation commence un tortueux voyage dans un labyrinthe de circuits. Bien avant que le systme dexploitation et les programmes quil excute ne
la reoivent, de nombreux mcanismes subtils et de bas niveau entament un processus qui intresse toutes sortes de hackers et qui sest rvl avoir une grande signication pour les responsables de la scurit. Le chemin qui mne lutilisateur est pav de nombreuses surprises. Ce chapitre est consacr ces phases initiales denvoi des donnes et aux possibilits quont les autres utilisateurs (bienveillants ou non) den savoir beaucoup sur ce que vous faites devant votre terminal. Un exemple de divulgation dinformation travers la faon dont lordinateur traite les donnes que vous saisissez renvoie un sujet qui semble pourtant totalement sans rapport premire vue : la difcult de produire des chiffres alatoires sur une machine qui se comporte de faon totalement prvisible. Il est en effet difcile de trouver un rapport aussi tnu mais, pourtant, ce problme existe bien et peut permettre un

La source

observateur sournois de dduire normment de choses partir de lactivit dun utilisateur, quil sagisse de ses mots de passe ou des e-mails condentiels quil saisit.

Le besoin de hasard
Les ordinateurs sont totalement dterministes. Ils traitent les donnes en fonction dun ensemble de rgles bien dnies. Les ingnieurs font de leur mieux pour compenser les imperfections lies au processus de fabrication et aux proprits des composants lectroniques eux-mmes (interfrences, bruit thermique, et ainsi de suite) an de garantir que le systme suive toujours la mme logique et fonctionne correctement. Lorsque les composants refusent dagir comme on lespre (saturation, lenteur), nous rejetons la faute sur lordinateur. La cohrence des machines et leurs merveilleuses capacits de calcul font de lordinateur un outil si intressant pour ceux qui parviennent le contrler et le matriser. Bien sr, il faut admettre que tout nest pas parfait et les personnes qui se plaignent du manque de abilit des ordinateurs nont pas entirement tort. En dpit du fonctionnement parfait des composants, les programmes informatiques eux-mmes se comportent mal dans diffrentes situations. En effet, mme si le matriel informatique est souvent cohrent et able, il est impossible de prvoir le comportement dun seul programme informatique complexe sur le long terme et, a fortiori, dun ensemble de logiciels interdpendants (comme cest le cas dun systme dexploitation). Cela rend difcile la validation dun programme, mme dans lhypothse o lon parvienne tablir un modle dtaill sufsamment strict et exempt de dfauts du fonctionnement du programme. Pourquoi ? En 1936, Alan Turing, le pre de la programmation actuelle, a prouv par labsurde quil ne peut pas y avoir de mthode gnrale pour dterminer le rsultat dune procdure informatique ou dun algorithme dans un temps dni (bien quil puisse exister certaines mthodes spciques pour certains algorithmes) 1. En pratique, si on ne peut donc pas esprer quun systme dexploitation ou un traitement de texte se comporte toujours exactement de la faon prvue par son auteur ou son utilisateur, on peut tout de mme sattendre ce que le mme programme install sur deux systmes disposant des mmes composants matriels ait un comportement cohrent et identique si on lui fournit les mmes donnes en entre ( moins bien sr quun des deux systmes ne soit cras par un piano ou inuenc par dautres vnements externes). Cela constitue bien sr une excellente nouvelle pour les entreprises qui commercialisent les programmes, mais les personnes en charge de la scurit prfreraient parfois que les ordinateurs soient un peu moins dterministes. Pas ncessairement tant dans la faon dont ils se comportent que dans les rsultats quils produisent.

Chapitre 1

Lcoute du clavier

Prenons lexemple du cryptage des donnes et en particulier le concept de cryptographie cl publique. Cette brillante et nouvelle forme de chiffrement (entre autres) fut invente dans les annes 1970 par Whiteld Dife et Martin Hellman, puis mise en application peu de temps aprs par Ron Rivest, Adi Shamir et Len Adleman. Ce systme, aussi appel cryptographie asymtrique, repose sur un concept simple : certaines choses sont plus difciles que dautres. Cela parat vident, bien sr, mais ajoutez quelques notions mathmatiques de haut niveau et vous obtenez une invention de premier plan. La cryptographie traditionnelle, ou symtrique, repose sur une information "secrte" (la cl) connue de toutes les personnes impliques. La cl est ncessaire mais sufsante pour chiffrer et ensuite dchiffrer linformation transmise, si bien quune personne extrieure, mme si elle connat la mthode de chiffrement utilise, ne peut pas dcouvrir le contenu du message. Mais, comme il est ncessaire de partager un secret, cette approche est assez peu pratique en terme de communication informatique. En effet, il est dabord ncessaire dtablir un moyen scuris pour changer le secret avant mme de communiquer transfrer le secret sur un canal non scuris rendrait le systme vulnrable au dchiffrement. En informatique, on communique souvent avec des systmes ou des personnes que lon na jamais vus auparavant et avec lesquels on ne dispose daucun autre moyen scuris pour entrer en contact. La cryptographie cl publique, au contraire, ne repose pas sur un secret partag. Chaque partie dispose de deux lments : le premier (la cl publique) permet de crer un message chiffr mais ne sert quasiment rien pour le dcrypter ; le second (la cl prive) sutilise pour dcrypter le message chiffr. Les personnes qui communiquent peuvent changer leurs cls publiques sur un canal non scuris, mme sil est surveill. Elles se fournissent mutuellement linformation (inutile pour un observateur externe) ncessaire au chiffrement des messages quelles schangent, mais elles conservent pour elles-mmes la partie ncessaire au dchiffrement des donnes. Tout coup, la communication scurise entre deux parfaits inconnus (un client assis sur le canap de son appartement et le serveur dun site de vente en ligne) devient une ralit. Le systme de chiffrement cl publique RSA (Rivest, Shamir et Adleman), original, repose sur le fait que multiplier deux nombres de grande taille reprsente une complexit de calcul assez faible, puisque directement proportionnelle au nombre de chiffres multiplier. linverse, il est beaucoup plus difcile de dcomposer en produit de facteurs premiers (factorisation) un nombre de grande taille, moins dtre un gnie de la cryptographie travaillant pour la NSA, et encore. Lalgorithme RSA choisit tout dabord deux nombres premiers* de trs grande taille, p et q, et les multiplie. Il utilise ensuite ce produit et un autre nombre premier**, (p1)(q1), pour crer une cl publique.
* Un nombre premier est un entier positif qui ne se divise que par 1 ou lui-mme. ** Le second entier na dautre facteur commun avec le premier entier que 1 et 1 (leur plus grand commun diviseur est 1).

10

La source

Cette cl est utilise pour chiffrer linformation mais ne suft pas pour la dchiffrer sans recourir la factorisation. La factorisation des produits de deux nombres premiers de grande taille est souvent impossible, ce qui protge des attaques. Lalgorithme de factorisation le plus rapide sur les ordinateurs traditionnels, le crible gnral de corps de nombres (GNFS), aurait besoin de plus de mille ans pour factoriser un nombre entier de 1 024 bits, raison dun million de tests par seconde. En revanche, il ne faut que quelques secondes un PC de moyenne gamme pour trouver deux chiffres premiers dont le produit soit de cette taille. En outre, dans le systme RSA, on cre galement une cl prive en plus de la cl publique. Cette cl prive contient sur les nombres premiers des donnes supplmentaires qui peuvent tre utilises pour dcrypter toute information chiffre avec la cl publique. Lastuce est possible, grce au thorme des restes chinois, le thorme dEuler et dautres concepts mathmatiques fascinants que certains lecteurs curieux auront peuttre envie de dcouvrir par eux-mmes 2. Dautres systmes de cryptographie cl publique fonds sur des formules mathmatiques complexes ont galement t conus par la suite (comme la cryptographie utilisant les courbes elliptiques, par exemple), mais tous partagent le principe de cls publiques et de cls prives. Cette mthode sest rvle sre pour scuriser les e-mails, les transactions sur le Web, mme lorsque lchange seffectue entre deux parties qui ne sont jamais entres en contact et ne disposent pas dun canal scuris pour changer des informations complmentaires avant dtablir la connexion*. Quasiment tous les protocoles de communication scurise utiliss aujourdhui, comme SSH (Secure Shell) ou SSL (Secure Sockets Layer) pour marquer numriquement des mises jour ou des cartes puce, existent grce aux dcouvertes de Dife, Hellman, Rivest, Shamir et Adleman.

Gnrer automatiquement des nombres alatoires


Il subsiste un problme : lors de limplmentation du systme RSA sur une machine dterministe, la premire tape consiste gnrer deux nombres premiers de trs grande taille, p et q. Un ordinateur trouve facilement un premier de grande taille, mais ces nombres doivent galement tre impossibles deviner par dautres machines et ne doivent tre les mmes sur tous les ordinateurs (sils ltaient, une attaque de lalgorithme ne ncessiterait aucune factorisation puisque p et q seraient connus par toute personne disposant dun ordinateur quivalent).
* Pour tre complet, il faut noter que la cryptographie cl publique est entre autre vulnrable aux attaques menes par une personne qui cr et fournit une cl publique fausse de faon intercepter les communications. Pour se prmunir de ce type dattaques, des mthodes supplmentaires doivent tre mis en place pour vrier lauthenticit de la cl, soit en concevant un change scuris, soit en tablissant une autorit centrale qui vrie et valide les cls (infrastructures cls publiques, PKI ou IGC).

Chapitre 1

Lcoute du clavier

11

De nombreux algorithmes ont t dvelopps ces dernires annes pour trouver rapidement des nombres premiers pouvant tre utiliss (nombres pseudo-alatoires) et effectuer aussi rapidement des tests prliminaires sur ces nombres 3. Mais, pour gnrer un nombre premier vraiment impossible prvoir, il est ncessaire daccumuler de lentropie ou du hasard, quil sagisse de slectionner un nombre premier parmi un ensemble donn ou de partir dune valeur alatoire et de choisir ensuite le premier nombre premier sur lequel on tombe. Bien que le hasard soit essentiel au moment de la gnration de la cl, cela ne suft pas. La cryptographie cl publique repose sur des calculs complexes et souffre donc dune grande lenteur, en particulier lorsquon la compare la cryptographie symtrique, qui, elle, utilise des cls courtes que les machines dchiffrent laide de calculs connus pour sexcuter rapidement. Pour implmenter un protocole comme SSH, dont on attend un certain niveau de performances, il est prfrable dtablir une communication initiale, deffectuer une vrication basique laide dalgorithmes cls publiques et, donc, de crer un canal scuris. La seconde tape consiste changer une cl de chiffrement symtrique et compacte, par exemple de 128 bits, puis de continuer la communication en utilisant le systme de cryptographie symtrique. Le principal dfaut de la cryptographie symtrique est donc rsolu par la cration initiale (et donc lente) dun canal scuris pour changer le secret partager. Ensuite, en passant des algorithmes plus rapides, lutilisateur peut alors bncier de meilleures performances sans sacrier la scurit. Cependant, pour utiliser la cryptographie symtrique correctement, il est toujours ncessaire de recourir un certain degr dentropie an de gnrer une cl de session symtrique imprvisible pour chaque communication scurise..

La scurit des gnrateurs de nombres pseudo-alatoires


Les programmeurs ont conu de nombreuses mthodes pour que les ordinateurs gnrent des nombres apparemment alatoires. Ces algorithmes sont regroups sous le nom gnrique de gnrateurs de nombres pseudo-alatoires (PRNG). Les gnrateurs de nombres pseudo-alatoires sufsent pour des applications simples, comme la cration dvnements "alatoires" dans des jeux vido ou les titres des messages non sollicits dans le cadre dun mailing de masse. Prenons le gnrateur de congruence linaire (GCL) 4, un exemple classique de ce type dalgorithme. En dpit de son nom obscur, ce gnrateur de nombres alatoires effectue une suite de calculs simples (multiplication, addition et modulo*) chaque fois quil gnre une sortie
* Loprateur modulo renvoie le reste entier de la division de deux nombres. Par exemple, 7 divis par 3 donne un rsultat de 2 et un reste de 1 (7=2*3+1). 7 modulo 3 est donc gal 1.

12

La source

"alatoire". Ce gnrateur utilise sa sortie prcdente rt pour calculer la valeur de la sortie suivante rt+1 (o t indique le temps).
rt+1=(art+c)modM

Loprateur modulo empche que le rsultat dpasse la plage prdnie de valeurs possibles. Si r0, a, M et c, un ensemble de variables de contrle pour le gnrateur, sont tous des entiers positifs, tous les rsultats de lquation sont compris entre 0 et M1. Pourtant, alors que la sortie de cet algorithme peut, avec quelques rglages, afcher des proprits statistiques qui le rendent utilisable pour gnrer des nombres pseudo-alatoires, rien nest vraiment imprvisible dans les calculs effectus. Et l rside le problme : un attaquant peut facilement dvelopper sa propre copie du gnrateur et lutiliser pour connatre tous les rsultats que notre gnrateur crera. Mme si le gnrateur part dun tat initial (r0) inconnu de lattaquant, il lui est souvent possible de dduire des proprits importantes de cette valeur en observant les sorties produites par le gnrateur de la victime puis dutiliser ce quil sait pour rgler sa version du gnrateur an quelle imite la ntre. En fait, une mthode gnrale pour reconstruire et prdire tous les polynmes des gnrateurs de congruence a t tablie dans les annes 1990 5. Il est sage de ne pas ignorer ce petit inconvnient car il cre un trou bant dans cet algorithme lorsque son utilisation est essentielle la scurit. On a compris peu peu que la seule mthode quun ordinateur peut employer pour produire des donnes quasiment imprvisibles ( moins que la mmoire ne subisse une panne grave ou que le processeur ne fonde) consiste rassembler autant dinformations non prvisibles que possible partir de son environnement physique et de les utiliser comme une valeur transfrer tous les programmes qui ncessitent une bonne part de hasard. Le problme tient au fait quun ordinateur na pas de "sens" qui lui permette de sonder son environnement la recherche de signaux externes apparemment alatoires. Nanmoins, il existe une mthode assez intressante pour contourner ce problme.

Entropie entre-sortie : votre souris vous parle


Sur presque tous les systmes informatiques, les priphriques externes communiquent des vnements asynchrones, ces informations provenant de la carte rseau ou du clavier laide dun mcanisme dinterruption matriel. Chaque priphrique dispose dun nombre dinterruptions matrielles (IRQ, de langlais Interrupt Request) et indique les vnements importants en changeant le voltage sur la ligne dentre-sortie matrielle de llment qui correspond cet IRQ en particulier dans lordinateur. La modication est alors interprte par un priphrique appel le contrleur programmable dinterruption (PIC, de langlais Programmable Interrupt Controller) qui dlivre les appels dinterruption au processeur (ou aux processeurs).

Chapitre 1

Lcoute du clavier

13

Le processeur indique au contrleur dinterruption si, quand, comment et dans quel ordre de priorit il doit signaler les appels des priphriques lunit centrale, ce qui permet au processeur de grer les vnements efcacement et de faon able. Lorsquil reoit un signal du contrleur dinterruption, le processeur interrompt provisoirement la tche quil effectue, moins quil ait choisi dignorer toute interruption ce moment (au cas o il est particulirement occup). Il invoque ensuite un code assign par le systme dexploitation pour grer lappel du priphrique ou du groupe de priphriques. Une fois que le programme gre lvnement, le processeur restaure le processus original et son contexte ltat de lenvironnement au moment de linterruption et continue son excution comme si rien ne stait produit.

Interruptions : un exemple pratique


En pratique, de nombreuses tapes supplmentaires se droulent lors de la dtection dune condition externe, la gnration et la rception dun IRQ. La Figure 1.1 illustre les vnements qui sont dclenchs par lappui ou le relchement dune touche du clavier. Avant mme que vous nappuyiez sur une touche, une puce situe dans le clavier sert de microcontrleur et surveille en permanence tout changement de ltat du clavier. Le clavier est organis comme un tableau de cbles horizontaux et verticaux. Les touches (microcontacts ou membranes sensibles la pression) sont installes lintersection de chaque range et colonne. Le contrleur teste chaque range et chaque colonne sparment une vitesse trs leve. Si le contrleur du clavier dtecte par exemple un circuit ferm lorsquil teste lintersection de la range 3 et de la colonne 5 (ce qui est indiqu par une rsistance faible lorsque le voltage est appliqu ces lignes), il en conclut que la touche cet emplacement (J) est enfonce. Lorsque le contrleur du clavier sent une modication, il convertit les coordonnes de la range et de la colonne en scan code, une valeur qui identie chaque touche. Linformation est ensuite place dans la mmoire tampon interne dune puce qui signale au processeur principal lexistence de nouvelles donnes, puis reprend sa tche. La puce du contrleur dentre du clavier est lquivalent du contrleur de la carte mre. Le contrleur dentre gre habituellement tous les priphriques dentre lmentaires, comme la souris et le clavier. Il reoit un scan code unique de la puce du clavier et signale linterruption adquate au contrleur dinterruption. Ds que ce dernier dtermine quil peut envoyer cette IRQ en particulier, il transfre le signal au processeur, qui gnralement interrompt sa tche courante et fait appel au gestionnaire dinterruption du systme dexploitation. Ce gestionnaire est cens lire les donnes et indiquer la puce quil a effectu la lecture du scan code avec succs. Le contrleur dentre reprend alors

14

La source

ses activits normales et lit ventuellement un autre scan code en provenance du clavier si de nouvelles donnes se trouvent dans la mmoire tampon*.
Contrleur d'entre du clavier 8042

Contrleur du clavier Donnes disponibles (1) (2) Lecture de la requte Donnes du scan code (3) 8048 Processeur principal (invoque la routine du systme d'exploitation pour l'IRQ)

Requte IRQ (4)

(5) IRQ 1 8259 (8) Confirmation (EOI) Contrleur d'interruption

(6) scan code

(7) Lecture et reconnaissance

(9)

8042 Vers le systme d'exploitation et les programmes de l'utilisateur

Contrleur d'entre du priphrique

Figure 1.1
Communications du clavier lordinateur.

Bien quindirectement, ce schma de fonctionnement est important pour la cration de nombres alatoires. Lordinateur, en utilisant le systme de notication asynchrone des vnements (interruptions), reoit presque instantanment des indications prcises sur

* Sur de nombreuses architectures, il est ncessaire dindiquer au contrleur dentre que linterruption a t traite et quil ne doit plus bloquer les interruptions suivantes. Cest le rle du code de n dinterruption EOI (de langlais End of Interrupt).

Chapitre 1

Lcoute du clavier

15

lactivit de lutilisateur et, ce qui est peut-tre plus intressant, mesure prcisment le dlai entre chaque pression sur les touches. Bien que cette information ne soit pas totalement imprvisible, elle constitue sans doute le meilleur signal externe, quantiable et quelque part non dterministe, que la machine peut obtenir. Et, donc, pour contourner la nature dterministe de lordinateur et insrer une part de hasard dans ses calculs, les auteurs de limplmentation de gnrateurs de nombres pseudo-alatoires crent de lentropie partir du comportement gnralement imprvisible de certains priphriques comme la souris, le clavier, les interfaces rseau et parfois les disques durs. Pour cela, ils ajoutent dans le gestionnaire dinterruption du systme dexploitation un code qui enregistre certains paramtres pour chaque vnement utilisable. On peut bien sr considrer quaucune de ces sources ne fournit tout le temps de donnes vraiment alatoires. Si lutilisateur tape "camsc", il est plus que vraisemblable que les lettres qui suivent seront "ope". Mais certains comportements, comme le choix du mot camscope de notre exemple, sont en fait assez imprvisibles dun point de vue pratique (sans entrer dans une discussion philosophique sur le libre arbitre et les univers dterministes). En fait, cette mthode pour ajouter de lentropie fonctionne raisonnablement bien car elle intgre plusieurs facteurs qui ne peuvent pas tre pris en compte, surveills ou prdits par un attaquant sans quil perde sa sant mentale. Selon les lois de la probabilit, si on collecte des donnes de toutes ces sources pendant une dure assez longue, on obtient obligatoirement une certaine part de hasard. En collectant les informations dune mmoire tampon, on cre un stock dentropie qui peut tre plus ou moins important en fonction du nombre de donnes imprvisibles fournies ou utilises. Malheureusement, ces petites portions de hasard dans le stock (lorsque les donnes que nous entrons au clavier sont le fruit dvnements cosmiques) saccompagnent toujours de donnes hautement prvisibles et ne peuvent donc pas tre utilises en ltat pour gnrer des nombres alatoires. Pour sassurer que le taux dentropie des donnes collectes lors du processus de gestion et de remplissage de notre stock soit galement rparti dans tous les bits en sortie du gnrateur de nombres pseudo-alatoires, ce stock doit tre hach. Autrement dit, il doit tre soigneusement mlang pour quaucune partie des donnes ne soit plus facile prdire quune autre. Chaque bit en sortie doit dpendre part gale de tous les bits en entre. Il peut tre difcile datteindre ce but sans savoir quelles parties de linformation sont prvisibles ou non (linformation qui ne peut pas facilement tre obtenue en surveillant les touches du clavier ou les mouvements de la souris).

Fonctions de rsum
Heureusement, les fonctions de hachage scurises, un lment phare de la cryptographie moderne, nous permettent de mlanger les donnes an dobtenir plus dentropie dans chaque bit en sortie, quel que soit le manque duniformit des donnes en entre.

16

La source

Ces fonctions gnrent un rsum de longueur xe, autrement dit un identicateur unique pour un bloc de donnes de taille arbitraire en entre. Mais ce nest pas tout. Toutes les fonctions de hachage possdent deux proprits importantes :
m

Il est ais de calculer le rsum mais il nest pas possible de dduire le message original ou lune de ses proprits partir de ce rsultat. Tout changement apport au message peut autant affecter toutes les proprits de la sortie que nimporte quelle autre modication. La possibilit que deux messages distincts aient le mme rsum dpend uniquement de la taille du rsum. Si sa taille est sufsamment importante pour que des recherches exhaustives soient impossibles (entre 128 et 160 bits, soit un nombre de combinaisons compris entre 3.4E+38 1.46E+48), il nest pas possible que deux messages aient le mme rsum.

Les fonctions de hachage fournissent donc un moyen de rpartir uniformment dans les donnes en sortie la part de hasard prsente dans les donnes en entre. Cela rsout le problme du hasard cr partir de sources locales dont lentropie est prvisible. En effet, nous collectons un nombre approximatif de donnes alatoires depuis lenvironnement que nous mlangeons avec des donnes prvisibles, puis nous gnrons un rsum qui est assur dtre aussi imprvisible que lentropie rcolte en premier lieu, quelle que soit la manire dont cette part de hasard est rpartie dans les donnes en entre. Comment fonctionnent les fonctions de hachage ? L encore, certaines reposent sur des problmes mathmatiques qui sont, autant quon le sache, trs difciles rsoudre. En fait, tout algorithme de cryptographie symtrique ou cl publique peut tre converti en fonction scurise de hachage. Aussi longtemps que personne ne dcouvre une meilleure solution, cette mthode convient parfaitement. Cependant, cette mthode implique lutilisation doutils lents et trs complexes pour gnrer des rsums, ce qui la rend souvent peu pratique implmenter, en particulier lorsquil sagit de lintgrer dans un systme dexploitation. Une autre solution consiste traiter les donnes de faon que linterdpendance entre tous les bits en entre et en sortie soit sufsamment complexe pour que lobfuscation du message en entre soit totale, en esprant que "cela sufse" empcher les techniques connues de cryptanalyse. Cette approche empirique est raisonnable puisquune bonne partie de linformatique repose en fait sur la devise "esprons que cela sufse". Les groupes dalgorithmes alors utiliss, comme les fonctions MD2, MD4, MD5 et SHA-1, prsentent lavantage dtre plus rapides et simples utiliser que leurs quivalents fonds sur des formules mathmatiques complexes mais galement, lorsquils sont bien conus, de rsister aux techniques traditionnelles de cryptanalyse. Leur faiblesse tient au fait quon ne peut pas prouver quils soient scuriss, puisque aucun dentre eux ne peut se rduire une formule classique et dure rsoudre. Dailleurs, certains chercheurs ont prouv que ces algorithmes prsentaient des failles 6.

Chapitre 1

Lcoute du clavier

17

Comme nous lavons dj indiqu, les fonctions de hachage rendent un grand service aux gnrateurs de nombres pseudo-alatoires dans le sens o elles peuvent tre excutes sur un segment de donnes qui contient n bits alatoires et nimporte quelle quantit de bits prvisibles an de crer une empreinte qui contiendra n bits alatoires rpartis galement sur tous les bits de ce rsum (grce aux deux proprits fondamentales des fonctions de hachage que nous avons dcrites). La fonction de hachage est donc un extracteur pratique dentropie. Si la fonction de hachage utilise un nombre sufsant de donnes imprvisibles rcoltes depuis un gestionnaire dinterruption, il est possible de gnrer des nombres alatoires sans divulguer de renseignements sur la forme exacte de linformation utilise pour les crer, tout en vitant le risque que des donnes imparfaites en entre puissent affecter la sortie de manire signicative. Pour ne pas compromettre lensemble du processus, il suft de sassurer que la quantit dentropie soit sufsamment importante et de fournir la fonction de hachage cet amas de donnes dinterruption. Si lattaquant peut prvoir une grande partie des donnes utilises pour gnrer le nombre alatoire et que le reste ne reprsente quune poigne de combinaisons possibles, il peut alors lancer une attaque par force brute sur limplmentation en essayant simplement toutes les valeurs possibles. Si nous utilisons par exemple une fonction de hachage qui cre une empreinte de 128 bits, quelle que soit la quantit de donnes collectes (200 octets ou 2 mgaoctets de pression sur le clavier), nous devons tre srs quau moins 128 de ces bits en entre sont imprvisibles pour un attaquant avant dutiliser la fonction de hachage.

De limportance dtre pdant


Prenons lexemple dun utilisateur qui dcide dcrire un script shell alors que le stock dentropie est vide, peut-tre parce quune prcdente opration a ncessit lutilisation de nombres alatoires auparavant. Lattaquant note que lutilisateur crit un script car vi delallusers.sh est excut. Il considre ensuite que le dbut du script doit commencer aux lignes #!/bin/sh. Bien quil ne puisse pas tre sr de ce qui suit, il peut sattendre ce que le script souvre lors de lutilisation dune commande shell et quil ne sagisse pas dune ode aux tamanoirs. ce moment, un utilitaire de chiffrement demande soudainement au systme un nombre alatoire de 128 bits pour lutiliser comme cl de session et ainsi protger les communications. En revanche, le systme ne parvient pas estimer correctement la quantit dentropie disponible dans la mmoire tampon qui a enregistr le processus dcriture des premires lignes du script, si bien que la tche de lattaquant est maintenant facile. Lordinateur ne dispose pas de linformation ncessaire pour savoir si laction effectue par lutilisateur ce moment prcis est prvisible par dautres ou non. Il ne peut que spculer (aid par les hypothses faites par le programmeur) sur le fait que les actions de lutilisateur au l des minutes ou des heures niront par se rsumer quelque chose qui

18

La source

ne peut pas tre prvu avec prcision et quen moyenne cette quantit de donnes entres dpendra de facteurs que lattaquant ne peut pas prvoir. Lattaquant, ce point, connat la plus grande part du contenu du stock dentropie et ne doit plus choisir que parmi quelques milliers doptions pour la partie quil ne connat pas (en dpit du fait que le systme dexploitation est persuad que la quantit dentropie dans la mmoire tampon est beaucoup plus importante). Ces milliers doptions ne reprsentent pas un gros d pour une personne assiste dun ordinateur. Par consquent, au lieu davoir un nombre alatoire de 128 bits et donc une combinaison de 39 chiffres, une application de cryptographie peu sre gnre un nombre partir de donnes en entre qui se rsument quelques milliers doptions. Lattaquant peut alors facilement tester ces options les unes aprs les autres et donc dchiffrer rapidement les informations qui taient censes rester scurises.

Lentropie ne doit pas tre gche


Comme il est presque impossible de prvoir prcisment la quantit dentropie collecte par lutilisateur dans une priode courte et an dviter que la sortie du PRNG soit prvisible, toutes les implmentations intgrent le rsum ou ltat interne du gnrateur de nombres pseudo-alatoires lors de la cration de la nouvelle sortie. La sortie prcdente devient une part de lquation utilise pour calculer la valeur suivante du PRNG. Dans ce cas, une fois une quantit sufsante dentropie rassemble dans le systme, les donnes les plus rcentes utilises pour remplir de nouveau le stock dentropie nont pas besoin dtre totalement alatoires tout moment pour garantir une scurit lmentaire. Il y a cependant un autre problme. Si les implmentations sexcutent pendant une dure prolonge en se fondant sur lancienne entropie hrite, en rptant simplement plusieurs fois des fonctions de hachage MD5 ou SHA-1, la scurit ne repose plus alors que sur lalgorithme de hachage. Or nous avons vu que celui-ci ne peut pas tre totalement able en termes de performance et de scurit des communications. En outre, les fonctions de hachage nont pas forcment t values par des cryptographes comptents pour savoir si elles sont adaptes cet usage prcis. Limplmentation ne repose plus uniquement sur les proprits de hachage des bits de la fonction mais dpend maintenant compltement de son invulnrabilit aux attaques. Si une petite portion dinformation sur ltat interne du gnrateur est dvoile chaque tape et quaucune nouvelle donne imprvisible nest ajoute au stock, ces donnes peuvent long terme permettre de reconstruire ou de deviner avec une quasi-certitude ltat interne. Il est alors possible de prvoir le comportement futur du priphrique. En revanche, si de nouvelles donnes alatoires sont ajoutes un rythme qui, du moins statistiquement, empche une rutilisation signicative de ltat interne, lattaque devient beaucoup moins ralisable mme si la fonction de hachage est casse.

Chapitre 1

Lcoute du clavier

19

De nombreux experts dconseillent daccorder un tel niveau de conance et de dpendance envers la fonction de hachage pour les applications les plus exigeantes. Il est donc important que limplmentation conserve la trace de la quantit estime dentropie que le systme a collecte, ce qui, mme si cette estimation nest pas exacte momentanment, rete une tendance statistique gnrale conforme ce que nous attendons des sources utilises. court terme, des uctuations mineures dans la disponibilit de lentropie externe peuvent se produire, comme dans le script dexemple dont nous avons parl, et sont alors compenses par lalgorithme qui rutilise la sortie prcdente. Nanmoins, il est ncessaire deffectuer des prvisions long terme prcises an de garantir la reconstitution frquente du stock dentropie et de minimiser lexposition au cas o la fonction de hachage dvoile ltat interne au l du temps. En tant que telle, limplmentation doit tenir compte de lentropie dpense dans les donnes fournies aux processus utilisateur et refuser de fournir plus de nombres alatoires jusqu ce quune quantit sufsante dentropie soit disponible. Le systme conu et mis en uvre par Theodore Tso en 1994 au MIT (Massachusetts Institute of Technology) reprsente un bon exemple dimplmentation de PRNG qui tienne compte de toutes ces notions. Son mcanisme, /dev/random, a tout dabord t implment dans Linux puis introduit dans des systmes comme FreeBSD, NetBSD et HP/UX. Il contrle un certain nombre dvnements en entre et en sortie (I/O), mesure les intervalles de temps entre eux ainsi que dautres caractristiques importantes des interruptions. Il prserve galement le stock dentropie lors de la fermeture du systme en le sauvegardant sur disque, ce qui empche le systme de dmarrer dans un tat totalement prvisible et le rend plus difcile attaquer.

Attaques : les implications dun changement soudain de paradigme


Quel problme pourrait poser ce systme apparemment infaillible pour la fourniture de nombres alatoires imprvisibles aux applications exigeantes ? Aucun, du moins pas l o vous vous attendriez en trouver. Les chiffres gnrs sont en effet difciles prdire. Le raisonnement de lauteur de cette technologie contient cependant une erreur lgre mais dsastreuse. La conception de M. Tso suppose en effet que lassaillant cherche prvoir les nombres alatoires en fonction de ce quil sait de la machine et de son environnement. Mais que se passe-t-il si lattaquant veut faire tout le contraire ? Lattaquant qui dispose dun compte sur la machine, mme sans avoir daccs direct linformation que lutilisateur tape, peut dduire le moment exact auquel lactivit en entre survient dans le systme en vidant le stock dentropie (ce quil peut raliser simplement en demandant des donnes alatoires au systme sans les conserver) puis en surveillant la disponibilit de la sortie du PRNG. Sil ny a pas dactivit en entre/sortie, le PRNG

20

La source

ne dispose pas de nouvelles donnes disponibles, puisque lestimation de lentropie ne change pas. Si une ou plusieurs touches sont enfonces, une petite quantit dinformations sera disponible pour lattaquant, qui peut alors en dduire que lune des touches a t enfonce ou relche. Dautres vnements, comme lactivit du disque, gnrent galement une sortie du PRNG, mais les motifs dans le temps et la quantit de lentropie collecte de cette faon diffrent des caractristiques des donnes dinterruption transmises par un clavier. Ainsi, il est possible et facile de distinguer les vnements en fonction de la quantit de donnes disponibles un moment donn. Les donnes provenant des touches du clavier seront diffrentes des donnes relatives lactivit du disque. En n de compte, une mthode conue pour scuriser au maximum la gnration de nombres alatoires entrane en fait une dgradation de la vie prive de lutilisateur : il est possible de tromper ce mcanisme qui estime la quantit dentropie disponible auprs dune source externe et de lutiliser pour contrler certains aspects des activits en entre sur le systme. Mme si lattaquant ne peut pas dtecter exactement ce qui est tap, la frappe de certains mots prsente certains motifs dans le temps identiables, en particulier sil dispose de linformation concernant lappui ou le relchement dune touche en particulier, comme cest le cas ici. En examinant ces motifs, lattaquant peut dduire de quelle entre il sagit ou tout au moins la deviner plus facilement.

Examen plus dtaill des motifs dans le temps en entre


Une analyse approfondie mene par une quipe de chercheurs de luniversit de Californie 7 indique quil est possible de dduire certaines proprits des entres de lutilisateur, voire de compltement reconstruire les donnes, en se concentrant uniquement sur la frquence de frappe entre deux touches. Cette tude a conclu quil pouvait exister des variations entre une personne qui tape lentement et un oprateur clavier comptent mais que la vitesse de frappe entre deux touches suivait gnralement des motifs dans le temps. En effet, non seulement nous disposons nos mains dune certaine faon, mais la disposition des touches sur le clavier affecte galement la vitesse laquelle nos doigts peuvent atteindre une touche. Par exemple, le laps de temps entre les touches e et n est gnralement diffrent de lintervalle entre b et j. Dans le premier cas, comme une main contrle le ct gauche du clavier et lautre, le ct droit (voir Figure 1.2), la frappe des deux lettres ne demande quasiment aucun mouvement, si bien que les deux touches sont enfonces presque simultanment, avec un intervalle de moins de 100 millisecondes. En revanche, la frappe conscutive de b et j est plus complexe car cela exige dutiliser deux fois la mme main, ce qui prend beaucoup plus de temps.

Chapitre 1

Lcoute du clavier

21

Figure 1.2
La zone du clavier gnralement dvolue chaque main. Les touches grises sont habituellement contrles par la main gauche et les touches blanches, par la main droite.

Aprs avoir men un certain nombre dexpriences, les auteurs de cette tude estiment quenviron 1,2 bit dinformation par touche enfonce peut tre obtenue partir de la frquence de la frappe. En observant le rythme des squences, il est possible de dterminer lensemble des entres du clavier les plus susceptibles de gnrer ce schma et donc de deviner plus facilement la chronologie exacte des touches enfonces. Lide de compter des fractions de bit peut sembler ridicule, mais cela signie que le nombre de possibilits pour chaque touche peut tre rduit par 21.2, soit environ 2,40 fois. Pour une simple touche, qui ne vhicule gnralement pas plus de 6 bits de hasard, cela rduit le nombre doptions possibles de 64 lments environ 26. Comme vous pouvez le voir, il existe bien une manire de limiter le nombre de possibilits si nous voulons deviner quelles sont les touches enfonces. Mme si cela peut ne pas tre particulirement impressionnant en soi, il faut galement considrer le fait que les donnes saisies au clavier ont peu de chances dtre une suite de lettres sans queue ni tte. On estime que lentropie dun texte en anglais est de 0,6 1,3 bit par caractre seulement 8, ce qui signie quenviron 1,5 2,5 tentatives en moyenne sufsent pour russir prvoir le caractre suivant. Avec une mthode qui rduise encore davantage le champ de recherche, il est possible de dcouvrir sans ambiguts les mots qui correspondent presque toutes les donnes entres. Pour vrier leur estimation et la dmontrer dans la pratique, les chercheurs ont utilis le modle de Markov cach et lalgorithme de Viterbi pour deviner les touches enfonces. On appelle modle de Markov une mthode qui dcrit un systme dtat discret dont la prochaine valeur dpend uniquement de son tat actuel, et non pas des valeurs prcdentes (chane de Markov). Le modle de Markov cach est une variante qui fournit une mthode pour dcrire un systme dans lequel chaque tat interne gnre une observation, mais pour laquelle ltat actuel nest pas connu. Ce modle est couramment utilis dans des applications comme la reconnaissance vocale, lorsquon cherche obtenir des

22

La source

donnes pures (une reprsentation textuelle de la parole) partir de ses manifestations spciques (londe sonore chantillonne). Les auteurs de ltude ont conclu que le modle de Markov cach peut tre utilis pour analyser la frappe, et ils considrent que ltat interne du systme reprsente linformation sur les touches enfonces, tandis que le laps de temps entre la frappe de deux touches correspond lobservation gurant dans le modle de Markov. Il est possible de considrer quil sagit l dune simplication exagre, puisque la dpendance peut tre plus importante, en particulier dans la situation quillustre la Figure 1.3.

` tab lock shift ctrl

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

` tab

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

return

lock shift

return

shift ctrl

shift ctrl

space

ctrl

space

Position initiale

L'utilisateur presse la touche "Z"

` tab lock shift ctrl

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

` tab

1 q a \

2 w s z

3 e d x alt

4 r f c

5 t g v

6 y h b

7 u j n

8 i k m

9 o l ,

0 p ; .

[ / alt

= ] #

backspace

return

lock shift

return

shift ctrl

shift ctrl

space

ctrl

space

L'utilisateur presse la touche "P"

L'utilisateur presse la touche "V"

Figure 1.3
La ncessit de dplacer la main gauche dans une position diffrente lors de la premire tape affecte ensuite le laps de temps entre les touches P et V. Or le modle de Markov est incapable de tenir compte dun scnario o la position de la main varie ltape prcdente.

Lalgorithme de Viterbi permet de rsoudre les problmes du modle de Markov cach. Cet algorithme peut tre utilis pour trouver la squence la plus probable des tats internes en se fondant sur une suite dobservations. Dans ce cas particulier, on lutilise pour dterminer la suite la plus probable de caractres partir de lintervalle de temps entre les touches.

Chapitre 1

Lcoute du clavier

23

Lutilisation de lalgorithme de Viterbi entrane une rduction du champ de recherche pour les mots de passe de 8 caractres absents du dictionnaire par un facteur de 50. Dans le cas o le texte reconstruire partir de sa frappe est constitu de mots anglais existants dans le dictionnaire, ce facteur est susceptible dtre considrablement plus lev. Penchons-nous maintenant sur la surveillance des interruptions. Les recherches que nous venons de dcrire se concentrent sur les informations partielles disponibles en espionnant les motifs de transfert de SSH (Secure Shell). Mais, sil contrle les interruptions, lattaquant dispose alors de beaucoup plus dinformations, savoir la dure de lappui sur la touche, ainsi que la cadence de la frappe, puisque la dure pendant laquelle une touche est enfonce dpend du doigt utilis. Par exemple, lindex est le doigt qui reste gnralement le moins longtemps en contact sur une touche, lannulaire est probablement le plus lent, et ainsi de suite. Ces informations prcieuses facilitent la localisation approximative des touches sur le clavier. Par ailleurs, ces donnes permettent galement lattaquant de surveiller le passage dune main lautre, le moment o le premier caractre est tap de la main gauche et le second, par la main droite, ou vice versa. Comme chaque main est contrle par un hmisphre diffrent du cerveau, presque tous les utilisateurs qui matrisent lusage du clavier appuient souvent sur la deuxime touche avant de relcher la premire lorsquils changent de main. Bien que lenfoncement et le relchement des touches soient impossibles distinguer en tant que tels, un intervalle de temps particulirement court entre deux vnements clavier indique clairement ce phnomne. Dans quelques cas rares, en particulier lorsque la personne qui frappe est presse, la seconde touche survient non seulement avant la libration mais avant mme que la premire touche ne soit enfonce, ce qui se traduit par des erreurs typographiques classiques comme la frappe de "dse" au lieu de "des".
e v i l Temps

Figure 1.4
Cadence de la pression et du relchement sur les touches lors de changement de main.

La Figure 1.4 montre un exemple dchantillon de frappe au clavier dans le temps. Lutilisateur tape le mot evil ("mal" en anglais). Le majeur de la main gauche appuie sur

24

La source

la touche e pendant une priode de temps moyenne. Ensuite, un laps de temps important se droule avant la frappe de la touche v car lutilisateur doit bouger la totalit de sa main an datteindre cette touche avec lindex. (Le pouce ne peut pas tre utilis car la barre Espace bloque le passage.) La touche v est enfonce pendant une courte priode de temps, comme cest le cas de i, car ces deux touches sont enfonces par lindex. On constate galement un chevauchement : la touche i est enfonce avant que la touche v ne soit relche en raison dun changement de main. Enn, lannulaire enfonce la touche l aprs un certain temps (il nest pas ncessaire de dplacer la main), et le contact est assez long. Par consquent, on peut raisonnablement penser quil est possible dobtenir un taux de russite beaucoup plus lev dans cette attaque (la plupart de ces informations ntaient pas disponibles dans lexemple de ltude originale).

Tactiques de dfense immdiates


prsent que nous connaissons le potentiel de lespionnage du clavier, comment sen dfendre ? Le meilleur moyen consiste utiliser lentropie dune mmoire tampon distincte (celle du clavier) et qui ait une taille raisonnable. La mmoire tampon est vide et transmise la base de limplmentation du PRNG uniquement lorsquelle dborde ou aprs un intervalle de temps beaucoup plus important que celui habituellement constat entre la frappe de deux touches (cest--dire quelques secondes au moins). On limine ainsi la capacit de lattaquant mesurer la cadence de la frappe. Avec cette solution, seuls deux types dinformations sont disponibles pour lattaquant. La procdure de vidage de la mmoire tampon lorsquelle dborde rvle lattaquant quun certain nombre de touches (en fonction de la taille de la mmoire tampon) ont t enfonces dans un laps de temps quil peut mesurer, mais sans que ne lui soit divulgu lintervalle de temps exact entre chaque touche. Lattaquant peut galement chronomtrer une squence du vidage de la mmoire, ce qui lui indique quune ou plusieurs touches ont t enfonces pendant une dure prcise mais ne lui fournit aucune information sur le nombre dvnements ni le moment o ils se sont produits. Les renseignements obtenus de cette faon ont une valeur marginale pour les attaques fondes sur le temps et ne peuvent qutre utilises pour gnrer des statistiques gnrales sur lactivit de clavier, ce qui ne constitue pas une menace dans la plupart des environnements multi-utilisateurs.

Les gnrateurs de nombres alatoires matriels : une meilleure solution ?


De nos jours, un certain nombre de plates-formes matrielles implmentent des gnrateurs de nombres alatoires physiques, appels vrais gnrateurs de nombres alatoires

Chapitre 1

Lcoute du clavier

25

(TRNG, de langlais True Random Number Generators). Ces priphriques offrent un moyen plus able de gnrer des donnes vraiment imprvisibles par rapport la collecte dinformations dont on espre simplement quelles soient difciles prdire. Il est conseill dutiliser ce moyen pour acqurir de lentropie sur toutes les machines quipes de ce matriel. Au moment de la rdaction de cet ouvrage, deux solutions fondes sur des circuits intgrs sont mises au point par Intel et VIA. Intel intgre un gnrateur de nombres alatoires dans certains de ses chipsets, comme i810. Le systme utilise une conception classique de deux oscillateurs : loscillateur de haute frquence gnre un signal de base qui est pour lessentiel une alternance logique dtats (010101010101...) et un oscillateur basse frquence, travaillant un taux nominal de 1/100 de la frquence de loscillateur haute vitesse, mais dont la frquence est module par une rsistance qui sert de principale source dentropie. Certaines caractristiques mesurables dune rsistance changent en raison dun bruit thermique et dautres effets matriels alatoires. Loscillateur basse frquence est utilis pour conduire des chantillons du signal alternatif des frquences alatoires (crte basse de la sortie de loscillateur). Le signal, aprs conditionnement et "blanchiment" via la correction de von Neumann, est alors mis la disposition du monde extrieur. travers une analyse minutieuse de la conception et de la sortie effective du gnrateur, Benjamin Jun et Paul Kocher, de Cryptography Research 9, ont montr que la qualit de la sortie est constamment leve et que le gnrateur fournit environ 0,999 bit dentropie par bit de sortie. Le gnrateur de nombres alatoires du processeur VIA C3 "Nehemiah" repose sur une conception lgrement diffrente, puisquil utilise un ensemble doscillateurs mais pas une source de bruit distincte, comme une rsistance spciale. Au lieu de cela, il sappuie sur le mouvement interne des oscillateurs, un effet qui peut tre attribu un certain nombre de facteurs internes et externes et qui peut tre contrl par un paramtre "bias" congurable. Dans ce cas, une autre analyse dirige par Cryptography Research 10 a indiqu que le gnrateur dlivre apparemment une entropie de moins bonne qualit que son homologue, allant de 0,855 0,95 bit par bit en sortie. Ce rsultat est dangereux si la sortie du gnrateur de nombres alatoires est considre comme entirement alatoire et utilise pour la gnration de cl ou dautres tches critiques 1:1, car le montant rel de lentropie est rduit en consquence. Pour rsoudre ce problme, on peut collecter plus de donnes que ncessaire du gnrateur, puis excuter les donnes via une fonction de hachage scurise comme SHA-1, an dliminer une ventuelle tendance ou un manque dentropie. En rgle gnrale, cette solution reprsente une bonne solution pour viter les effets indsirables des TRNG, tant que ceux-ci restent dans des limites raisonnables, autrement dit tant que chaque bit vhicule une part dentropie utilisable.

26

La source

Plusieurs chercheurs ont galement suggr dutiliser comme source dentropie certains priphriques dentre non spcialiss, par exemple des webcams ou des microphones intgrs : les capteurs CCD (Charge Coupled Device) des appareils photo numriques tendent crer des pixels de bruit tandis que le signal dun microphone produit une bonne source de bruit alatoire lorsquil est fortement ampli. Toutefois, il nexiste pas de mthode universelle pour paramtrer un de ces gnrateurs. En effet, les fabricants de ces dispositifs utilisent chacun des circuits diffrents, si bien que la qualit des nombres "alatoires" gnrs de cette faon ne peut tre garantie. En fait, si certains dispositifs semblent collecter des interfrences radio ou certains signaux en entre apparemment au hasard, ils le font en fait de faon totalement prvisible. En outre, certains priphriques, en particulier les capteurs CCD, produisent un bruit lectronique statique. Ce bruit, qui semble alatoire, volue trs lentement, et il peut donc tre dangereux de sy er.

Matire rexion
Jai dcid de ne pas examiner en dtail un petit nombre de concepts intressants, mais ils peuvent tre une prcieuse source dinspiration pour de plus amples recherches.

Les attaques distance fondes sur le temps


En thorie, il doit tre possible de dployer une attaque fonde sur le temps dopration du PRNG sur un rseau. Certains services de cryptographie implmentent une cryptographie symtrique. Aprs avoir tabli un ux asymtrique cl publique plus lent et vri les deux parties, une cl de session symtrique est gnre et les deux terminaux passent une alternative symtrique plus rapide.
m

Il pourrait tre possible de mesurer lintervalle de temps entre chaque touche en forant lapplication puiser le rservoir dentropie dans le systme, au point quil manque une toute petite quantit dentropie pour gnrer une nouvelle cl de session. Lapplication va alors retarder la gnration dune cl symtrique jusqu ce que sufsamment dentropie soit disponible pour crer le reste de la cl, ce qui va se produire, entre autres possibilits, la prochaine fois quune touche sera enfonce ou relche. Je suis convaincu que lattaque a plus de chances de russir dans un laboratoire que dans le monde rel, bien que mon conseiller technique soit en dsaccord avec mon scepticisme. Considrez donc ceci comme mon avis personnel. Une analyse intressante de luniversit de Virginie a critiqu les recherches initiales sur le temps dopration SSH abordes dans le document mentionn prcdemment, au motif que les variations du rseau sont sufsantes pour rendre inutilisables les donnes sur le

Chapitre 1

Lcoute du clavier

27

temps dopration. Pourtant, il est intressant de noter que, si une activit spcique est rpte dans le temps (le mme mot de passe entr chaque nouvelle connexion, par exemple), les uctuations alatoires des performances du rseau peuvent trs bien rvler un temps moyen dopration 11.

Exploiter les diagnostics du systme


Certains systmes disposent de meilleurs moyens pour couter le clavier et obtenir dautres donnes sur le temps dopration. Aprs la publication de mon tude sur le temps dopration des PRNG, on ma signal que Linux contient une interface /proc/ interrupts qui afche une synthse statistique des interruptions, dans le but de fournir certaines donnes utiles sur les performances. En examinant le nombre de changements des interruptions de IRQ 1, il est possible dobtenir les mmes informations sur le temps dopration quavec le gnrateur de nombres pseudo-alatoires, dj ltrs de toute activit du disque et de rseau ventuelle, ce qui provoque une exposition de la vie prive semblable celle dont nous avons parl auparavant.

Reproduction de limprvisible
Dautres questions lies limplmentation du PRNG lui-mme mritent dtre examines. Il est courant de procder lachat group de matriel identique et linstallation du mme systme sur plusieurs machines, ce qui peut se rvler un problme pour les serveurs qui nont pas une activit importante au niveau console. Les outils spcialiss qui permettent de crer une image dune installation et de la propager sur plusieurs serveurs prsentent galement un risque. Dans tous les cas, les systmes risquent de disposer dune entropie peu leve pendant un temps sans doute trop long.

2
Des efforts supplmentaires ne sont jamais inutiles
O lon apprend crer un ordinateur en bois et obtenir des informations en observant lexcution dun vrai ordinateur.

Les donnes que vous avez saisies sont prsent dans les mains de lapplication que vous avez choisi dexcuter. Ce programme prend alors son temps pour dcider quoi faire de ces informations, comment les interprter et quelles actions effectuer ensuite. Dans ce chapitre, nous allons examiner en dtail les mcanismes de bas niveau du traitement des donnes et tudier certains des piges qui
peuvent se cacher profondment sous le dissipateur de chaleur de votre processeur. Nous prterons une attention particulire aux informations que nous pouvons dduire en observant simplement la faon dont une machine donne excute les programmes et le temps quil lui faut pour complter certaines tches. Enn, nous allons galement construire un ordinateur en bois compltement fonctionnel.

30

La source

Lhritage de Boole
Pour comprendre la conception dun processeur, il nous faut revenir une poque o le concept de processeur navait mme pas t imagin. Tout a commenc assez innocemment au XIXe sicle, lorsque le mathmaticien autodidacte George Boole (1815-1864) mit au point un simple systme de calcul binaire destin permettre la comprhension et la modlisation du calcul formel. Son approche rduisit les concepts fondamentaux de la logique un ensemble de trois oprations algbriques simples qui pouvaient tre appliques des lments reprsentant deux tats opposs, vrai ou faux. Ces oprations sont les suivantes :
m m m

Loprateur de disjonction OR. Vrai lorsquau moins un des oprandes* est vrai**. Loprateur de conjonction AND. Vrai uniquement lorsque tous les oprandes sont vrais. Loprateur de complment (ngation), NOT. Vrai lorsque loprande unique est faux.

Bien que dune conception simple, le modle algbrique boolen sest rvl un puissant outil pour rsoudre des problmes de logique et certains autres ds mathmatiques. Il a mme permis de nombreux visionnaires dimaginer les astucieuses machines analytiques qui ont un jour chang notre vie quotidienne. De nos jours, tous les utilisateurs expriments connaissent bien la logique boolenne, mais rares sont ceux qui savent comment cet ensemble doprations simples fut appliqu aux ordinateurs actuels. Nous allons commencer explorer cette voie en tentant de saisir lessence de ce modle dans son expression la plus simple.

Vers loprateur universel


Le chemin qui mne la simplicit emprunte souvent des tapes complexes apparemment inutiles, et notre exemple ne fait pas exception. Pour commencer, nous devons tenir compte des travaux dun autre mathmaticien du XIXe sicle, Augustus De Morgan (1806-1871). La loi de De Morgan stipule "quun complment de la disjonction est la conjonction de complments". Cet exercice qui complexie certains concepts simples eut des consquences profondes sur la logique boolenne et, nalement, sur la conception des circuits numriques. En clair, la loi de De Morgan explique que, si une des deux conditions (ou les deux) nest pas remplie, une phrase qui afrme que les deux conditions sont remplies (autrement dit quil y a conjonction de conditions) sera galement fausse. Et vice versa, dailleurs.
* Un oprande est un lment qui subit laction de loprateur. ** Le sens du OR logique diffre du sens du mot "ou" en franais. En effet, le rsultat reste vrai la fois quand un seul des paramtres OR est vrai, et lorsque tous le sont. En franais, "ou" signi e gnralement quune seule option est vraie.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

31

Cette loi conclut que la condition NOT OR (a, b) devrait logiquement tre quivalente de la condition AND (NOT a, NOT b). Prenons un exemple du monde rel dans lequel a et b sont les suivants :
a = "Bob aime le lait" b = "Bob aime les pommes"

Les deux parties de lquation de De Morgan peuvent tre crites ainsi :


OR (NOT a, NOT b) Bob naime PAS le lait OU naime PAS les pommes NOT AND (b, a) Il nest PAS vrai que Bob aime le lait ET les pommes

Les deux expressions sont fonctionnellement quivalentes. Sil est vrai que Bob naime pas le lait ou les pommes, la premire expression est vraie ; il est alors galement vrai quil naime pas les deux, ce qui signie que la seconde expression est galement vraie. Inverser la situation entrane galement le mme rsultat : sil nest pas vrai que Bob naime pas au moins lun des deux choix, il aime les deux la fois (et la premire expression est fausse). Dans ce cas, il nest pas vrai non plus quil naime pas les deux la fois (et la seconde expression est galement fausse).

La loi de De Morgan en pratique


Pour valuer les dclarations logiques au-del de lintuition, il est ncessaire de crer ce que lon appelle des tables de vrit qui dmontrent que tous les rsultats peuvent tre calculs partir de toutes les combinaisons possibles des oprateurs true et false (vrai et faux). Les deux tableaux suivants reprsentent chaque expression de lexemple prcdent. Chaque tableau contient des colonnes pour les deux oprateurs et les rsultats correspondants, et ce pour toutes les combinaisons possibles (vrai et faux). Vous pouvez donc voir dans la premire ligne que les deux premires colonnes les deux oprateurs de NOT AND(a et b) sont fausses. En consquence, AND(a et b) est faux, et donc NOT AND(a et b) est vrai. Le rsultat est not dans la troisime colonne. Comme vous pouvez le voir, les deux expressions se comportent de la mme manire :
NOT AND(a, b) : rsultat inverse de AND

Oprande 1 (a) FALSE FALSE TRUE TRUE

Oprande 2 (b) FALSE TRUE FALSE TRUE

Rsultat TRUE TRUE TRUE FALSE

32

La source

OR(NOT a, NOT b) : oprande inverse de OR

Oprande 1 FALSE FALSE TRUE TRUE

Oprande 2 FALSE TRUE FALSE TRUE

Rsultat TRUE TRUE TRUE FALSE

Mais pourquoi donc les concepteurs dordinateur se soucient-ils des prfrences alimentaires de Bob ? Parce que, dans le contexte des oprateurs boolens, la loi de De Morgan signie que les oprations de base proposes par lalgbre de Boole sont en fait partiellement redondantes : NOT combin lun des deux autres oprateurs (OR et AND) suft toujours pour faire la synthse des possibilits. Par exemple :
OR (a, b) NOT AND (NOT a, NOT b) AND (a, b) NOT OR(NOT a, NOT b)

En comprenant cela, on rduit le nombre doprateurs deux. Mais le systme boolen peut encore tre simpli.

La commodit est une ncessit


Plusieurs autres oprateurs ne sont pas indispensables pour limplmentation de la logique boolenne mais compltent lensemble des oprations existantes. Ces oprateurs supplmentaires, NAND et NOR, sont vrais uniquement lorsque AND et OR sont respectivement faux :
NAND (a,b) NOT AND (a,b) OR (NOT a, NOT b) NOR(a, b) NOT OR (a,b) AND (NOT a, NOT b)

Ces nouvelles fonctions ne sont pas plus complexes que AND et OR. Chacune a une table de vrit quatre tats (quatre lignes), et sa valeur peut tre dnie aussi facilement.
NOTE NOR et NAND ne font pas partie des oprandes de base car ni lun ni lautre ne correspondent un type simple de relations logiques entre des dclarations et nont pas dquivalents dans le langage courant.

Je viens dajouter une srie de nouveaux oprateurs, issus de lensemble existant, qui semblent noffrir quune fonctionnalit plus ou moins commode ceux qui cherchent formuler des dpendances logiques plus bizarres ou des problmes en utilisant la notation formelle. Dans quel but ?

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

33

eux seuls, NAND ou NOR permettent de compltement se dbarrasser de AND, OR et NOT. Ce qui correspond notre objectif de simplicit et nous permet de dcrire lensemble du systme dalgbre de Boole avec moins dlments et moins doprateurs. Limportance de ces oprateurs auxiliaires de ngation est que vous pouvez utiliser nimporte lequel dentre eux pour construire un systme algbrique de Boole complet. En fait, vous pouvez construire tous les oprateurs simples en utilisant NAND, comme indiqu ici (T indique une dclaration vraie et F, une dclaration fausse*). Comment ? Eh bien, bien videmment, les paires suivantes de dclarations sont quivalentes :
NOT a NAND(T, a) AND(a,b) NOT NAND(a,b) NAND(T, NAND(a,b)) OR(a,b) NAND(NOT a, NOT b) NAND(NAND(T,a), NAND(T,b))

Ou, si nous prfrons nutiliser que NOR plutt que NAND, nous pouvons crire :
NOT a NOR(F, a) OR(a,b) NOT NOR(a, b) NOR(F, NOR(a,b)) AND(a,b) NOR(NOT a, NOT b) NOR(NOR(F,a), NOR(F,b))

Englober la complexit
Il peut tre difcile de croire que tous les calculs peuvent tre rsums la logique de ces oprateurs universels. Vous pouvez implmenter les algorithmes les plus complexes, les calculs les plus avancs, les jeux les plus rcents et la navigation sur Internet en utilisant un ensemble de circuits simples partir des tables de vrit suivantes, qui convertissent les signaux dentre en signaux de sortie.
Table dtat NAND

Oprande 1 FALSE FALSE TRUE TRUE

Oprande 2 FALSE TRUE FALSE TRUE

Rsultat TRUE TRUE TRUE FALSE

* Pour les puristes, T est quivalent AND (a,a), par exemple, ce qui est toujours vrai, et que F est quivalent NOT AND (a,a), qui est toujours faux. En dautres termes, nous najoutons ici aucun nouveau concept ou aucun nouvel lment dans lquation, nous simplions seulement un peu la notation.

34

La source

Table dtat NOR

Oprande 1 FALSE FALSE TRUE TRUE

Oprande 2 FALSE TRUE FALSE TRUE

Rsultat TRUE FALSE FALSE FALSE

Il semble pourtant que nous nallons nulle part Comment cet ensemble de dpendances simples permet-il de construire un dispositif capable de rsoudre des problmes complexes, comme le rejet de votre demande de crdit, avec tact ? Et quest-ce que la thorie fonde sur les tats "vrais" et "faux" a de commun avec les circuits numriques ?

Vers le monde matriel


Le mcanisme conu par Boole na rien de complexe : il fait appel deux tats logiques opposs, "vrai" et "faux", 0 et 1, "Cyan" et "violet", 999 et 999 1/2. Le sens rel, la reprsentation physique, et le support ne sont pas importants ; seule compte la convention arbitrairement choisie, qui attribue certains tats du support physique un ensemble spcique de valeurs logiques. Les ordinateurs tels que nous les connaissons utilisent deux niveaux diffrents de tension dans un circuit lectronique et les interprtent comme des valeurs que leurs concepteurs dsignent comme tant gales 0 et 1. Ces valeurs, qui sont transmises travers le circuit lectrique, reprsentent deux chiffres dans le systme binaire. Mais nimporte quelle mthode de transmission des donnes peut tre utilise, quil sagisse de lcoulement de leau, dune raction chimique, de signaux de fume ou dune srie de roues artisanales en bois qui pivotent. Linformation reste la mme, indpendamment de son vhicule. Lapplication de la logique boolenne dans le monde physique est simple, une fois que nous sommes daccord sur la reprsentation physique des valeurs logiques. Il suft ensuite de trouver un moyen dorganiser une srie dlments pour manipuler ces valeurs an de tenir compte de toutes les tches que nous voulons que notre ordinateur effectue (nous reviendrons sur ce point plus tard). Tout dabord, essayons de savoir comment manipuler des signaux et implmenter des dispositifs logiques dans le monde rel, autrement dit des portes en bois.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

35

Un ordinateur sans lectricit


Il semble compliqu de passer dune srie doprations thoriques purement mathmatiques un dispositif qui permette de contrler lcoulement de leau, le couple dune transmission ou les signaux lectriques dune manire qui imite lun des oprateurs logiques, mais ce nest pas le cas.
Porte de sortie Ressort de rappel

Arbre de transmission mobile

Source d'nergie externe

Entre 2 Entre 1

Figure 2.1
Conception dune porte mcanique NOR.

La Figure 2.1 montre un mcanisme simple qui met en uvre la fonctionnalit NOR en utilisant des roues dentes. larrt, la roue en "sortie" reprsente ltat 0 ; quand elle tourne, son tat est 1. Le dispositif transmet le couple dune source extrieure la sortie uniquement si aucune des deux roues de contrle en "entre" ne tourne. En thorie, une source dnergie extrieure nest pas ncessaire, et le mcanisme pourrait tre plus simple. Dans la pratique, toutefois, il serait assez difcile de construire un ensemble plus complexe de portes autonomes en raison notamment du frottement. Lorsquune des roues en entre (ou les deux) tourne, larbre de transmission se dplace et rend inactif le systme en "sortie". Lorsque les entres deviennent inactives, un ressort

36

La source

de rappel replace larbre de transmission dans sa position initiale. La table de vrit pour ce dispositif est exactement ce que devrait tre NOR. Comme vous vous en souvenez, NOR ou NAND sufsent pour mettre en uvre nimporte quel oprateur boolen logique. Mme si lajout de la capacit mettre en uvre dautres oprateurs sans recombiner les portes NAND et NOR rendrait notre dispositif plus petit et plus efcace, le dispositif na pas besoin de cette capacit pour fonctionner. En supposant que nous parvenions faire collaborer toutes les portes dune manire laquelle nous sommes habitus, nous pouvons conclure que les ordinateurs peuvent tre construits avec quasiment nimporte quelle technologie*.

Une conception dordinateur lgrement plus classique


Mme si lessor de linformatique des dernires dcennies a t possible grce au transistor, son importance na rien de magique ou ne dcoule pas de ses qualits uniques. Il sagit tout simplement de llment le moins cher et le plus efcace dont nous disposons lheure actuelle. Contrairement aux machines en bois, les signaux lectriques sont relays dans les ordinateurs lectroniques grce des transistors, de petits dispositifs qui laissent passer le courant dans un sens entre deux de leurs nuds (points de connexion) quand une tension est applique au troisime nud. Les transistors peuvent tre miniaturiss de faon tout fait efcace, ncessitent peu dnergie, sont ables et bon march.

Portes logiques
Le transistor est simple. En fait, il constitue lui seul un dispositif trop simple pour implmenter une logique boolenne signicative. Cependant, en les disposant correctement en portes logiques, les transistors permettent deffectuer toutes les oprations de lalgbre de Boole. La porte AND peut tre implmente en disposant deux transistors en srie, de sorte que les deux doivent avoir une faible rsistance (soient en position "on") avant que la tension ne puisse tre transmise vers la sortie. Chaque transistor est contrl (activ) par une ligne en entre distincte. La sortie est nominalement "abaisse" en utilisant une rsistance, de sorte quelle a une tension de dpart de 0 ("faux"), mais cette tension dpassera 0 une fois que les transistors sont sur "on" et permettent un lger courant de passer.
* Il est vident que les ordinateurs non lectriques ne sont pas lgion. On peut tout de mme citer la machine diffrences de Charles Babbage, ainsi que les nanotechnologies, qui semblent galement prometteuses. Voir Ralph C. Merkle, "Two Types of Mechanical Reversible Logic", Nanotechnology 4 (1993).

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

37

La porte OR est implmente par la mise en place dun transistor en parallle, de sorte que nimporte quel transistor puisse lactiver et permettre la sortie davoir une tension diffrente de zro, autrement dit "vrai". La dernire porte de base, NOT, est mise en place en utilisant un seul transistor et une rsistance. Son tat en sortie est gal 1 lorsquelle est inactive (grce la rsistance) et est abaiss 0 lorsque le transistor souvre (voir Figure 2.2).
+ Entre 1 Porte AND Entre 1 Sortie Entre 2 Sortie Entre 2 Sortie Entre + Porte OR + Porte NOT

Figure 2.2
Portes logiques utilisant des transistors construction et symboles.

A NSTUCE OTE Vous avez peut-tre remarqu que les deux portes AND et OR peuvent tre transformes en portes NAND et NOR sans introduire de composants supplmentaires. Il suft dutiliser une conception base sur lobservation des schmas dune porte NOT, autrement dit de dplacer la rsistance et le "point de sortie" vers la tension dalimentation et donc dinverser la sortie logique.

Nous avons maintenant atteint un point o nous pouvons combiner les transistors pour implmenter une des portes universelles. Mais, quel que soit le nombre de portes que nous pouvons construire, le systme reste encore assez loign dun vrai ordinateur. Tout ce que nous venons de voir est intressant, mais en quoi la logique boolenne peut nous aider autre chose que rsoudre des nigmes sur lalimentation de Bob ?

Des oprateurs logiques aux calculs


En combinant des oprations boolennes logiques simples, on peut aboutir certains rsultats tonnants, notamment la possibilit deffectuer des oprations arithmtiques sur la reprsentation binaire des nombres. Cest l que les choses deviennent intressantes.

38

La source

Un ensemble de portes XOR et AND, par exemple, peut tre utilis pour augmenter la valeur dune entre de 1, ce qui constitue la premire tape vers la mise en place dune addition. La Figure 2-3 illustre la cration dun compteur bas sur ce concept. Ah, une nouvelle expression ! XOR est encore un oprateur logique boolen "pratique" qui est vrai uniquement lorsque lun de ses oprandes est vrai. cet gard, il est plus proche du sens habituel de "ou" en franais. XOR est souvent utilis pour simplier la notation, mais galement facile mettre en uvre par dautres moyens, en combinant AND, NOT et OR. Il est dni de la manire suivante :
XOR(a, b) AND(OR(a,b), NOT AND(a,b))

Revenons notre circuit Que peut-il faire ? Le dispositif reprsent la Figure 2.3 est aliment par un nombre crit en binaire. Dans cet exemple, ce nombre est limit 3 bits, bien que ce modle puisse facilement tre amlior pour permettre un plus grand nombre dentres.

Nombre en entre I0 NOT O0

I1

XOR

O1

AND I2

XOR

O2

AND

O3 (carry) Nombre en sortie

Figure 2.3
Circuit simple incrmentant la valeur de 1.

Cette simple unit de calcul fonctionne de la mme faon que les tres humains lorsquils ajoutent des nombres dcimaux sur une feuille de papier de la droite vers la gauche, en reportant ventuellement une valeur dans la colonne suivante. La seule vritable diffrence rside dans le fait quelle utilise un systme binaire.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

39

tudions son fonctionnement. Nous avons un nombre binaire crit sur une ligne. Nous voulons augmenter sa valeur de 1 ; nous commenons par le chiffre le plus droite, de la mme faon que nous le ferions dans une addition de dcimales. Nous disposons dun chiffre binaire ; en augmentant la valeur dun chiffre binaire de 1, seuls deux rsultats sont possibles : si le chiffre en entre est 0, le rsultat est 1 (0 + 1 = 1) ; dans le cas contraire, la sortie est 0, et nous devons reporter la valeur 1 dans la colonne suivante (1 + 1 = 10). En dautres termes, nous faisons deux choses : nous produisons un produit qui est une ngation de lentre (1 pour 0 et 0 pour 1) et, si le chiffre en entre est 1, nous devons le garder lesprit et linclure plus tard.Or cest justement ce que ralise le circuit : pour la premire entre, I0 (Input 0). La premire porte dentre traite lentre en crant son ngatif par la ngation, transmet cette valeur la sortie O0 (Output 0) et alimente avec cette valeur en entre les autres portes qui ont la charge de grer la colonne suivante (O1).
O0 = NOT I0 C0 = I 0

Bon, nous avons augment le nombre de 1. Il ny a rien dautre faire dans les colonnes restantes si la valeur nest pas transmise par la colonne prcdente. Si rien nest transmis, O1 devrait tre gal I1. Si une valeur est transmise, en revanche, nous devons alors traiter cette valeur de la mme faon que nous lavons fait en ajoutant 1 la colonne prcdente, inverser la sortie et transmettre une valeur la colonne suivante sil y a lieu. partir de maintenant, chaque sortie (On avec n > 0) sera soit copie directement partir de In si aucun bit nest report de la colonne prcdente soit augmente de 1 (ce qui, encore une fois, revient inverser la valeur) en raison de laddition de la valeur du bit transmis. Donc, si In est gal 1, le report de cette colonne, Cn, sera galement gal 1 et On sera gal 0 (puisquen binaire 1 + 1 a pour rsultat 10). Comme vous lavez peut-tre remarqu, la sortie relle la position n est simplement un rsultat XOR de la valeur dentre la position n et du bit en provenance de la colonne n 1. Ainsi, le circuit gnre On en effectuant une opration XOR sur le bit transmis par Cn 1 et la valeur de In, puis effectue une opration AND sur la valeur transmise depuis On 1 et In an de dterminer sil devrait y avoir un report de la valeur dans la colonne suivante :
On = XOR(In,Cn1) Cn = AND (In,Cn1)

Prenons lexemple suivant. Nous voulons augmenter la valeur dentre 3 (011 en binaire) de 1. Les entres sont les suivantes :
I0 = 1 I1 = 1 I2 = 0

Le circuit produit O0 par ngation de I0 et donc O0 = 0. Comme I0 tait diffrent de zro, il est galement report dans la colonne suivante. Dans la colonne suivante, la porte XOR donne O1 une valeur de 0 car, mme si I1 tait gal 1, il y avait une valeur

40

La source

transmise depuis la colonne prcdente (1 + 1 = 10). L encore, la valeur est reporte dans la colonne suivante. Dans une autre colonne, I2 = 0, mais la porte AND indique une valeur reporte de la range prcdente, car deux entres prcdentes ont toutes deux t xes 1. Par consquent, la sortie est 1. Il ny aura aucun report dans la dernire colonne. La sortie est la suivante :
O0 O1 O2 O0 = = = = 0 0 1 0

ou 0100, ce qui, accessoirement, est gal 4, une fois converti en nombres dcimaux. Et voil, nous avons crit +1 en binaire.
NOTE Nous venons dexprimer le premier problme informatique en termes algbriques boolens. Vous pourriez tre tent dtendre la conception an quelle puisse additionner deux numros arbitraires, et pas simplement un nombre et le nombre 1. Nanmoins, ce circuit reprsente une base sufsante pour tous les calculs.

Les circuits arithmtiques numriques fonctionnent en excutant certaines donnes dentre travers une srie de portes logiques habilement disposes qui, leur tour, ajoutent, soustraient, multiplient ou effectuent des modications simples sur un tableau de bits. Rien de magique, donc. Jusqu prsent, jai expliqu comment les puces de silicium ou les mcanismes artisanaux en bois effectuent certaines oprations simples, comme le calcul sur les entiers. Pourtant, quelque chose manque. En effet, les diteurs de texte, les jeux et les logiciels de peer to peer ne sont pas cods en dur dans un systme complexe de portes lintrieur du processeur. Quen est-il des logiciels ?

Du sablier lectronique lordinateur


Le vritable intrt dun ordinateur rside dans sa capacit tre programm pour agir dune manire spcique, autrement dit pour excuter une suite de commandes logicielles prdnies. La Figure 2.4 illustre la prochaine tape sur le chemin vers le dveloppement dune machine exible qui puisse effectuer plus quune seule tche base sur des ls mtalliques, savoir le stockage de donnes et la mise en mmoire. Dans cette gure, nous voyons un type dunit de stockage de mmoire connue sous le nom de conception

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

41

ip-op (bistable). Cette case mmoire compte deux lignes de contrle, "set" et "reset". Lorsque les deux sont dsactives, la porte conserve son tat actuel, grce un lien entre son entre et la sortie de la porte OR. La sortie prcdente de lopration OR est transmise travers une porte AND parce que sa ligne est dnie 1 (ngation "reset"), puis de nouveau travers OR parce que son autre entre est 0 ("set"). Ltat de la sortie est maintenu aussi longtemps que les portes sont alimentes.
Clignotement lumineux Donnes Set AND Case mmoire flip-flop

OR Reset
NOT

Sortie

AND

NOT

AND

Interface de mise jour

Figure 2.4
Mmoire ip-op avec une interface en pratique.

Lorsque la valeur "set" augmente, la porte OR est force de renvoyer 1 et conserve cette valeur quand "set" diminue. Lorsque la ligne "reset" augmente, la porte AND est force de renvoyer 0 et brise la boucle de rtroaction, ce qui oblige le circuit produire 0 en sortie. Une fois que "reset" diminue, la sortie reste gale 0. Lorsque les deux lignes de contrle sont actives, le circuit devient instable quelque chose qui nest pas trs joli, surtout lorsque lordinateur en question est mcanique. La table de vrit pour ce modle se prsente comme suit (V indique une valeur logique arbitraire).
Table de vrit ip-op

Set 0 1 0 1

Reset 0 0 1 1

Q t1 V -

Qt V 1 0 instable

42

La source

Une version plus pratique dun circuit ip-op qui intgre une "interface de mise jour"(voir Figure 2.4) fait appel deux portes AND et une porte NOT an que ltat dune ligne dentre soit captur (chantillonn et maintenu) chaque fois quun clignotement lumineux externe se produit. Cette conception limine les combinaisons instables dentres et rend cette sorte de mmoire plus facile utiliser pour stocker de linformation.
Table de vrit ip-op amliore

Entre S

Clignotement lumineux 0 1

Q t1 V

Qt V S

Cette conguration simple possde une proprit importante : elle peut stocker des donnes. Une seule case mmoire ne peut stocker quun bit mais, en combinant un certain nombre de ip-ops, on peut augmenter cette capacit de stockage. Mme si la mmoire est conue diffremment de nos jours, limportance de cette fonctionnalit reste la mme : elle permet aux programmes de sexcuter. Mais comment ? Dans cette conception de base, la puce stocke une valeur spciale, gnralement appele le pointeur dinstruction, dans une mmoire intgre la puce (le registre), compose de plusieurs ip-ops. Comme les ordinateurs fonctionnent de faon synchrone et que tous les processus sont grs par un signal dhorloge haute frquence, le pointeur dinstruction slectionne une case mmoire de la mmoire principale chaque cycle dhorloge. Les donnes de contrle extraites de cette faon activent puis slectionnent le circuit de calcul appropri pour traiter les donnes dentre. Pour certaines donnes de contrle, notre puce hypothtique effectue une addition ; pour dautres, elle effectue une opration dentre/sortie. Aprs avoir collect chaque partie des donnes de contrle (chaque instruction de la machine), la puce prpare son pointeur dinstruction interne lire la prochaine commande dans le cycle suivant. Grce cette fonctionnalit, on peut utiliser la puce pour excuter une suite dinstructions machine ou un programme. Il est maintenant temps de savoir quelles oprations la puce doit implmenter pour tre utilisable.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

43

La machine de Turing et les suites complexes dinstructions


En fait, le processeur na pas besoin dtre complexe. Le jeu dinstructions ncessaires pour quune puce soit capable dexcuter peu prs nimporte quelle tche est tonnamment faible. La thse de Church et Turing afrme que tout calcul ralisable dans le monde rel peut tre effectu par une machine de Turing, qui est un modle primitif dordinateur. La machine de Turing, du nom de son inventeur, est un dispositif simple qui opre sur un ruban potentiellement inni divis en cases conscutives, qui sont chacune un emplacement de stockage purement hypothtique et abstrait. Chaque case peut stocker un caractre unique partir dun "alphabet", autrement dit un ensemble fini et ordonn de valeurs possibles (cet alphabet na absolument rien voir avec les alphabets des langues humaines ; son nom ne sert qu crer une bonne dose de confusion). Lappareil est galement quip dun registre interne qui mmorise un nombre ni dtats internes. Au dbut de son excution, la machine de Turing commence une certaine position sur le ruban, dans un tat donn, puis lit un caractre dune case sur le ruban. Chaque automatisme est associ un ensemble de motifs de transitions qui indiquent la machine comment modier ltat interne de la machine, quel symbole de lalphabet doit tre stock sur le ruban en fonction de ltat de la machine aprs lecture, et comment (en option) dplacer la tte de lecture dune case vers la gauche ou la droite. Cette suite de transitions dnit les rgles pour le calcul du prochain tat du systme en fonction de ses caractristiques courantes. Ces rgles sont souvent documentes au moyen dune table dactions du genre suivant.
Table dactions

tat courant Ct 0 1 St S0 S0 Ct+1 1 0

Nouvel tat/action St+1 S1 S0 Mouvement Gauche

La table nous indique que, si la valeur courante de la case sur laquelle la machine est positionne est gale 0 et que ltat interne de la machine ce moment soit S0, le dispositif modiera ltat de C 1, modiera son tat interne S1 et ne dplacera pas la tte de lecture.

44

La source

La Figure 2-5 montre un exemple dune machine de Turing place sur la case C avec un tat interne S.
S0

S0, C = 1 Ruban C C est modifi en 0 La tte de lecture se dplace vers la gauche. S ne change pas

0 1 0 1 1 1 0 0 1

S0

0 1 0 0 1 1 0 0 1
Ruban C

S0, C = 0 C est modifi en 1 La tte de lecture ne bouge pas. S est chang en S1

S1

0 1 1 1 1 1 0 0 1
Ruban C

L'tat S1 est la condition de sortie. La machine s'arrte

Figure 2.5
Exemple des tapes dexcution de la machine de Turing.

tudions dun peu plus prs ce fonctionnement. Comme vous pouvez le voir la Figure 2.5, la machine utilise un alphabet de deux caractres, 0 et 1, et a deux tats internes, S0 et S1. Elle commence avec S0 (les conditions initiales peuvent tre dnies arbitrairement ; jai choisi de commencer avec cette valeur sans aucune raison particulire). Lorsquelle est place la n (le bit le moins signicatif) dun nombre binaire stock sur le ruban (C0), la machine suit la logique suivante : m Si le caractre sous la tte de lecture de la machine est 0, il devient 1 et ltat de la machine devient S1, selon la premire rgle de transition documente dans le tableau prcdent. Comme il nexiste pas de rgle de transition de S1, la machine sarrte au cycle suivant. m Si le caractre sous la tte de lecture est 1, il est chang en 0, et ltat reste le mme. La machine dplace galement la tte de lecture sur le ruban vers la gauche, en fonction de la deuxime rgle de transition. Lensemble du processus se rpte ensuite partir de ce nouvel emplacement, car la machine conserve son tat actuel, pour lequel des rgles de transition sont dnies.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

45

Utilisation pratique, enn


Bien que cela puisse surprendre, cette machine est rellement utile et a plus quune valeur thorique car elle effectue des calculs de base. Elle fait exactement la mme chose que le circuit qui augmente une valeur de un en un dont nous avons parl plus tt dans ce chapitre. En fait, elle applique le mme algorithme ; les bits du ruban, en commenant par ceux situs les plus droite, sont inverss jusqu atteindre la valeur 0 (qui est aussi inverse). Il ne sagit l naturellement que de la partie visible de liceberg. Une bonne machine de Turing peut implmenter tous les algorithmes jamais conus. Le seul problme est que chaque algorithme requiert un ensemble distinct de rgles de transitions et dtats internes. En dautres termes, une nouvelle machine de Turing doit tre construite pour chaque nouvelle tche, ce qui nest pas trs pratique long terme. Heureusement, une forme spciale de cette machine, la machine de Turing universelle (UTM de langlais Universal Turing Machine) dispose dun jeu dinstructions sufsamment avanc pour implmenter toutes les machines de Turing et excuter nimporte quel algorithme, sans quil soit ncessaire de modier le tableau de transition. Cette supermachine nest ni particulirement complexe ni totalement abstraite, puisquune machine de Turing peut tre conue pour effectuer tous les algorithmes nis (conformment la thse de Church Turing prcdemment mentionne). Comme la mthode "dexcution" dune machine de Turing est en soi un algorithme ni, une machine peut tre mise au point pour lexcuter. Quant la complexit de cette machine, une machine dont lalphabet contient deux lments ou un bit (soit lUTM la plus petite) ncessite vingt-deux tats internes et instructions pour dcrire les transitions dtat et excuter des algorithmes sur un ruban de mmoire squentiel et inni 1. Ce qui nest pas si compliqu.

Le Graal : lordinateur programmable


La machine de Turing est galement beaucoup plus quun dispositif hypothtique et abstrait que les mathmaticiens utilisent pour se divertir. Il sagit dune construction qui demande tre mise en uvre partir dun dispositif lectronique (ou mcanique) fond sur la logique boolenne. Peut-tre mme que ce dispositif peut tre amlior pour devenir beaucoup plus utile et se rapprocher un peu plus de linformatique fonctionnel. Le seul problme vient du fait que la condition sine qua non, un ruban en entre dune longueur innie, ne peut pas tre remplie dans le monde rel. On pourrait nanmoins utiliser une grande quantit de rubans pour rendre une machine de Turing relle assez utilisable pour rpondre la plupart des problmes quotidiens. Et voici lordinateur universel.

46

La source

Les ordinateurs tels que nous les connaissons ne se contentent bien sr pas daccder de faon squentielle la mmoire, ce qui rduit sensiblement le jeu dinstructions ncessaires pour atteindre le mme degr dexhaustivit que la machine de Turing. Une machine de Turing universelle avec un alphabet de dix-huit caractres ne ncessite que deux tats internes pour fonctionner. Les ordinateurs, en revanche, oprent gnralement sur un "alphabet" dau moins 4 294 967 296 caractres (32 bits) et souvent beaucoup plus, ce qui permet des accs la mmoire non squentiels, lutilisation dun grand nombre de registres et un nombre astronomique dtats internes possibles. En n de compte, le modle de la machine de Turing universelle et la pratique quotidienne conrment quil est possible de construire une unit de traitement exible et programmable qui nutilise quune poigne de fonctionnalits, compose de deux ou trois registres internes (pointeur dinstruction, tte de lecture/criture des donnes, et peut-tre accumulateur) et dun petit ensemble dinstructions. Il est parfaitement possible dassembler un tel dispositif avec seulement quelques centaines de portes logiques, mme si les modles daujourdhui peuvent utiliser beaucoup plus. Comme vous pouvez le voir, lide de construire un ordinateur partir de zro, mme sil est en bois, nest pas si absurde.

Des amliorations par simplication


Un tel ensemble dinstructions ne va bien entendu pas rendre le dispositif rapide ou facile programmer. Les machines de Turing universelles peuvent peu prs tout faire (en raison principalement de leur simplicit), mais elles sont dsesprment lentes et difciles programmer, tel point quimplmenter un systme de traduction assiste par la machine pour convertir plusieurs langues humaines en code machine est difcile, du moins sans que le programmeur ne devienne fou. Les architectures ou les langages de programmation qui se rapprochent trop du modle exhaustif de Turing (Turing-complet) sont souvent appels Turing tarpits (fourre-tout de Turing). Cela signie que, sil est thoriquement possible de lutiliser pour raliser peu prs nimporte quelle tche, cela est dans la pratique peine possible, demande trop de temps et est trop lourd mettre en place pour quil soit vritablement intressant dessayer. Mme des tches aussi simples que la multiplication dentiers ou le dplacement du contenu de la mmoire peuvent ncessiter une ternit mettre en place, et encore plus de temps pour sexcuter. Moins lordinateur aura defforts produire et demandera de temps pour remplir des tches simples et rptitives, et plus le nombre de tches qui doivent tre effectues en utilisant un nombre dinstructions distinctes sera rduit, mieux cela sera.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

47

Un moyen populaire damliorer les fonctionnalits et les performances dune unit de traitement consiste implmenter certaines tches communes dans le matriel qui seraient assez gnantes effectuer dans les logiciels. Ces tches sont mises en place en utilisant un ensemble de circuits spcialiss (notamment la multiplication et le processus de rejet dun prt immobilier), ce qui ajoute des extensions pratiques larchitecture et permet un dploiement plus rapide et plus sain de programmes, tout en permettant au systme dexcuter ces fonctions dans un ordre programm et exible. Curieusement, au-del des quelques mesures initiales, il nest pas toujours souhaitable lors de la conception dun processeur daugmenter de faon linaire la complexit des circuits pour quil atteigne des vitesses plus leves, utilise lnergie plus efcacement et fournisse un ensemble amlior de fonctionnalits. Vous pouvez bien sr construire un grand nombre de circuits pour grer peu prs nimporte quelle opration complexe rcurrente que vous pouvez envisager. Cependant, cela ne sera pas utilisable tant que larchitecture ne sera pas vritablement mature et que votre budget ne vous aura pas permis dinvestir des ressources supplmentaires dans la construction de la puce. Sur une telle plate-forme, les programmes ncessitent en effet moins de temps sexcuter et sont plus faciles crire, mais lappareil est beaucoup plus difcile construire, demande plus de puissance et peut devenir trop volumineux ou trop coteux pour une utilisation routinire. Les algorithmes complexes de divisions ou de calculs virgule ottante ncessitent un nombre extrmement important de portes gnralement inactives pour excuter ce genre de tche en une seule tape.

Le partage des tches


Plutt que suivre navement ce chemin coteux et construire des blocs mme de raliser des instructions entires en une fois, il est prfrable de renoncer au modle dexcution en un seul cycle de lexcution jusqu ce que vous disposiez dun concept de travail et de beaucoup de temps pour lamliorer. La meilleure mthode pour que le matriel ralise des fonctionnalits complexes consiste morceler le travail en petits morceaux et excuter les tches complexes en un certain nombre de cycles. Dans une conception multicycle de la sorte, le processeur passe par un certain nombre de phases internes, comme dans lexemple de la machine de Turing. Il gre les donnes par le biais de circuits simples dans le bon ordre et implmente donc une fonctionnalit plus complexe tape par tape, en sappuyant sur plusieurs composants de base. Plutt quutiliser un dispositif complexe qui effectue tous les calculs la fois, il utilise par exemple un circuit pour multiplier les suites de bits des entiers en 32 bits, effectue le suivi des valeurs transmises et procde ensuite au rsultat nal au cours du 33e cycle.

48

La source

Il peut galement procder indpendamment certaines tches en prvision de lopration suivante. Cela nous libre de lobligation de concevoir des dizaines de circuits pour chaque variante dun code opratoire, selon lendroit depuis lequel il doit obtenir les oprandes ou stocker les rsultats. Cette approche prsente galement lavantage de rendre plus efcace la gestion des ressources matrielles : pour les oprandes simples, un algorithme dont la complexit est variable peut se terminer plus tt, en ne prenant que le nombre de cycles absolument ncessaire. Par exemple, une division par 1 risque fort de ncessiter moins de temps quune division par 187 371. Un circuit simple, peu coteux, utilis trs frquemment et dont le temps dexcution est variable peut reprsenter une solution plus rentable en terme de cot quun circuit complexe, consommateur de beaucoup dnergie et dont le temps dexcution est constant. Bien que certains des processeurs daujourdhui tentent dutiliser de plus en plus un nombre xe de cycles pour mener terme les tches, presque tous ont pour anctres des architectures multicycles. Et vous verrez que mme eux fonctionnent rarement en un seul cycle. Mais, tout dabord, examinons comme le net avantage que procure la simplicit dexcution en plusieurs cycles peut avoir des effets indsirables.

tapes dexcution
Une des variantes de lexcution en plusieurs cycles consiste diviser une tche non pas en une suite de tches rptitives mais plutt en un certain nombre dtapes de prparation et dexcution. Cette mthode, appele staging, est aujourdhui utilise par les processeurs actuels pour amliorer leurs performances sans pour autant devenir ncessairement plus complexes. Le staging de lexcution est devenu lune des plus importantes fonctionnalits des processeurs. Aujourdhui, les processeurs peuvent traduire chaque instruction en une srie de petites tapes largement indpendantes. Certaines tapes peuvent tre ralises en utilisant des circuits gnriques partags par toutes les instructions, ce qui contribue la simplicit de lensemble. Par exemple, un circuit ddi une tche donne (la multiplication vient lesprit une fois de plus) peut tre rendu plus universel et rutilisable et prendre part des instructions plus complexes en lui vitant toute tche de gestion des entressorties gnriques, et ainsi de suite. Les tapes dexcutions et de transitions dpendent de larchitecture, mais le principe est gnralement semblable celui indiqu la Figure 2.6.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

49

Temps

Instruction recherche/ dcodage 1

Oprande recherche/ dcodage

tape de l'unit arithmtique et Mise en mmoire logique (UAL)

1 1 1 2 2 2 2

Instruction 1 EFFECTUE

Instruction 2 EFFECTUE

Figure 2.6
tapes de base de lexcution des instructions.

La Figure 2.6 illustre les tapes suivantes : Instruction de recherche/dcodage Le processeur rcupre une instruction de la mmoire, la traduit en une squence de bas niveau, dcide de la faon de traiter les donnes et des donnes transmettre toutes les tapes ultrieures. Le circuit est partag pour toutes les oprations. Oprande de recherche/dcodage Le processeur utilise un circuit gnrique pour collecter des oprandes partir des sources de cette instruction en particulier (par exemple partir des registres internes dnis), de sorte que le circuit principal nait pas prendre en charge toutes les combinaisons possibles doprandes et les stratgies de rcupration. UAL Une unit arithmtique et logique (UAL) conue spcialement pour effectuer cette opration en particulier, peut-tre en plusieurs tapes, est appele pour procder la tche arithmtique dnie. Pour les instructions (transfert de mmoire), des circuits gnriques ou des circuits de lUAL sont parfois utiliss pour calculer les adresses des sources et des destinations. Mmoire Le rsultat est stock sa destination. Pour les oprations qui ne sont pas arithmtiques, la mmoire est copie entre les emplacements calculs. Seul, cela peut sembler ntre quune simple variante dune excution en plusieurs cycles classiques et la rutilisation dun circuit de mesure, ce qui prvaut aujourdhui pour la plupart des modles de processeurs. Mais, comme vous le verrez, cela est galement de la plus haute importance pour la vitesse dexcution.

50

La source

Le moins de mmoire possible


La simplicit des circuits nest pas tout. La conception en plusieurs cycles prsente galement lavantage de librer la vitesse du processeur des limites de la mmoire, qui est llment le plus lent du systme. La mmoire externe est considrablement plus lente que les processeurs actuels, a un temps daccs et un temps de latence trs levs. Pour tre able, un processeur monocycle ne peut pas tre plus rapide que le temps ncessaire pour accder la mmoire, mme si ce temps daccs la mmoire nest pas continuel. Cette lenteur est ncessaire car une des instructions de son unique cycle pourrait exiger un accs la mmoire, ce qui demande plus de temps. La conception en plusieurs cycles, en revanche, permet au processeur de ralentir, voire de se mettre en pause, pendant un certain nombre de cycles si ncessaire (au cours de lentre-sortie de la mmoire, par exemple), puis de passer pleine vitesse lors de lexcution de calculs internes. Dans une conception en plusieurs cycles, il est galement plus facile dacclrer les oprations qui sollicitent fortement la mmoire sans avoir investir dans un accs plus rapide la mmoire principale. La conception ip-op, communment appele SRAM (mmoire vive accs statique), offre un accs faible temps de latence et consomme peu dnergie. Les conceptions actuelles ont un temps de latence de 5 nanosecondes environ, ce qui est comparable lintervalle de temps entre deux cycles de certains processeurs. Malheureusement, cette conception exige aussi un nombre considrable de composants par ip-op, environ six transistors par bits gnralement. Contrairement la SRAM, la DRAM (mmoire vive dynamique accs direct), lautre type de mmoire couramment utilis de nos jours, utilise une gamme de bascules pour mmoriser les informations. Ces bascules, toutefois, ont tendance se dcharger et doivent tre mises jour rgulirement. La DRAM ncessite plus de puissance que la SRAM et a un temps daccs et un temps de latence pour modier les donnes considrablement plus lev, jusqu 50 nanosecondes. Mais la DRAM est beaucoup moins coteuse produire que la SRAM. Lutilisation de la SRAM pour la mmoire principale est pratiquement inconnue en raison de son cot prohibitif. En outre, nous aurions des difcults utiliser toute cette augmentation des performances, car la mmoire devrait fonctionner la mme vitesse ou presque que le processeur. Hlas, comme la mmoire a une taille considrable et quelle est conue pour tre extensible, elle doit tre place lextrieur du processeur principal. Bien que le noyau du CPU puisse gnralement fonctionner une vitesse beaucoup plus leve que le monde qui lentoure, de graves problmes de abilit (tels que la capacit des circuits de la carte mre, les interfrences, le cot des puces priphriques haute vitesse, et ainsi de suite) se posent lorsque les donnes doivent tre transfres sur de longues distances.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

51

Plutt quutiliser de la mmoire externe plus rapide ou intgrer la totalit de la mmoire dans le processeur principal, les fabricants adoptent gnralement une approche plus raisonnable. Les processeurs les plus volus sont quips de mmoires SRAM primaires rapides mais beaucoup plus petites ou de certains drivs qui mettent en cache les rgions les plus frquemment consultes et stockent parfois certaines donnes spciques au CPU. Ainsi, chaque fois quun morceau de la mmoire se trouve dans le cache (mmoire cache), il peut tre consult rapidement. Ce nest que lorsque le segment de mmoire doit tre rcupr partir de la mmoire principale (dfauts de cache) que le dlai peut tre important et entraner un retard considrable, tel point que le processeur doit suspendre certaines oprations pendant un certain temps. (Les processeurs cycle unique ne peuvent pas tirer pleinement prot de la mise en cache interne.)

Plus dactions la fois : le pipelining


Comme je lai dj mentionn, le staging apporte en termes de performances un avantage considrable qui dpasse de loin lapproche multicycle traditionnelle. Il y a cependant une diffrence importante entre eux : comme la plupart des tapes sont partages par diverses instructions, il ny a aucune raison de ne pas optimiser lexcution. La Figure 2.6 montre que seule une partie de lappareil est utilise chaque cycle lorsque les diffrentes tapes sexcutent sparment. Mme si linstruction en cours a dj ralis les premires tapes de son excution, elle bloque tout le CPU jusqu ce quelle soit termine. Pour les systmes dont le nombre de phases dexcution est important (dix tapes ou plus pour les puces actuelles, les Pentium 4 dpassant les vingt tapes), cela reprsente un terrible gchis de la puissance de calcul. Une solution consiste dmarrer la premire tape dune instruction ds que linstruction prcdente passe ltape suivante, comme lillustre la Figure 2.7.
Instruction recherche/ dcodage 1 2 Oprande recherche/ dcodage tape de l'unit arithmtique et Mise en mmoire logique (UAL)

Temps

1 2

1 2

Instruction 1 EFFECTUE 1 2

Instruction 2 EFFECTUE

Figure 2.7
Modle dexcution du pipelining.

52

La source

Ds quune tape particulire de la premire instruction est termine et que son excution passe laprochaine tape, ltape prcdente est alimente par une partie de linstruction suivante, et ainsi de suite. Au moment o la premire instruction est termine, linstruction suivante nest qu une tape de la n de son excution et la troisime, deux tapes. Grce cette mthode en cascade, le temps dexcution est donc grandement rduit et lutilisation de la puce devient optimale. Le pipelining fonctionne parfaitement tant que les instructions ne sont pas interdpendantes et nutilisent pas le rsultat de linstruction prcdente alors que celle-ci nest pas termine. Si les instructions dpendent les unes des autres, de graves problmes sensuivent. En tant que tel, un circuit spcial doit tre mis en place pour superviser le pipelining et empcher ces conits de dpendance. Le pipelining prsente dautres difcults. Sur certains processeurs, par exemple, le nombre dtapes peut tre diffrent suivant les oprations effectues. Toutes les tapes ne sont pas toujours applicables, et il peut tre plus optimis den sauter certaines. Certaines oprations simples pourraient fort bien tre excutes beaucoup plus vite par lintermdiaire du pipeline, car il ny a pas doprandes rechercher ou mettre en mmoire. En outre, certaines tapes peuvent prendre un nombre variable de cycles, ce qui contribue aux risques de collision lorsque deux instructions atteignent le mme stade de lexcution en mme temps. Pour viter cela, certains mcanismes supplmentaires doivent tre insrs, comme des instructions NOP (de langlais No Operation) conues pour retarder temporairement lexcution lorsque cela est ncessaire.

Le gros problme des pipelines


Le pipelining est un excellent moyen dobtenir des performances leves simplement en concevant des puces qui excutent les instructions en plusieurs tapes, en rduisant le temps de latence des instructions ultrieures et en assurant lutilisation optimale du circuit. Mais lutilisation de pipelines nest pas exempte de dfauts : il nest pas possible de lutiliser pour des instructions aprs une instruction conditionnelle parallle lorsque ces instructions risquent de modier lexcution des programmes. En fait, cela est souvent possible, mais le processeur na alors aucune ide de la voie suivre et, si une mauvaise dcision est prise, tout le pipeline doit tre vid immdiatement aprs linstruction parallle (le CPU doit galement retarder lapplication de toutes les modications apportes par ces instructions qui, aprs tout, ne devaient pas tre excutes). Les sauts conditionnels du pipeline provoquent un dlai supplmentaire. Et, malheureusement pour ce systme, de nombreuses tches qui sollicitent beaucoup le CPU, comme de nombreux algorithmes audio et vido, sappuient sur de petites boucles conditionnelles excutes des millions de fois la suite, ce qui rduit considrablement les performances de larchitecture superscalaire.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

53

La rponse ce problme est la prdiction de branchement, ralise gnralement par des circuits de comptage assez simples qui suivent lexcution du code le plus rcent et utilisent un petit historique en mmoire pour estimer le rsultat le plus probable dune opration conditionnelle (bien que des conceptions plus complexes soient galement souvent dployes 2). Cette excution spculative repose sur une stratgie conue pour amliorer les performances du pipeline pour un code donn : si une instruction de branchement en particulier est plus souvent excute quelle nest ignore, il est alors prfrable de rechercher et dutiliser le pipeline pour les instructions. Bien sr, lestimation peut chouer. Dans ce cas, lensemble de la le dattente doit tre abandonn. Aujourdhui, cependant, le taux de russite de lexcution spculative est de 90 % pour du code classique.

Implications : de subtiles diffrences


Lensemble des optimisations avances employes dans les processeurs actuels a des consquences intressantes. Nous constatons que le temps dexcution dpend des caractristiques suivantes, qui peuvent tre divises en trois groupes :
m

Le type dinstruction et la complexit de lopration. Certaines oprations sexcutent beaucoup plus rapidement que dautres. Les valeurs de loprande. Certains algorithmes qui sexcutent en plusieurs cycles se rvlent plus rapides pour les entres simples. Par exemple, une multiplication par 0 est gnralement simple et peut tre effectue rapidement. Lemplacement de la mmoire partir de laquelle les donnes ncessaires linstruction doivent tre rcupres. La mmoire cache est disponible plus tt.

Limportance, la prvalence et limpact de chacune de ces caractristiques dpendent de la nature exacte de larchitecture du processeur en question. La premire caractristique, le temps dexcution dun nombre variable dinstructions, est partage par toutes les architectures superscalaires mais peut tre absente sur certaines puces basiques. La deuxime, qui dpend des oprandes, se retrouve de moins en moins sur les processeurs les plus volus. Dans les units haut de gamme, lUAL et lunit de calcul en virgule ottante (FPU, de langlais Floating Point Unit) travaillent parfois une vitesse suprieure celle du processeur lui-mme. Par consquent, mme sil existe des diffrences de vitesse de calcul, elles ne peuvent pas tre mesures avec prcision, car une grande partie du calcul est effectue en un seul cycle dhorloge du processeur.

54

La source

Le dernier groupe de motifs dans le temps, lemplacement de mmoire, est linverse lapanage des ordinateurs actuels les plus performants et est totalement inconnu sur les contrleurs bas de gamme et les diverses conceptions intgres. Les deux premiers groupes de motifs, la complexit des oprations et la valeur des oprandes peuvent galement avoir une inuence un niveau lgrement plus lev que le processeur, autrement dit au niveau du logiciel. Les fonctionnalits des units de calcul des processeurs grent assez bien les petits entiers (gnralement de 8 128 bits) et certains nombres en virgule ottante mais, aujourdhui, la cryptographie et de nombreuses autres applications ncessitent la manipulation de nombres de grande taille (comprenant souvent des centaines de chiffres, voire des milliers), des virgules ottantes trs prcises ou diverses oprations mathmatiques qui ne sont pas implmentes dans le matriel. Par consquent, cette fonctionnalit est couramment implmente dans les bibliothques des logiciels. Les algorithmes de ces bibliothques sont encore susceptibles de sexcuter dans un temps variable, en fonction des spcicits de lopration et des oprandes.

Utiliser les motifs dans le temps pour reconstruire les donnes


On peut envisager quun attaquant dduise certaines proprits des oprandes ou dune opration en surveillant le temps que prend un programme pour traiter les donnes. Cela constitue un risque de scurit potentiel car, dans plusieurs cas, au moins un des oprandes peut tre une valeur secrte qui nest pas cense tre divulgue un tiers. Bien que lide de rcuprer des donnes en surveillant quelquun avec un chronomtre la main puisse sembler surraliste, les processeurs actuels disposent de compteurs prcis qui permettent de dterminer prcisment les intervalles de temps. De plus, certaines oprations peuvent tre considrablement plus longues, certains codes opratoires avancs sur une plate-forme Intel prennent des milliers de cycles pour tre mens terme, par exemple. Le dbit du rseau et les temps de rponse augmentant constamment, il nest pas entirement impossible de dduire ces informations, mme partir dun systme distant. La nature des informations obtenues en mesurant la complexit des calculs peut ne pas tre immdiatement vidente. Paul Kocher, de Cryptography Research, t la preuve dun excellent exemple de cette attaque au sicle dernier (cest--dire dans le annes 1990 3), en utilisant un exemple de lalgorithme RSA dont nous avons parl au Chapitre 1.

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

55

Bit par bit


Kocher a observ que le processus de dcryptage des donnes dans lalgorithme RSA tait assez simple, en se fondant sur la rsolution de lquation suivante :
T = ck mod M

dans laquelle T correspond au message dcrypt, c, au message chiffr, k, la cl secrte et M, au modulo, qui est une partie de la paire de cls. Un algorithme simple fond sur la puissance dun entier et utilisant loprateur modulo utilis dans une application typique a une proprit importante : si un bit spcique de lexposant est un, une partie du rsultat est calcule en effectuant la multiplication du modulo par une partie de la base (certains bits de c). Si le bit est 0, cette tape est saute. Mme si ltape nest pas vraiment saute, le temps ncessaire au logiciel pour mener bien des multiplications varie, comme indiqu plus haut. La plupart des cas simples, comme la multiplication la puissance 2, sont rsolus plus rapidement que dautres. Ainsi, sur un tel systme, il semblerait quon puisse dterminer une multitude dinformations sur la cl (k) en vriant plusieurs fois le temps ncessaire au dchiffrement dun lment de linformation. Mme sur les plates-formes sur lesquelles la multiplication matrielle a une dure xe, un motif dans le temps est souvent gnr par les algorithmes de multiplication logiciels (comme lalgorithme de multiplication de Karatsuba) ncessaires au traitement de nombres de grande taille comme ceux utiliss par la cryptographie cl publique. Les bits de lexposant forment la cl prive, tandis que la base est une reprsentation du message fourni ou quune machine tmoin peut voir. Cette attaque est plutt simple. Lattaquant envoie la victime deux portions similaires mais lgrement diffrentes de donnes cryptes. Elles diffrent dans une section X, de sorte que le dchiffrement de cette section prenne une dure diffrente. Si lon considre ce que sait lattaquant de limplmentation de la multiplication par modulo par la victime, il lui est assez simple de trouver une des variantes de X et donc de dchiffrer rapidement X. Lautre variante est cense prendre plus de temps. Si le temps ncessaire lattaquant pour dcoder et ragir ces deux squences est identique, il peut supposer avec une quasi-certitude que la partie de la cl qui a t utilise pour dcoder la section X se compose de zros. Il peut aussi supposer que lalgorithme de multiplication a pris le chemin doptimisation le plus court, celui qui consiste neffectuer aucune multiplication. Si, en revanche, lun des scnarios prend plus de temps, il est vident que la multiplication a t ralise dans les deux cas et que lun dentre eux est plus facile rsoudre. La partie correspondante du bit de la cl secrte doit avoir t xe une valeur non nulle. partir de cette procdure, en traitant les bits du message chiffr qui suivent comme notre "section X" et en gnrant, voire simplement en attendant (si lon dispose de plus

56

La source

de temps) des messages crypts qui correspondent ce scnario, il est possible de reconstruire tous les bits de la cl.
NOTE Les recherches indiquent que cette approche peut tre gnralise tout algorithme qui sexcute en un temps variable et examinent galement comment optimiser lattaque en pratique, en dployant une dtection des erreurs limite ainsi quune fonctionnalit de correction.

En pratique
La possibilit de dduire les proprits tangibles des oprandes pour les instructions arithmtiques en se fondant uniquement sur le chronomtrage des informations est le vecteur le plus vident, le plus efcace et le plus intressant pour effectuer des attaques reposant sur des calculs complexes. Dautres techniques, comme celles fondes sur lutilisation du cache et le temps coul, ncessitent gnralement une analyse beaucoup plus dtaille et rvlent moins dinformations chaque cycle. Il est clair que ce problme touche, dans une certaine mesure, de nombreux algorithmes logiciels, comme les bibliothques arithmtiques contenant des nombres de grande taille, qui sont couramment utilises dans les applications cryptographiques. Mais, si lon excepte les algorithmes logiciels et la thorie, deux questions importantes subsistent : quelle est vraiment la dpendance du temps dexcution au niveau matriel, et comment la mesurer ? Un exemple en est bien porte de main. Au moins une partie de larchitecture Intel IA32 a ce comportement. Le Manuel de rfrence du programmeur 80386 4 dcrit un code opration de la multiplication signe dentier, dsign par le mnmonique IMUL. Le code opration, dans sa forme de base, multiplie la valeur stocke dans laccumulateur (un registre multifonctions du nom [E] AX sur cette plate-forme) par une valeur stocke dans un autre registre. Le rsultat est ensuite stock de nouveau dans laccumulateur. La documentation donne en outre les explications suivantes :
Le 80386 utilise un algorithme de multiplication early-out. Le nombre rel de cycles dhorloge dpend de la position du bit le plus signicatif dans le multiplicateur doptimisation (...). Loptimisation se produit pour les valeurs positives et ngatives. En raison de lalgorithme early-out, le nombre de cycles dhorloge va du minimum au maximum. Pour calculer les vrais cycles dhorloge, utilisez la formule suivante : Actual clock = if m <> 0 then max(ceiling(log2(m)), 3) + 6 clocks Actual clock = if m = 0 then 9 clocks

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

57

Bien que cela puisse paratre obscur, la signication de cette formule est simple : le processeur optimise la multiplication en fonction de la valeur du multiplicateur. Plutt que multiplier le multiplicande jusqu ce que tous les bits du multiplicateur soient puiss, il saute les valeurs zros au dbut de loprande.

Optimisation early-out
Pour comprendre la pertinence de cette tactique de multiplication des entiers, pensez une mthode de multiplication itrative telle que celles quon enseigne dans les coles, la diffrence quil sagit ici de binaire. Une possible implmentation "stupide" de cet algorithme effectue lensemble des oprations suivantes :
00000000 00000000 11001010 11111110 * 00000000 00000000 00000000 00000110 -----------------------------------00000000 00000000 00000000 00000000 00000000 00000001 10010101 1111110 00000000 00000011 00101011 111110 00000000 00000000 00000000 00000 00000000 00000000 00000000 0000 00000000 00000000 00000000 000 ... + 0 ---------------------------------------00000000 00000100 11000001 11110100 Multiplicande (P) Multiplicateur (R) P P P P P P * * * * * * R[0] R[1] R[2] R[3] R[4] R[5] = = = = = = P P P P P P * * * * * * 0 1 1 0 0 0

P * R[31] = P * 0

Il doit vous sembler vident quun grand nombre de ces oprations sont totalement inutiles et injusties et quil est tout simplement inutile de poursuivre lopration lorsque les bits du multiplicateur sont tous gaux zro. Une approche plus raisonnable consiste les sauter :
00000000 * 00000000 00000000 00000000 11001010 00000000 11111110 00000110 Multiplicande (P) Multiplicateur (R) - optimisation

---------------------------------------00000000 00000000 00000000 00000000 P * R[0] = P * 0 00000000 00000001 10010101 1111110 P * R[1] = P * 1 + 00000000 00000011 00101011 111110 P * R[2] = P * 1 ...Bail out ignore leading zeros of R! ---------------------------------------00000000 00000100 11000001 11110100

Voici, en substance, la nature de loptimisation early-out quIntel a dploye.


NOTE Cette optimisation rend la multiplication asymtrique dans le temps. 2*100 se calculera plus lentement que 100*2 (!), mme si le rsultat est videmment le mme.

58

La source

En raison de cette optimisation early-out, les processeurs Intel ont besoin dun nombre variable de cycles pour effectuer une multiplication, et sa dure est directement proportionnelle lemplacement du bit le plus ancien (le plus signicatif) dans le deuxime oprande. En utilisant lalgorithme de comptage des cycles dhorloge fourni dans la documentation, il est possible de dterminer la corrlation entre le multiplicateur et le temps IMUL, comme illustr ici.
Plages de valeur du multiplicateur 07 8 15 16 31 32 63 64 127 128 255 256 1023 1024 2047 2048 4095 4 096 8 191 8 192 16 383 16 384 32 767 32 768 65 535 65 536 131 071 131 072 262 143 262 144 524 287 524 288 1 048 575 1 048 576 2 097 151 2 097 152 4 194 303 4 194 304 8 388 607 8 388 608 16 777 215 Cycles complter 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

59

(suite)

Plages de valeur du multiplicateur 16 777 216 33 554 431 33 554 432 67 108 863 67 108 864 134 217 727 134 217 728 268 435 455 268 435 456 536 870 911 536 870 912 1 073 741 823 1 073 741 824 2 147 483 647

Cycles complter 30 31 32 33 34 35 36

Une dpendance similaire existe pour les valeurs ngatives du multiplicateur.

Code fonctionnel, faites-le vous-mme


Le code suivant montre une implmentation concrte dans C pour les systmes Unixtype qui peut tre utilise pour conrmer et mesurer les diffrences de motif dans le temps. Le programme est invoqu avec deux paramtres : multiplicande (qui ne devrait en aucune manire affecter les performances) et multiplicateur (on prsume quil est utilis dans les optimisations early-out et a donc un impact sur la vitesse de lensemble de lopration). Le programme effectue 256 tests sur une suite de 500 multiplications avec les paramtres choisis et renvoie le plus court temps mesur. Nous excutons 256 tests et choisissons le meilleur rsultat an de compenser les cas dans lesquels lexcution est interrompue par le systme durant une certaine priode de temps, ce qui est assez courant dans les environnements multitches. Mme si un test peut tre affect par cet vnement, on peut sattendre ce que certains des essais effectus dans une squence rapide de tests seffectuent sans interruption. Le code utilise lhorloge du systme pour mesurer le temps dexcution en microsecondes.
NOTE Plusieurs des puces Intel actuelles disposent dun mcanisme de timing prcis disponible par le code opration RDTSC. Cette mthode daccs au compteur de cycles de lhorloge interne nest pas disponible sur les anciennes plates-formes, si bien que nous ne pouvons pas compter sur lui.

60

La source

#include #include #include #include #include

<stdio.h> <stdlib.h> <unistd.h> <sys/time.h> <limits.h>

int main(int argc,char** argv) { int shortest = INT_MAX; int i,p,r; if (argc!= 3) { printf("Usage: %s multiplicand multiplier\n",argv[0]); exit(1); } p=atoi(argv[1]); r=atoi(argv[2]); for (i=0;i<256;i++) { int ct; struct timeval s; struct timeval e; gettimeofday(&s,NULL); asm( " " " " " movl $500,%%ecx imul_loop: movl %%esi,%%eax movl %%edi,%%edx imul %%edx,%%eax excution */ " loop imul_loop \n"/*Boucle de rptition du compteur (R) */ \n" \n" \n" \n"/* Commentaire supprimer pour la premire

\n" : : "S" (p), "D" (r) : "ax", "cx", "dx", "cc"); gettimeofday(&e,NULL); ct = ( e.tv_usec - s.tv_usec ) + (e.tv_sec - s.tv_sec) * 1000000; if (ct < shortest) shortest = ct; } printf("T[%d,%d] = %d usec\n",p,r,shortest); return 0; }

Chapitre 2

Des efforts supplmentaires ne sont jamais inutiles

61

En compilant ce code avec linstruction IMUL, qui nest pas mise en commentaires la premire fois, et en appelant le programme avec des paramtres arbitraires, on peut estimer la surcharge du code dans le temps (Tidle). Si cette valeur est infrieure une fourchette de 10 100 microsecondes (ce qui est assez lev pour fournir une lecture prcise mais sufsamment bas pour minimiser les risques dtre interrompu par le systme dexploitation), ajustez la boucle de rptition de comptage R, qui est xe 500 par dfaut. Aprs le rtablissement de linstruction IMUL, la recompilation et lexcution du programme avec un multiplicande D et un compteur de rptition R dnis, il est possible dutiliser lapproximation de temps obtenue TD, R pour estimer le nombre de cycles processeur dpenss dans lopration IMUL (CD, R) tant que la frquence de fonctionnement du processeur (FMHz) est connue :
CD,R = (TD,R Tidle). FMHz/R

Comme on peut sy attendre, les prvisions de branchement et de pipelining sur les puces les plus rcentes et plus labores en fausseront lgrement le rsultat, mais on peut tout de mme obtenir une bonne estimation.
NOTE Sur les processeurs Intel les plus rcents, le temps ncessaire pour achever la multiplication est dj constant.

Prvention
Plusieurs mthodes sont disponibles pour se protger contre leffort de lanalyse des efforts de calcul. La plus vidente consiste faire en sorte que toutes les oprations sexcutent dans le mme laps de temps. Toutefois, cela est difcile et entrane souvent une forte baisse des performances, car la dure de tous les calculs doit correspondre celle du calcul le plus lent. Lintroduction de dlais alatoires est une tactique de dfense acceptable si le temps de latence pour les applications nest pas critique, comme dans le cas de plusieurs services rseau non interactifs, ce qui sollicite moins le processeur. Toutefois, ce bruit alatoire peut tre efcacement ltr si lattaque est effectue de faon rpte. Une autre approche, connue sous le nom de blinding, repose sur lintroduction dune certaine quantit de bruit dans le systme en excutant des bogues alatoirement et des donnes imprvisibles combines avec lentre relle de lalgorithme an que lattaquant ne puisse pas dduire des proprits signicatives de lentre mme si lalgorithme de chiffrement est vulnrable aux attaques dans le temps, puis en rejetant les donnes superues que nous navons pas lintention denvoyer. Mme si la baisse des performances est considrablement plus faible, il est difcile deffectuer un blinding.

62

La source

Matire rexion
Je vous ai entran dans un long voyage, mais jespre que cela valait la peine. Comme dhabitude, je vous indique plusieurs problmes assez intressants prendre en considration : m Tout dabord, mme si je me suis concentr sur limpact que les attaques sur la complexit des calculs ont sur la cryptographie, le problme ne se limite pas uniquement ce domaine et se manifeste souvent ds que des informations prives ou condentielles sont traites. Bien sr, diverses informations de base sur les requtes HTTP ou le trac SMTP peuvent tre dduites en observant attentivement le service adquat dun systme. Essayez denvisager la mise en pratique dautres scnarios. m Deuximement, mme si un service ne traite aucune donne secrte, des informations sur la complexit des calculs peuvent tre dune certaine utilit. Prenez lexemple des applications dmon (ou daemon) sur le rseau, qui empchent la divulgation de secrets en fournissant des messages (derreur ou de russite) peut-tre trop gnriques. Le but de ces messages peut tre de rendre difcile un attaquant de savoir sil obtient le message "connexion incorrecte" en raison dune faute de frappe dans le mot de passe ou si lutilisateur nexiste pas. Toutefois, selon le temps ncessaire la rception de ce message, un observateur attentif peut dterminer quel chemin dans le code est effectivement excut, si lerreur survient plus tt (vrication uniquement de la validit du nom dutilisateur) ou plus tard (vrication du mot de passe). Je vous encourage exprimenter avec des services rseau comme SSH, POP3 et Telnet pour voir sil existe une diffrence cohrente et mesurable. m Comme toujours, mme les meilleures dfenses contre la divulgation dinformations ont tendance chouer de faon inattendue. En outre, la complexit des calculs nest pas la seule faon de dterminer ce qui se passe lintrieur dune puce de silicium. Prenons lexemple suivant : Shamir et Biham 5 ont labor un plan pour craquer les puces "scurises" utilises dans les cartes puce. Ces cartes microprocesseur sont conues pour stocker en toute scurit des donnes didentication personnelles ou des cls cryptographiques et de les divulguer uniquement certains services dauthentication et des clients de conance. En fait, on peut dduire les proprits des donnes ou le mcanisme de protection en trompant le dispositif grce des facteurs externes comme la fatigue mcanique, les rayonnements de haute nergie, une surchauffe et donc provoquer le mauvais fonctionnement de lappareil. Juste quelques penses que je voulais partager.

3
Les dix ttes de lhydre
O lon examine plusieurs autres scnarios qui surviennent trs tt dans le processus de communication.

Au cours des Chapitres 1 et 2, jai abord deux scnarios distincts de divulgation dinformations qui se produisent la suite de tentatives a priori brillantes mais nalement mal conues de rendre les ordinateurs plus fonctionnels ou de faciliter leur maintenance. Les vecteurs despionnage passif que ces dcisions de conception ouvrent sont en fait profondment enfouis sous limplmentation et fournissent un aperu fascinant
sur les menaces qui psent sur les tout premiers traitements de linformation. En revanche, cette vulnrabilit se limite naturellement la proximit physique ou logique de lenvironnement contrl. Mme si les possibilits de divulgation de renseignements au dbut du traitement de linformation sont quasiment innies, jai choisi de me pencher sur ces deux cas en raison de leur originalit, de leur beaut et de la facilit relative avec laquelle une attaque potentielle peut tre effectue par un attaquant dtermin. Cependant, les autres scnarios mritent galement dtre signals. Dans ce chapitre, jaborde certaines des possibilits les plus intressantes qui peuvent ne pas justier une discussion exhaustive mais que vous pourriez avoir envie dexplorer plus en dtail de votre ct.

64

La source

TEMPEST : lespionnage des missions TV


Dans les annes 1950, des tudes ont montr que le rayonnement lectromagntique peut en pratique souvent tre utilis pour rcuprer ou reconstruire facilement des informations sur le comportement du dispositif qui lmet. Le rayonnement lectromagntique est un bruit indsirable engendr par pratiquement tous les appareils lectroniques, lectromcaniques et lectriques, indpendamment de leur conception et des objectifs quils doivent remplir. Ce bruit est souvent propag sur des distances considrables par les lignes lectriques ou par voie arienne. Avant ces tudes, ce problme de rayonnement lectromagntique tait considr comme relevant du domaine de lingnierie en raison du risque dinterfrences inattendues entre des dispositifs ou des circuits indpendants, mais sans intrt pour une personne surveillant les frquences radio mises par lappareil. Toutefois, laube de lre de la guerre de linformation, le dveloppement croissant du traitement lectronique des donnes et des appareils de tlcommunication (certains utiliss pour transfrer ou stocker des informations sensibles ou secret dfense), les gouvernements des deux blocs sinquitrent lide quun observateur distant puisse reconstruire certaines des informations traites par un systme en coutant simplement une frquence spcique. Lacronyme TEMPEST (de langlais Transient Electromagnetic Pulse Emanation Standard) provient dune tude secrte sur les rayonnements lectromagntiques mene par larme amricaine dans les annes 1960. Il dsignait lorigine un ensemble de pratiques visant empcher les missions rvlatrices dinformations dans les circuits lectroniques qui traitaient des donnes sensibles. Ce terme devint plus tard un mot la mode pour dcrire lensemble des problmes et des techniques ayant un rapport avec linterception et la reconstruction des frquences radio mises. Mme si, lorigine, ce risque semblait davantage tre de la mauvaise science-ction que reprsenter une menace relle pour les sceptiques, un important document de recherche publi en 1985 par Wim van Eck 1 a dmontr quil tait assez facile et cest en fait le cas de reconstituer les images afches sur un cran tube cathodique (CRT) en interceptant les signaux des frquences radio que les circuits haute tension de ces moniteurs gnrent. Lafchage sur un cran CRT classique (voir Figure 3.1) seffectue en clairant trs haute vitesse chaque pixel de limage, ligne par ligne puis colonne par colonne, et en modulant constamment lintensit du signal en fonction de la partie de lcran qui est claire. Pour cela, une cathode larrire de lappareil met un troit faisceau dlectrons qui frappent lanode (une couche de matriaux conducteurs sur lcran), qui, son tour, met les photons de lumire visible que nous voyons. Le faisceau dlectrons est modul par un circuit spcial mais aussi positionn par un ensemble dlectro-aimants pour

Chapitre 3

Les dix ttes de lhydre

65

quil balaie lensemble de la zone dafchage de gauche droite et de haut en bas an de produire et de rafrachir limage sur lcran. Wim a not que les oscillateurs contrlant les lectro-aimants et le canon lectrons mettaient plusieurs types de signaux caractristiques des frquences standard. Il est simple de reprer ces signaux dans le spectre radiolectrique*. Chacun de ces signaux est gnralement clair et sufsamment fort pour quil soit facile de construire un dispositif relativement peu coteux capable despionner lafchage des crans CRT, mme une distance considrable.

Canon lectrons

Spot de lumire Ligne Ligne Ligne Ligne ... 1 2 3 4

...

Dflecteur horizontal cran Dflecteur vertical

Ligne X

Figure 3.1
La cration et lafchage dune image sur un cran cathodique.

NOTE Bien entendu, les missions ne se limitent pas aux crans CRT et sont tout aussi courantes avec les crans LCD (ou TFT, de langlais Thin-lm transistor) et tous les circuits des ordinateurs. Elles sont tout aussi courantes sur les bus de donnes, l o linformation entre plusieurs puces distinctes quitte la carte mre en empruntant longuement des conducteurs qui, entre autres choses, agissent comme une grande antenne (bien quinterprter et extraire un signal spcique ainsi que la plage dune mission puissent tre plus ou moins faciles).

* Pour cette raison, et cause des interfrences des lignes lectriques, les personnes qui souhaitent couter les signaux trs basse frquence que produit naturellement la terre doivent souvent se dplacer avec leur matriel denregistrement dans des endroits isols.

66

La source

Mme sil nexiste pas dexemples vriables dattaques sur des missions, part pour des applications militaires et de renseignement (en particulier pendant la guerre froide 2), certains documents rendent compte de son utilisation anecdotique pour lespionnage industriel3. De toute vidence, ce genre dattaque a ses limites: moins despionner lafchage dun cran cathodique, lattaquant doit se trouver proximit de la cible et disposer dun quipement complexe et trs coteux. Ceci est dautant plus vrai sil espionne les crans faible interfrence ou les processeurs et les bus trs rapides actuels. Pourtant, il est difcile et coteux de se prmunir dune telle attaque.

Les limitations de la condentialit


Dans les scnarios examins jusquici, on peut considrer que les rsultats indsirables ou inattendus ont pour cause la faon dont une technologie spcique a t conue et dploye, en dpit du fait que le dveloppeur et lutilisateur nal partagent les mmes objectifs. Dans certains cas, toutefois, lexposition tient aux lgres diffrences entre les objectifs et les attentes des deux groupes. Mme sil est frquent que les problmes de protection de la vie prive au niveau des logiciels soient dus lincomptence ou la malveillance dun programmeur, il existe galement des problmes de conception plus subtils qui ne sont pas un dfaut en soi. Certains des problmes les plus intressants dans ce domaine entrent dans la catgorie de la divulgation des donnes dans les documents lectroniques. Nous supposons naturellement que, lors de la rdaction dun document, toutes les informations ne se rapportant pas au contenu du document (et en particulier toute information qui identie de manire unique son crateur) sont caches aux autres personnes en mesure daccder ce document, moins que lauteur ne les divulgue expressment. Mais les jours des diteurs de texte non crypts sont rvolus depuis longtemps. De nos jours, les formats de document prennent en charge le stockage des mtadonnes an de marquer les documents pour ensuite les indexer, les rechercher et en oprer le suivi. En revanche, il est inquitant que les concepteurs des outils de cration dcident souvent de remplir automatiquement certaines informations et ne donnent lauteur que peu ou pas de contrle sur ce processus sans pour autant le tenir immdiatement au courant. Bien que cette pratique puisse tre considre comme un autre exemple de la volont de rendre lenvironnement plus convivial et transparent pour lutilisateur, peu de personnes apprcient ce manque dindications.

Chapitre 3

Les dix ttes de lhydre

67

tablir la provenance des donnes


Un problme courant est que certains logiciels de cration stockent des balises didentication uniques qui permettent dtablir une corrlation entre un document et sa source. En particulier, Microsoft Word a longtemps utilis ladresse matrielle de la carte rseau (si lordinateur en possde une) pour construire un champ didentiant unique GUID (de langlais Globally Unique Identier) dans un document quil sagisse dune recette de cuisine ou dun manuel de terrorisme. Bien que le problme ait t corrig dans les versions les plus rcentes de la suite dapplications Microsoft Ofce, cette pratique a eu des rpercussions intressantes :
m

Chaque priphrique dispose dune adresse de carte matrielle unique. Or les adresses matrielles sont utilises pour localiser un priphrique spcique sur un rseau local, ce qui est ncessaire pour viter les problmes qui se poseraient si deux ordinateurs ayant la mme adresse matrielle se connectaient au mme rseau. Le numro enregistr dans le champ GUID dun document Microsoft Word peut donc tre utilis pour identier lauteur du document, que cette personne ait crit le document anonymement ou lait sign. Cela reprsente la fois un prcieux outil de recherche pour les enqutes de police et un moyen efcace de rprimer la libert dexpression dans certaines situations (par un employeur qui recherche les auteurs de certaines critiques, par exemple). Les adresses matrielles sont attribues par lots chaque fabricant. En outre, dans de nombreux cas, les numros qui sont attribus aux cartes rseau le sont par ordre logique lors de leur fabrication, puis vendus par lots aux constructeurs. Ainsi, une personne peut non seulement connatre le fabricant dune carte spcique, mais galement savoir qui la vendue et qui. Dans de nombreuses situations, il est possible de suivre une adresse matrielle dun ordinateur jusqu la personne ou la socit qui le dtient. Un enquteur dtermin pourrait alors retrouver lorigine dun document spcique. Comme les adresses matrielles sont attribues par lots, il serait galement possible de tirer des conclusions limites quant la conguration matrielle du systme sur lequel un document a t rdig. Cela constitue une menace faible mais peut reprsenter une source intressante dinformations pour les personnes qui samusent dun rien ou qui sont particulirement curieuses.

Certaines fonctionnalits, bien quaccessibles lutilisateur, sont caches si profondment au sein de linterface quun utilisateur typique ne sait pas ce qui est enregistr ni la faon de modier ces valeurs par dfaut. Des logiciels comme Microsoft Word et OpenOfce sont connus pour insrer des informations sur "lauteur par dfaut". Ces informations correspondent gnralement aux donnes fournies avec la licence du logiciel ou sont automatiquement enregistres lors de la premire excution du programme lintrieur des mtadonnes du document, l o la plupart des utilisateurs ne prennent

68

La source

pas la peine de regarder. Mme sil sagit dun dispositif assez peu utile qui se rvle pratique lors du partage de documents, ses consquences sur la condentialit lemportent gnralement de loin sur les ventuels avantages que lutilisateur nal en retire. On peut galement prendre comme exemple la pratique "conviviale" qui consiste remplir automatiquement le champ "titre" dans les mtadonnes de len-tte dun document partir de la premire phrase du document. Cela semble pratique mais ce choix est souvent permanent, ce qui signie que, mme si le premier paragraphe est chang par la suite (par exemple si lentreprise fait une nouvelle offre un concurrent de son premier client), le contenu original peut tre dduit par un observateur attentif. Cette "fonctionnalit" dvoile encore une fois plus dinformations sur lauteur que le destinataire ne devrait en savoir. Les anciennes versions de Microsoft Word sauvegardaient galement les documents sans effacer correctement toutes les donnes supprimes, ce qui fournissait donc des informations sur les annulations et enregistrait toutes les prcdentes rvisions du texte. Un attaquant sufsamment quali pouvait ensuite aisment rcuprer ces informations avec un logiciel qui analyse les conteneurs OLE, le format dans lequel lditeur stocke toutes ses donnes. Ce problme est particulirement grave lorsquune version antrieure dun document est rutilise comme modle et envoye un destinataire diffrent qui peut tre concurrent. La possibilit de rcuprer la version prcdente dune offre, dune lettre de motivation ou dune rponse ofcielle un client est certainement divertissante et instructive mais pas toujours souhaitable pour lexpditeur. tant donn la tendance rcente de linformatique rduire le piratage, il est raisonnable de sattendre ce que le balisage de tous les documents se banalise an de pouvoir retrouver leurs auteurs.

Divulgation malencontreuse : *_~1q@@... et le mot de passe est


Le dernier type de problme que partagent bon nombre dditeurs de texte est celui de la fuite de mmoire alatoire. Ce genre de divulgation est le rsultat dun manque agrant de comptence ou dun manque de tests, mais il se distingue des autres dfauts du code dans la mesure o il ne rend pas tant le code vulnrable une attaque quil ne divulgue des indications utiles pour un observateur attentif. Que ce problme se limite au programme seul ou soit caus par des fuites dans tout le systme (comme sur les systmes o la protection de la mmoire est mauvaise, comme Windows 3.x ou 9.x), cette fuite de donnes peut contenir des informations sensibles sur dautres documents, sur lhistorique de navigation, le contenu des e-mails ou mme des mots de passe. Le problme survient lorsque lapplication alloue un segment de la mmoire ( un tampon ddition, par exemple) qui a peut-tre t utilis auparavant pour une autre

Chapitre 3

Les dix ttes de lhydre

69

tche et quelle oublie de leffacer avant de le rutiliser dans un tout autre but. Pour des raisons de performance, la mmoire nest pas toujours remise zro avant dtre alloue une application. Lapplication peut alors fonctionner sur une petite portion seulement du segment de mmoire et lcraser, mais crire sur lensemble du bloc de donnes allou lors de lenregistrement du chier. Elle stocke alors la fois les donnes prvues et du contenu rsiduel prsent depuis longtemps dans la mmoire et provenant don ne sait o. Et, cela na rien de surprenant, les anciennes versions de Microsoft Word taient autrefois clbres pour contenir alatoirement des morceaux trs importants de la mmoire dans quasiment tous les documents produits. Ce problme a t observ un certain nombre de fois dans Microsoft Windows en 1998 sur tous les systmes, puis sur Mac OS en 2001. Certaines donnes suggrent que dautres observations ont t effectues, mais celles-ci sont assez mal documentes.

4
Travailler pour le bien de tous
O la manire dont un ordinateur peut connatre les intentions de son utilisateur est souleve sans obtenir de rponse.

Lavantage, mais aussi le gros problme de tout rseau informatique sufsamment vaste et diversi est que vous ne pouvez pas aveuglment croire que la partie connecte soit rellement ce quelle prtend tre et quil est impossible de connatre ses intentions relles ou la motivation qui se cache derrire ses actes.
Jaborderai la question de la conrmation de lidentit dune source dans la troisime partie de ce livre, quand je dissquerai larchitecture du rseau et tudierai les risques lis la faon dont un rseau est conu. Toutefois, la question des intentions de lexpditeur est un aspect diffrent et fascinant de la scurit informatique qui peut avoir des incidences sociales et judiciaires graves dpassant le monde de linformatique. Comme les ordinateurs sont de plus en plus mme de prdire ce que lutilisateur souhaite faire (pour rendre lutilisation de lordinateur intuitive et plus facile) et quils sont de plus en plus autonomes, il sont de plus en plus faciles abuser et utiliser par quelquun dautre que lutilisateur. Quantit douvrages ont t crits sur ce sujet suivis par de nombreuses querelles enammes pour dnir qui incombait la responsabilit et qui poursuivre en justice en cas de problme. Je crois quil est important de sattaquer au problme, mais sans vouloir vous imposer un point de vue particulier. En tant que tel, je vais clore cette partie

72

La source

de louvrage avec la traduction dun document court et principalement technique que jai publi initialement en 2001 dans le volume 57 du magazine Phrack. Jai apport quelques modications mineures cet article et je mabstiendrai de plus amples commentaires. Laissez-moi fouiller chercher cet article Ah, le voil :
==Phrack Inc.== Volume 0x0b, Issue 0x39, Phile #0x0a of 0x12 |=--------=[ Contre le systme: Le soulvement des robots ]=--------=| |=-------------------------------------------------------------------=[ |=--=[ (C)Copyright 2001 par Michal Zalewski <lcamtuf@bos.bindview.com> ]=--=| -- [1] Introduction --------------------------------------------------"... [La] grande diffrence entre le Web et les collections bien contrles traditionnelles est quil nexiste quasiment aucun contrle sur ce que les gens peuvent mettre sur le Web. Si lon ajoute cette possibilit de publier nimporte quoi lnorme influence quont les moteurs de recherche pour acheminer le trafic, les entreprises qui manipulent dlibrment [sic] les moteurs de recherche dans un but lucratif reprsentent un grave problme." -- Sergey Brin, Lawrence Page [A] Imaginez un attaquant distant qui puisse compromettre un systme sans envoyer aucune ligne de code la victime. Imaginez une attaque qui crerait simplement un fichier en local afin de compromettre des milliers dordinateurs sans impliquer aucune ressource spcifique. Bienvenue dans le monde des techniques dexploitation de bogue zro effort, de lautomatisation, de lattaque anonyme, dautant plus difficile viter quInternet devient toujours plus complexe. Ces exploits zro effort crent une wishlist et la dposent quelque part dans le cyberespace o dautres peuvent la trouver. Ces "autres", les travailleurs invisibles de lInternet [B], sont les centaines de robots infatigables qui ne dorment jamais et cherchent des informations, les moteurs de recherche, les agents intelligents qui viennent pour slectionner cette information et deviennent leur insu un outil pour lattaquant. Vous pouvez arrter lun deux mais ne pouvez pas les arrter tous. Vous pouvez dcouvrir ce que sont leurs commandes, mais non deviner ce que ces commandes seront demain, car elles sont caches dans labme toujours inexplor du cyberespace. Ils forment une arme prive, toujours disponible et prte obir aux commandes laisses sur leur chemin. On peut les exploiter sans avoir les compromettre. Ils font ce pour quoi ils ont t conus, et ils le font du mieux quils le peuvent. Bienvenue dans une nouvelle ralit, o les machines lintelligence artificielle peuvent se dresser contre nous. Imaginez un ver. Un ver qui ne fait rien. Il est vhicul et inject par dautres, mais sans les infecter. Ce ver cre une liste de10000 adresses alatoires avec des commandes prcises. Puis il attend. Les

Chapitre 4

Travailler pour le bien de tous

73

agents intelligents indexent cette liste, unissant leurs forces pour toutes les attaquer. Imaginez quils y russissent avec, au pire, un taux de succs de 0,1%. Dix nouveaux serveurs sont prsent infects. Sur chacun dentre eux, le ver prpare une nouvelle liste et les agents reviennent, infectant alors cent machines supplmentaires. Et linfection se propage (en rampant, si vous prfrez). Les agents intelligents sont quasiment impossibles percevoir, car les gens sont maintenant habitus leur prsence et leur persvrance. Ils se contentent de progresser lentement, dans une boucle sans fin. Ils travaillent systmatiquement, nencombrent pas les connexions en gnrant des transferts de donnes excessifs, ne provoquent pas dinterruptions du rseau ou de pics dactivit et ne signalent pas la prsence de la maladie. Semaine aprs semaine, ils inspectent prudemment de nouveaux htes, et leur exploration ne finit jamais. Et il possible de savoir quils vhiculent un ver? Peut-tre... -- [2] Un exemple ----------------------------------------------------Quand cette ide mest venue lesprit, jai voulu vrifier si mon raisonnement tait le bon laide du test le plus simple possible. Jai "cibl", si tant est que le mot soit appropri, plusieurs moteurs de recherche et dindexation gnraux sur le Web. Jai cr une page HTML trs courte que jai dpose quelque part sur mon site et puis jai attendu quelques semaines. Et ils sont venus. Altavista, Lycos et des dizaines dautres. Ils ont trouv de nouveaux liens, les ont slectionns avec enthousiasme, puis ont disparu pendant plusieurs jours: bigip1-snat.sv.av.com: GET /indexme.html HTTP/1.0 sjc-fe5-1.sjc.lycos.com: GET /indexme.html HTTP/1.0 [...] Ils sont revenus plus tard, pour voir ce que je leur avais donn analyser: http://somehost/cgi-bin/script.pl?p1=../../../../attack http://somehost/cgi-bin/script.pl?p1=;attack http://somehost/cgi-bin/script.pl?p1=|attack http://somehost/cgi-bin/script.pl?p1=`attack` http://somehost/cgi-bin/script.pl?p1=$(attack) http://somehost:54321/attack?`id` http://somehost/AAAAAAAAAAAAAAAAAAAAA... Les robots ont suivi les liens, chacun dentre eux simulant des vulnrabilits. Bien que ces exploits naient pas affect mon serveur, ils pouvaient facilement compromettre des scripts en particulier ou un serveur Web distant en forant le script excuter des commandes

74

La source

arbitraires, crire des fichiers et pouvaient mme entraner un problme de dpassement de la mmoire tampon: sjc-fe6-1.sjc.lycos.com: GET /cgi-bin/script.pl?p1=;attack HTTP/1.0 212.135.14.10: GET /cgi-bin/script.pl?p1=$(attack) HTTP/1.0 bigip1-snat.sv.av.com: GET /cgi-bin/script.pl?p1=../../../../attack HTTP/1.0 [...] Les robots se sont ensuite joyeusement connects aux ports non HTTP que javais prpars leur intention et ont commenc envoyer les donnes que javais fournies dans les URL, rendant ainsi possible une attaque sur dautres services que ceux des serveurs Web: GET /attack?`id` HTTP/1.0 Host: somehost Pragma: no-cache Accept: text/* User-Agent: Scooter/1.0 From: scooter@pa.dec.com GET /attack?`id` HTTP/1.0 User-agent: Lycos_Spider_(T-Rex) From: spider@lycos.com Accept: */* Connection: close Host: somehost:54321 GET /attack?`id` HTTP/1.0 Host: somehost:54321 From: crawler@fast.no Accept: */* User-Agent: FAST-WebCrawler/2.2.6 (crawler@fast.no; [...]) Connection: close [...] En plus des moteurs de recherche bien connus, de nombreux robots de recherche et dagents privs excuts par diverses organisations et entreprises se sont galement manifests. Les robots de ecn.purdue.edu, de visual.com, de poly.edu, de inria.fr, de powerinter.net, de xyleme.com, et bien dautres moteurs de recherche non identifis ont trouv cette page et lont apprcie. Bien que certains robots naient pas index toutes les adresses (certains agents nindexent pas du tout les scripts CGI, dautres nutilisent pas les ports non standard), la majorit des moteurs les plus puissants ont attaqu virtuellement tous les vecteurs fournis. Mme les plus prudents ont t abuss et ont effectu au moins quelques attaques.

Chapitre 4

Travailler pour le bien de tous

75

Cette exprience pourrait tre modifie de faon utiliser un ensemble de vulnrabilits relles et entraner des milliers et des milliers de dbordements de serveur Web, des problmes Unicode sur les serveurs Microsoft IIS ou des problmes de script. Plutt que cibler mon propre serveur, les robots pourraient pointer vers une liste dadresses IP gnres alatoirement ou vers une slection alatoire de serveurs .com, .org ou .net. Ou, encore, on pourrait indiquer aux robots un service qui puisse tre attaqu en fournissant une chane en entre spcifique. Il y a quelque part une vritable arme de robots de diffrents types, aux possibilits variables et plus ou moins intelligents. Et ces robots sont prts faire tout ce que vous leur demanderez. -- [3] Considrations sociales ---------------------------------------Qui est coupable lorsquun agent "infect" compromet votre systme? La rponse la plus vidente est: lauteur de la page Web originale que le moteur a visite. Mais il est difficile de trouver qui sont les auteurs des pages Web, et le cycle dindexation dun moteur de recherche prend des semaines. Il est difficile de dterminer quand la page en question a t mise sur le rseau car les pages peuvent avoir t dposes dun grand nombre de faons, voire cres par dautres robots. Il nexiste pas sur le Web de rel mcanisme de traabilit qui fournisse des fonctionnalits semblables celles implmentes dans le protocole SMTP. En outre, beaucoup dagents ne se souviennent pas de lemplacement o ils ont "appris" les nouvelles URL. Lutilisation dindicateurs dindexation, comme "noindex" sans loption "nofollow", peut causer quelques problmes supplmentaires. Dans de nombreux cas, lidentit de lauteur et lorigine de lattaque ne peuvent pas tre totalement dtermines. Par analogie avec dautres cas, on peut sattendre ce que les dveloppeurs intelligents de robots soient contraints de mettre en place des filtres spcifiques ou de verser dnormes indemnisations aux victimes des abus des robots, si ce genre dattaque devenait une ralit. En revanche, si lon considre le nombre et la diversit des vulnrabilits connues, il semble presque impossible de russir filtrer correctement le contenu pour liminer tout code malveillant. Et donc le problme persiste (de plus, tous les robots ne dpendent pas de la juridiction dun seul et mme pays et les lois sur les abus informatiques diffrent sensiblement dans chaque pays). -- [4] Dfense -------------------------------------------------------Comme nous lavons mentionn plus tt, les agents et robots qui parcourent le Web disposent de moyens de dfense et de possibilits dactions trs limits, en raison de la grande varit de vulnrabilits bases sur le Web. Il est tout simplement impossible de bannir toutes les squences malveillantes et une enqute heuristique est risque: une entre valide et attendue par un script peut tre suffisante pour attaquer un autre script. Lutilisation de logiciels scuriss et correctement mis jour est une des tactiques de dfense les plus raisonnables pour toutes les victimes potentielles, mais cette

76

La source

approche est trs mal vue pour certaines raisons (voici un petit test rapide sans valeur scientifique: la requte "cgi vulnerability" retourne 62100 enregistrements sur www.google.com avec le filtrage de documents en place [C]). Une autre ligne de dfense possible contre les robots consiste utiliser le mcanisme standard dexclusion robots/ robots.txt [D]. Le prix payer tant lexclusion partielle ou complte de votre site des moteurs de recherche, ce qui, dans la plupart des cas, ne peut tre envisag. En outre, certains robots sont mal dvelopps ou conus pour ignorer intentionnellement le fichier robots.txt lorsquils suivent un lien direct vers un nouveau site Web. -- [5] Rfrences ----------------------------------------------------[A] "The Anatomy of a Large-Scale Hypertextual Web Search Engine", Googlebot concept, Sergey Brin, Lawrence Page, Stanford University. http://infolab.stanford.edu/~backrub/google.html [B] "The Web Robots Database". http://www.robotstxt.org/wc/active.html [C] "Web Security FAQ", Lincoln D. Stein. http://www.w3.org/Security/Faq/www-security-faq.html [D] "A Standard for Robot Exclusion", Martijn Koster. http://info.webcrawler.com/mak/projects/robots/norobots.html |=[ EOF ]=-----------------------------------------------------------=|

Il semble pratiquement impossible dempcher totalement les abus automatiss si lon nest pas capable danticiper et de classer les intentions relles qui se cachent derrire une action de lutilisateur, ce qui nest pas susceptible de se produire de sitt. Pendant ce temps, le nombre de systmes automatiss qui sappuient sur linteraction avec dautres entits augmente chaque anne, ce qui rend peut-tre mme cette question encore plus intressante qu lpoque o jai crit cet article, en particulier si lon considre le nombre de vers de plus en plus sophistiqus qui ont frapp Internet au cours des dernires annes. Pouvons-nous tirer une morale ou une conclusion claire de cette histoire ? Pas vraiment. Il est cependant important de se rappeler que les machines nagissent pas toujours au nom de leurs oprateurs, mme quand ils ne sont pas clairement compromis ou rellement abuss et deviennent hostiles. Dterminer les intentions et lorigine dune action malveillante intentionnelle peut constituer un formidable d, comme vous le verrez dans les chapitres suivants.

Partie II
Un endroit sr
O il est question des menaces qui se cachent entre lordinateur et Internet.

5
Les Blinkenlights
O lon conclut que ce qui est joli peut galement tre mortel et o lon apprend dchiffrer les DEL.

La premire partie de ce livre portait sur divers problmes lis la conception du systme dentre des donnes. Ces problmes se limitent dduire lentre en observant les actions apparemment sans relation dun utilisateur ayant un accs local un systme. Mais, lorsque les informations sont transfres au destinataire et quittent ce systme, leur exposition augmente et les problmes deviennent plus tangibles.
La deuxime partie de cet ouvrage met laccent sur certains des problmes qui surviennent alors que les donnes restent porte de main juste aprs avoir quitt le systme dorigine le moment qui prcde leur entre sur Internet. Lexposition tudie ici se limite peu prs lempreinte physique dun rseau local et de son environnement immdiat. Une attaque ce niveau exige un point dobservation local mais ne ncessite pas un accs au niveau du systme. Le problme particulier examin dans le prsent chapitre est quelque peu diffrent de ceux abords prcdemment : lexposition se manifeste maintenant au niveau matriel, un peu comme dans TEMPEST, mais il est diffrent. La beaut de ce phnomne, ainsi que la facilit avec laquelle on peut lobserver sans disposer dquipement spcialis, justie grandement quon lexamine de plus prs.

80

Un endroit sr

Lart de transmettre des donnes


Ds les dbuts de la pratique informatique, il tait vident que les ordinateurs devaient communiquer avec dautres appareils lectroniques. Il tait galement manifeste quil serait difcile de rendre cette tche able sans dnormes investissements nanciers. On peut contrler les communications internes de la machine en plaant entre tous les principaux composants diffrentes interfaces personnalises la capacit dsire qui conservent prcisment les caractristiques du signal et qui utilisent une horloge de rfrence commune pour toutes les oprations. Ainsi, le destinataire sait toujours quand tre lcoute et lexpditeur, quand transmettre les donnes. Mais le d est tout autre pour les communications sur de longues distances ou vers des priphriques quips dinterfaces non spcialises et bon march. Lordinateur est alors oblig de communiquer sur un support qui noffre gnralement pas le degr de libert auquel on est habitu lorsquon travaille sur les entrailles dune seule machine. En fait, la situation est mme tout fait inverse. Le client souhaite des solutions simples, pratiques et peu coteuses, si bien quune connexion laide dun cble de 3 pouces compos de 100 ls et cotant 100 dollars ne parat pas tre la bonne solution. La simplicit est ncessaire. la base, tout canal de communication extrieure sappuie presque toujours sur la transmission en srie dune suite de bits qui produisent uniquement des valeurs numriques, des chanes de texte ou dautres types de donnes natives lorsque ces bits sont rassembls et regroups sur la machine de lexpditeur ou du destinataire. Dans lexemple le plus simple, lorsque deux machines ou deux dispositifs connects seulement par deux cbles doivent changer des informations, ils le font en donnant lun des cbles une tension leve ou basse en fonction de lautre ligne (rfrence) ou en utilisant des signaux ou des tats diffrents. Ceci an denvoyer des suites de bits de donnes une frquence donne une frquence qui doit rester sufsamment proche et synchronise sur les deux appareils. Mme pour une conception aussi simple, un certain nombre de problmes se posent immdiatement. Premirement, les priphriques ne partagent pas une horloge de rfrence. Bien que tous deux possdent des horloges internes base de quartz, deux horloges bon march ne sont jamais assez prcises pour garantir des communications rapides et ables sur une longue priode de temps, en raison de lgers dfauts de fabrication, des interfrences et dautres phnomnes physiques. Or une communication en srie exige une synchronisation prcise. Le systme simple de codage des bits, gnralement appel NRZ (de langlais Non Return to Zero) produit uniquement en sortie un signal (une tension) pour 0 et un autre pour 1. Dans un tel systme, il est facile de synchroniser les deux terminaux lorsque les valeurs changent rgulirement, le systme nayant alors besoin que de dtecter les deux tats du signal, dutiliser ces valeurs comme rfrence et dajuster sa propre horloge en consquence. Mais, pour une longue squence de 1 ou de 0, il devient difcile pour le rcepteur de dterminer avec prcision combien de bits sont envoys.

Chapitre 5

Les Blinkenlights

81

En fait, mme un petit dcalage de lhorloge peut entraner des problmes, et il nexiste aucun moyen de les corriger lors de lchange dune squence continue de bits. La solution la plus vidente consiste insrer dans les donnes un autre signal reconnaissable dans le temps. Mais cela nest pas toujours la plus pratique ni la plus efcace. Laugmentation de la complexit et la rduction du dbit sont souvent perues comme une nuisance. Pour rpondre efcacement ce problme, de nombreux systmes utilisent un systme appel codage Manchester ou codage biphase. Lalgorithme du codage Manchester, illustr avec le codage NRZ la Figure 5.1, encode les donnes en utilisant les crtes du signal, par opposition aux niveaux du signal. La version originale de lencodage NRZ utilise une horloge interne pour mesurer les niveaux de tension un rythme constant, en interprtant les tensions basses comme tant la valeur binaire 0 et les tensions hautes comme tant la valeur binaire 1. Le codage Manchester, en revanche, transfre la transition des donnes de ltat bas ltat haut et vice versa. Le passage du signal un tat haut correspond alors la valeur binaire 1 et sa transition vers un tat bas, la valeur 0*.
0 NRZ :
Tension

... +5V 0V

Temps (cycles)

0 Biphase :
Tension

... +5V 0V

Temps (cycles)

Figure 5.1
Codages des ux de transmission NRZ et biphase (Manchester).

Bien que ce codage nexige pas que les horloges soient synchronises, cela ne suft pas : il ny a aucun moyen dencoder deux 0 ou deux 1 binaires, car il nest pas possible de passer deux fois dune tension faible une tension haute (et vice versa) sans revenir un tat transitoire. An de permettre le codage de ce type dinformation, les transitions qui se produisent peu de temps aprs une baisse ou une hausse du signal sont ignores, ce qui permet au systme de coder plusieurs occurrences de 0 et de 1 en revenant la mme tension en milieu de cycle. Pour grer cette priode de "trou" aprs une transition, un unique intervalle dhorloge est ncessaire.
* Ou linverse, selon la conception du transmetteur.

82

Un endroit sr

Ce schma, fond sur un schma de synchronisation automatique, est souvent tendu pour fournir une liaison full-duplex dans laquelle les deux parties peuvent parler en mme temps, en utilisant soit deux lignes spares (transmission et rception, ou Tx et Rx) soit une dtection avance de lcho et des astuces dannulation pour diffrencier son propre signal des donnes envoyes par lautre. Certains systmes exigent ou permettent dutiliser des signaux plus sophistiqus, comme lenvoi de plus dun seul bit chaque cycle, mais le principe des communications reste quasiment le mme et le codage Manchester sur le nombre de ls le plus bas possible (souvent deux) prvaut. prsent que nous connaissons les principes de base des communications en srie par "paire torsade", examinons deux bons exemples de communication en srie dans le monde du travail en rseau, voyons comment schangent les donnes en interne et la manire dont des fuites dinformation peuvent tre divulgues des tiers sans que lutilisateur sen aperoive.

De votre courrier lectronique des bruits intenses aller et retour


Le dispositif de communication longue distance le plus populaire est le modem. Cr au dpart dans les annes 1950 pour lentretien et le contrle de certains types de matriels militaires situs dans des endroits loigns, le modem a rendu Internet accessible tous. Mme sil est aujourdhui souvent considr comme obsolte, le modem a donn naissance de nombreuses technologies de pointe, comme la technologie DSL (Digital Subscriber Line, ou ligne dabonn numrique) ou le cble. Ces dispositifs utilisent tous des variations de la mme technique pour communiquer sur les lignes tlphoniques analogiques ou sur dautres mdias non prvus cet usage, laide de signaux sonores ou inaudibles. Les recherches menes pour amliorer les modems ont galement permis de mieux comprendre de nombreux problmes de conception dans le domaine de llectronique en gnral et dans celui de linformatique et de la conception du rseau en particulier. Ainsi, il est primordial de comprendre le fonctionnement des modems pour explorer dautres mthodes peut-tre plus rcentes de transmission de donnes sur de longues distances. De par sa prsence sur toute la plante, le rseau tlphonique reprsente le mdium le plus logique pour tablir des communications entre les ordinateurs. Comme les lignes tlphoniques se rencontrent presque partout et que les systmes tlphoniques offrent dexcellentes capacits de routage des appels, il est ainsi possible de joindre peu prs nimporte quel endroit avec un minimum defforts. Un petit bmol, cependant : les lignes tlphoniques ont t conues pour transporter la voix humaine, transmise sous la forme dune onde, dans une frquence de rponse troite (ne dpassant pas gnralement plusieurs kHz). Comme ces frquences sont enregistres en fonction des changements de tension sur une paire torsade de cbles et relayes par un certain nombre de rptiteurs et damplicateurs analogiques, la qualit de la transmission nest pas particulirement leve.

Chapitre 5

Les Blinkenlights

83

Il sufsait lorigine que les gens sentendent et se comprennent. Et, comme le cerveau humain est un magnique systme de ltrage et de traitement des signaux, ni le bruit occasionnel ni les uctuations du niveau sonore ntaient une proccupation majeure jusqu ce que, bien plus tard, les clients deviennent un peu pointilleux. Les ordinateurs, en revanche, sont gnralement conus pour changer des informations binaires qui sont codes en utilisant des niveaux de tension assez prcis sur des lignes courtes bien conues et dont les caractristiques de signal sont bonnes et la capacitance, faible. Autrement dit, lexact oppos des lignes tlphoniques longue distance, mal protges et dont les caractristiques du signal sont inadquates. Les ordinateurs ont galement besoin de parler beaucoup plus rapidement et beaucoup plus que les humains ne le font en gnral. Les concepteurs des modems avaient donc (et cest un euphmisme) un d difcile rsoudre : ils devaient trouver une faon non seulement dencoder les bits de donnes an quils soient efcacement transmis par cble un systme distant (ce que le codage Manchester facilite un peu) mais aussi de le faire sous la forme de signaux audibles an quils soient reconnus avec prcision lautre extrmit de la ligne sans tenir compte des changements de tension souvent totalement imprvisibles et des autres problmes de transmission. Ils durent employer des algorithmes complexes de correction des erreurs et des vitesses de transmission variables pour compenser la mauvaise qualit de la ligne, le chevauchement occasionnel des conversations, le passage des camions sur une ligne tlphonique enterre, la construction dun nid doiseaux sur un poteau, et ainsi de suite. Il leur fallut environ quarante ans de recherche pour que nous disposions dune technique de communication dordinateur ordinateur abordable et assez rapide. Regardons rapidement le dveloppement et la maturation de cette technologie (mme si elle na pas radicalement chang) au l des dcennies suivantes. Lhistoire du dveloppement commercial du modem et de sa normalisation a commenc dans les annes 1960, lorsque deux normes, Bell 103/113 et V.21, ont t conues. Ces deux normes fournissaient une connexion full-duplex la vitesse tonnante (pour lpoque) de 300 bauds (bits par seconde) grce une technique appele modulation par dplacement de frquence (MDF), plus connue sous sa dnomination anglophone de frequency shift keying (FSK). Ce terme mystrieux dsigne en fait un systme simple de codage du signal : il utilise deux tons diffrents pour dsigner des valeurs diffrentes, une frquence pour la valeur "faible" et une autre frquence pour la valeur "haute". Lutilisation de frquences audibles prsente un avantage assez important sur dautres types de signaux : cest en effet le seul type de signal qui peut tre assez bien relay par lintermdiaire du systme tlphonique puisque, aprs tout, cest pour cela que le systme a t conu. Tous les autres signaux sont dans le meilleur des cas plus ou moins destins tre supprims car non reconnus avant davoir atteint lautre extrmit du cble ou dans le pire des cas immdiatement limins par les ltres passe-bande quelque part dans la ligne. En plus du codage MDF, les normes Bell 103/113 et V.21 divisaient la gamme de frquences qui pouvaient tre transmises par les lignes tlphoniques en deux : le

84

Un endroit sr

modem appelant utilisait une frquence de 980 Hz pour encoder les valeurs basses et une frquence de 1 180 Hz pour les valeurs hautes. lautre bout de la ligne, le rpondeur utilisait la partie la plus leve du spectre, soit 1 650 Hz et 1 850 Hz, pour chacune des valeurs. Pourquoi diviser la frquence de cette manire ? Parce quune ligne tlphonique est avant tout une paire de ls qui peuvent uniquement tre utiliss pour transmettre les donnes de deux appareils simultanment (full-duplex) sils sont capables de grer le fait que chaque transmission se superposera lautre. Dans une communication en full-duplex, chaque dispositif doit tre capable de distinguer son propre signal des donnes quil reoit et les ltrer. Dans le cas contraire, chaque dispositif doit faire une pause lorsque lautre parle (mode simplex), ce qui diminue fortement le dbit dj peu lev. Par ddoublement de la frquence, la ligne tlphonique transmet ce quelle considre comme deux "voix" et garantit donc que la communication se droule simultanment sans collision. Il a fallu vingt-cinq annes supplmentaires pour que les modems franchissent une autre tape. La srie suivante de normes importantes, Bell 212A et V.22, constituait un grand bond en avant et abandonnait la modulation par dplacement de frquence au prot de la modulation par sauts de phase (DPSK, de langlais differential phase shift keying). Plutt que modier la frquence dune onde, DPSK modiait sa phase pour signaler des valeurs diffrentes.

Modulation par dplacement de frquence Modifications de la frquence (augmentation)

Modulation par sauts de phase

La frquence ne change pas mais est dcale par rapport la frquence de rfrence

Crtes de la frquence de rfrence

Valeur "basse"

Valeur "haute"

Figure 5.2
Modulation par dplacement de frquence et modulation par sauts de phase.

Chapitre 5

Les Blinkenlights

85

Cette technique de saut de phase entrane un lger dcalage horaire ou retard, si bien que le signal audio en sortie est lgrement dsynchronis avec londe de rfrence originale, tout en conservant exactement la mme forme (voir Figure 5.2). La valeur du saut de phase est exprime en degrs, en rfrence son effet sur les fonctions trigonomtriques : y = sin(x) dcal de 90 est exactement identique y = sin(90+x). Un changement de valeur de 360 dnote un saut de lensemble de la longueur donde, ce qui synchronise tout simplement de nouveau londe et na aucun effet sur la forme donde. La correspondance des diffrents sauts de phase est indique sur la gauche de la Figure 5.3.
Signal de rfrence

Phase 0

Rfrence du signal

Soustraction

Signal plat ramen zro

Phase 90

Rfrence du signal

Soustraction

Phase 180

Rfrence du signal

Soustraction

Figure 5.3
Les sauts de phase des signaux ( gauche) et le rsultat aprs la soustraction dune onde de rfrence an de mieux distinguer les diffrentes phases ( droite).

Une fois que les deux parties sont synchronises et disposent dun moyen pour comparer le signal reu sur le cble avec londe attendue, les donnes encodes peuvent tre facilement rcupres. Un circuit diffrentiel peut comparer les deux signaux, les soustraire et aisment dterminer lemplacement exact du saut de phase dans le signal en le comparant un signal de rfrence, comme indiqu sur la droite de la Figure 5.3.

86

Un endroit sr

Cette nouvelle norme a galement prot dune mthode de codage des donnes plus avance. Au lieu dutiliser simplement deux signaux alternatifs pour transmettre des 0 et des 1, comme ctait le cas auparavant, la norme V.22 encode les bits par paire (familirement appeles dibits en anglais). Lencodage de 2 bits la fois peut tre ralis en utilisant quatre valeurs de saut de phase ; limportance du saut est utilise pour dsigner chacune des valeurs possibles choisies an que les valeurs soient uniformment espaces, si possible pour occuper les 360 du spectre, ce qui les rend plus faciles distinguer les unes des autres (voir Tableau 5.1). Lutilisation des dibits a permis dacclrer sensiblement la vitesse de transfert (1 200 bauds), sans avoir augmenter le taux physique auquel le signal est modul. Deux fois plus dinformations, soit un nombre deux fois plus important de bits, sont transfres lintrieur de chaque signal.
Tableau 5.1 : Utilisation des sauts de phase pour encoder 2 bits de donnes (dibit)

Dibit 00 01 10 11

Saut de phase 90 0 180 270

NOTE Bien quil soit en thorie galement possible dutiliser un alphabet aussi tendu, cest-dire des units de signaux composites semblables aux dibits (qui ont plus de deux tats et donc encodent plus de 1 bit la fois), avec le codage MDF, il est un peu plus problmatique de le faire. Les signaux MDF doivent viter les subharmoniques et les frquences les plus susceptibles de subir une distorsion lors de leur transfert par lintermdiaire des systmes de tlphonie, ce qui limite normment le nombre dtats possibles. La modulation par sauts de phase prsente sur la modulation par dplacement de frquence lavantage dutiliser une frquence xe connue pour causer moins de problmes de transmission et qui peut par consquent tre utilise de faon plus able pour des transmissions plus rapides.

Dans les annes suivantes, le rythme des dcouvertes sacclra un peu, et un certain nombre de nouvelles normes rent leur apparition. La norme V.22bis utilisait de faon lgrement plus avance le concept de lalphabet de signaux, en combinant la modulation par sauts de phase avec une modulation de lamplitude du signal (sa force) pour

Chapitre 5

Les Blinkenlights

87

construire un ensemble deux dimensions de seize valeurs possibles. La transition dun signal mesur en valeurs binaires sexprimait au moyen dun tableau deux dimensions. La valeur laquelle correspond un signal sobtient en recherchant dabord dans la colonne, partir de la mesure de la valeur du saut de phase, puis dans la ligne, en fonction de la mesure de lamplitude. Le Tableau 5.2 illustre un exemple simpli (4 colonnes pour 2 lignes) mais quivalent de ce tableau.
Tableau 5.2 : Lencodage en deux dimensions de 3 bits utilisant deux paramtres de signal distincts

Phase 0 Amplitude faible Amplitude leve 000 (0) 100 (4)

Phase 90 001 (1) 101 (5)

Phase 180 010 (2) 110 (6)

Phase 270 011 (3) 111 (7)

Pour rendre les choses un peu plus confuses, cette nouvelle approche fut baptise modulation damplitude en quadrature (ou QAM, de langlais quadrature amplitude modulation). Elle permit de passer de 1 200 2 400 bps sans rellement amliorer la vitesse de modulation du signal, mais en largissant le nombre de signications quun seul signal pouvait avoir. Lvolution suivante la plus importante fut la norme V.32. Elle fut la premire introduire un nouveau concept : au lieu de diviser les frquences, elle utilisait des circuits dannulation de lcho* pour dtecter et soustraire le signal transmis par le priphrique lui-mme partir des donnes reues du cble. Cette technique permettait aux deux appareils (metteur et rcepteur) dutiliser lensemble du spectre des frquences, au lieu de la moiti seulement, tout en conservant toujours le full-duplex. Le dveloppement se poursuivit rapidement avec lapparition du protocole V.34. Mme si la vitesse laquelle le signal pouvait tre altern en toute scurit avant que des distorsions excessives napparaissent ne fut pas sensiblement modie au cours des annes, cette norme tait considrablement plus rapide que ses prdcesseurs. Les modems V.34 atteignaient un dbit de 28 800 bauds, parfois mme la vitesse non ofcielle de 33 600 bauds (33,6 Kbit/s) chez certains fabricants, en envoyant seulement environ 2 500 3 500 chantillons de signaux (symboles de lalphabet) par seconde. Toutefois, cette norme combinait
* Les circuits dannulation de lcho tentent de distinguer les signaux en provenance de lautre partie de ceux mis par le priphrique lui-mme et dliminer ou de rduire de faon signicative ces derniers. Diffrents types de ces dispositifs sont couramment utiliss non seulement lors du transfert de donnes numrique s, mais aussi pour amliorer la qualit des appels tlphoniques, liminer les interfrences des microphones au cours des manifestations publiques et rsoudre de nombreux autres problmes quotidiens.

88

Un endroit sr

quatre systmes de codage diffrents pour construire une structure quatre dimensions avec 1 664 tats possibles, ce qui rendait possible denvoyer jusqu 41 bits la fois. En fait, il sagit non pas de vitesse pure mais de la faon dutiliser ce dont vous disposez. Il est largement admis que la norme V.34 et ses drivs approchent de la limite thorique de transmission des donnes par le systme tlphonique prvu pour la voix. Bien que cela puisse sembler trange tant donn la prdominance des modems 56 Kbit/s, cela sexplique du fait que les modems 56K atteignaient ce taux de transmission dune manire totalement diffrente de celle utilise dans les solutions analogiques. tant donn que la plupart des systmes tlphoniques ont migr de lanalogique au numrique depuis lapparition des premiers modems et que la plupart des fournisseurs daccs peuvent dsormais insrer directement une interface entre leurs systmes et les systmes de tlcommunication numrique, il devient enn possible de revenir la solution la plus vidente : modier la tension des lignes au lieu de moduler les frquences lors de lenvoi des donnes un abonn. Le signal est transport sous forme de donnes numriques depuis le dbut et peut voyager sur des lignes de cuivre enterres jusqu la plus proche installation de tlcommunications, la qualit du signal ne pose pratiquement pas de problme et la seule limite tient la capacit du matriel tlphonique transfrer la voix. En travaillant sur 8 000 symboles par seconde mais en exploitant un alphabet beaucoup plus rduit (environ 128 symboles ou niveaux de tension gnralement), il est possible denvoyer des donnes un abonn reli un systme tlphonique numrique de haute qualit avec un modem de 56 Kbit/s une vitesse plus leve que dhabitude. Cependant, le transfert en amont est encore implment avec lancienne mthode, et il est considrablement plus lent. Par consquent, le dbit du modem est en partie seulement de 56 Kbit/s, et uniquement lorsque les conditions le permettent.

De nos jours
Peu de choses ont chang depuis la conception des modems. Les avances des protocoles saccompagnaient galement de lamlioration des mcanismes de correction des erreurs et de rduction de la vitesse de transfert, qui taient ncessaires pour assurer une transmission able, mme si votre quadrupde favori dcide de mcher le cble du tlphone. Une jungle des normes a t engendre : V.42 offrait une implmentation basique du contrle de redondance cyclique (CRC), MNP-1 MNP-4, des algorithmes propritaires de correction des erreurs, V.42bis et MNP-5, le contrle de lintgrit combin la compression, etc. Mais la vritable rvolution est encore venir.

Chapitre 5

Les Blinkenlights

89

Ou ne sest-elle pas dj produite ? Certains considrent en effet que les modems DSL et le cble forment une technologie rvolutionnaire qui a chang la face du monde. Mais je suis prt dfendre mon point de vue : en fait, ces technologies sont trs semblables leurs cousins les modems. La seule diffrence importante entre les deux est que le serveur qui gre toutes les connexions a t dplac de la ville lointaine o le prestataire de services se trouve au central tlphonique local le plus proche auquel il est possible de se connecter directement depuis la rsidence du client ou de lentreprise en utilisant des ls de cuivre. Comme cette connexion directe nutilise aucun autre quipement, ces dispositifs peuvent utiliser des frquences leves et inaudibles ainsi que des signaux plus ns qui, autrement, subiraient une distorsion ou ne seraient pas relays sur tout le rseau tlphonique. linverse, le bon vieux modem tait strictement limit ltroite gamme de frquences audibles et de signaux que le systme tlphonique pouvait transporter. de nombreux gards, les dispositifs DSL ont une tche beaucoup plus facile que les anciens modems. Comme nous le voyons, la conception dun modem est plutt une tche complexe et difcile. Cest pourquoi il a fallu des dcennies pour passer des priphriques 300 bauds volumineux et coteux la situation actuelle 1. Curieusement, tous ces dispositifs peuvent communiquer les uns avec les autres, mme avec ceux qui ont dix ans de plus, mme aux vitesses les plus basses que nous avons oublies depuis longtemps. En outre, tous sont gnralement conscients des normes connues ce jour, y compris les dizaines dalternatives et de drivs de chacune dentre elles. Cela ne fait-il pas des modems une merveille de lingnierie informatique ? Mais qui tire les celles ?

Parfois, un modem est juste un modem


Lhistoire ne se rsume bien sr pas aux communications de modem modem. Le modem est juste un intergiciel relativement inerte peine capable dtre un bon pressepapiers. Pour quun modem soit dune quelconque utilit, il doit tre capable de communiquer avec un ordinateur an de recevoir des commandes et dchanger des donnes, mme si son utilisation se rsume quelque chose daussi futile que la navigation au hasard sur le Web. Les modems internes ont la vie facile : ISA (Integrated Systems Architecture), PCI (Peripheral Component Interconnect), PCMCIA (PC Memory Card International Association) et quelques autres bus ddis fournissent des interfaces parallles grande vitesse et assez gnreuses qui rendent le processus de communication presque banal. Les modems externes (de type analogique ou DSL), en revanche, ont une tche plus ardue et utilisent une liaison srie. La plupart des modems analogiques utilisent le clbre protocole srie RS-232 (renomm EIA/TIA-232-E2 2 dans les annes 1990, ce qui

90

Un endroit sr

est beaucoup plus descriptif), les plus rcents utilisent frquemment le port USB (Universal Serial Bus). Comme nous approchons des exemples de divulgation dinformations pour ces dispositifs, nous allons galement examiner ce qui arrive aux donnes lors de leur passage du modem lordinateur, car cela joue un rle crucial dans lattaque. Bien que les modems externes doivent utiliser des moyens inhumains pour communiquer avec un systme distant mais aussi avec la machine locale elle-mme, grce la proximit de lordinateur et au fait que des interfaces comme RS-232 sont numriques et ont t conues ds le dpart pour tre utilises par les ordinateurs, cette tape est toujours beaucoup plus simple que la modulation et la dmodulation de la ligne tlphonique qui rendit clbres les modems. RS-232 utilise une implmentation assez simple de codage bipolaire pour les donnes changes sur deux lignes spares coupl avec un ensemble de lignes de contrle NRZ. Pour rendre la vie un peu plus intressante, RS-232 est livr avec une multitude de fonctionnalits de liaison ou de protocole qui le rendent assez difcile mettre en uvre partir de zro : son caractre asynchrone, le large ventail de paramtres et de vitesses possibles, et des niveaux de tension inhabituels. Mais, mme avec tout cela, RS-232 ne constitue mme pas lombre dun vritable d pour un implmenteur qui a d batailler avec la modulation du signal sur les lignes tlphoniques. LUSB, par ailleurs, cherche normaliser et unier linterface srie. Bien que lUSB require des circuits plus volus que RS-232 pour interfacer un ordinateur et un priphrique (en raison entre autres choses du plus haut niveau dabstraction et des vitesses de transmission plus leves prises en charge), lUSB est universel (do son nom) et a hrit de moins de fonctionnalits bizarres. Dernier point mais non le moins important, lutilisation dEthernet reprsente une mthode commune pour communiquer avec des priphriques locaux. Bien quil soit antrieur lUSB, son mcanisme est assez similaire. Penchons-nous maintenant et pendant un certain temps sur Ethernet, et je suis sr que tous ces protocoles de communication niront par se rejoindre.

Les collisions sous contrle


Les rseaux Ethernet sont, par nature, une forme avance de liaison srie multipartite3. Un rseau Ethernet est compos dun certain nombre dordinateurs connects par le mme moyen rien de particulirement complexe puisquil peut sagir uniquement de cbles paire torsade. Quand un priphrique sur le rseau utilise ce mdium, il applique une tension spcique sur le cble. Tous les autres systmes connects peuvent alors interprter les donnes en mesurant la tension. Une srie de contrle

Chapitre 5

Les Blinkenlights

91

veille ce que les priphriques ne cherchent pas utiliser cette liaison en mme temps et que la restauration de la connexion se fasse sans heurt en cas daccident. Nanmoins, mme en considrant cette possibilit, la conception de base est incroyablement simple compar aux modems. Pour viter que deux stations ne parlent la fois, une norme baptise CSMA/CD (Carrier Sense Multiple Access with Collision Detection) est utilise en tant que principal mcanisme de contrle de toutes les communications via Ethernet. Avant tout envoi de donnes, chaque priphrique connect Ethernet suit une procdure CSMA pour voir si un autre priphrique utilise le cble en vriant les proprits lectriques du modem. Si aucune autre transmission nest en cours, le priphrique entre dans la phase de la transmission et envoie ses donnes sur le rseau. Les donnes sont alors envoyes sur le cble sous la forme dune squence de bits en utilisant le codage bipolaire ; un en-tte contient toutes les informations ncessaires sur lexpditeur et le destinataire ainsi quune somme de contrle destine protger lintgrit des donnes en cas dinterfrence extrieure ou intrieure. Une interface rseau qui considre quelle agit au nom dun destinataire, probablement en comparant ladresse de destination fournie dans le paquet avec ladresse MAC (matrielle) unique stocke sur la carte, devrait accepter ce transfert et vrier la somme de contrle. En mme temps, toutes les autres stations devraient lignorer. Naturellement, si elles ne le font pas (presque toutes les cartes peuvent avoir pour instruction de ne pas le faire), lutilisateur peut afcher ou ragir aux transferts qui ne lui sont pas destins (vous pouvez constater que la conception des rseaux Ethernet repose sur laltruisme et la conance, une dmarche noble mais risque). Il est possible (et pas si improbable) que deux priphriques relis un rseau Ethernet commencent mettre exactement au mme moment, mme si les deux ont vri quelques microsecondes ou nanosecondes avant quaucune transmission ntait en cours. Et, sils mettent exactement au mme moment, une catastrophe est invitable. Les deux transmissions se mlangent et sont altres, si bien que les donnes envoyes ne passent pas la somme de contrle lors de leur arrive destination Le devraientelles ? Bien que limplmentation dune somme de contrle dans la spcication des trames Ethernet soit gnralement sufsante pour vrier lexactitude des transmissions de donnes, cela peut ne pas tre particulirement efcace si la liaison est sature et que des centaines ou des milliers de collisions se produisent dans un laps de temps sufsamment court pour que la sortie soit accidentellement correcte de temps autre. Selon la loi de probabilits, certains paquets endommags auront par hasard la mme somme de contrle que le paquet initial. En outre, mme si lon ignore les lacunes de la somme de contrle, on souhaite quand mme faire cesser les collisions le plus rapidement

92

Un endroit sr

possible car, en laissant les collisions sexcuter en arrire-plan, on risque de ne plus tre en mesure dassurer dans les dlais la retransmission des trames errones et abandonnes. Aprs tout, lexpditeur les envoie sans indiquer de problme et le destinataire ne reoit rien qui ressemble mme de loin un paquet utile. La solution est fournie par la dernire partie de la norme : la dtection de collision (CD). Cette spcication demande lexpditeur de surveiller la liaison rseau tout en expliquant ce quil fait aux autres. Si une autre partie est prise en train dessayer de parler en mme temps, cela devrait tre dtect (encore une fois par une simple mesure des proprits lectriques de la ligne) et la transmission, tre immdiatement abandonne. Le priphrique devrait galement envoyer un brouillage du signal spcial pour garantir que les deux trames (celle qui est envoye et celle qui interfre) soient abandonnes sans condition, sans mme arriver tre vries par la somme de contrle ; le destinataire doit tre en mesure de reprer le brouillage du signal et darrter la rception des donnes en cours de traitement. Le priphrique se met alors en pause pendant une priode de prfrence alatoire (initialement) qui augmente progressivement aprs chaque tentative (dnie par un algorithme de backoff) an de rduire au minimum la probabilit dune autre collision.
NOTE Un fait amusant : le mcanisme du brouillage du signal impose une exigence inhabituelle sur le protocole. Toutes les trames doivent avoir une longueur minimale (!) calcule pour que le brouillage du signal gnr soit propag toutes les machines avant la n de la transmission. Avec des trames trs courtes, le temps peut ne pas tre sufsant pour y parvenir. Ainsi, il est demand lexpditeur de bourrer articiellement lensemble de ses transmissions sortantes.

La Figure 5.4 montre la chronologie exacte des vnements dans un cas typique de collision. Comme vous pouvez le voir, lexpditeur A espre envoyer des donnes au destinataire mais remarque quune autre transmission a lieu et dcide donc dattendre jusqu ce que cette transmission sarrte. Lexpditeur A se prpare ensuite envoyer les donnes mais, malheureusement, lexpditeur B fait de mme, si bien que les deux pensent peu prs en mme temps quils peuvent envoyer des donnes. Les deux tentent de transmettre, les donnes sont altres, les deux expditeurs dtectent lautre transmission et envoient rapidement un brouillage du signal pour signaler au destinataire quil ne doit pas tenir compte de cette trame. Enn, les deux expditeurs se mettent en pause pendant une dure alatoire en esprant ne pas commencer mettre en mme temps la prochaine fois.

Chapitre 5

Les Blinkenlights

93

EXPDITEUR A
Veut mettre mais dtecte un signal et attend

EXPDITEUR A
Fin d'activit, se prpare mettre

EXPDITEUR A
Envoie des donnes

EXPDITEUR A
Note un autre signal, envoie du brouillage du signal

EXPDITEUR B
Envoie des donnes

EXPDITEUR B
Veut galement mettre

EXPDITEUR B
Envoie des donnes Collision !

EXPDITEUR B
Note un autre signal, envoie du brouillage du signal

DESTINATAIRE
Reoit des donnes

DESTINATAIRE
...?

DESTINATAIRE
Reoit des donnes partielles

DESTINATAIRE
Reoit le brouillage du signal, abandonne les donnes reues jusque-l

EXPDITEUR A
Attend pendant une dure alatoire

EXPDITEUR A
Emet de nouveau des donnes

EXPDITEUR A
Emet toujours

EXPDITEUR A
Se met de nouveau en pause

EXPDITEUR B
Attend pendant une dure alatoire

EXPDITEUR B
Attend toujours...

EXPDITEUR B
Se rveille mais remarque un autre signal et attend

EXPDITEUR B
Fin de l'autre signal, met

DESTINATAIRE
...

DESTINATAIRE
Reoit des donnes

DESTINATAIRE
Reoit toujours

DESTINATAIRE
Reoit des donnes

Figure 5.4
Les phases classiques dune conversation Ethernet.

Les coulisses : la soupe de cble et comment la grer


Bien que sa conception ne soit ni particulirement volutive ni lgante, le protocole Ethernet est tonnamment puissant et facile dployer ; il permet de crer des rseaux de communication de station station bon march en utilisant des cbles coaxiaux peu prs partout. ce titre, Ethernet est devenu la norme en remplacement de beaucoup dautres architectures de rseaux (qui lui sont parfois suprieures mais plus coteuses ou propritaires). Naturellement, un rseau Ethernet simple qui utilise des cbles coaxiaux a des limites et des inconvnients. Il se compose essentiellement dun long cble comprenant des rsistances chacune de ses extrmits et le long duquel se branchent les priphriques. Autrement dit, un systme dont vous ne voudriez pas assurer la maintenance dans un grand bureau. Un problme classique mais difcile dboguer, comme le court-circuit dun terminal, peut mettre en panne lensemble de linfrastructure. Son remplaant plus avanc mais seulement lgrement plus cher fut donc chaleureusement accueilli.

94

Un endroit sr

Les rpteurs lectroniques multiports (concentrateurs, ou hubs) permettent dutiliser le cblage sur paire torsade (cbles de catgorie 3 et catgorie 5 avec connecteurs RJ-45). Pour les utiliser, il suft de relier votre ordinateur une bote noire avec un cble. Tous les autres appareils relis cette bote noire peuvent alors communiquer avec lui sans vraiment tenir compte dventuels problmes lectriques ou courir le risque quun problme sur un des cbles ne mette en danger lensemble du rseau. Les concentrateurs sont pour lessentiel de simples rpteurs qui diffusent tout le trac reu sur un port tous les autres ports. Ils permettent de crer des rseaux en toile facilement recongurables et plus ables, mais rien de plus. mesure que le rseau se dveloppe, le cot de la diffusion de chaque lment dinformation tous et le fait que seule une partie peut parler la fois sur lensemble du rseau montrent lvidence que la simplicit de cette conception est galement sa principale faiblesse.

ab bc

c
Expditeur

ab

c
Expditeur

?
Station tierce 1 Concentrateur Commutateur

Station tierce 1

ab

?
Station tierce 2

Station tierce 2

bc
Destinataire

ab

c
Destinataire

Figure 5.5
Les concentrateurs compars aux commutateurs dans les rseaux locaux.

Les commutateurs, la gnration suivante des concentrateurs, se sont rvls tre la solution. quips dun processeur dcent et de mmoire, ils reprsentent une alternative plus coteuse aux concentrateurs et offrent, dans des circonstances normales, une analyse complmentaire de haut niveau des trames Ethernet. Cette analyse associe les adresses matrielles certains ports en particulier et optimise le routage des trames en transfrant certains paquets directement au port adquat (en mode unicast), au lieu de les diffuser lensemble des parties (voir Figure 5.5). Cela permet damliorer considrablement les performances dans des rseaux plus tendus.

Chapitre 5

Les Blinkenlights

95

NOTE Autre fait amusant : les vrais concentrateurs ont quasiment disparu de nos jours. Presque tous les priphriques 10/100 Mo commercialiss actuellement sous le nom de concentrateur utilisent en fait un chipset de commutateur basique. Il est tout simplement moins cher de reconditionner la puce que de dvelopper et de conserver plusieurs variantes.

Je suppose qu ce stade vous vous demandez o je peux bien vouloir en venir. Quel rapport entre les modems et la divulgation dinformations ? Quelle signication ont les liaisons srie dans ce contexte ? Que viennent faire l les rseaux Ethernet ? Et que sont donc les blinkenlights ? Merci de poser ces questions. Je suis sur le point de rpondre la dernire.

Les blinkenlights et les communications


Historiquement, presque tous les ordinateurs dont la taille avoisinait celle des rfrigrateurs taient quips de nombreuses interfaces de diagnostic bien en vue. Il sagissait notamment de tableaux de minuscules lumires qui afchaient, entre autres choses, certaines proprits sur ltat interne de la machine, comme les registres internes ou les ags de lunit de traitement de base ou qui indiquaient si le chat vivant sous la machine avait t nourri ce jour-l. Les ordinateurs devenant plus ables et plus compacts et lutilisateur moyen nayant plus comprendre le fonctionnement interne de la machine pour lutiliser efcacement, ces lumires ont commenc disparatre de nombreux appareils. Laugmentation croissante des vitesses dhorloge a galement contribu ce dclin la plupart du temps, il ntait plus possible pour les humains dobtenir des renseignements partir dun signal visuel qui change des milliers ou des millions de fois par seconde. Pourtant, les lumires existent toujours dans certaines applications. Par exemple, presque tous les priphriques rseau possdent des diodes lectroluminescentes (DEL) sur leur panneau avant ou arrire. Elles fournissent des diagnostics sur les liaisons, en indiquant si un module ou un socket en particulier fonctionne correctement, si une partie est connecte, si les donnes sont transfres, et ainsi de suite. Mais ces lumires ne sont pas seulement un outil de diagnostic. Leur clignotement hypnotise et cre une sensation trange mlant lincertitude, la peur et le respect dans le cur des novices qui entrent dans une salle de serveurs. Le terme blinkenlights ou blinkenlichten a t utilis pour dcrire ladoration des DEL de diagnostic sur le matriel informatique depuis ses dbuts, lpoque o le geek informatique baignait dans une lueur verte apaisante durant ses longues nuits solitaires passes devant son cran. Il provient dune note amusante en pseudo-allemand (luimme une parodie dune autre blague de la Seconde Guerre mondiale sans rapport avec

96

Un endroit sr

linformatique) qui tait afche dans les laboratoires dIBM au cours des annes 1950. Cette note se retrouva ensuite dans la majorit des salles de serveurs et dans les laboratoires scientiques du monde entier. La voici, tire du dictionnaire du Hacker dEric S. Raymond :
ACHTUNG! ALLES LOOKENSPEEPERS! Alles touristen und non-technischen looken peepers! Das computermachine ist nicht fuer gefingerpoken und mittengrabben. Ist easy schnappen der springenwerk, blowenfusen und poppencorken mit spitzensparken. Ist nicht fuer gewerken bei das dumpkopfen. Das rubbernecken sichtseeren keepen das cotton-pickenen hans in das pockets muss; relaxen und watchen das blinkenlichten *.

Le matriel de communication est un des derniers domaines dans lesquels les blinkenlights rgnent et prosprent. Mais ce nest pas tout. Presque tous ces dispositifs utilisent des lignes srie pour les communications. Et, dans un souci de simplicit et pour des raisons esthtiques, "lactivit" des diodes est parfois presque directement relie par cble, par un simple circuit pilote, la ligne mettrice ou rceptrice de lappareil.

Les consquences des diodes esthtiques


Il a fallu des dcennies pour dcouvrir le problme et, quand cela fut fait (en 2002), cela nous a tous sembl tellement vident quil ne nous restait qu nous frapper la tte sur le clavier. Joe Lughry et David A. Umphress, dans un document de recherche intitul "Leakage from Optical Emanations" 4, dvoilaient un nouveau type de divulgation du signal par certains types dquipements de rseau, le plus souvent des modems. Ils conclurent que lobservation de ces lumires ne se rsumait pas au simple plaisir de regarder ces lumires magiques lil nu. Les DEL, contrairement aux ampoules incandescence, sallument et steignent presque instantanment. Ce nest pas surprenant puisque, aprs tout, les DEL haut de gamme sont utilises pour contrler les liaisons bres optiques et dautres canaux de communication optolectroniques. ce titre, le clignotement dune DEL branche une ligne
* NdT : Ce texte parodique crit dans un mlange de pseudo-anglais et de pseudo-allemand est difcilement traduisible. La traduction donne ici est assez libre et nest livre qu titre indicatif : AVERTISSEMENT! tous les touristes et observateurs qui ne sont pas des techniciens ! Cet ordinateur nest pas destin tre tripot avec vos doigts ! Vous risquez facilement de faire une erreur, de faire sauter les plombs comme du pop-corn et de faire cracher des tincelles lordinateur. Il ne doit pas tre utilis par les imbciles. Les curieux doivent garder leurs mains caoutchoutes de ramasseurs de coton dans leurs poches ; dtendez-vous et contentez-vous dadmirer les lumires qui clignotent.

Chapitre 5

Les Blinkenlights

97

de transmission de donnes en srie peut en fait souvent reprsenter chaque bit transmis sur le cble. Si lon dispose dun moyen denregistrer cette activit une vitesse sufsante, il devrait tre possible de rcuprer ces informations, du moins tant que la petite lumire clignotante sur un priphrique est visible lil nu (ou avec un tlobjectif). Cette tude fut la fois encense et mprise si bien quune grande confusion sensuivit et que peu de choses changrent. Ce document entrana de nombreux rapports conictuels, mais son postulat de base est simple et vraiment beau. La beaut de cette technique vient du fait quil est simple de mettre au point un dispositif pour recevoir le signal : les homologues des DEL, tout aussi bon march et rpandus (les photodiodes et les phototransistors) sont faciles acqurir et tout aussi faciles interfacer avec lordinateur. Et la zone dexposition, contrairement la plupart des activits TEMPEST dont nous avons parl au Chapitre 3, ne relve pas simplement de la lgende urbaine ni de rsultats obtenus uniquement en laboratoire mais peut tre directement observe et mesure. Au cours de leurs recherches, les auteurs ont effectu une srie dexpriences an de vrier que le signal pouvait tre obtenu avec succs depuis une distance de 20 m sans avoir besoin de conditionner des signaux numriques supplmentaires. On peut logiquement en dduire que cette distance peut tre largement suprieure, en particulier si lon utilise des optiques de bonne qualit (les auteurs ont utilis une focale de 100 mm, un objectif f/2.0 pour leur essai, mais les reex de milieu de gamme que possdent de nombreux photographes amateurs disposent dun tlobjectif bien meilleur (reex mono-objectif). Et ceux qui sont prts dpenser beaucoup dargent peuvent acheter un objectif de trs haute qualit avec une longueur focale allant jusqu 1 200 mm). Le document adopte une position dfensive dans plusieurs cas et un lecteur attentif pourrait tre tent de conclure que certains des dispositifs tudis ne sont pas vulnrables ce problme. En particulier, certains priphriques Ethernet montrent un type plus subtil de vulnrabilit, comme vous le verrez dans la section consacre la prvention, plus loin dans ce chapitre. Mais examinons dabord le problme avec nos propres yeux (informatiss).

Construire son propre dispositif despionnage


La construction dun dispositif despionnage est si simple quil devient trs tentant de le faire. Cette section contient plusieurs suggestions et pistes sommaires sur la faon de construire et de connecter un tel dispositif un simple ordinateur. Bien que le circuit ne soit pas particulirement complexe et ne ncessite ni de grandes connaissances en soudure ni de logiciel de conception de cartes imprimes, il est souhaitable davoir un minimum de matrise en lectronique et un peu de bon sens. Bien que les interfaces externes des ordinateurs actuels soient assez robustes et ables, il existe toujours un risque dendommager son matriel lorsquon lui ajoute des dispositifs artisanaux

98

Un endroit sr

et innovateurs, dans un bref moment de folie. Cela est arriv aux meilleurs dentre nous. La conception de base est extrmement simple. Elle ne demande quun seul phototransistor (un composant form dun transistor dirig par une photodiode), un transistor NPN (ngatif-positif-ngatif) de faible puissance pour amplier un peu plus le signal (ce nest pas toujours ncessaire) et une srie de potentiomtres (peut-tre un potentiomtre de 10 k ; il suft de disposer de sufsamment de exibilit) pour abaisser titre exprimental la tension et contrler la sensibilit du circuit et la tension de seuil. Il ny a pas dexigences particulires pour les composants, mme si leur cot peut varier en fonction de ceux que vous utilisez. Veillez slectionner un phototransistor qui ait une rponse dcente dans la gamme de lumires visibles, mme si tous les phototransistors bon march devraient fonctionner ( titre de rfrence, une DEL verte met une longueur donde denviron 520 nm). Un exemple de conception du circuit est illustr la Figure 5.6.
Alimentation

Phototransistor BP 109 ou similaire 2N2222 ou tout transistor NPN similaire

Rvar1 Vers l'ordinateur Rvar2

Masse

Figure 5.6
Un simple circuit de rception.

Le circuit a une tension de fonctionnement optimale denviron 5V et un faible courant maximal : une alimentation capable de dlivrer 10 50 mA est plus que sufsante. Un mot davertissement : si vous utilisez une alimentation pouvant produire une tension plus leve, vous risquez dendommager le port ou lordinateur. Mme chose si vous

Chapitre 5

Les Blinkenlights

99

utilisez une alimentation plus puissante et nempchez pas quun courant ayant une tension plus leve circule dans le circuit.
NOTE Si Rvar1ou Rvar2 sont congurs avec une trs faible rsistance, cela peut entraner un court-circuit. Si vous voulez jouer avec les boutons sans souci, il serait peut-tre prfrable dajouter une rsistance pour limiter le ux.

Vous devez protger le phototransistor des sources lumineuses externes, en lenfermant par exemple dans un tube opaque. Comme le phototransistor na aucun mcanisme de focus, il nest pas susceptible de capter des signaux plus lointains (autres que la lumire ambiante). Ainsi, pour les premiers essais, il est prfrable de le couvrir entirement pour simuler lobscurit, puis de le prsenter une DEL pour exciter le circuit. Vous pouvez galement temporairement connecter une autre DEL entre le GND et la ligne de sortie pour tester le circuit. La DEL de test doit sallumer lorsque le capteur est dirig vers une source lumineuse mais doit sinon tre assez sombre.

et lutiliser avec un ordinateur


Si le circuit comprenant une DEL de test fonctionne, parfait ; vous avez construit une tlcommande fantaisiste. Comme les phototransistors gnriques et bon march sont dsireux de capter la lumire infrarouge, votre cration doit "traduire" les infrarouges (IR) en lumire visible, mais cest peu prs la seule chose amusante quil fera. Pour la rendre un peu plus utile, vous devez interfacer le circuit avec lordinateur. Une bonne mthode de le faire consiste utiliser linterface de limprimante (LPT), si votre ordinateur en possde une. Malheureusement, ce formidable outil matriel pour le pirate informatique tombe en dsutude au prot de conceptions plus compactes et fantaisistes. Bien que conu initialement pour tre unidirectionnel (pour la sortie uniquement), linterface LPT renvoie un certain nombre de lignes sur le statut de limprimante, comme paper out (plus de papier), busy (occup) et acknowledgement (acquittement), qui ont pour but de fournir un moyen limprimante de signaler des problmes. Vous pouvez facilement lire les donnes qui sortent de cette interface en accdant au port 0x379 (le registre dtat LPT1) sur un systme compatible PC. En raccordant le circuit un port parallle, vous pouvez facilement transmettre des informations lordinateur. Mme si vous prfreriez sans doute connecter le circuit une interface diffrente, LPT est beaucoup plus rapide que RS-232, par exemple, et vous naurez pas vous soucier de protocoles mondains, de systmes de signalisation ou de niveaux de tension inhabituels. De plus, contrairement USB et quelques autres solutions actuelles, vous navez pas

100

Un endroit sr

besoin de contrleurs spciaux pour implmenter un protocole assez complexe pour tre en mesure de parler votre PC.
NOTE Bien que LPT propose galement des modes de fonctionnement bidirectionnels (ECP ou EPP), il est gnralement inutile dessayer dutiliser cette fonctionnalit pour une tche aussi simple. Dans le mode unidirectionnel, quatre bits sont disponibles en entre, ce qui est plus que sufsant pour cette application ; le passage des modes bidirectionnels comme EPP ou ESP fournit un quatrime bit supplmentaire.

Cest vous de choisir quelle ligne dtat utiliser. Le Tableau 5.3 montre le brochage du connecteur DB25 utilis sur un port dimprimante. Les lignes surlignes en gris peuvent tre utilises pour lentre. Pour interfacer le circuit avec ce port, vous pouvez simplement connecter le point de rfrence de la terre sur le connecteur avec celui utilis dans votre circuit et ensuite brancher la ligne de sortie sur une des cinq broches (noubliez pas de dbrancher auparavant la DEL utilise pour les diagnostics). Ensuite, surveillez ltat du port lorsque vous lexposez la lumire puis que vous couvrez le capteur. Dans les deux cas, la valeur lue dpend de la faon dont vous avez branch le circuit. La valeur exacte na pas dimportance, tant que les deux valeurs sont diffrentes.
Tableau 5.3 : Le brochage LPT

Port LPT : Brochage DB25 (mode standard) Broche 1 2 3 4 5 6 7 8 9 Nom Lumire stroboscopique D0 D1 D2 D3 D4 D5 D6 D7 Fonction Contrle sortie bit 0 Donnes sortie bit 0 Donnes sortie bit 1 Donnes sortie bit 2 Donnes sortie bit 3 Donnes sortie bit 4 Donnes sortie bit 5 Donnes sortie bit 6 Donnes sortie bit 7

Chapitre 5

Les Blinkenlights

101

Tableau 5.3 : Le brochage LPT (suite)

Port LPT : Brochage DB25 (mode standard) Broche 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Nom ACK Busy Paper out Select in Autofeed Error Init Select GND GND GND GND GND GND GND GND Fonction tat entre bit 2 tat entre bit 3 tat entre bit 1 tat entre bit 0 Contrle sortie bit 1 tat entre (inutilis) Contrle sortie bit 2 Contrle sortie bit 3 Masse (0V) Masse (0V) Masse (0V) Masse (0V) Masse (0V) Masse (0V) Masse (0V) Masse (0V)

Puisque la logique de la puce demande des niveaux dentre quelque peu diffrents de ceux de votre diode DEL de test, vous pourriez devoir rgler Rvar2 jusqu ce que vous obteniez des lectures distinctes du port quand vous couvrez la sonde et quand vous lexposez la lumire. Pour accomplir ceci, il est prfrable de pouvoir surveiller le port en temps rel sur lordinateur lui-mme. La manire dont vous pouvez contrler ltat du port dpend du systme dexploitation et du langage de programmation que vous utilisez. En langage C, la fonction utilise pour lire la valeur de chaque port est inb(port). Donc, dans ce cas particulier, vous utiliserez inb(0x379) et vrierez la valeur en retour. Dans dautres langages, le nom de la fonction est susceptible dtre similaire (essayez de rechercher in, inport,

102

Un endroit sr

readport, etc.). Les utilisateurs de Windows peuvent galement trouver lutilitaire intgr de "dbogage" et sa fonction "i" (port read) trs pratique.
NOTE Sur certains systmes, comme Linux, vous aurez peut-tre tout dabord besoin que le systme vous donne lautorisation daccder un port spcique. Consultez la documentation de iopl(3) ou dun appel similaire pour plus dinformations.

ce stade, vous tes prt commencer. Vous pouvez choisir de pointer la sonde vers nimporte quelle DEL dun priphrique, rgler le capteur en fonction de sa luminosit et commencer lire les motifs alternatifs des signaux lumineux pour dcouvrir ventuellement quelles informations changes ces signaux correspondent.
NOTE Si vous tes curieux, vous pouvez essayer dexaminer la luminosit de la diode et pas seulement une reprsentation binaire de son tat. Il pourrait savrer que, mme si une DEL en particulier nest pas conue pour tablir directement un lien entre un signal sur la ligne srie et ses modes de clignotement, il y a un certain dialogue crois analogique entre les circuits, si bien que le signal de la ligne srie a une certaine inuence sur la luminosit. Un convertisseur analogique-numrique bon march comme le TLV571 de Texas Instruments demande juste tre utilis de cette manire.

Vous pouvez utiliser cette approche pour chantillonner une frquence de moins de 1 million de bits par seconde, ce qui devrait sufre pour capter les transmissions sur un grand nombre dinterfaces, mais pas ncessairement sur les ports Ethernet (qui transmettent au moins 10 millions de bits par seconde). Au-del de cette capacit de capture, le port LPT atteindra probablement la limite de son dbit physique, mais il ne faut pas dsesprer : tant que le capteur (phototransistor) peut clignoter un taux sufsant pour capter les communications en question, vous avez toujours une option. Noubliez pas que LPT est un port parallle. Pour atteindre des vitesses plus rapides de capture, comme celui ncessaire pour Ethernet, utilisez une simple horloge, un compteur et un ensemble de verrous chantillonneur-bloqueur (comme 74LS377) an de stocker les donnes de faon squentielle entre les tentatives de lecture du port ct ordinateur. Vous pouvez accumuler ces informations pendant une courte priode de temps, puis, en utilisant plus dune seule broche dtat (ou en commutant le port en mode bidirectionnel), envoyer facilement plusieurs bits (chantillons) lordinateur, en une seule fois, dans un seul cycle de lecture, amliorant ainsi le taux de lecture par quatre ou huit. Je vous pargnerai une autre excursion, peut-tre inutile, dans le monde de llectronique. Si lide dun chantillonnage analogique ou grande vitesse vous intresse ou si

Chapitre 5

Les Blinkenlights

103

vous voulez simplement vous amuser rassembler divers lments et les brancher un ordinateur, vous pouvez jeter un il sur mon didacticiel assez complet qui se cache sous un projet de cration dun robot contrl par ordinateur. Vous devriez pouvoir trouver ce didacticiel ladresse suivante : http://lcamtuf.coredump.cx/robot.txt. Et, maintenant, si vous tes plus intress par la scurit dans la pratique, la section suivante aborde brivement la faon de se protger de ce problme, sans pour autant couvrir toutes les DEL du bureau avec du ruban adhsif.

Empcher que les DEL ne divulguent des donnes (et pourquoi cela ne fonctionne pas)
La solution la plus simple ce problme, suggre dailleurs dans ltude originale, consiste recourir la modulation de limpulsion, autrement dit prolonger le clignotement de certaines diodes sur un indicateur. Normalement, il est alors impossible de rcuprer des donnes utilisables. Les circuits de modulation de limpulsion sont un groupe de dispositifs assez simples qui prolongent la dure dun signal dentre "lev" pendant un certain temps. Les systmes les plus simples reposent sur une capacit qui se charge en prsence dun signal dentre puis se dcharge lentement. Cette capacit est relie un discriminateur binaire, un dispositif qui convertit les donnes analogiques en sortie binaire en appliquant un certain seuil (1 logique en sortie pour toutes les tensions dentre suprieures n et 0 pour toutes les tensions dentre infrieures). Dans ce cas, il utilise un certain niveau de charge de condensateur comme point de sparation. Des conceptions plus ables et plus avances, y compris des circuits entirement numriques, sont galement frquentes et toutes peuvent tre utilises dans les concentrateurs et les commutateurs pour rendre lobservation des DEL agrable. Sans elles, nous aurions limpression que les DEL, qui clignotent plus de cinquante fois par seconde (ce qui est considr comme la limite de notre capacit percevoir un scintillement), produisent en fait une lumire trouble mais constante. Un discriminateur force la DEL avoir plus souvent une valeur de 1 que de 0, en prolongeant la dure de chacune des impulsions gales 1. La diode est alors plus lumineuse et clignote moins souvent. La Figure 5.7 montre le comportement dune telle modulation de limpulsion : une seule crte (une seule valeur 1) est tendue pour durer trois fois plus longtemps, tandis que tous les 0 sont laisss tels quels. Bien que le but premier soit esthtique, comme je lai dit, cela semble galement tre un bon moyen de rsoudre le problme de la divulgation de linformation par les missions lumineuses, puisque lattaquant ne peut plus dduire que certaines proprits gnrales

104

Un endroit sr

du trac. Autrement dit, il peut au mieux savoir quel moment quelque chose est mis ou non*.
Entre : 0 1 0 0 0
+5V 0V

Cycles

Sortie :

0
+5V 0V

Cycles

Figure 5.7
Comportement dun modulateur dimpulsion, 3x.

Toutefois, ce qui semble tre une bonne solution ne lest pas toujours. Prenons lchantillon suivant de donnes et le signal correspondant de la ligne srie :
Donnes : 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 Signal NRZ :

Imaginons que le signal est trait par un modulateur dimpulsion qui multiplie par 5 la dure de tous les 1 pendant cinq cycles supplmentaires (les auteurs de ltude originale proposent une limite de scurit de 2x, mais nous lexagrons pour tre plus clairs).
Signal original :

Modulateur dimpulsion (x5) :

Donnes qui peuvent tre lues aprs modulation de limpulsion de la DEL : 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0

* Techniquement parlant, cela est encore le lieu dune attaque, comme nous lavons vu au Chapitre 1, mais est beaucoup moins efcace et pratique, car nous nobtenons quune ide de ce qui se passe, et non une copie des donnes.

Chapitre 5

Les Blinkenlights

105

Mme sil semble que presque toutes les informations importantes du signal dentre que nous voulons intercepter ont t perdues, il est possible den rcuprer une bonne partie en faisant quatre observations importantes :
m

De toute vidence, toutes les zones o la production du modulateur est gale zro correspondent une valeur zro dans le signal original. Chaque augmentation de la dure des 1 doit avoir t dclenche par la prsence dun 1 au dpart dans le ux original. Chaque excution de L 1 doit avoir lorigine contenu au moins un 1 pour tous les N cycles, avec N comme facteur dtirement pour ce circuit, car sinon lexcution comprendrait des vides. Le compte des 1 dans un bloc de donnes reprsentes par un seul 1 tir en sortie est suprieur ou gal L/N. Chaque excution se termine aprs exactement N-1 zros dans le ux original. Nous savons que ces zros doivent avoir t prcds par 1, car sinon lexcution aurait pris n plus tt.

En appliquant ces connaissances lexemple prcdent, nous pouvons reconstruire la plus grande partie des donnes dorigine, de la faon suivante :
Sortie du modulateur :

0 1 ? ? ? ? 1 0 0 0 0 0 1 ? ? ? ? ? 1 0 0 0 0 0 1 1 0 0 0 0 0 0 Au moins un 1 ici

Dans le prcdent exemple, assez raliste, moins de 9 bits de donnes sur 32 ont t perdus par la modulation de limpulsion et ne peuvent pas tre reconstruits de faon concluante (indiqus par des points dinterrogation dans le schma). Ainsi, nous avons rcupr 99,999988 % du champ de recherche. Nous devons deviner les donnes restantes, ce qui (en particulier si les donnes espionnes constituent un texte en langue franaise, comme un courrier lectronique) est assez simple effectuer compar au point de dpart. Les auteurs de ltude pensent quun temps de modulation de limpulsion N = 1,5 ou N = 2 est sufsant pour masquer les donnes, mais ce nest pas ncessairement le cas. Le prcdent programme de reconstruction fonctionne lorsque la modulation porte sur des 0 ou des 1. Certaines liaisons utilisent le codage RZ (retour zro) comme le codage Manchester mentionn plus tt. Dans ce cas, comme le signal alterne constamment, la modulation 2x pourrait en effet tre sufsante pour masquer toutes les donnes. Toutefois, cela nest vrai que si la DEL est pilote par un signal prcdant le premier dcodage NRZ interne, ce qui nest pas le cas dans la plupart des cas. En fait, il est souvent stupide

106

Un endroit sr

dappliquer une modulation des impulsions sur un signal qui utilise le codage RZ au sens o la DEL serait constamment allume. En premier lieu, il ne semble y avoir donc aucun intrt le faire. Comme indiqu prcdemment, la qualit du modulateur dimpulsions et sa sensibilit aux interfrences produites par les autres circuits internes posent un problme supplmentaire : les uctuations de tension de la DEL qui se traduisent par de lgres variations de la luminosit lors dune priode "module" pourraient divulguer certaines informations. Cest en particulier le cas des solutions qui reposent sur lutilisation de condensateurs. Ainsi, certains systmes, en particulier les priphriques Ethernet connus pour dployer une modulation des impulsions, peuvent tre en partie vulnrables une attaque. Et ce mme si ltude originale dont nous avons parl prcdemment conclut, en se fondant sur lobservation dun enregistrement du schma de clignotement avec un oscilloscope, quil nexiste pas de corrlation directe entre les donnes transmises et le comportement dune DEL. La solution optimale, en particulier avec dautres types de codages ou lorsque la modulation de limpulsion nest pas souhaitable pour dautres raisons (si par exemple le concepteur veut viter que la lumire de la DEL napparaisse constamment pendant la transmission), consiste chantillonner la ligne une frquence relativement faible (20 Hz, par exemple) et la verrouiller un registre qui la conserve jusqu lchantillon suivant et qui contrle galement la DEL. Revenons maintenant au langage courant.

Matire rexion
Il existe beaucoup dautres cas tout aussi intressants de fuite dinformations par les missions lumineuses que celles des DEL des priphriques rseau, mme si la quantit dinformations divulgues peut tre nettement plus faible. Prenez par exemple les DEL indiquant lactivit des disques. Bien sr, la communication des disques ne fait pas appel des signaux en srie mais une partie des donnes, allant de 1 octet des mots de 32 bits, sont envoyes simultanment en utilisant un ensemble de lignes de signaux. Et, bien que la DEL ne serve gnralement indiquer que ltat dune ligne de contrle spcique, il est encore possible de dduire de nombreux aspects de lactivit du systme en mesurant les temps de recherche ou la quantit de donnes stockes et lues (selon quoi la DEL est rellement attache, il peut tre possible de mesurer lun ou lautre, voire les deux). Bien quil soit peu probable que ces informations procurent lattaquant un quelconque avantage immdiat, certaines dductions effectues partir des activits dentre-sortie combines lobservation de la DEL du disque dur

Chapitre 5

Les Blinkenlights

107

pourraient permettre de tirer des conclusions intressantes, mme si je ne suis au courant daucune recherche dans ce domaine. De nombreux priphriques USB et dautres interfaces propritaires peuvent galement reprsenter des cibles potentielles. Comme mentionn prcdemment, lUSB est un bus srie, et certains priphriques USB ont des indicateurs dactivit. Diverses autres recherches inhabituelles et mystrieuses sur la divulgation dinformations ont galement fait lobjet de recherches partielles ou t envisages. Il sagit notamment de mesurer les effets acoustiques de la recharge des condensateurs, puisque le processeur consomme diffrents niveaux de puissance en fonction des instructions quil excute 5, et de raliser une analyse statistique de la consommation dnergie dune bote noire 6. L encore, aucune recherche rellement exhaustive na t mene sur dautres canaux de divulgation dinformation que celles effectues sur les manations des champs lectromagntiques, et cela semble tre une bonne ide tudier. Bonne chance.

6
chos du pass
Dans lequel, lexemple dune faille curieuse dEthernet, on apprend que mieux vaut sexprimer avec prcision.

Le chapitre prcdent abordait les notions lmentaires de la communication Ethernet. Ce mcanisme apparemment infaillible et tonnamment simple semble tre incapable dengendrer de srieux problmes de scurit, lexception possible dun abus de conance provoqu par la diffusion rgulire de donnes tous les membres du rseau. Cette proprit des rseaux Ethernet est bien connue et bien comprise, et de nombreux
palliatifs existent, comme les commutateurs, les ponts et la segmentation du rseau, pour nen citer que quelques-uns. Nanmoins, ce problme se manifeste de manire totalement imprvue, en raison le plus souvent dun mauvais choix de mots ou de labsence de ce choix, dans les exigences dimplmentation ofcielles des pilotes Ethernet. Ce problme dimplmentation est si rpandu que je lui consacre ce chapitre. Il fournit une tude de cas intressante des problmes dont personne nest responsable.

110

Un endroit sr

Construire la tour de Babel


Le protocole Ethernet fournit un moyen simple de diffuser des octets sur un cble : un systme de codage des donnes de bas niveau et un format de donnes pour contenir une partie de linformation. La trame Ethernet contient des informations sur la disposition locale des donnes quelle vhicule (autrement dit qui la transmet et qui doit tre le bnciaire) ainsi quune brve description du type dinformations encapsules. Des mthodes complmentaires de dtection des erreurs sont galement fournies, puis lensemble de la trame est envoy un destinataire potentiel et tous les autres systmes. En termes de fonctionnalits, Ethernet est semblable aux systmes dencapsulation de portion de donnes utilises sur des supports diffrents ou dans diffrentes applications, comme le relayage de trame (frame relay), le mode de transfert asynchrone (ATM), le protocole point point (PPP), et ainsi de suite. La question suivante se pose : "Quelles donnes devraient tre vhicules par telle trame Ethernet ?" Les ordinateurs utilisent des centaines de formats et de protocoles et peuvent excuter des applications allant de la simulation scientique au jeu en passant par les chats. Donc, mme sil est possible de simplement encapsuler les donnes destines un hte distant au sein dune trame Ethernet, cela constitue gnralement une mauvaise solution car le destinataire ne saura pas comment les traiter. Est-ce un courrier lectronique ? Une photo ? Ou peut-tre des donnes de conguration ? Impossible de le savoir. En outre, comme un ordinateur excute gnralement tout un ensemble de programmes quasi simultanment, la distinction devient encore plus oue. plus grande chelle, Ethernet pose encore un autre problme ; comment atteindre lautre terminal ? La diffusion des donnes tous les membres est aise sur un rseau local, mais que se passe-t-il si lautre systme, celui quun des utilisateurs locaux espre joindre, nest pas sur le rseau local ? Que se passe-t-il sil se trouve sur un rseau tendu (WAN) et utilise un protocole de liaison compltement diffrent ? Mme si une solution peut tre trouve pour acheminer le trac jusqu destination, une question plus fondamentale subsiste : comment traiter le paquet ? Ethernet utilise ses propres systmes dadressage spcialiss. Il appelle les htes par le numro didentication matriel en thorie unique (ladresse MAC pour Media Access Control) que le constructeur intgre chaque carte Ethernet. Ces chiffres nont de signication que pour Ethernet ; ils nont aucun sens pour les autres types de rseaux et sont presque impossibles utiliser pour retrouver un lment matriel si on ne fait pas partie de la conguration locale. Cela soulve une question de conance. Par exemple, qui a achet la carte avec ladresse 00:0D:56:E3:FB:E4 et o se trouve-t-il maintenant ? Peut-on penser en toute conance quil sagit vraiment de lacheteur de cette carte et non dun imposteur ? Les systmes de bas niveau dadressage des htes comme celui-ci ne sont gnralement pas dun grand secours pour relayer les donnes destination, sauf si le matriel ayant une adresse MAC particulire est reli directement au rseau physique de lexpditeur.

Chapitre 6

chos du pass

111

Il nexiste aucun moyen direct dtablir un lien entre lidentiant dun priphrique physique et un emplacement particulier sur le globe ni de dterminer quel chemin utiliser pour lui envoyer des informations.

Le modle OSI
Les protocoles rseau ont t conus pour favoriser la communication entre les nuds locaux ou, dans certains cas extrmes, entre deux points xes sur une liaison partage. Pour rendre linterconnexion possible et certaines utilisations pratiques des rseaux ralisables, une structure hirarchique des protocoles rseau appele modle dinterconnexion en rseau des systmes ouverts (OSI, pour Open System Interconnection) a t conue. Le modle OSI (voir Figure 6.1) dnit le niveau de connexion physique comme la premire couche et lui attribue les fonctionnalits de plus haut niveau. Les protocoles de liaison forment la deuxime couche (la couche de liaison des donnes) et sont dnis comme une faon de communiquer avec dautres nuds locaux qui utilisent la mme liaison physique. Ces protocoles transportent des donnes de plus haut niveau indpendantes du protocole de liaison et dnies comme la troisime couche (la couche rseau) dans le modle OSI. Le protocole Internet (IP) est le plus important exemple de ce protocole.
Trame Ethernet (couche 2) Paquet de protocole Internet (couche 3)
En-ttes Ethernet Origine locale Destination locale Somme de contrle, taille Origine distante Destination distante Somme de contrle, taille

Paquet TCP/UDP (couche 4)


Identifiant du contexte Somme de contrle

Protocoles d'application (couche 7) DONNES EFFECTIVES

Figure 6.1
Un exemple de disposition des donnes physiques dans le modle OSI.

La troisime couche est conue pour fournir des informations sur la disposition gnrale du trac ainsi que lidentication universelle de lorigine et de la destination nale des donnes laide de ladressage spcique du rseau, ce qui rend plus facile lacheminement du paquet. Contrairement aux protocoles de la deuxime couche, la troisime couche nest pas carte ou modie en cours de route et elle est dpourvue de toutes fonctionnalits spciques la liaison, comme les adresses MAC, la surcharge CSMA/CD (Carrier Sense Multiple Access avec dtection des collisions), et ainsi de suite.

112

Un endroit sr

La quatrime couche fournit les moyens dtablir des canaux de communication spciques de bout en bout sur une machine donne. Cela permet la communication simultane de plusieurs types et canaux. Aucun des protocoles de quatrime niveau na besoin dtre compris par les systmes intermdiaires pour acheminer correctement les donnes destination. Les paquets ne sont interprts que par le destinataire nal pour dterminer quelle application doit recevoir les donnes et quel lien cette information a avec les paquets adjacents. Les couches suivantes du modle OSI sont peut-tre moins intressantes et ont tendance se confondre. Le cinquime niveau est cens fournir des caractristiques de abilit qui sont souvent intgres dans les protocoles de quatrime niveau, comme TCP/IP (Transmission Control Protocol/Internet Protocol) ou au niveau de lapplication. Dans certains cas, ils ne sont mme pas implments du tout sil nest pas ncessaire de garantir des communications ables. Le sixime niveau fournit des fonctions "bibliothques" pour la dcompression et le dcodage des donnes. Comme le cinquime niveau, il est gnralement peru en termes de fonctionnalit au niveau de lapplication. Enn, la septime couche, la couche application, est le lieu o les donnes sont transfres dans un format prcis. Notez que les couches plus leves dans le modle OSI sont indpendantes des couches infrieures puisquelles sappliquent aux donnes transportes. Lorsque le moment est venu, les couches infrieures peuvent tre progressivement limines sans perdre de donnes ou la capacit poursuivre leur traitement. La deuxime couche est supprime par chaque systme intermdiaire, la troisime couche peut ltre une fois que les donnes sont fournies au systme de destination. La quatrime couche est abandonne avant de livrer les donnes lapplication cliente. La troisime couche reste habituellement compltement indpendante du protocole de liaison sous-jacent et fournit des informations compltes sur lexpditeur et le destinataire, un mcanisme de protection de lintgrit (somme de contrle) et des informations sur la taille de la charge transmise. Cest prcisment ce que fait le protocole IP. Une consquence importante de cette conception est que toutes les informations superflues annexes au paquet sur la deuxime couche au cours du transfert nont aucune incidence sur la faon dont les informations IP sont interprtes par le destinataire.

La phrase manquante
Au chapitre prcdent, au cours du dbat sur la conception dEthernet, jai mentionn une obligation intressante qui dcoule de la ncessit de fournir et de propager un brouillage du signal able pour notier une collision : la limite de taille minimale pour une trame Ethernet.

Chapitre 6

chos du pass

113

Cette ncessit existe galement dans les spcications ofcielles dencapsulation IP sur Ethernet comme RFC 1042, "une norme pour le transport des datagrammes IP sur les rseaux IEEE 802" 1 qui exige que les trames plus courtes que cette longueur minimale soient bourres. Ce bourrage peut tre ralis volont et na aucun effet sur les donnes transfres sur la couche IP, puisque la longueur du paquet spcie dans les en-ttes IP ne change pas. Ainsi, le bourrage ne sera pas interprt par le bnciaire comme faisant partie dun niveau suprieur dans le modle OSI. Toutefois, il y a un lger problme. Bien que la norme RFC exige que le rembourrage soit initialis zro, il ne prcise pas qui doit le prparer et le fournir ni quel stade de lapplication il doit se produire. Le fait que le bourrage ait une valeur particulire est aussi une exigence assez arbitraire par nature. Par consquent, aucune attention particulire ne lui est accorde, puisque la manire dont ce bourrage est cr naura aucun effet sur le fonctionnement du protocole tant donn que les donnes superues sont simplement limines la rception. Pour ajouter la confusion, de nombreuses cartes dinterface rseau disposent dune fonction de bourrage automatique lorsquun paquet que le systme dexploitation envoie au matriel est trop court, ce qui nest videmment pas effectu pour garantir le contenu spcique du bourrage si la taille de la trame a dj t prise en charge dans le logiciel. Cela a entran une certaine confusion parmi de nombreux dveloppeurs, qui ont alors choisi dobir lexigence de taille et dtendre la taille dun paquet dans les logiciels en augmentant tout simplement sa longueur dclare. Ils ne se rendaient souvent pas compte que les donnes entre la n du paquet IP et la n de la trame rembourre ntaient pas prpares (initialises zro) par le pilote, le systme dexploitation ou le matriel. Ce problme est rest largement ignor pendant des annes, mme si cela provoquait rgulirement des problmes rseau qui rendaient fous certains responsables de la scurit. Les paquets quils recevaient des systmes locaux contenaient souvent des donnes inutiles la n, comme des fragments du contenu dun site Web ou mme des discussions qui taient manifestement sans pertinence. Ils accusaient le destinataire (matriel dfectueux, logiciel danalyse du trac rseau, bibliothques) mais cessrent nalement den chercher la cause puisque la question avait une importance mineure. Cette question na jamais reu lattention quelle mrite. Du moins jusquen 2003, lorsque Or Arkin et Josh Anderson, de @Stake, dcidrent de lexaminer plus attentivement dans leur tude "EtherLeak Ethernet Frame Padding Information Leaks" 2. Ils ralisrent que de nombreux systmes couramment utiliss, comme Linux, NetBSD, Microsoft Windows et autres, ne parvenaient pas initialiser la mmoire la n de la trame Ethernet aprs avoir modi sa longueur. Certaines implmentations chouaient mme changer correctement la taille dune trame ou envoyer le bon nombre doctets la couche matrielle.

114

Un endroit sr

En consquence, le paquet IP est rempli avec les donnes stockes dans la partie de la mmoire que le systme a prcdemment utilise dautres ns. La mmoire peut contenir une partie dun paquet envoy prcdemment ou un autre fragment du noyau en mmoire, en fonction de la conception du pilote ou du systme dexploitation. Cela, bien sr, ouvre des possibilits fascinantes en terme de divulgation de linformation : un attaquant envoie discrtement des donnes lgitimes la victime et, avec un peu de chance, obtient des informations potentiellement sensibles. La quantit dinformations divulgues est gnralement sufsante pour justier quon sen proccupe. Lexposition se limite un seul rseau Ethernet et, ce titre, est assez localise et non critique dans un environnement LAN typique. Cela revt nanmoins une certaine importance et, mme si tout rseau local est en partie vulnrable lespionnage, ce problme particulier amne tirer certaines conclusions qui ne sont pas obligatoirement les plus videntes :
m

Sur les systmes qui utilisent des mmoires tampon dynamiques pour les trames Ethernet sortantes (Linux, par exemple), le remplissage peut divulguer non seulement la trame prcdente mais galement dautres parties du contenu de la mmoire, comme les documents dits ou consults, les URL, les mots de passe ou dautres ressources sensibles. Dans ce cas, un observateur attentif pourrait tre en mesure daccder des informations quil ne pourrait pas intercepter autrement sur le rseau. Sur les systmes qui nutilisent que des mmoires tampon statiques pour prparer les trames Ethernet, cette faille peut tre exploite pour mettre en chec les systmes de protection contre lcoute du trac comme les commutateurs, ce qui permet lattaquant dintercepter les donnes dune autre connexion. Dans certaines conceptions de mmoires tampon statiques, sur une machine qui possde une interface rseau connecte un rseau LAN gnral et une autre interface branche sur un rseau restreint, des informations dun autre segment peuvent tre exposes et donc des portions de donnes secrtes, relayes linfrastructure publique.

Les auteurs de cette tude ont examin en dtail plusieurs applications open source et ont not quune grande varit dapproches et de mmoires tampon taient couramment utilises. Il nexiste pas de systme prdominant pour lallocation et lutilisation de la mmoire tampon. Leur conclusion ? Un environnement rseau typique diversi est susceptible dtre affect par les trois types de problmes un moment ou un autre.

Chapitre 6

chos du pass

115

Matire rexion
Les questions examines ici ne sont pas propres Ethernet ou la conception dun rseau. Ces problmes se posent presque toujours lorsque des directives dimplmentation par ailleurs bien dtailles omettent ou ne traitent que vaguement une tape ncessaire, poussant ainsi de nombreux dveloppeurs ignorer tout simplement le problme lorsquils implmentent cette norme. Sils ne disposaient que dinstructions densemble plus vagues, les dveloppeurs seraient probablement obligs de penser ce problme. Au lieu de cela, ils effectuent limplmentation pas pas et risquent beaucoup plus de commettre des erreurs. Les instructions "infaillibles" qui disent comment accomplir certaines tches plutt quexpliquer le but atteindre chouent souvent remplir leur rle. Nous reviendrons dans la partie III de ce livre sur les problmes de fuite de protocoles, quoique dans un contexte lgrement diffrent.

7
La scurit dans les rseaux commuts
Ou pourquoi les rseaux Ethernet ne peuvent pas vraiment tre scuriss, quels que soient les efforts fournis.

Les rseaux Ethernet ne fournissent pas de moyen simple et universel pour assurer lintgrit ou la condentialit des donnes quils transmettent. Ils ne sont pas non plus conus pour rsister au trac malveillant, inject intentionnellement. Ethernet est seulement un moyen dinterfacer un certain nombre de systmes locaux et considrs comme dignes de conance.
En thorie, ce niveau de conance est pratique au stade de la conception et sufsant pour un rseau de systmes pairs situs peu prs au mme endroit. Mais, comme le dit le vieil adage, il ny a quen thorie quil ny a pas de diffrence entre la thorie et la pratique. Dans la pratique, il y a une diffrence. En fait, les rseaux locaux sont difciles contrler totalement et doivent tre protgs aussi bien de leurs propres utilisateurs que des menaces extrieures. Tout rseau local qui stend est amen rencontrer un utilisateur malveillant, quil soit membre de lorganisation ou non, qui exploitera une faille dans lun des systmes.

118

Un endroit sr

Cette rencontre nest quune question de temps, comme presque tous les administrateurs rseau lapprennent un jour. En pratique, la scurit des rseaux est lart de dtecter les incidents, de minimiser lexposition, dvaluer et de comprendre les risques tous les niveaux. Cela ne consiste pas seulement tablir un primtre de dfense. Le problme ? Une infrastructure Ethernet est sujette toutes les formes dinterception des donnes (dtournement, usurpation didentit). Une fois quun intrus ou un utilisateur lgitime mais malveillant contrle un seul systme sur le rseau (en franchissant une seule ligne de dfense), il peut crer des ravages dans linfrastructure et avoir accs certains services et ressources ou en prendre le contrle avec un minimum deffort.

Un peu de thorie
Les commutateurs Ethernet, une catgorie de priphriques intelligents destins acheminer le trac unicast de la deuxime couche OSI au port appropri plutt que le diffuser tous les nuds (comme cest le cas avec les concentrateurs ou les connexions directes), semblent mme de rsoudre ce problme. On considre souvent quils rsolvent les problmes de scurit lis la capacit dun systme observer ou dtourner le trac de systmes tiers, mais ce nest pas le cas. La solution nest pas si simple et cette supposition provoque parfois plus de mal que de bien. Mais reprenons les choses dans lordre. Pour comprendre lexposition, regardons comment les commutateurs Ethernet fonctionnent effectivement.

La rsolution de ladresse et la commutation


Toutes les communications au sein dun rseau local se fondent sur le mcanisme dadressage voqu au Chapitre 5. Des identiants uniques assigns par le fabricant du matriel un priphrique dextrmit en particulier sont utiliss pour contacter les systmes et fournir les trames de donnes. Toutefois, la conception dInternet et de la plupart des rseaux privs actuels repose sur un ensemble universel et plus exible de protocoles et utilise sur la troisime couche OSI un schma dadressage appel gnralement adresse IP (Internet Protocol). Ladresse IP est dabord utilise pour diriger le trac mondial vers le rseau local adquat en utilisant une hirarchie de tables de routage sur des systmes intermdiaires situs dans le monde entier ; ce nest que lorsque le paquet atteint le primtre du rseau de destination que le destinataire nal est localis par lancienne mthode, autrement dit en recherchant son adresse matrielle. Chaque fois quun systme sur le rseau local dcide de trouver une autre partie locale laide de son adresse IP, il utilise un protocole de rsolution dadresse (Address Resolution

Chapitre 7

La scurit dans les rseaux commuts

119

Protocol, ARP) pour dterminer lassociation entre ladresse physique de la carte (la base pour contacter les systmes sur un rseau local) et ladresse IP, un identiant universel du systme dinterconnexion 1. Lexpditeur envoie une requte ARP une adresse broadcast sur le rseau local. Cette adresse rserve est assure dtre reue et traite par tous les systmes du rseau, indpendamment de ladresse matrielle relle affecte chacun des nuds. Dans ce scnario, le systme qui sestime en droit dutiliser ladresse IP spcie dans la requte envoie une rponse lexpditeur et divulgue ainsi son adresse matrielle en rponse la requte. Tous les autres systmes sont censs ignorer en silence la diffusion du paquet ARP. Aprs cet change, les deux parties connaissent ladresse IP ainsi que les adresses MAC (Media Access control) de chacune dentre elles. Elles doivent mettre en mmoire cache leur dcouverte dans une zone tampon spciale an de ne pas avoir effectuer dautres recherches chaque fois quune partie des donnes est change, puis elles procdent rellement la communication, mais elles sont de plus prtes changer des paquets en se fondant sur ladressage IP. Cette conception est un exemple merveilleux et charmant de la conance et de la courtoisie qui existait une autre poque. Mais comment contenir lexposition cause par une machine tmoin malveillante sur le mme rseau qui prtend tre quelquun dautre et que faire pour empcher les utilisateurs les plus curieux ou les plus malveillants daller trop loin ? Les fabricants de matriel Ethernet naident vraiment pas les administrateurs rseau en rendant possible et facile de changer les adresses MAC sur la plupart des priphriques actuels pour permettre sans doute lutilisateur de les reprogrammer au cas o un lot de cartes se rvlerait avoir des adresses en double. L encore, les commutateurs semblent rsoudre le problme. Le concept de base dun dispositif de commutation intelligente repose sur la duplication du cache de ladresse MAC au niveau dun priphrique rseau intrimaire. Un commutateur est quip de plusieurs ports Ethernet, chacun reli un systme unique (ou, moins souvent, un ensemble de systmes). Mais, plutt que servir de simples rpteurs et envoyer lensemble du trac reu sur un port tous les autres (comme le font les concentrateurs Ethernet), les commutateurs tentent de mmoriser les adresses MAC associes une machine connecte chaque port, en crant effectivement une association entre ladresse MAC et le port, par opposition la relation adresse MAC-adresse IP que les systmes dextrmit crent. Les donnes, stockes dans la mmoire adressable par contenu* (CAM, de langlais Content Addressable Memory), dterminent o livrer les paquets entrants. Chaque fois quune partie du trac arrive, le commutateur tente de dterminer sur quel port se trouve
* Comme son nom lindique, ce type de mmoire peut tre directement adress par le paramtre dont v ous essayez de dterminer la valeur, ce qui reprsente un gain de temps puisquil nest plus ncessaire de rechercher ce paramtre. Un catalogue de bibliothque est un exemple simple de CAM : vous navez pas besoin de passer en revue tous les livres de la bibliothque pour en trouver un ; vous choisissez o regarder en fonction de ce que vous recherchez (un morceau dinformation sur le "contenu").

120

Un endroit sr

le destinataire. Si cette information est disponible, le paquet est livr directement (et uniquement) ce port en particulier et garde les informations hors de porte des autres, ce qui amliore les performances du rseau.

Les rseaux virtuels et la gestion du trac


Certaines solutions plus avances de commutateurs fournissent des fonctionnalits supplmentaires destines faciliter la gestion de vastes rseaux et diminuer les dlais et les dpenses ncessaires au dploiement. Ces caractristiques semblent aussi contribuer la scurit du rseau et peuvent comprendre les lments suivants.

VLAN (Virtual LAN)


Ce nom gnrique dsigne un ensemble de mthodes utilises pour diviser un groupe de ports sur un dispositif physique en un ensemble de rseaux logiques distincts, ce qui isole le trac sur un groupe de ports et empche tout type de trac de se croiser au niveau du commutateur (ce systme est le plus souvent implment en utilisant la norme IEEE 802.1Q, que nous examinerons en dtail dans la prochaine section). Implmenter un rseau local virtuel revient scinder un seul commutateur en plusieurs priphriques totalement indpendants, la diffrence de la solution VLAN, qui est beaucoup plus souple et conomique car il est possible de transformer le rseau et de raffecter les ressources matrielles volont. Les administrateurs rseau du monde entier ont accueilli chaleureusement les VLAN car ils offrent un moyen simple mais puissant de construire un ensemble de rseaux distincts sur un seul priphrique ou, par exemple, de sparer les serveurs des postes de travail sans avoir besoin dacheter un commutateur ddi pour chaque groupe.

Le trunk
Il sagit dune extension naturelle de la conception de base de VLAN. Les trunks utilisent le balisage des trames IEEE 802.1Q pour regrouper des VLAN multiples sur une seule liaison au lieu dobliger lutilisateur utiliser des raccordements diffrents sur chaque priphrique, comme illustr la Figure 7.1. Les paquets Ethernet provenant de lensemble ou de certains des VLAN sur le commutateur source sont baliss avec sufsamment dinformations pour dterminer leur VLAN dorigine lintrieur de len-tte de trame Ethernet, sont transfrs lautre extrmit par tunneling sur une liaison traditionnelle, sont dcods puis envoys au VLAN de destination appropri. Bien que cette option entrane gnralement une baisse des performances par rapport lutilisation dun cble distinct pour chaque sous-rseau, elle est beaucoup plus pratique. Souvent, les systmes trunk disposent galement de DTP (Dynamic Trunking Protocol), un protocole trunk qui intgre des procdures dautoconguration et permet aux priphriques de dcouvrir et dchanger automatiquement les trames encapsules avec dautres

Chapitre 7

La scurit dans les rseaux commuts

121

priphriques sur lesquels le trunk est activ sans ncessiter aucune action dadministration particulire.

VLAN 1

VLAN 1

Trunk 802.1Q Paquets des deux VLANs tiquets par des balises VLAN 2 Commutateur VLAN 2 Commutateur

Figure 7.1
Le trunk VLAN en pratique. Les VLAN se propagent sur deux priphriques. Les priphriques sur toutes les occurrences de VLAN 1 et de VLAN 2 peuvent dialoguer entre eux, mais le dialogue crois entre VLAN 1 et VLAN 2 nest pas possible.

Le protocole STP
Le protocole STP (spanning tree protocol) permet de construire des structures de rseau redondantes dans lesquelles les commutateurs sont interconnects dans plus dun endroit, an de maintenir une tolrance aux pannes. Traditionnellement, cette conception peut entraner la mise en boucle innie du trac broadcast et de quelques autres paquets, tout en provoquant une chute signicative des performances du rseau car les donnes reues sur une interface et transmises une autre rebondissent en effet vers lexpditeur (voir le schma de gauche de la Figure 7.2).

122

Un endroit sr

Lors de la conception dun rseau, il est souvent difcile dviter les boucles broadcast accidentelles. Il est galement parfois souhaitable de concevoir des architectures avec des boucles potentielles (dans lesquelles un commutateur se connecte deux commutateurs ou plus), car ce type de conception a une meilleure tolrance aux pannes et permet quun seul priphrique ou un seul lien soit retir sans scinder lensemble du rseau en deux parties totalement isoles. Pour permettre la cration de boucles et dautres architectures complexes sans entraner de srieux problmes de performances, le protocole STP implmente un mcanisme dlection an de choisir un nud de commutation "racine". En fonction du rsultat de cette lection, une hirarchie arborescente du trac est tablie partir de ce nud et les liens qui pourraient provoquer une inversion de la propagation du trac broadcast sont temporairement bloqus (voir le schma de droite de la Figure 7.2). Vous pouvez rapidement changer cette hirarchie simple qui stablit de faon autonome lorsquun des nuds connat une panne et ractiver un lien prcdemment jug inutile.

Architecture redondante (tolrance aux pannes)

Architecture redondante avec lection STP

Boucle infinie du paquet broadcast !

Noeud racine

Structure arborescente : le lien est abandonn

Figure 7.2
Le problme de tempte de diffusion et le schma dlection de STP. Le schma de gauche illustre un rseau tolrant aux pannes sans STP, dans lequel certains paquets effectuent une boucle (presque) innie entre les commutateurs. Le schma de droite illustre le mme rseau dans lequel un priphrique a t lu automatiquement comme nud matre en utilisant STP et pour lequel la topologie logique a t ajuste pour liminer les boucles. Lorsquune des liaisons est en panne, le rseau sera recongur pour garantir la continuit des oprations.

Chapitre 7

La scurit dans les rseaux commuts

123

Attaques sur larchitecture


Les mcanismes examins jusquici ont t conus pour amliorer les performances de base tout en offrant des performances leves, en se greffant sur une conception du rseau qui noffre aucune fonction de scurit 2. Mais, si certaines attaques courantes comme le MAC spoong (la possibilit pour toute personne de falsier un message ARP et dusurper ladresse IP dun priphrique en particulier) sont considres par tous comme autant de failles des rseaux locaux, sont bien comprises et faciles empcher avec des commutateurs correctement congurs, dautres graves dfauts de conception ne sont pas si simples et ne peuvent donc pas tre contrs aussi facilement. Il nest pas toujours vident que les solutions courantes visant amliorer la scurit ne soient en fait daucune aide dans ce domaine.

Le CAM et linterception du trac


Lexemple du dbordement du CAM est une des raisons les plus spectaculaires de ne pas considrer les commutateurs comme une fonction de scurit. Le CAM qui stocke les associations entre les adresses MAC et les ports a une taille xe et limite gnralement construite de manire non discriminatoire. Chaque fois quun systme ne peut pas tre localis dans le CAM, le commutateur ne dispose que dune seule faon pour livrer le paquet, il doit utiliser le mode de diffusion du concentrateur et donc envoyer le paquet tous les systmes, en esprant que le destinataire reconnaisse que ce trac lui est adress et que les autres systmes soient assez gentils pour le ngliger compltement. Ainsi, un attaquant attentif peut employer une tactique visant gnrer un grand nombre de requtes et de rponses ARP fausses ou dautres paquets, en usurpant lidentit dun grand nombre de priphriques distincts du rseau, juste pour remplir le commutateur du CAM. Une fois le CAM plein, lattaque a effectivement dgrad la scurit du rseau en dsactivant le routage intelligent des trames sur le commutateur et le force recourir la diffusion de toutes les donnes. Cela, son tour, permet lattaquant dcouter toutes les communications, comme si le rseau ntait pas commut du tout. Lattaquant peut faire tout cela sans usurper lidentit du destinataire ou affecter de manire visible le fonctionnement du rseau, si bien que la victime peut trs bien rester totalement ignorante de ce problme. Il sagit dun problme de conception, non pas dun dfaut li aux objectifs que doivent remplir les commutateurs, mais dune mauvaise comprhension du fonctionnement de ces priphriques. Soyez rassur, il est presque impossible de rsoudre totalement ce problme dans un environnement typique. Certains commutateurs implmentent effectivement des limites de temps et des limites sur les ports pour empcher de telles attaques, mais celles-ci ne sont jamais 100 % efcaces.

124

Un endroit sr

Autres exemples dattaques : DTP, STP, trunks


Dautres problmes sont gnralement plus faciles empcher et restent plus vidents (ils peuvent souvent tre dtects par la victime), mais ils illustrent galement les questions de scurit au niveau dEthernet. Par exemple, une attaque sur le mcanisme DTP dont nous avons parl est une possibilit intressante. Le systme de ngociation automatique de DTP est souvent activ pour tous les ports dun priphrique an de faciliter linstallation. Le problme est quun attaquant habile peut donc prtendre tre un commutateur sur lequel le trunk est activ et non un simple utilisateur nal dun poste de travail ou un modeste serveur. Une fois reconnu par le commutateur auquel il est connect comme tant un priphrique ami, il commence recevoir des trames balises 802.1Q, y compris le trac provenant dautres rseaux locaux virtuels et desservis par le commutateur auquel il est connect, ce qui le rend capable dintercepter ou dinjecter du trac malveillant sur des rseaux avec lesquels il nest pas cens tre en mesure de communiquer. Dans de nombreux rseaux o le mme commutateur gre la fois les rseaux protgs et "dmilitariss" ainsi que linfrastructure commune du rseau LAN de lentreprise, une telle attaque peut permettre dobtenir des donnes trs utiles en permettant aux membres de lun des rseaux despionner ou dinteragir avec les membres de lautre rseau. Vous pouvez rsoudre ce problme DTP sur certains priphriques en changeant leur conguration par dfaut et en dnissant clairement un ensemble de ports ddis sur lesquels le trunk est activ sur le commutateur. Cependant, le problme ne sarrte pas l. Notre autre ami, STP, peut tre victime dune attaque similaire, en permettant un attaquant de se choisir comme commutateur "racine", et donc recevoir une partie du trac rseau. Dsactiver la dcouverte STP peut mme se rvler encore plus difcile dans un environnement typique dentreprise. Un autre problme se pose lorsquun trunk quelconque a pour origine ou destination un VLAN non ddi (lorsque le port utilis pour le trunk est plac dans un VLAN galement utilis par les postes de travail). En injectant des trames dj balises, il est possible dinjecter du trac sur un trunk. On peut considrer cela comme un dfaut de conguration ; pourtant, ce problme est souvent nglig car de nombreux ingnieurs estiment que la mthode dimplmentation des trunks est beaucoup plus avance et magique quelle ne lest en ralit.

Prvention des attaques


Ces problmes sont souvent difciles rsoudre, en particulier si toutes les phases de dveloppement et dexpansion du rseau nont pas t strictement et troitement surveilles. Bien que certains priphriques haut de gamme fournissent des fonctionnalits de scurit tendues pour contrer les vecteurs dattaque potentiels et attnuer ou

Chapitre 7

La scurit dans les rseaux commuts

125

liminer certains des risques, les rseaux Ethernet nont pas t conus pour assurer la scurit, et les dispositifs intelligents pour grer ces rseaux sont rares. Lattaquant peut facilement rendre une partie ou la totalit de ces fonctionnalits inutile et dgrader le modle de scurit du rseau de la manire la moins souhaitable. Mme sil existe des mthodes et des pratiques strictes suivre pour scuriser un rseau Ethernet, la complexit de ce processus, le cot nancier supplmentaire et limpact sur les performances sont souvent tels, sans compter le nombre de vecteurs traiter, quil est vident que cette technologie na pas t conue en pensant la mise en pratique dun quelconque niveau de scurit.

Matire rexion
Lors du dveloppement dEthernet, il semblait raisonnable de ne pas prendre en considration la scurit dans les dcisions de conception et de laisser la charge de scuriser le rseau une architecture de plus haut niveau comme le cryptage, entre autres. Au l du temps, toutefois, cette dcision initiale a contribu au cot global de maintenance des rseaux Ethernet et les a rendus difciles protger des attaques sans devoir sacrier de fonctionnalit dune faon ou dune autre. Le problme ne se limite pas seulement Ethernet. De nombreux rseaux conus pour tre dignes de conance en se reposant sur des critres daccs physiques ou matriels, y compris la plupart des systmes tlphoniques du monde, par exemple, sont par nature exposs des menaces internes sans quil existe de moyens ou presque de contenir efcacement lexposition et de contrler les dommages collatraux qui apparaissent lorsquun seul systme est compromis au sein du rseau. mesure que la taille du rseau et le nombre des changes augmentent, la probabilit quun des systmes soit exploit par un utilisateur malveillant ou soit insufsamment protg des accs physiques ou distants devient de plus en plus forte. Bien quil soit normalement ncessaire daccder au backbone plutt qu la station de travail dun utilisateur nal pour compromettre le systme ce qui rend la situation quelque peu diffrente dEthernet , les systmes actuels VoIP (Voice over IP) permettent souvent trs facilement dutiliser les techniques dusurpation et dautres subterfuges car ils font trop conance lutilisateur.

8
Lenfer, cest les autres
Que peut-il se passer dautre dans le primtre de "notre" rseau local ? Beaucoup de choses !

Les rseaux locaux, quil sagisse dun rseau Token Ring ou plus couramment dun rseau Ethernet, ont t conus en supposant quil ntait pas ncessaire dassurer la scurit au niveau (ou sur la couche) de la technologie utilise pour transmettre les donnes elles-mmes. Au temps des premiers ordinateurs, les utilisateurs qui partageaient un rseau taient tous censs tre gentils.
Mme si cette seule raison suft pour comprendre que les concepteurs dEthernet naient pas vu le besoin dintgrer des fonctionnalits de scurit compltes dans leur conception, ils restent coupables davoir fait preuve dun optimisme injusti et de ne pas avoir prvu linvitable. Ethernet ne laissait tout simplement pas la place dimplmenter facilement des mcanismes de vrication de lidentit de lexpditeur, de lintgrit et de la condentialit des transmissions ni sur les couches suprieures du modle OSI, ni sur les priphriques, ni sur les applications. Les systmes de protocoles et de communication suivants tentrent dimplmenter un respect partiel de la condentialit et de garantir lidentit des communications, mais ne parvinrent qu montrer un peu plus limpossibilit de mettre en uvre une scurit sufsante sans revenir en arrire et retravailler la couche de liaison. La seule possibilit qui restait consistait tablir des astuces cryptographiques complexes trs coteuses en termes de calcul par-dessus le

128

Un endroit sr

systme existant. Et cette complexit contribue un certain nombre de problmes de scurit que lon dcouvre, anne aprs anne. Cette tendance regrettable a effectivement cr un ensemble de mcanismes de mise en rseau qui, mme sils fonctionnent bien et sont abordables, ne sont pas appropris pour grer des donnes mme moyennement sensibles lorsquune partie hostile est prsente (presque toutes les donnes relatives lutilisateur transmises sur un rseau local sont sensibles). Les solutions qui essaient de rsoudre ces problmes, comme les applications de rseau priv virtuel (VPN, de langlais Virtual Private Network), lencapsulation crypte pour quelques-uns des protocoles Web les plus populaires ou encore les commutateurs avancs, sont habituellement plus coteuses et sophistiques quelles nauraient pu ltre si la scurit avait t au centre des proccupations lors de la conception initiale du systme de communication Ethernet. Avant den arriver l, nous avons vcu dans le dni partiel pendant un bon moment. Lorsque la scurit devint une vraie proccupation (avec lexpansion dInternet et la prolifration soudaine des systmes compromis), les premires dfenses apparatre se concentraient sur le monde extrieur, tout en ignorant les menaces qui pouvaient venir de lintrieur du rseau, auquel on faisait "conance". Mais plusieurs entreprises et organismes institutionnels ont rapidement appris quelques leons leurs dpens. Avec le temps, il devint vident que les dfenses externes comme les pare-feu et les systmes de dtection des intrusions ne sufsaient pas, mme sils taient correctement congurs dans lensemble de lentreprise. La couche rseau est encore vulnrable, ce qui permet un intrus de compromettre les changes de donnes sans exploiter les failles de scurit dun seul systme de lentreprise. Mme si le rseau pourrait tre scuris en dployant des mcanismes appropris de chiffrement cryptographique et de vrication didentit sur toutes les interfaces, cela est souvent peu pratique, voire impossible raliser, surtout sans avoir dinuence sur les performances ou la abilit du rseau et sans entraner de cots importants (sans parler des questions de compatibilit entre les diffrents systmes dexploitation et programmes). Par ailleurs, comme je lai mentionn, la cryptographie nest pas toujours la rponse : non seulement il est beaucoup plus facile de russir une attaque lorsque les donnes peuvent tre vues et interceptes (attaques par relecture ou fondes sur le temps, par exemple), mais certains types dinformations, comme le dfaut de remplissage des trames Ethernet que nous avons abord plus tt, peuvent aussi djouer tous les efforts visant protger lutilisateur. Dans la deuxime partie de ce livre, nous abordons certaines des menaces inhrentes aux rseaux locaux qui rvlent des informations sans quaucune attaque classique ne se produise jamais. Tous ces problmes subsisteront tant que les rseaux conserveront cette conception ancienne assez mal adapte la mise en rseau de nos jours. Nous sommes maintenant prts aller de lavant mais, avant de nous plonger dans le monde sauvage et fascinant situ au-del du primtre local, examinons dautres cas intressants (et plus prcis) dexposition.

Chapitre 8

Lenfer, cest les autres

129

Les indicateurs logiques et leur utilisation inhabituelle


Cet exemple a trait labus des indicateurs logiques, autrement dit de compteurs, ags et autres gadgets qui nont pas de reprsentation physique mais sont plutt conservs par un ordinateur, mis disposition dans un logiciel et couramment implments dans les rseaux locaux. Les indicateurs logiques sont des lments utiles qui, une fois de plus, partent du principe que le rseau local est digne de conance. Le protocole simple de gestion de rseau SNMP 1 (Simple Network Management Protocol) est la mthode la plus courante pour surveiller et parfois administrer les priphriques rseau. Le protocole SNMP est souvent implment sur des systmes dextrmit (serveurs et postes de travail) ainsi que des priphriques rseau, comme les commutateurs, les routeurs et les imprimantes. SNMP fournit un moyen de lire (ou de modier) une reprsentation abstraite de nombreux systmes et applications internes, des paramtres de fonctionnement et de conguration ainsi que des statistiques. En utilisant SNMP, vous pouvez interroger une imprimante rseau sur le nombre de cartes rseau dont elle dispose ou son temps dexploitation puis utiliser exactement la mme mthode pour effectuer une requte auprs dun ordinateur central sur la mme question, mme si ces informations doivent tre obtenues dune faon totalement diffrente lintrieur de chaque systme. Ainsi, SNMP permet de surveiller et de grer facilement des environnements htrognes sans devoir implmenter une multitude de protocoles daccs natif et de vrications de procdures. Naturellement, SNMP lui-mme pose beaucoup de problmes de scurit en termes dimplmentation et de dploiement, mais ce nest pas la question ici. Mme correctement implmente, cette fonctionnalit peut entraner des failles de scurit et divulguer certaines informations, en fournissant par exemple un accs en lecture seule aux statistiques apparemment sans pertinence dune interface rseau (ce trou est limin si le protocole est soigneusement limit, mais cela est souvent impossible sur certains types dquipements de rseau). Un attaquant attentif peut observer soigneusement les compteurs de trames ou de paquets sur un systme qui excute SNMP et utiliser ces informations pour tablir un proling sufsant et effectuer des attaques fondes sur le temps et ainsi rcuprer des informations sur une session interactive ou dautres caractristiques intressantes, dune manire analogue lapproche dont nous avons parl au Chapitre 1. Oups ! Mais, vrai dire, cela peut-il causer vraiment beaucoup de problmes ?

130

Un endroit sr

Montrez-moi ce que vous tapez et je vous dirai qui vous tes


Bien que jaie dj mentionn ce type de problmes plusieurs reprises et quils puissent sembler abstraits, leurs consquences sont bien relles, mme sans tenir compte de la reconstruction de la frappe, sur laquelle je me suis concentr au Chapitre 1. Par exemple, un groupe de chercheurs allemands de luniversit Regensburg (Institut fr Bankinnovation) a cr un produit commercial, PSYLock, qui fournit une reconnaissance biomtrique de lutilisateur partir de ce quil tape au clavier 2 : Avec PSYLock, ils ont t en mesure didentier sans quivoque (et donc ventuellement de suivre la trace) des utilisateurs en examinant la faon dont ils utilisent le clavier. PSYLock repose principalement sur la mesure du temps qui scoule entre la frappe de deux touches, une astuce dont jai parl plus tt. tant donn la possibilit dobserver les compteurs de paquets dune machine en particulier et de calculer quand une touche est enfonce par lutilisateur dans une session interactive, on peut identier une personne quel que soit le terminal quelle utilise. En appliquant ce concept la couche rseau, on peut penser certaines applications intressantes, aussi bien dans un but malveillant que pour la surveillance. Si lattaquant sait quil existe une session interactive de certains protocoles daccs distants avec une station dont il peut surveiller les statistiques SNMP des ports, il peut dterminer quand les touches sont enfonces en sondant plusieurs fois le compteur et donc savoir ce qui est saisi ou qui est en train de saisir. Une variante plus lgre de cette attaque est galement possible. Et elle ne demande pas de recourir une modlisation avance, contrairement ce que nous avons vu auparavant. Dans leur message post sur Bugtraq et intitul "Passive Analysis of SSH (Secure Shell) trafc"3 (analyse passive du trac SSH), Solar Designer et Dug Song indiquent une autre attaque possible en utilisant cette fois le protocole SSH, une mthode courante de connexion un systme distant. Bien que SSH soit chiffr, il est possible dans les versions antrieures leur recherche de mesurer la longueur dun mot de passe en analysant soigneusement la taille dun paquet observ au cours de la connexion (le mot de passe est envoy dans un seul bloc de donnes entr une fois par lutilisateur). Cette technique pourrait galement tre applique avec succs dautres protocoles cryptographiques qui cachent la longueur dun mot de passe en le bourrant avant de lenvoyer. Et il nest pas surprenant que cette attaque puisse tre mene simplement en observant le compteur doctets SNMP plutt quen surveillant directement le trac.

Chapitre 8

Lenfer, cest les autres

131

Les bits inattendus : des donnes personnelles dissmines partout


Une autre raison explique que nous ne devrions pas tre ravis lide quune partie adverse espionne notre rseau (que nous croyions ou non que les donnes quils peuvent voir sont sensibles). En effet, beaucoup de logiciels violent le principe de moindre surprise. Cette rgle fondamentale dans la conception de logiciels dit quun programme doit ragir aux actions de lutilisateur de faon le surprendre le moins possible, autrement dit dune manire cohrente, intuitive et prvisible (ou du moins attendue). En fait, beaucoup de programmes envoient bien plus dinformations prcieuses que lon pourrait penser et mettent ainsi souvent les utilisateurs dans une situation quils navaient pas envisage. Comme toujours, les programmes de Microsoft Windows se distinguent en diffusant beaucoup dinformations de faon intentionnelle mais souvent nglige et peu vidente. Mais le gant du logiciel convivial nest pas le seul. Bien que peu dutilisateurs le savent, lorsque Windows travaille dans un domaine et quil est congur pour utiliser des prols itinrants pour permettre lutilisateur de se connecter et daccder ses donnes personnelles partir dun autre poste de travail, de vastes portions du registre de lutilisateur sont envoyes au contrleur du domaine chaque fois quil se connecte ou se dconnecte. Bien que les informations contenues dans le prol puissent sembler tout fait inutiles premire vue, elles contiennent diffrents paramtres personnels et renseignements historiques qui peuvent tre trs intressants, notamment les dernires commandes excutes, les dernires pages Web visites et les derniers documents ouverts. De mme, ce qui est peut-tre encore plus tonnant, si le rpertoire de lutilisateur dans le domaine rside sur un lecteur rseau, Windows cherche toutes les commandes entres par lutilisateur avec la commande Excuter sur le serveur distant, puis en local. Ainsi, les informations sur toutes les commandes excutes par lutilisateur sont divulgues via le protocole SMB (Server Message Block) un observateur attentif. Ces quelques exemples parmi beaucoup dautres montrent lvidence que la quasitotalit des donnes sur le rseau doit tre considre comme sensible. En tant que tels, les rseaux locaux en gnral ne sont pas particulirement bien adapts pour transmettre des donnes rcurrentes, sauf pour certaines congurations spciques, limites ou qui disposent de moyens de protection supplmentaires. Et il nexiste aucun moyen sr de protger ces informations sans recourir lartillerie lourde, comme les tunnels IP chiffrs ou les solutions logicielles similaires, moins de revoir tous les aspects de conception de la mise en rseau partir de zro.

132

Un endroit sr

Les failles du wi-


Il serait injuste de clore ce chapitre en ignorant le problme du remplaant sans l dEthernet : le wi-. Les rseaux sans l fonds sur le protocole IEEE 802.11 se gnralisent dans le monde de lentreprise et chez les particuliers. Malheureusement, avant mme dtre aussi rpandu et mme sil a t conu dans le but dapporter un niveau de scurit plus important que les liaisons cbles, le wi- se rvle assez difcile dployer correctement, sans doute parce quil a tent de suivre les traces de son frre an dun peu trop prs. Dans son principe de fonctionnement, la norme 802.11 nest pas trs diffrente de celle du rseau Ethernet. Elle utilise un systme de contrle daccs traditionnel ("un membre parle, les autres coutent"), mais le signal est transmis non par une paire torsade de ls mais par une frquence radio donne. Ce qui nous amne au premier problme de la norme 802.11. En mai 2004, le centre de recherche de luniversit de technologie du Queensland (Queensland University of Technology Information Security Research Centre, ISRC) a annonc avoir dcouvert que toute transmission sur un rseau dentreprise 802.11 peut tre interrompue en quelques secondes en transmettant simplement un signal qui empche les autres membres du rseau dessayer dmettre. Bien sr, il en est de mme pour Ethernet, sauf que lattaquant doit alors dabord pouvoir se connecter une prise rseau, ce qui le rend beaucoup plus facile suivre et rend le problme plus facile rsoudre. Il suft de vrier le commutateur puis de suivre le cble. Cette attaque nest pas vraiment surprenante mais ne correspond pas non plus ce quattendaient les entreprises de cette technologie en ladoptant. Mais ce nest pas tout. Lorsque la norme 802.11 tente de djouer les attaques au niveau de la ligne de transmission, elle choue lamentablement. Le mcanisme WEP (Wired Equivalent Privacy) a t conu pour que les rseaux wi- fournissent un niveau de protection contre les coutes clandestines des sessions rseau, ce qui offre une scurit peu prs comparable celles des LAN traditionnels. Or un certain nombre de dfauts de conception du WEP ont t dcouverts en 2001 par des chercheurs de luniversit de Californie et de lentreprise Zero Knowledge Systems, prouvant que ce mcanisme ntait pas adquat. Malheureusement, le wi- stait dj sufsamment rpandu pour rendre difcile limplmentation des modications ncessaires 4. Pour comble, lutilisation du protocole WEP est optionnelle et dsactive sur la plupart des priphriques de rseau sans l, les rendant ainsi prts accepter et relayer tout le trac quils reoivent. Bien que ce soit gnralement acceptable pour les rseaux cbls,

Chapitre 8

Lenfer, cest les autres

133

pour lesquels une couche supplmentaire de scurit est assure sur le plan physique, les rseaux sans l sont ouverts tout intrus se trouvant proximit. Le wardriving (sillonner en voiture les villes la recherche de points daccs sans l laide dun ordinateur portable compatible wi-) est devenu trs populaire lorsquon dcouvrit que la majorit des rseaux sans l des grandes entreprises, en particulier dans

Figure 8.1
Les expditions de warying de Tracy Reed. Reproduites avec la permission de Tracy Reed, de Copilot Consulting (treed@copilotconsulting.com).

134

Un endroit sr

les grands centres commerciaux et les quartiers commerants de chaque ville, taient partiellement ou entirement ouverts. Les abus sont souvent assez insigniants et vont de lutilisation gratuite du rseau lenvoi de mailing de masse en passant par la ralisation dattaques distance par le biais du rseau de la victime, mais le risque que le rseau soit attaqu de lintrieur par un attaquant dou est rel. Quelle est la vritable ampleur du problme ? Il suft de dire qu un moment le wardriving fut dpass par le warying (identique au wardriving mais en avion). En 2002, Tracy Reed, de Copilot Consulting, dcida de voler autour de San Diego avec un scanner sans l. 1 500 pieds daltitude, il russit trouver prs de 400 points daccs congurs par dfaut et offrant probablement un accs libre au rseau Internet ou aux rseaux internes des entreprises pour toute personne se trouvant proximit (voir Figures 8.1 et 8.2). Seuls 23 % des priphriques scanns taient protgs par une cl WEP (quil est en gnral facile de casser de toute faon) ou de meilleurs mcanismes. Allez comprendre.

Figure 8.2
Warying au-dessus de la Silicon Valley.

Partie III
Dans la jungle
Une fois sur Internet, les choses deviennent dangereuses.

9
Un accent tranger
Le ngerprinting passif : de lgres diffrences de comportements peuvent aider les autres savoir qui nous sommes.

Sur Internet, le rseau des rseaux, les informations envoyes distance chappent au contrle de lexpditeur. Contrairement un rseau Ethernet local qui est habituellement un endroit sr pour les paquets tant quaucun intrus ne se manifeste, il nest plus possible une fois que les donnes sont dans la nature dvaluer ni de grer efcacement les menaces quelles sont susceptibles de rencontrer, car une
seule personne ne peut ni contrler le chemin des donnes, ni connatre les intentions de toutes les parties impliques dans la communication, ni encore moins dterminer la manire dont elles abordent la scurit. Sur un rseau aussi complexe, le risque quune partie tierce soit malveillante nest ni ngligeable ni facile valuer. En fait, mme la personne avec laquelle vous tablissez une communication lgitime peut avoir un but cach ou tre tout simplement un peu curieuse. Les tentatives dacquisition de donnes non sollicites sont galement diffrentes lorsquelles se droulent sur Internet pour quelques raisons supplmentaires. Surtout, elles nont pas besoin dtre cibles et ne sont pas limites un segment de linfrastructure physique. Comme lattaquant na pas besoin de fournir de gros efforts pour les obtenir, elles reprsentent une manire potentiellement intressante dacqurir des donnes avant mme de savoir prcisment quels seront les avantages ou le prot

138

Dans la jungle

lucratif quil est possible den tirer. En outre, la ligne de dmarcation entre les bons et les mauvais devient encore plus oue, car lattaquant peut tre votre meilleur ami. Lespionnage et la surveillance en gnral constituent un avantage si tentant en termes didentication et de proling marketing que beaucoup ont du mal rsister la tentation den proter. Le monde de la prestation de service nest pas noir et blanc et, pour beaucoup de monde, avoir une moralit lastique nest quune faon raisonnable de faire des affaires. Cette partie de louvrage se penche sur les menaces inhrentes la conception ouverte dInternet et sur la capacit des autres obtenir plus dinformations sur vous que vous ne pourriez le penser (et beaucoup plus dinformations que ncessaire pour vous indiquer un site Web ou un jeu en rseau qui pourrait vous intresser). Une fois sur Internet, lennemi nest plus un fou isol qui surveille les DEL du commutateur travers la lentille dun tlobjectif haut de gamme. Les cas dexposition abords ici permettent dtablir le prol des utilisateurs, de les suivre, de collecter des informations sur eux, rendent possibles lespionnage industriel, la dcouverte dun rseau et son analyse avant de raliser une attaque. Ces menaces sont beaucoup plus relles que les exemples dcrits prcdemment. Vous devez comprendre ces menaces an de maintenir un bon niveau de protection de la vie prive ou surveiller efcacement qui sapproche de vos systmes, quil sagisse de vos utilisateurs ou de parfaits inconnus. Il est galement essentiel de les comprendre pour conserver toute sa raison dans un monde o la frontire entre souci de protger sa vie prive et paranoa clinique est assez mince. Je vais commencer par examiner une srie de protocoles rseau de base utiliss sur Internet et leurs incidences sur la condentialit.

Le langage dInternet
Le langage ofciel dInternet est appel Internet Protocol, et sa version la plus courante est la version 4. Ce protocole, spci dans la RFC793 1, fournit un moyen dimplmenter une mthode standardise de transmission des donnes sur de grandes distances et sur divers rseaux le plus simplement possible. Les paquets IP constituent la troisime couche du modle OSI, dont nous avons dj parl. Ils sont constitus dun en-tte, qui contient les informations ncessaires pour acheminer une partie des donnes destination (le destinataire) et une charge contenant les informations de couche suprieure qui suivent immdiatement les donnes den-tte. Les informations de routage fournies par lexpditeur dans le paquet IP avant de lenvoyer se composent de ladresse de lexpditeur et du destinataire ainsi que dun ensemble de paramtres qui simplie le processus de transfert de donnes ou amliore

Chapitre 9

Un accent tranger

139

sa abilit et ses performances. Quand une machine sur le rseau local veut communiquer avec une partie distante qui nest pas directement accessible sur le cble (du moins pas la connaissance de lhte), elle transmet un paquet IP contenant ladresse du destinataire nal encapsule dans une trame dune couche infrieure un ordinateur local quelle pense tre une passerelle vers le rseau o se trouve ladresse de lexpditeur. La machine passerelle nest rien de plus quun priphrique qui possde plusieurs interfaces connectes plus dun rseau et qui sert de point de connexion entre eux. La passerelle doit savoir comment router le paquet vers le monde extrieur, quoi faire de ce paquet et qui doit recevoir ensuite les donnes si davantage de parties sont impliques dans le transfert avant que les donnes natteignent le destinataire. Les systmes impliqus dans le routage du trac, depuis la passerelle locale au rseau de destination, lisent les informations fournies sur la couche IP pour choisir la faon de relayer les donnes, en se fondant sur ce quils savent de la faon daccder certains rseaux (dans ce contexte, un rseau est dni comme un ensemble dadresses rseau situes un endroit prcis).

Routage naf
Dans sa forme la plus simple, un routeur utilise une table de routage xe pour faire la distinction entre un ensemble de rseaux locaux (vers lesquels il peut acheminer les donnes directement) et le monde extrieur, qui est inconnu. Ainsi, tout le trac destin lextrieur du rseau local doit tre relay un routeur suprieur dans la hirarchie qui a probablement une meilleure ide de lendroit o envoyer les donnes. La Figure 9.1 montre un exemple de structure de routage. Lexpditeur ( gauche) essaie denvoyer un paquet un systme dont ladresse appartient au rseau C, un rseau que lexpditeur ne connat pas. Pour faciliter la livraison, lexpditeur envoie le trac la passerelle locale en esprant quelle sache o chercher le destinataire. Cependant, ce systme, le routeur 1, ne peut atteindre que le propre rseau de lexpditeur et un rseau A, un autre rseau qui na rien voir avec C. Comme la cible ne se trouve pas sur leur rseau local, le routeur dcide quil serait prfrable denvoyer le paquet un routeur WAN suprieur dans la hirarchie (routeur 2) quil est en mesure datteindre localement. De plus, ce priphrique na aucune connexion immdiate avec le rseau C ; il peut uniquement atteindre directement les htes sur les rseaux B et D. Cependant, il sait que le routeur 3 dessert ladresse de destination et donc quil doit srement savoir ce quil faut faire. Par consquent, le paquet lui est transmis et le routeur 3 peut dsormais transmettre le trac local au destinataire nal, la grande joie de tout le monde.

140

Dans la jungle

Rseau A
Le destinataire est-il sur le rseau A ? Si oui, les donnes sont dlivres ici. Sinon, elles sont transmises au routeur suivant.

Rseau B
Le destinataire est-il sur le rseau B ou D ? Si oui, les donnes sont dlivres ici. Sinon, elles sont transmises au routeur suivant.

Rseau C

Expditeur

Routeur 1
L'expditeur veut communiquer avec un systme du rseau C. Le routeur 1 est la passerelle par dfaut pour l'expditeur.

Routeur 2

Routeur 3

Rseau D

Figure 9.1
Un schma naf de routage entre plusieurs rseaux tendus.

Le routage dans le monde rel


Dans la pratique, les rseaux sont souvent trs redondants et ne possdent pas une architecture strictement linaire. Ils utilisent une structure arborescente complexe qui rend difcile la slection du chemin le meilleur et le plus conomique avec une conguration statique (sans parler du d quil y aurait rester jour vu tous les changements dinfrastructure qui accompagnent le dveloppement du rseau). Cest pourquoi une stratgie de routage plus raisonnable est implmente ds que le trac atteint un routeur backbone. Dirig par un oprateur de rseau, un routeur backbone est un priphrique WAN ddi qui relie de nombreux rseaux contrls par un fournisseur en particulier en une entit complexe appele systme autonome. Les routeurs backbone sont en gnral quips dinterfaces avec dautres routeurs importants et utilisent un algorithme avanc de dcouverte du chemin ainsi quun "annuaire" de noms et demplacement de rseaux dune taille considrable. Ils sont contrls dynamiquement par un protocole BGP (Boundary Gateway Protocol) an de trouver le meilleur moyen de router les donnes au systme de destination, sans coner aveuglment la livraison du trac un systme dans lespoir quil soit en mesure de le relayer correctement.

Chapitre 9

Un accent tranger

141

Lespace dadressage
Ce processus serait, bien entendu, tout fait irraliste si les rseaux de destination ntaient quun ensemble dadresses arbitrairement affectes des priphriques travers le monde. La liste de toutes les adresses dun systme autonome pourrait facilement reprsenter une taille norme. Pour rsoudre ce problme, des blocs continus de lespace dadressage sont affects aux fournisseurs de services backbone, qui louent ensuite de petits blocs aux utilisateurs naux ou des prestataires de service moins importants. Le routage vers le fournisseur du rseau se droule en recherchant ladresse IP de destination dans les plages dadresses affectes cette entit, puis en effectuant une autre recherche au sein de ce rseau dans des tables de routage plus dtailles. Un systme autonome peut donc tre dni comme un ensemble dadresses IPv4 (ou un ensemble de ces plages) utilisant un masque de sous-rseau. Ladresse IPv4 utilise pour identier de manire unique un terminal du systme dans toutes les communications IP a une structure assez simple. Elle est compose de 32 bits, diviss par commodit en 4 octets, soit un total de 4 294 967 296 adresses possibles. Ladresse est traditionnellement crite avec des valeurs dcimales comprises entre 0 et 255 et spares par des points. Par exemple, 195.117.3.59 correspond une valeur 32 bits de 3279225659. Les blocs dadresses IP continus constituent la base du routage des paquets. Elles sont dnies au sommet de ladressage IPv4 en dnissant la part de ladresse IP qui est xe et constante pour tous les systmes appartenant un systme autonome, ainsi que la partie de ladresse qui sera xe diffrentes valeurs par le propritaire dun rseau an de donner un identicateur unique aux ordinateurs. Lors de la dnition dun rseau, certains bits plus signicatifs dune adresse IP (thoriquement, nimporte quel bit de 1 31 mais en fait les bits de 8 24) sont rservs comme adresse rseau. La partie xe de cette adresse est partage par toutes les adresses appartenant (et vraisemblablement routes vers) ce rseau particulier. Le reste des bits moins signicatifs peut tre dni volont pour attribuer des adresses aux systmes du rseau. Historiquement (comme dni dans le RFC796 2), la taille dun rseau ou le nombre de bits signicatifs verrouills taient une fonction de ladresse qui pouvait tre dtermine partir de ladresse du rseau lui-mme. partir des bits les plus importants de chaque adresse, les adresses furent regroupes pour constituer des rseaux de classe A (pour lesquels les 8 bits les plus signicatifs sont xes, ce qui permet au rseau de compter plus de 16 millions dadresses possibles), des rseaux de classe B (pour lesquels 16 bits sont xes, ce qui autorise plus de 65 000 htes) ou des rseaux de classe C (avec 24 bits xes et 256 htes possibles). Par consquent, si ladresse IP de votre systme commence

142

Dans la jungle

par le chiffre 1, il appartient un rseau de classe A et tous les autres systmes qui ont ce prxe se trouvent proches du vtre. Bien que cela ait sembl sufsant lpoque, lespace dadressage IPv4 a considrablement diminu ds les premiers jours dInternet lorsque de nombreuses adresses rseau de classe A furent attribues aux implmenteurs initiaux (larme amricaine, Xerox, IBM et dautres entits surpuissantes), qui ne semblaient pas disposs les cder, mme sils nutilisaient quune fraction de lespace dont ils disposaient pour des infrastructures publiques. En outre, une fois Internet devenu commercial et les adresses IP, une ressource que les utilisateurs devaient payer, les utilisateurs exigrent un espace dadressage qui corresponde mieux leurs besoins. Certains ne voulaient que 4 adresses, tandis que dautres voulaient un espace continu de 8 000 adresses. Les utilisateurs ont alors commenc revendre ou partitionner leur espace Internet. Par consquent, lespace dadressage actuel est partitionn de faon bizarre, de petites portions de lespace dadressage sont souvent exclues et reroutes depuis des blocs plus grands et continus, sans se soucier du partitionnement original. Chaque adresse de rseau est maintenant accompagne dune spcication de masque de rseau, car il nest plus possible de dire quel rseau un systme appartient en se fondant seulement sur son IP. Les bits du masque de rseau sont dnis des positions qui devraient tre xes dans ladresse du rseau et sont gales zro des positions qui peuvent tre manipules librement au sein dun rseau.
Masque de rseau : 255.255.255.0 Rseau : 195.117.253.0 11111111 11000011 11111111 01110101 11111111 00000011 00000000 00000000

Pour que les adresses soient classes comme appartenant un rseau particulier, tous les bits indiqus par le masque de rseau doivent tre identiques l'adresse "prototype"du rseau (ici 195.117.3.0). Adresses d'htes valides au sein du rseau : 195.117.253.59 11000011

01110101

00000011

00111011

Dans une adresse d'hte valide, cette section fixe de l'adresse correspond l'adresse du rseau. Adresses d'htes non valides (pas sur le mme rseau) : 195.117.254.59 11000011 01110101

00000100

00111011

Dans une adresse d'hte non valide, certains bits fixes ne correspondent pas l'adresse du rseau.

Figure 9.2
Les rgles dadressage de rseau.

Chapitre 9

Un accent tranger

143

Comme le montre la Figure 9.2, en xant 24 bits du rseau 195.117.3.0, 8 bits peuvent tre changs. Cela permet de crer 256 adresses entre 195.117.3.0 et 195.117.3.255 sur ce rseau (bien que certaines implmentations obligent de rserver la premire et la dernire adresse des ns spciales, ce qui ne laisse que 254 htes possibles). Avec une spcication dun rseau dadresses relativement aussi simple, il est facile de dterminer quelles adresses appartiennent ce rseau et donc ce qui doit tre livr la passerelle de ce rseau (et ce qui ne doit pas ltre). Bien que ce systme dadressage puisse sembler confus et inutilement compliqu, il fonctionne. Il permet dassocier des ensembles dadresses des systmes spciques et de distinguer les systmes informatiques les uns des autres avec un minimum defforts. Internet, dans toute sa complexit, russit en gnral trouver un systme dans un trs court laps de temps, sans trop de maintenance.

Des empreintes digitales sur lenveloppe


Nous savons comment les donnes se rendent du point A au point B. Mais ce qui se passe en chemin est beaucoup plus intressant que la faon dont le chemin est dtermin. Examinons donc de plus prs ce qui est chang entre les routeurs et nos systmes dextrmit. Bien quon puisse penser que la charge effective des donnes lintrieur des paquets envoys sur Internet contient les informations les plus intressantes (compte tenu de tous les courriels privs et des contenus bizarres changs dans le monde chaque seconde), il y a plus que cela. Le format des paquets IP utiliss pour le routage des donnes et les informations de la quatrime couche utilises pour encapsuler les donnes au niveau de lapplication sont dnis de faon assez stricte par les RFC et avec tonnamment peu dambigut. Toutefois, mme avec une implmentation correcte de la pile TCP, les informations sousjacentes peuvent avoir considrablement plus de valeur pour le destinataire que la charge des donnes quil reoit. La divulgation ce niveau est involontaire et inattendue mais, pour en savoir plus, nous devons examiner de plus prs la conception des protocoles sous-jacents.

Internet Protocol
Commenons par le commencement. IP offre un mcanisme universel de livraison longue distance fond sur la troisime couche du modle OSI. Il contient un ensemble de paramtres conus pour tre interprts et ventuellement modis par des systmes intermdiaires. Len-tte est illustr la Figure 9.3.

144

Dans la jungle

3 More fragments (MF) Dont fragments (DF)

Rserv

Fiabilit

Dbit

Dlai

Priorit

Rserv

0 Version

4
Longueur de l'en-tte Internet (IHL)

12 Service (TOS)

16

20

24 Longueur totale (TL)

28

32

Identification Temps de vie (TTL) Protocole

Flags

Offset du fragment Somme de contrle de l'en-tte

Adresse source Adresse de destination

Options Remplissage

Donnes

Figure 9.3
La structure den-tte IP.

Version du protocole
Il sagit dune valeur de 4 bits qui est xe 4 (0100) dans tous les paquets IPv4. IPv4 est le protocole standard (et dans de nombreux cas le seul pris en charge) de la troisime couche sur Internet. Les tentatives dimplmentations plus avances, IPv6, nont pas t particulirement fructueuses ce jour (je pense que ce manque de succs est peut-tre d au fait que le nouveau format dadresse IP est beaucoup plus difcile mmoriser pour un administrateur systme en gnral).

Chapitre 9

Un accent tranger

145

Le champ IHL
Il sagit dune valeur de 4 bits qui spcie la longueur totale de len-tte IP. Elle reprsente la longueur en mots de 32 bits, exprime en blocs de 4 octets (permettant dexprimer des longueurs de 0 60 octets en utilisant les seize valeurs du champ). Ce paramtre indique limplmentation o cesser lanalyse de len-tte IP (qui peut avoir une longueur variable en raison des "options" supplmentaires qui peuvent tre ajoutes la n de len-tte et immdiatement avant le contenu dune couche suprieure). Il permet aussi de sauter une partie de len-tte IP sans avoir regarder les options ou les comprendre compltement pour passer directement aux donnes. Comme les options IP ne sont gnralement utilises que pour des diagnostics (elles permettent par exemple le routage dun paquet en particulier mais pas beaucoup plus), presque tous les paquets IP ont une longueur de 20 octets (ce qui signie que ce champ est dni 5), soit la longueur de la partie xe de len-tte. Les valeurs infrieures 20 sont videmment errones et le paquet est alors rejet par une implmentation saine desprit (cependant, le bon sens nest pas toujours la rgle).

Le champ Service (8 bits)


Limportance de ce champ est gnralement assez marginale. Il fournit une description de la priorit de routage fonde sur lhonneur dans laquelle lmetteur est considr comme agissant de bonne foi et autoris prciser si ce trac revt une importance particulire ou ncessite un traitement spcial. Cette valeur est parfois utilise dans les installations locales, o ce niveau de conance peut tre exerc mais est souvent ignor sur Internet. Ce champ se compose de trois segments :
m m

Les trois premiers bits dnissent la priorit. Les quatre bits suivants dsignent la mthode de routage dsire ( laide de concepts abstraits tels que "haute abilit" ou "faible latence" en laissant au routeur le soin de les interprter). La dernire partie, un seul bit, est rserve et doit tre rgle sur 0.

La longueur totale (16 bits)


Ce champ de 2 octets reprsente la longueur totale de ce paquet IP, y compris sa charge. Bien que la plus haute valeur possible soit 65 535, la taille maximale dun paquet est souvent limite une valeur beaucoup plus petite par les restrictions du protocole de plus bas niveau. Par exemple, Ethernet a un MTU (maximum transmission unit) de 1 500 octets.

146

Dans la jungle

Un systme connect Ethernet nenverra donc pas de paquets de taille suprieure. Des MTU suprieurs environ 16 18 kilo-octets sont pratiquement inconnus. Les valeurs les plus courantes sont comprises entre 576 et 1 500 octets.
NOTE Fait amusant : la taille limite dun paquet IP, N octets (en fonction du paramtre MTU), impose galement la limite minimale de la bande passante pour tout le trac IP : 20 octets au moins seront ajouts len-tte par N-20 octets envoys sur un niveau hirarchique suprieur.

Ladresse IP source
Cette valeur 32-bit (une adresse IP dans le format abord dans la section prcdente) devrait reprsenter le systme dextrmit do provient la communication. Comme le paquet IP est tabli par lexpditeur et que personne nest incit vrier lexactitude de ce paramtre sur le rseau dorigine, on ne peut pas vraiment avoir conance dans cette valeur seule. Elle fournit cependant une bonne indication sur lidentit de la personne qui rpondre (et, si lon a une raison de faire conance cet indice, on peut lutiliser pour rpondre lexpditeur). Lacte de forger cette valeur intentionnellement est appel communment usurpation dadresse IP ou IP spoong.

Ladresse IP de destination
Cette valeur 32-bit indique la destination nale du trac. Comme tous les autres paramtres IP, il est choisi la discrtion de lexpditeur et utilis par les systmes intermdiaires pour diriger les paquets de faon approprie.

Lidentiant du protocole de la quatrime couche


Il sagit dune valeur de 8 bits qui spcie ce qui est transport en tant que charge dans le paquet IP (les options TCP, UDP, ICMP et autres, dont nous parlerons plus en dtail dans un moment).

Le TTL
Le TTL est un "compteur tueur" de 8 bits pour le trac IP. Pour viter les boucles innies quand quelque chose tourne terriblement mal avec les tables de routage, le compteur est dcrment dune unit chaque passage dans un systme provisoire ou reste dans la le dattente de transmission pendant une certaine dure. Lorsque le compteur atteint zro, le paquet est rejet, et lexpditeur peut recevoir un message derreur au moyen dun paquet

Chapitre 9

Un accent tranger

147

ICMP. La valeur TTL, comme toutes les autres, est choisie la discrtion de lexpditeur mais, en vertu de sa largeur de bit, ne peut pas tre suprieure 255. Un effet secondaire intressant du TTL compteur est quil peut tre utilis pour tablir la cartographie du routage un systme distant : un message dont le TTL est de 1 expire au premier routeur quil rencontre sur son chemin (et lexpditeur reoit un message ICMP du routeur) ; un message dont le TTL est x 2 expire au prochain saut, et ainsi de suite. En envoyant des paquets dont la valeur TTL augmente progressivement et en contrlant lorigine des rponses ICMP indiquant que la dure de vie du paquet est dpasse, il est possible de cartographier lensemble des routeurs et des autres priphriques IP sur le chemin du destinataire. Cette technique baptise traceroute est une mthode utilise couramment pour diagnostiquer les problmes de routage et effectuer des analyses avant une attaque. Son utilit pour lattaquant tient au fait quelle permet dobtenir certains effets sans pour autant compromettre la victime : pour compromettre www.microsoft.com, vous pouvez cibler le routeur du rseau qui hberge ce serveur ou les routeurs de leurs fournisseurs daccs, dans lespoir dintercepter tout son trac et toutes les fausses rponses renvoyes. Cela aurait pour effet disoler le serveur puis, en usurpant son identit, de faire croire au monde extrieur que le site www.microsoft.com a chang. Naturellement, ce nest quun exemple.

Les paramtres Flags et Offset


Ces valeurs 16 bits contrlent un aspect du routage des paquets IP intressant et comprenant peut-tre plus de dfauts. Ces paramtres sont utiliss chaque fois quun grand paquet doit tre transmis par un systme intermdiaire sur une liaison dont le MTU est infrieur la taille du paquet. Dans un tel cas, la taille du paquet nest pas "adapte" au mdium en ltat. titre dexemple, un metteur reli Ethernet peut envoyer un paquet dont la taille est de 1 500 octets, ce qui est souvent le cas. Toutefois, si le premier routeur que le paquet rencontre tablit un pont entre le LAN local et un modem DSL, un problme se pose : le MTU courant dune liaison DSL (elle-mme souvent une trange combinaison dencapsulations sur dautres protocoles) est de 1 492 octets. Donc, un paquet de 1 500 octets nest alors pas adapt. tant donn la grande varit de liaisons qui permettent le fonctionnement dInternet de travail, il sagit dun problme grave. Pour le rsoudre, on divise (fragmente) le paquet IP ou, plus prcisment, sa charge en plusieurs paquets IP distincts et on ajoute des informations qui permettent aux destinataires de rassembler la charge avant de la transmettre aux couches suprieures. On obtient donc un nouvel ensemble de paquets adapt cette liaison en particulier. Un offset dni sur chaque fragment indique la faon dont

148

Dans la jungle

chaque partie de la charge doit tre insre par le destinataire nal pour reconstituer le paquet original. Tous les fragments sauf le dernier disposent galement du ag spcial MF (more fragments) dans leurs en-ttes. Lorsque le systme de destination reoit un paquet avec un ag MF ou un paquet dans lequel le champ Offset du fragment est dni mais sans ag MF (ce qui indique quil sagit du dernier segment dun paquet fragment), le systme de destination sait quil doit allouer une zone de mmoire vide pour rassembler le paquet original et attendre tous les autres morceaux restants avant de poursuivre le traitement du paquet. La Figure 9.4 montre le processus de fragmentation et de rassemblage au cours duquel un paquet surdimensionn est dabord scind en deux morceaux puis compltement rassembl par le destinataire, en dpit du fait que les morceaux arrivent dans le dsordre. Bien que ce processus fonctionne, il est quelque peu inefcace. Il faut du temps pour que les systmes fragmentent et rassemblent le trac, et les derniers morceaux ne transportent souvent que peu de charge (uniquement les quelques octets qui nont pas leur place sur un autre type de liaison). Il vaut mieux bien sr que lmetteur soit en mesure de dterminer le plus faible MTU entre lemplacement et la destination des paquets (galement appel path MTU, abrg en PMTU) et de construire les paquets en consquence. Malheureusement, le protocole IP noffre pas de faon exible et propre dimplmenter cela, mais cela na pas empch des chercheurs de trouver un hack. Selon ce hack, un systme qui implmente la dcouverte PMTU place un ag DF (dont fragment, ne pas fragmenter) sur lensemble du trac sortant. Si un routeur ne peut pas transmettre un paquet DF sans le fragmenter, il doit alors le rejeter et envoyer un message ICMP appropri qui indique : "Le paquet doit tre fragment, mais paramtr DF." Lexpditeur, la rception dun tel message, peut ajuster ses attentes en consquence, mettre en cache la dcouverte, et poursuivre avec des paquets dont la taille est plus approprie.
NOTE Cette pratique, dnie dans RFC1191 3, suppose que le cot du renvoi du paquet abandonn est prfrable la dgradation constante des performances cause par la ncessit de la fragmentation. Cette technique, cependant, est galement trs controverse, car tous les priphriques nenvoient pas les notications ICMP adquates puisque cette fonctionnalit ntait pas exige dans le pass. Ainsi, en activant le PMTUD (la dcouverte PMTU), un expditeur peut tre dans lincapacit de communiquer avec certains sites ou les transferts de chiers, tre bloqus, ce qui est extrmement difcile diagnostiquer.

Chapitre 9

Un accent tranger

149

Relais avec fragmentation

En-tte IP ID #1234 Fragment 1

CHARGE Unit MTU

UTILE

Paquet reu

Fragment 2

En-tte IP ID #1234 MF

CHARGE

En-tte IP ID #1234

UTILE

Offset non nul

Relais avec assemblage En-tte IP CHARGE En-tte IP Arrive en second UTILE

Arrive en premier Tampon de rassemblage ID #1234 CHARGE

UTILE

Rassemblage termin : Offset non nul mais aucun flag MF reu, plus de trous dans la mmoire tampon de rassemblage.

Traitement de la couche 4

Figure 9.4
Le processus de fragmentation et de rassemblage des paquets.

Numro didentication
Le numro didentication (ID) est une valeur 16 bits qui diffrencie les paquets IP lors de la fragmentation. Sans cet IP ID, si deux paquets sont fragments simultanment, les fragments des deux paquets seraient altrs, interchangs ou du moins srieusement endommags lors du rassemblage. Les IP ID identient de faon unique une mmoire tampon de rassemblage diffrente pour chaque paquet. Pour cela, sa valeur est souvent simplement incrmente chaque

150

Dans la jungle

paquet envoy ; le premier paquet envoy par un systme a un IP ID de 0, le deuxime, un IP ID de 1, et ainsi de suite.
NOTE Sur les systmes o le PMTUD est activ, les identiants IP uniques ne sont pas ncessaires puisque, en thorie, la fragmentation ne se produit pas et que la valeur est souvent xe 0 (mme si cela nest sans doute pas particulirement une bonne ide, car certains priphriques assez courants ont tendance ignorer le ag DF).

Somme de contrle
La somme de contrle est un nombre de 16 bits qui fournit une mthode de dtection simple des erreurs. La somme de contrle doit tre recalcule sur chaque saut (car des paramtres comme le TTL changent) et est donc conue pour utiliser un algorithme rapide, ce qui nest pas particulirement able. Bien que de nos jours le terme "somme de contrle" nait de somme que le nom (en utilisant des algorithmes comme CRC32 ou des fonctions de raccourci scurises par chiffrement), la somme de contrle IP est en fait une somme, ou une variante de celle-ci, couple des ngations bit bit* injectes pour que la somme de contrle ait moins de chances de rester correcte en cas derreur de transmission.

Au-del du protocole IP
Une consquence des nombreuses dcisions de conception prises lors de llaboration dIPv4 est labsence dune garantie de abilit raisonnable, mme si le rseau lui-mme se comporte de manire able. Bien que les numros IP ID soient destins minimiser les risques de collisions lors du rassemblage, leur taille relativement faible de 16 bits (ce qui autorise 65 536 valeurs possibles) entrane lapparition de problmes lorsque deux paquets ayant des IP ID identiques sont rassembls simultanment. En outre, les sommes de contrle des en-ttes IP ne sufsent tout simplement pas fournir une protection de lintgrit able ; mme si cela est peu probable, un changement alatoire dans un paquet pourrait toujours donner une somme de contrle identique. De plus, si le rseau connat une panne, il nexiste aucun moyen de savoir quelles donnes ont disparu, mme si lchec est simplement d une brve surcharge dun seul composant du rseau.
* Techniquement parlant, bien que cela nait aucune importance particulire pour le sujet qui nous concerne, la somme de contrle est constitue en calculant le complment 1 sur 16 bits de la somme des complments 1 des octets de len-tte et des donnes pris deux par deux (mots de 16 bits).

Chapitre 9

Un accent tranger

151

Enn, IP ne fournit aucun moyen de vrier lexpditeur dun message et estime simplement que le vritable expditeur est celui gurant dans len-tte IP. Les fonctionnalits de abilit et dintgrit sont laisses aux protocoles de plus haut niveau au besoin (et, le plus souvent, cela est ncessaire). Par consquent, des protocoles de plus haut niveau au sommet de lIP sont ncessaires. TCP et, dans une moindre mesure, UDP fournissent non seulement lindispensable protection du trac mais permettent galement lutilisateur de dnir le destinataire (ou lexpditeur) autrement quen pointant simplement vers un systme. Tandis que len-tte IP contient uniquement assez dinformations pour router le trac entre deux systmes, mais pas assez pour dcider quelle application ces informations doivent tre livres, UDP et TCP vont un peu plus loin : ces protocoles agissent dans le terminal et indiquent au destinataire vers quelles applications diriger les donnes entrantes.

Le protocole UDP
Comme le dnit le document RFC768 4, UDP (User Datagramm Protocol, ou protocole de datagramme utilisateur) fournit un minimum de fonctionnalits supplmentaires au protocole IP. UDP ajoute un mcanisme pour la livraison locale des donnes, mais son manque de abilit reste trs proche du niveau de la couche sous-jacente (ainsi que de sa surcharge faible). Lutilisation dUDP pour les communications peut tre assimile un service tlphonique dans lequel les mots sont parfois intervertis ou les phrases, tronques et pour lesquelles il nexiste pas didentiant able de lappelant. Mais le cot dun appel est faible et vos appels sont traits rapidement. Len-tte UDP (voir Figure 9.5) possde un minimum de caractristiques et est relativement simple. Il introduit un petit ensemble de paramtres qui peuvent tre interprts par le systme de destination et utiliss pour router un paquet vers une application spcique ou pour vrier que la charge des paquets nait pas t altre en cours de route.
0 4 8 Port source Longueur 12 16 20 24 Port destination Somme de contrle 28 32

Donnes

Figure 9.5
La structure de len-tte UDP.

152

Dans la jungle

UDP sutilise pour les requtes simples, dans des situations pour lesquelles il nest pas ncessaire de conserver ltat des informations et quand les performances et le cot gnral sont plus importants que la abilit. UDP est par exemple couramment utilis pour la rsolution du nom des DNS (systmes de noms de domaines), les protocoles rseau damorage et dautoconguration simples (BOOTP), les technologies de lecture en continu de ux audio ou vido, les systmes de partage de chiers en rseau, et ainsi de suite.

Introduction ladressage des ports


UDP introduit la notion de port source et de port de destination en plus des adresses sources et de destination, un concept quil partage avec TCP (protocole plus avanc de la quatrime couche que je vais aborder ensuite). Un port est un certain nombre de 16 bits qui est choisi par une application dun terminal prt envoyer ou recevoir des donnes ou qui lui est assign par le systme dexploitation (appel port phmre). Un port est un moyen de router les donnes dune application ou dun service spcique sur un systme multitche an que des communications simultanes puissent se produire entre les programmes. Par exemple, une application serveur peut dcider dcouter le port 53 pour les requtes entrantes, tandis quun systme de journalisation des installations peut couter le trac adress au port 514. Les ports permettent aux clients de communiquer ces processus en mme temps. De plus, lorsque limplmentation prend en charge une sparation nette entre les paires de ports source et de destination, il est possible que deux clients utilisent des ports source phmres diffrents pour communiquer avec le mme service (le port 514, par exemple) en mme temps, sans que cela nentrane de problmes pour savoir quelle application client doit obtenir quelle rponse du service distant. Pour que le systme de destination fasse la diffrence entre les communications adresses une application particulire et les livre comme prvu, lexpditeur doit indiquer le numro du port de destination dans tout le trac quil met. Lexpditeur dnit un port source diffrent pour chaque application client an que la rponse du serveur soit ensuite livre au bon composant. Dans ce schma dadressage du port, un quadruplet de valeurs (hte source, port source, hte de destination, port de destination) est utilis pour assurer une bonne sparation du trac et une bonne gestion des sessions pour les connexions simultanes qui sont mises ou reues sur un systme spcique. Cette conception signie que prs de 65 535* clients peuvent se connecter au monde extrieur partir dune seule adresse IP et que
* Ce nombre slve en fait 65 536; mais le port numro 0 ne devrait pas tre utilis. Le systme dexploitation et ses applications peuvent le permettre, videmment, et donc tre en contradiction avec la norme.

Chapitre 9

Un accent tranger

153

65 535 services au maximum peuvent couter une seule adresse IP un moment donn, du moins sans certaines astuces subtiles (cette limite ne risque pas davoir de consquences dsastreuses de sitt).

Rsum de len-tte UDP


Len-tte UDP illustr la Figure 9-5 suit len-tte IP et prcde les donnes vritables de lutilisateur dans les paquets UDP. Il se compose de quelques champs : port source et port de destination (16 bits chacun), longueur du paquet, et somme de contrle 16 bits charge dune vrication supplmentaire de lintgrit du paquet reu. Et, maintenant, quelque chose de compltement diffrent.

Les paquets TCP


Le protocole TCP (Transmission Control Protocol), dni dans le RFC 793 5 et dont len-tte est illustr la Figure 9.6, a pour but de fournir une mthode able de contrle des erreurs lors de ltablissement dune conversation entre deux systmes. Lutilisation de TCP est plus approprie quUDP pour toutes les applications, lexception de celles qui doivent changer plus que des messages simples et courts. Mme si techniquement la connexion TCP (une couche virtuelle dun point de vue de lapplication) implmente des datagrammes IP distincts en traversant le rseau, elle autorise un mode de communication trs proche de celui dune conversation tlphonique ordinaire. Contrairement au trac UDP, TCP garantit que le destinataire reoit toujours les donnes telles quelles ont t envoyes (ou, si la rcupration dune erreur nest pas possible, que la conversation est entirement abandonne). Dans des conditions normales, on peut galement tre sr de lidentit de lappelant, mais cet atout saccompagne dun cot plus lev et dune diminution des performances. Avec le protocole TCP, les deux systmes dextrmit commencent par initialiser une connexion en utilisant un algorithme appel poigne de main en trois temps. En rgle gnrale, ils utilisent pour cela des paquets spciaux vides (ils ne contiennent que les enttes mais aucune charge), se mettent daccord sur lobjectif, conrment leur identit lautre et sentendent sur les numros de squence et dacquittement initiaux. Ces numros (un ensemble de valeurs 32 bits) assurent une transmission able et transparente, car ils sont incrments quand les donnes sont envoyes. Cela permet au destinataire de mettre en le dattente les paquets entrants dans le bon ordre et de dterminer si une quelconque partie des donnes est manquante.

154

Dans la jungle

0
Bits d'acquittement (ACK) Bits envoyer de suite (PSH) Bits urgents (URG)

3
Bit de synchronisation (SYN) Bit de rinitialisation (RST) Bit de fin

(FIN)

8 Port source

12

16

20

24 Port destination

28

32

Numro de squence Numro d'acquittement Offset des donnes Rserv Bits de contrle Fentre Pointeur d'urgence Donnes d'option 1

Somme de contrle Type d'option 1 Longueur d'option 1

Donnes d'option 1

Type d'option 1

Longueur d'option 1 Remplissage

Donnes

Figure 9.6
La structure de len-tte TCP.

Flags de contrle : la poigne de main TCP


Une session TCP commence quand un systme distant exprime le dsir de se connecter un port spcique dun ordinateur de destination. Le systme distant envoie un paquet vide avec un ag SYN (autrement dit, un bit est dni dans len-tte) et un numro de squence initial dans son en-tte. Aprs rception de ce paquet, toutes les rponses doivent mentionner le numro de squence an dtre honores. Si lordinateur de destination nenvoie pas la bonne rponse dans un dlai raisonnable, le paquet est envoy

Chapitre 9

Un accent tranger

155

nouveau, jusqu ce que la livraison russisse ou que lexpditeur dcide que sufsamment de temps sest coul et quil abandonne la connexion. Ce numro de squence garantit que la rponse provient bien du destinataire, et non dune personne tierce qui sait quune communication va tre tablie et qui cherche lintercepter. Le numro de squence assure galement que la rponse est non pas un paquet gar ou mal rout dune session antrieure qui parvient nalement destination mais bien une rponse cette requte particulire de lexpditeur (avec des numros 32 bits et 4 294 967 296 valeurs possibles, le risque de collision est considrablement infrieur quavec les numros 16 bits utiliss par les IP ID, ce qui minimise les risques derreur et rend tout fait improbable quune personne extrieure parvienne les deviner). Le destinataire est cens rpondre une demande SYN avec un paquet similaire adress lexpditeur sur le mme port source. Ce paquet doit contenir un ag RST (l encore, un autre bit dans les en-ttes) pour indiquer quil nest pas dispos tablir une session (aucun programme nest prt rpondre aux connexions sur ce terminal). Ce paquet doit galement citer le numro de squence original dans sa rponse. ventuellement, dans le cas peu courant o le destinataire souhaite rellement tablir une connexion avec un inconnu, sa rponse doit tre construite de la mme faon mais comprendre les deux ags SYN et ACK pour indiquer quil accepte la requte. Il doit galement inclure le numro de squence quil attend partir de ce moment dans toutes les rponses appartenant cette session. Dans la dernire partie de la poigne de main, lmetteur envoie un seul paquet ACK pour sassurer que les deux parties connaissent les numros de squence et dacquittement quelles se sont changes prcdemment et quelles sont synchronises pour la transaction. En supposant que leur communication a atteint ce stade, les deux systmes dextrmit peuvent raisonnablement estimer que lmetteur et le rcepteur sont bien ce quils prtendent tre. Pourquoi ? Parce que chacun dentre eux peut observer le trac qui lui est adress. Dans le cas contraire, si un systme dextrmit usurpait ladresse IP an dtablir une connexion au nom de quelquun dautre, il naurait aucune ide du nombre inclure dans sa rponse lautre partie (et cette dernire serait trs surprise de voir que quelquun essaie de lui envoyer des paquets SYN+ACK ou ACK non sollicits). Ce protocole de la poigne de main limine le risque quune personne extrieure usurpe une identit mais il est toujours possible quune partie privilgie et hostile se trouve sur un chemin lgitime entre les systmes (mme si cela a moins de chance de se produire compar au spoong en aveugle).
NOTE Mme si le problme de lutilisation de numros de squence difciles prdire ntait lorigine pas considr comme un problme alors que de nombreux systmes utilisaient un simple gnrateur incrmentiel, la possibilit dtablir en aveugle une session en usurpant une poigne de main TCP depuis une source particulire ou en injectant des

156

Dans la jungle

donnes dans des connexions dj tablies est devenue un peu problmatique avec le temps*. On considre maintenant comme ncessaire de slectionner des numros de squence TCP initiaux avec soin an quune machine tmoin ne puisse pas prdire ce que sera la prochaine rponse du systme un paquet entrant, et plusieurs approches ont t labores pour faire face ce problme 6.

Une fois quune poigne de main est termine, les parties peuvent changer des donnes, en reconnaissant mutuellement leurs numros de squence chaque fois ; les paquets sur lesquels les numros de squence dpassent la taille de la "fentre" autorise sont tout simplement ignors. Ces numros sont ensuite galement rgulirement incrments pour tenir compte de la quantit de donnes envoyes jusque-l, ce qui permet de traiter les paquets reus dans le bon ordre, mme sils arrivent dans le dsordre. Pour assurer la abilit, lorsquune partie des donnes nest pas acquitte dans un dlai raisonnable, une retransmission du paquet (ou des paquets) doit avoir lieu. La n dune session survient lorsquun paquet FIN comprenant le bon numro dacquittement est reu par lune des parties. Si, nimporte quel moment, lun des systmes veut brusquement mettre n la session (parce que, selon lui, il ny a rien communiquer, la session a expir, ou quune partie a gravement viol la convention), un paquet RST est envoy. La Figure 9-7 ( gauche) illustre la russite dune poigne de main TCP lgitime. La partie droite de la gure illustre lchec dune attaque par IP spoong dans laquelle lattaquant cre une session au nom dune machine victime qui na pas lintention dchanger des donnes avec la cible. Lattaquant ne peut pas voir ou prvoir la rponse envoye au systme sur le compte duquel il essaie dagir et ne peut donc pas terminer la poigne de main ni encore moins accomplir un rel change de donnes au sein de la session TCP. Comme indiqu, TCP fournit une protection raisonnable contre les problmes de abilit du rseau et est donc plus adapt pour les communications ordonnes fondes sur les sessions. Mais la ncessit de mener bien une poigne de main et lobligation pour les deux terminaux de garder le contrle des informations pour la connexion entranent une surcharge supplmentaire. Le tribut payer pour maintenir cet tat est lev car il devient ncessaire pour chaque connexion de suivre la trace des numros de squence, de ltat actuel du ux (phase de la poigne de main, phase dchanges des donnes, phases de clture), de conserver une copie de toutes les donnes envoyes mais pas encore acquittes au cas o il serait ncessaire de les renvoyer, et ainsi de suite.
* Kevin Mitnick, un des pirates au chapeau noir les plus clbres et controverss, a compromis lordinateur de Tsutomu Shimomura en usurpant lidentit dun de ses postes de travail, ce que M. Tsutomu a assez peu apprci et ce qui a entran larrestation de Kevin.

Chapitre 9

Un accent tranger

157

En raison de leur cot sur la mmoire et les performances, les implmentations de pile TCP sont un vecteur dattaque par dni de service courant.
Poigne de main lgitime Cas simple d'usurpation d'identit

Attaquant
Envoi du paquet SYN avec un numro de squence unique

Client

Serveur
L'attaquant usurpe l'identit de l'adresse IP du client pour le tromper ou exploiter la confiance du serveur

Client
Envoi du paquet SYN+ACK avec un numro de squence unique et rptition du numro de l'autre partie

Serveur

Client

Serveur

??

Attaquant

Client

Envoi du paquet ACK rptant le numro de squence du serveur

Serveur
Le serveur rpond l'adresse IP du client ; Client l'attaquant ne peut pas voir Serveur le numro de squence choisi par le serveur et ne peut donc pas usurper un paquet ACK valide

Les deux changent des paquets ACK normaux Client avec la charge, incrmentent Serveur leurs numros de squence respectifs pour tenir compte de la quantit de donnes transfres et retransmettent si ncessaire

Client

Un des deux envoie un paquet FIN pour clturer la session

Serveur

Figure 9.7
Une poigne de main TCP russie et une tentative dusurpation didentit classique qui choue.

158

Dans la jungle

Autres paramtres de len-tte TCP


Dautres paramtres TCP contrlent galement des aspects importants de linterprtation et de la livraison de paquet. Ils nous seront utiles plus tard, quand nous essaierons dobtenir des informations sur lexpditeur en regardant juste les paquets de donnes quil fournit. La Figure 9-6, plus tt dans ce chapitre, fournit la liste complte des champs TCP.

Ports source et de destination


Ces valeurs 16 bits identient lorigine et la destination logique sur les machines source et de destination. Ils sont semblables aux paramtres des ports source et de destination utiliss par le protocole UDP, bien que lespace des ports UDP et TCP soit spar au niveau du systme (autrement dit, une application peut couter le trac UDP sur le port 1234 tandis quune autre application coute le mme port dans lespace TCP). La circulation est dirige conformment la spcication du protocole dans les en-ttes IP.

Les numros de squence et dacquittement


Ces valeurs 32 bits assurent lintgrit de la session. Un numro de squence est la valeur que lmetteur attend que le destinataire lui renvoie. Un numro dacquittement est la valeur renvoye lmetteur et naura de sens que si le ag ACK est dni.

Offset des donnes ( ne pas confondre avec le paramtre Offset du fragment IP)
Linformation dans ce champ indique o len-tte se termine et o commence la charge dans le paquet. Comme pour les en-ttes IP, la longueur de len-tte TCP peut varier si certains paramtres de longueur variable lui ont t annexs. Cette information rend facile de passer directement aux donnes effectives, sans devoir relire toutes les informations den-tte.

Flags
Ces valeurs 8 bits dnissent des proprits spciales dun paquet. Chacun des bits dsigns de ce champ reprsente un ag unique et peut tre activ ou dsactiv indpendamment ; en tant que tel, les ags TCP peuvent tre arbitrairement recombins. Les ags primaires (SYN, ACK, RST et FIN) dnissent la manire dont le paquet doit tre interprt dans une session TCP, comme indiqu ci-dessus. Les ags secondaires contrlent certains aspects de la livraison de la charge et dautres fonctionnalits tendues, comme la notication de congestion, mais ne sont pas utiliss pour modier ltat de la connexion elle-mme.

Chapitre 9

Un accent tranger

159

NOTE Bien que les ags puissent tre combins volont, de nombreuses combinaisons possibles sont tout simplement illgales ou fausses (par exemple, SYN+RST na pas de sens et nest pas autorise dun point de vue formel). Seules certaines combinaisons sont valables pour la poigne de main et le traitement normal des donnes. Comme les systmes rpondent diffremment aux combinaisons illgales de ags, lenvoi de faux paquets comprenant des ags inhabituels est un mcanisme actif couramment utilis pour dtecter le systme dexploitation.

Taille de la fentre
Cette valeur 16 bits contrle la quantit maximale de donnes qui peut tre envoye sans attendre un paquet dacquittement. Une valeur plus leve permet denvoyer plus de donnes la fois, sans avoir attendre un accus de rception, mais peut pnaliser les performances si une partie des donnes est perdue dans le transfert ou nest pas acquitte et doit tre de nouveau envoye.

Somme de contrle
Cette mthode 16 bits simple protge lintgrit des donnes de la quatrime couche, semblable au mcanisme de somme de contrle utilis dans les en-ttes UDP et IP.

Pointeur durgence
Ce champ est interprt uniquement par le destinataire lorsque le ag secondaire URG est plac dans un paquet. Si URG nest pas dni, la valeur spcie dans cette partie de len-tte est tout simplement ignore. Ce ag indique que lexpditeur demande au destinataire de relayer un message particulier lapplication qui gre le ux, probablement la suite dune situation "urgente", si bien que le paquet est insr dans le ux logique une position prcdant celle quelle aurait d normalement avoir ; loffset exact est contrl par la valeur du pointeur de donnes urgentes. Ce mcanisme est rarement utilis dans les communications normales.

Options TCP
Le bloc doptions de longueur variable situ la n de len-tte permet de spcier des paramtres supplmentaires pour le paquet. Dans certains cas, il sera vide (longueur zro), mais il est plus communment utilis pour implmenter de nouvelles extensions du protocole qui ont t conues plus tard, sans perturber les implmentations plus anciennes qui ne peuvent pas les comprendre. Le bloc doptions est conu de telle sorte que les systmes qui ne reconnaissent pas une option spcique peuvent lignorer sans risque. Les options les plus populaires sont les suivantes.

160

Dans la jungle

Longueur maximale du segment (MSS)


Cette valeur 16 bits est gale lunit de transfert maximale sur le rseau de lexpditeur, moins la taille des en-ttes de la couche infrieure. Elle reprsente la longueur maximale de paquet qui peut tre renvoye au destinataire sans entraner de fragmentation en cours de route. Lexpditeur utilise le paramtre MSS pour garantir des performances optimales lorsque le destinataire retourne de grandes portions de donnes qui, dans le cas contraire, ncessiteraient dtre fragmentes et donc surchargeraient la bande passante. Malheureusement, loption MSS est dnie par le terminal en fonction de sa connaissance de la taille des paquets que les rseaux immdiatement voisins peuvent grer ; il ne fait rien pour viter le problme courant de la fragmentation qui se produit sur les systmes intermdiaires (do la ncessit dimplmenter la dcouverte PMTU au niveau IP, comme nous lavons dit prcdemment).

Dcalage de la fentre
Cette valeur de 8 bits dcrite dans RFC1232 7 tend la porte du champ taille de fentre initialement dni dans len-tte TCP. Lexprience a montr que lacquittement de chaque 64 kilo-octets de donnes (la valeur maximale du paramtre taille de la fentre de 16 bits) peut crer un goulet dtranglement lors du transfert de grandes quantits de donnes, comme des chiers multimdias, sur des liaisons haut dbit dont la latence est leve. Le redimensionnement de la fentre permet dtendre la taille de la fentre et autorise donc lenvoi de plus de donnes sans attendre dacquittement. Cela acclre le transfert des donnes mais peut aussi exiger que davantage de donnes soient retransmises lorsquun seul paquet est manquant.

Options dacquittement slectif (RFC2018 8)


En utilisant des tailles de fentre plus grandes, la perte dun seul paquet ncessite la retransmission de lensemble du groupe de donnes qui ne sont pas encore acquittes, ce qui reprsente un terrible gaspillage de bande passante. Pour viter cela, un mcanisme dacquittement slectif des portions de donnes a t conu. Les terminaux commencent par dclarer leur capacit et leur volont dimplmenter cette fonctionnalit en spciant une option dacquittement slectif SACK puis acquittent des blocs de donnes dans le dsordre en utilisant loption dacquittement slectif dans les en-ttes. Limplmentation de cette technique peut considrablement amliorer les performances, mais au prix dune surcharge certaine de la mmoire et des oprations de traitement des donnes.

Chapitre 9

Un accent tranger

161

Loption Timestamp (deux valeurs 32 bits)


Il sagit dune autre extension de RFC1232 destine amliorer les performances. Ce mcanisme mesure le temps coul entre lenvoi et le retour des donnes (gnralement choisi pour correspondre au temps du systme ou son uptime), ce qui permet chaque systme dextrmit destimer le temps ncessaire aux allers-retours du ux. Le principal avantage de cette option est que lexpditeur peut mesurer le temps typique dont un paquet a besoin pour atteindre sa destination et donc procder une retransmission TCP plus tt sil ny a pas de rponse. Loption timestamp peut galement tre utilise pour empcher les collisions des numros de squence (PAWS, Protection Against Wrapped Sequence [Numbers]), par exemple lorsquun paquet envoy depuis longtemps parvient destination aprs que plusieurs gigaoctets de donnes ont t changs et aprs le numro de squence.

EOL
Cette option doit tre interprte comme la n des options ; elle indique au destinataire de ne pas traiter les donnes suivantes comme faisant partie de len-tte. Comme la taille de len-tte TCP est dnie dans des units plus longues quun seul octet, un espace inutilis peut rester aprs avoir plac toutes les options avant le dbut des donnes, mais avant le dbut de la charge des donnes (ce qui nest possible que sur une limite de 4 octets). Loption EOL peut tre utilise pour empcher le destinataire de tenter danalyser ces donnes.

Loption NOP
Cette option signie "ne rien faire", et elle est tout simplement ignore par le destinataire. Lexpditeur peut et doit utiliser des options NOP dans un paquet pour le remplir et assurer un bon alignement de certaines options multi-octets (qui doivent tre alignes en raison des contraintes de performances et de larchitecture de certains processeurs*).

* "Doit" comme dans "ncessaire pour assurer le traitement appropri". Certains processeurs ont des pnalits de performances lors de laccs des structures de donnes multi-octets qui ne sont pas alignes sur 32 ou 64 bits ; dautres ont besoin quelles soient alignes de cette manire, sinon ils provoquent une exception fatale (pige de lexcution) et refusent deffectuer une opration. Un metteur malveillant peut placer dlibrment des donnes mal alignes dans la mmoire tampon et esprer que le systme du destinataire se bloque la rception de ce paquet. Bien sr, un systme dexploitation sain contrle cela en premier ou essaie de copier les donnes de loption dans une rgion correctement aligne avant de les traiter. Cependant, le bon sens dun systme ne doit pas tre tenu pour acquis.

162

Dans la jungle

T/TCP (transaction TCP)


Cette extension sotrique offre la prise en charge de sessions virtuelles distinctes (transactions) dans le cadre dune session TCP tablie. Cela permet dviter la surcharge provoque par la ncessit de mener bien une poigne de main chaque fois que vous voulez effectuer une opration particulire avec des services ponctuels (une approche qui est plus courante si une application veut effectuer le traitement dun certain nombre de transactions distinctes avec un serveur. Cette extension est rarement utilise, et elle est surtout utile pour certains systmes de base de donnes (voir RFC1644 9).

Les paquets ICMP (Internet Control Message)


Les paquets ICMP (voir RFC792 10) sont utiliss pour envoyer des notications et des informations de diagnostic pour dautres types de protocoles. Logiquement considrs comme faisant partie de la couche trois, les paquets ICMP sont transports comme une charge de paquets IP et, ce titre, ne sont pas diffrents de la charge de la couche quatre. ICMP ninduit aucune nouvelle donne de lespace utilisateur entre les extrmits mais offre plutt une mthode de signalisation simple pour le protocole IP. La Figure 9.8 montre la structure de len-tte ICMP.

4 Type

12 Code

16

20

24 Somme de contrle

28

32

Corps du message (pour les messages d'erreur, portion encapsule du datagramme IP original)

Figure 9.8
La structure de len-tte ICMP.

Diffrents messages sont envoys en utilisant ICMP en rponse au trac TCP ou UDP, gnralement pour indiquer quun paquet en particulier ne peut pas tre livr, que le transfert a expir ou a t rejet pour une raison quelconque. Plusieurs types dICMP peuvent tre envoys spontanment, comme des messages de routeur, des requtes "cho" (ping), et ainsi de suite.

Chapitre 9

Un accent tranger

163

Comme pour les paquets UDP, len-tte ICMP est simple. Il se compose des champs suivants.

Type de message
Ce champ de 8 bits contient un message gnral sur la cause de lenvoi de ce paquet (comme "destinataire inaccessible"). Ce champ peut galement porter un message indpendant, mais cet usage est peu frquent.

Code
Cette valeur de 8 bits dcrit le problme exact, si possible. Cela dpend du type de message et peut dcrire ltat en dtail ("le rseau nest pas accessible", "la machine nest pas accessible", "le port est inaccessible", "communication avec le rseau interdite"). Il nest pas clairement indiqu quel niveau de dtails doit tre inclus dans le champ Type de message ou dans le champ Code.

Somme de contrle du paquet


Ce champ vrie que le paquet na pas t endommag (comme dans UDP et TCP). Len-tte dun paquet ICMP est assez simple et ne fournit pas de lui-mme sufsamment dinformations pour rsoudre le problme quil tente de signaler ou pour identier le type de trac qui a gnr ce message. Cette information est transmise dans la charge du paquet et suit immdiatement len-tte dun paquet. Bien que la charge dun paquet ICMP dpende du message, elle cite gnralement le dbut du paquet qui a dclench la raction. Le destinataire peut ainsi dterminer quelle communication correspond le message, et quelle application indiquer ce problme. Il peut galement lutiliser pour garantir que lexpditeur du paquet ICMP se trouve bien sur le chemin lgitime du rseau entre les deux machines et non en dehors. Sinon lexpditeur ne serait pas en mesure de voir les donnes effectivement changes (il ne pourrait en particulier pas dterminer avec exactitude le numro de squence dans les paquets TCP). Cela permet dviter que des passants malveillants envoient de faux messages indiquant des problmes de connectivit et de contraindre lun des terminaux abandonner une connexion, du moins en thorie. Naturellement, il peut tre trs difcile de distinguer le bon grain de livraie, car certains systmes sont connus pour altrer ou mal citer les donnes dorigine.

164

Dans la jungle

Le ngerprinting passif
Quel rapport la conception de ce protocole a-t-elle vis--vis de la vie prive des utilisateurs ? La rponse est un peu trange : bien que la conception des paquets IP, TCP, UDP et ICMP soit gnralement assez stricte et que les informations transmises dans ces enttes ne soient pas particulirement verbeuses, les diffrentes faons quutilise chaque systme dexploitation pour ajouter des informations ces paquets permettent non seulement de connatre le type de systme dexploitation utilis mais galement la version spcique de celui-ci sur une machine en particulier. Ces diffrences sont particulirement videntes dans le cas dun ux qui nest pas examin clairement et de faon approprie dans les spcications ou qui nest pas analys dans les routines normales de vrication de la qualit des paquets (lorsque par exemple un des paquets comprend une combinaison illgale de ags comme SYN+RST). Des recherches intensives destines diffrencier les systmes en testant par saturation leur implmentation ont permis de conclure quil ny avait pas deux implmentations IP identiques dans les systmes dexploitation. Il est souvent possible dutiliser une analyse sophistique pour faire la distinction entre deux systmes identiques fonctionnant sur des plates-formes lgrement diffrentes ou entre des versions lgrement diffrentes dun systme. Des outils danalyse active comme le scanner de port NMAP, de Fyodor, qui permet dobtenir une empreinte TCP/UDP ou le ngerprinting ICMP Xprobe dOr Arkin, exploitent les dfauts ou les bizarreries dans chaque systme. Pour identier le genre et la version du systme dexploitation, ils envoient diffrents types de paquets malforms ou inhabituels puis mesurent et analysent les rponses que ceux-ci dclenchent.

Examiner les paquets IP : les origines


Mais les techniques de prise dempreintes du systme ne sarrtent pas ici. En fait, saturer le systme distant par lenvoi des donnes suspectes et facilement dtectables constitue sans doute la manire la moins subtile daborder ce problme. Au dbut de lanne 2000, deux personnes de Subterrain Security Group, connues seulement par leurs surnoms bind et aempirei, ont dmontr quil est souvent possible dobtenir des informations sur une entit distante sans procder aucune communication intrusive avec celle-ci ou, dailleurs, sans initier aucune communication (leur code et leurs dcouvertes ont dabord t prsents lors de DefCON 8, une convention lgrement surestime de hackers qui sest tenue en 2000). Leur technique, aujourdhui appele ngerprinting passif, consiste observer passivement (sic) le trac lgitime occasionnel en provenance dun systme distant. Bien que les mesures que cette technique utilise sont beaucoup plus subtiles et limites que celles dployes par Fyodor et ses prdcesseurs, de nombreuses recherches ( laquelle je suis er davoir apport plusieurs contributions) ont fourni sufsamment dobservations pour atteindre un niveau assez tonnant de prcision.

Chapitre 9

Un accent tranger

165

Pour mieux comprendre ce que lon peut savoir partir dun seul paquet reu sur le rseau, examinons les mesures sur lesquelles nous pouvons fonder le ngerprinting passif et ce quelles peuvent nous apprendre de lautre partie. Pour cela, nous allons dissquer un des types les plus courants de tracs sur Internet : un paquet TCP lgitime encapsul dans un datagramme IP.

Time to Live initial (couche IP)


Rappelez-vous que le champ TTL contrle le nombre de systmes par lequel un paquet peut passer avant dtre considr comme impossible livrer et donc supprim. La valeur TTL du paquet est diminue chaque fois quelle passe un routeur jusqu ce que le TTL atteigne zro et que le paquet soit supprim. Comme la manire dont ce champ doit tre x par lexpditeur nest soumise aucune obligation stricte, de nombreux dveloppeurs de pile IP se reposent sur le hasard pour dnir la valeur par dfaut de leur systme favori. Mme si un spectateur passif ne peut pas dterminer avec exactitude la valeur initiale du paquet sans effectuer de tests supplmentaires (car le paquet a srement travers plusieurs routeurs avant dtre observ), il sait que cette valeur initiale doit tre suprieure ltat quil observe. En outre, la distance moyenne entre deux ordinateurs sur Internet ne dpasse pas quinze sauts en gnral, et il est rare que deux systmes soient plus de trente sauts de distance. Par consquent, on peut sans risque supposer que la valeur dorigine se situe quelque part entre le TTL observ et le TTL observ + 30 (et quelle est infrieure 256, bien sr). Comme nous connaissons les valeurs initiales utilises par les systmes dexploitation les plus courants, nous pouvons savoir le genre du systme dexploitation que lexpditeur est susceptible dutiliser (Linux et les systmes drivs de BSD sen tiennent habituellement une valeur de 64 ; les dveloppeurs Windows utilisent une valeur de 128, et certains vrais descendants dUnix utilisent une valeur de 255). Ensuite, une fois dni le systme dexploitation qui a envoy le paquet, en se fondant sur ce point et dautres facteurs, nous pouvons aussi tre en mesure de dterminer quelle distance se trouve lexpditeur du point dobservation, en soustrayant le TTL observ de la valeur connue pour avoir t utilise au dpart. En comparant cette valeur avec la distance son rseau effectivement observe auparavant ou connue par dautres moyens, nous pouvons alors tirer certaines conclusions sur lorganisation du rseau interne de lexpditeur.

Le ag DF (couche IP)
Le ag DF dit : "Si la taille de ce paquet ne convient pas une liaison rseau en particulier, ne pas la fragmenter, la supprimer." En observant si cette option est active, il est possible de dterminer si le systme utilise le mcanisme PMTUD dcrit prcdemment, ce qui donne encore une autre indication sur le systme dexploitation utilis.

166

Dans la jungle

Cela tablit galement une distinction entre deux grands groupes de systmes : seules les implmentations IP les plus rcentes utilisent cette technique, et toutes les autres nont aucun intrt activer cette option dans les paquets quils envoient.

Le numro IP ID (couche IP)


Comme nous lavons mentionn plus haut (au cours de la discussion consacre aux imperfections de la fragmentation de paquet), certains systmes o le PMTUD est activ dnissent le numro IP ID zro sur une partie (ou la totalit) du trac sortant, car ils supposent que le trac ne sera pas fragment et pour des raisons de scurit lies lafchage des numros didentication IP (comme vous le verrez au Chapitre 13). Par consquent, nous pouvons identier ces systmes en examinant si les paquets entrants ont un numro didentication IP x zro. Toutefois, il existe un inconvnient. Bien que certains systmes dexploitation o le PMTUD est activ dnissent toujours le numro IP ID zro, dautres systmes peuvent galement dnir des identiants IP zro un moment donn, tout simplement parce que les numros IP ID possibles ne sont pas si nombreux. En dautres termes, si on voit un paquet dont le numro didentication IP est diffrent de zro, on peut raisonnablement croire que ce nest pas un systme qui utilise des valeurs zro pour toutes les communications sortantes. En revanche, si on voit une valeur zro dans un paquet, il peut sagir dune espce particulire de systme o le PMTUD est activ mais tout aussi bien dun systme "rgulier" qui a par hasard choisi zro pour ce paquet. Bien que cette probabilit soit faible, elle nest pas non plus tout fait ngligeable. On peut soit ne pas accorder dimportance aux valeurs zro des numros didentication (et ne considrer que les numros IP ID diffrents de zro pour rduire le nombre de systmes dexploitation possibles) soit procder plusieurs observations de la mme source pour conrmer que les valeurs zro sont toujours utilises.

Type de service (couche IP)


De par sa conception, ce champ devrait tre choisi pour indiquer aux systmes intermdiaires quel est le type de trac et quelle est la priorit du paquet, mais ce nest presque jamais le cas. La plupart des systmes dexploitation donnent arbitrairement ce champ une valeur xe car les dveloppeurs peuvent dnir cette valeur comme ils le veulent sans affecter dans la pratique les oprations de mise en rseau TCP. Selon lego du dveloppeur, il peut simplement donner ce paramtre une valeur par dfaut de zro ou juger opportun de baliser toutes les communications provenant de son systme comme ayant

Chapitre 9

Un accent tranger

167

une "latence faible", une "abilit leve", ou tout autre paramtre en utilisant une combinaison de bits dans ce champ*. Cela devrait nous donner un avantage car, en connaissant les valeurs par dfaut de certains systmes, nous pouvons une fois de plus rduire considrablement le nombre de systmes possibles que lexpditeur utilise. Pour ajouter la confusion, toutefois, la valeur de ce champ est parfois modie pour tout le trac sortant par certains vilains oprateurs DSL et autres fournisseurs daccs Internet. Ils esprent que certains routeurs distants de lautre ct du globe tomberont dans le pige et considreront que leur trac, tiquet comme "hautement prioritaire", mrite dtre acclr et les traiteront avant dautres connexions, ce qui devrait permettre aux clients de cette FAI de naviguer plus rapidement (cela est trs douteux, en fait). Comme pour les systmes dexploitation, une FAI choisit ses paramtres Type de service de faon plutt arbitraire (par exemple, un fournisseur sudois utilise une combinaison assez unique et intressante de bits de priorit dnis une valeur de 3 et de bits Type de service dnis sur "un dbit lev"). Cette pratique, en retour, rend assez facile de dtecter le trac qui mane de certains fournisseurs daccs Internet en reprant la slection singulire quils utilisent pour les bits Type de service, sans quil soit ncessaire deffectuer une analyse active comme la recherche des registres WHOIS de ladresse IP source.

Les champs Nonzero et Must Be Zero (couches IP et TCP)


Les spcications IP et TCP demandent quun certain nombre de champs soient rservs pour une utilisation future. Tous les systmes actuels devraient mettre ces champs zro, an que les valeurs non nulles qui occupent ces positions dans un paquet puissent se voir attribuer une signication spciale lavenir. Inutile de dire que celles-ci ne sont pas zro dans certaines implmentations avant lenvoi, alors quelles devraient ltre. Ce problme nest pas susceptible dtre considr dans la phase de vrication de la qualit, car il ne cause aucun problme notable (les autres systmes supposent quil vaut mieux prvenir que gurir et ne rejettent pas les paquets uniquement en raison de ce dsagrment), si bien que ce dfaut peut persister encore longtemps (peut-tre jusqu ce que ces bits soient effectivement utiliss dans le cadre de certaines extensions TCP, ce qui entranera un chec spectaculaire des communications avec ces systmes dfectueux). Une fois de plus, la capacit examiner ces valeurs constitue une source prcieuse dinformations pour identier plus prcisment le systme dexploitation de lexpditeur.
* Certains dveloppeurs choisissent mme de rgler le bit de ce paramtre avec la valeur Must Be Zero (doit tre zro), alors que cela ne devrait jamais tre effectu dans une application lgitime, sans doute juste pour faire une dclaration de style.

168

Dans la jungle

Port source (couche TCP)


Le port source identie la partie une connexion du ct de lexpditeur. Chaque systme affecte diffremment les ports dits phmres (metteurs) pour les connexions sortantes, si bien quil est souvent possible de dterminer le systme dexploitation source en examinant le numro du port observ. En outre, les systmes utilisent couramment un ventail de ports spciques pour le masquerading (le masquerading, ou la traduction de plusieurs adresses rseau en une seule, implique la rcriture du trac sortant dun rseau priv an que toutes les connexions semblent provenir du systme de masquerading et que toutes les rponses soient retraduites et livres lexpditeur rel lorsquelles sont reues par le systme). Le masquerading est couramment utilis dans les rseaux dentreprises et domestiques pour prserver un espace dadressage. Le rseau interne peut utiliser un grand nombre dadresses qui, techniquement parlant, ne leur sont pas attribues et qui ne sont pas routes l (ou ailleurs) depuis Internet. En revanche, les systmes qui utilisent ces adresses peuvent toujours accder Internet en transmettant leurs connexions sortantes un agent qui utilise sa propre adresse publique lgitime pour atteindre le systme distant au nom de lmetteur. Cette approche protge galement les systmes internes, rendant impossible pour un tranger dinitier une connexion directe non sollicite avec le systme, tout en permettant aux seuls membres internes de se connecter lextrieur. En examinant la plage de ports source choisie par lautre partie, il est possible la fois davoir une ide plus prcise du systme dexploitation que lexpditeur utilise et (une fois la plage mise en corrlation avec dautres observations) de dterminer si lexpditeur se trouve dans un rseau priv utilisant la traduction dadresse (auquel cas la plage des ports source attendue pour ce systme ne correspond probablement pas celle effectivement observe). Si le rseau de lexpditeur utilise la traduction dadresse, il est galement possible de tirer certaines conclusions sur le type de priphrique employ pour la traduction dadresse, car chaque produit utilise des plages de ports diffrentes.

Taille de fentre (couche TCP)


Souvenez-vous que le paramtre taille de fentre dtermine la quantit de donnes qui peut tre envoye sans acquittement. Ce paramtre spcique est souvent choisi selon les rgles personnelles et autres croyances du dveloppeur. Dans les deux approches les plus populaires, cette valeur doit tre un multiple du MTU moins les en-ttes de protocole (une valeur nomme MSS ou Maximum Segment Size) ou tout simplement quelque chose de sufsamment lev et "arrondi". Les anciennes versions de Linux (2.0) utilisaient comme valeurs des puissances de 2 (16 384, par exemple). Linux 2.2 utilisait un multiple du MSS (onze ou vingt-deux fois la valeur du MSS, pour une raison

Chapitre 9

Un accent tranger

169

quelconque), et les nouvelles versions de Linux utilisent une valeur gale deux ou quatre fois le MSS. La Dreamcast, une console de jeu disposant dune connexion rseau, utilise une valeur de 4 096, et Windows utilise souvent 64 512. Une application peut parfois modier la valeur de la taille de fentre xe par le systme dexploitation an damliorer les performances, mais cela est rarement le cas (la prsence dune valeur qui ne correspond pas la valeur par dfaut dun systme dexploitation reprsente un bon moyen de dtecter une application spcique ; Opera, un navigateur Web relativement courant, est un des rares exemples de ce type dapplication).

Pointeur durgence et valeurs du numro dacquittement (couche TCP)


Les valeurs inscrites dans les champs du pointeur durgence (16 bits) et du numro dacquittement (32 bits) sont utilises seulement si un ag TCP correspondant (URG ou ACK) est dni dans le paquet. Si ces ags ne sont pas dnis, ces valeurs devraient tre gales zro, mais elles ne le sont pas souvent. Certains systmes les initialisent simplement une valeur diffrente de zro, ce qui nentrane pas de rel problme : comme ces valeurs ne seront pas interprtes si le ag appropri nest pas dni, elles servent uniquement identier un systme particulier. Dans certains cas, cependant, ces valeurs ne sont pas initialises du tout et sont simplement copies partir de ce qui se trouve ce moment dans la mmoire tampon utilise pour la construction du paquet TCP. Jai observ ce comportement avec les implmentations de la pile sous Windows 2000 et XP en travaillant sur le ngerprinting passif du systme dexploitation : chaque fois que deux sessions TCP surviennent simultanment, ces valeurs contiennent certaines informations dune session antrieure (un cas sur lequel nous reviendrons au Chapitre 11). Cela indique que la personne fait quelque chose dautre larrire-plan et rvle certaines informations transfres une autre partie. Allluia !

Lordre des options (couche TCP)


Chaque systme ordonne et slectionne les options dans un paquet de faon unique. Comme il nexiste pas de rgles rgissant la manire dont les options doivent tre ordonnes dans un paquet, il existe certaines combinaisons de "signature". Par exemple, Windows utilise une squence caractristique doptions "MSS, NOP, NOP, ACK slectif autoris" sur les paquets SYN tandis que Linux conserve gnralement la squence "MSS, ACK slectif autoris, Timestamp, NOP, Dcalage de fentre". Naturellement, cela offre une fois de plus un excellent moyen de distinguer des systmes.

170

Dans la jungle

Dcalage de fentre (couche TCP, option)


Un facteur dchelle pour la taille de la fentre est gnralement dni zro. Toutefois, certains systmes utilisent par dfaut une valeur plus leve ou augmentent continuellement ce paramtre pour un type prcis de trac lorsquils concluent quil est raisonnable de le faire ; si par exemple lutilisateur vient de tlcharger un lm pirat partir dun rseau P2P ou un chier de grande taille de type diffrent (cette dernire hypothse tant videmment un peu moins probable).

Maximum Segment Size (TCP Layer, option)


Ce champ est x une valeur spcique sur certains systmes. Sur dautres, il indique le type de branchement direct au rseau du priphrique. Les diffrents types de rseaux ont des MTU diffrents, ce qui permet de dire si une personne utilise une connexion haut dbit DSL ou un modem classique.

Donnes Timestamp (couche TCP, option)


Puisque cette valeur correspond souvent luptime du systme, il est souvent possible de le dterminer en observant loption timestamp. En outre, pour un ensemble de systmes dexploitation donn, il est possible de les diffrencier et de suivre chacun deux en vriant les variations de timestamp dans le trac entrant : des systmes diffrents ont des uptime diffrents (et ont assez peu de chances davoir des temps de dmarrage identiques), tandis que le mme ordinateur maintiendra un accroissement continu de la valeur du paramtre timestamp. Ceci devient trs pratique dans deux situations. Cela est tout dabord utile lorsquun ensemble de systmes agit avec la mme adresse IP, comme avec le masquerading. Dans ce cas, un webmaster curieux peut dterminer combien dutilisateurs diffrents de la socit X ont visit son site et sur quelle page se trouve chaque visiteur, mme si toutes les demandes proviennent dune seule adresse et semblent tre indissociables au dbut. Cela est ensuite pratique pour effectuer le suivi dun utilisateur unique qui, pour quelque raison que ce soit, change frquemment dadresse IP. Pourquoi sen soucier, et pourquoi vouloir dterminer si lutilisateur le fait ? Ces utilisateurs peuvent par exemple basculer entre plusieurs adresses IP dynamiques affectes une ligne daccs rseau (en se dconnectant et se reconnectant) dans lespoir que leurs tentatives dattaque apparaissent comme un ensemble dactivits dnues de sens et sans lien entre elles plutt que comme une dcouverte du rseau exhaustive et bien planie. Ils peuvent galement vouloir contourner les restrictions dinteraction sur un forum Web, pour un sondage en ligne ou un vote (histoire de bourrer les urnes), et ainsi de suite. Tout cela fait partie des passe-temps courants de la nouvelle gnration.

Chapitre 9

Un accent tranger

171

La mesure de loption timestamp est en gnral prcise, car elle se base sur une horloge qui fonctionne le plus frquemment 100 ou 1 000 Hz (bien que certains systmes utilisent 64 ou 1 024 Hz et des valeurs intermdiaires). Cette prcision est sufsante pour diffrencier des botes mme similaires qui ont presque toutes dmarr en mme temps aprs une panne lectrique, et cette mesure fournit donc une prcision extrme.

Autres types de ngerprinting passif


Dans ce chapitre, nous avons examin les mesures les plus couramment utilises pour dterminer le systme dexploitation dun hte distant (et suivre ses utilisateurs) son insu. Mais, au-del de ces lments de base, de nombreux aspects intressants et moins tudis des communications peuvent tre utiliss pour atteindre les mmes buts, voire plus. Par exemple, une variante intressante de ngerprinting nest pas lie lexamen des paquets eux-mmes mais consiste mesurer le temps et les taux de rponse de certains messages ICMP, de certaines retransmissions TCP et dautres caractristiques similaires. Les valeurs utilises pour tous les paramtres temporels (arrt des transmissions et compteurs des retransmissions) fournissent un bon moyen dobtenir une empreinte prcise dun systme en particulier. Le projet CRONOS, fond sur les tudes de Franck Veysset, dOlivier Courtay et dOlivier Heen, de lquipe de recherche Intranode, vise fournir un outil de ngerprinting actif fond sur cet ensemble de mesures, mais les applications de ngerprinting passif sont tout aussi tentantes. Une autre piste prometteuse consiste combiner et mesurer nombre dautres anomalies ou paramtres rares, comme lutilisation par lexpditeur de certaines valeurs timestamp spciques, de numros de squence identiques aux numros dacquittement, de ags inhabituels, de donnes sur la charge dans les paquets de contrle, de loption dEOL, et ainsi de suite. Ces caractristiques peuvent galement tre utilises pour distinguer les systmes dexploitation, bien quelles soient souvent spciques un petit nombre dimplmentations (lalgorithme utilis pour choisir les numros de squence initiaux est souvent une source dinformation prcieuse, comme vous le verrez au chapitre suivant).

Le ngerprinting passif en pratique


Ces mesures permettent didentier avec prcision les systmes dexploitation, leur conguration et les paramtres rseau et galement de suivre les utilisateurs de faon efcace et silencieusement. Mme sil peut sembler difcile de croire que cela est possible, p0f, un outil dont je suis lauteur, met en uvre la plupart de ces techniques pour recueillir et analyser les informations obtenues par lanalyse des paquets SYN,

172

Dans la jungle

SYN+ACK et RST dune manire compltement passive et avec un taux de russite lev. Prenons lexemple dun paquet pour voir lefcacit de cette approche. Le tableau suivant contient un ensemble de paramtres importants extraits dun paquet TCP rellement capt sur le rseau. Que peuvent-ils nous apprendre du systme dexploitation de lexpditeur ?
Protocole IP (Version 4) Hte source Hte de destination Flags TTL Numro didentication Options No IP (taille de paquet = 20) Protocole TCP Port source Port de destination Flags Numro de squence Numro dacquittement Taille de la fentre Options TCP 1 MSS 2 ACK slectif autoris 3 Timestamp 4 Dcalage de fentre 170330930 0 1460 3803 80 (HTTP) SYN 1418000073 0 32120 nimue (10.3.0.1) nightside (10.3.0.3) DF 57 4428

Voici ce que nous pouvons dduire de ces observations :


m

Comme le ag DF dans les en-ttes IP est congur, le systme doit utiliser le PMTU. Les systmes qui utilisent le PMTU sont les versions les plus rcentes de

Chapitre 9

Un accent tranger

173

Linux, FreeBSD, OpenBSD, Solaris et de Windows. Nous pouvons carter IRIX, AIX, de nombreux pare-feu commerciaux* et les autres systmes qui nimplmentent pas PMTUD pour des raisons de abilit.
m

Le temps de vie du paquet est de 57. Nous savons que la valeur initiale de TTL ne pouvait pas tre infrieure car elle ne peut que diminuer au cours du transfert. En mme temps, il est peu probable que cette valeur dpasse 87 (car alors le systme serait vraiment trs loin). Nous pouvons donc penser beaucoup de systmes Unix (qui tous utilisent un TTL initial de 64) et carter Windows (avec lequel le TTL initial est de 128), les versions de Solaris antrieures la version 8 (255) et plusieurs dispositifs rseaux (32). Le numro didentication du paquet est diffrent de zro. Cela exclut Linux 2.4 et les versions plus rcentes, ainsi que plusieurs versions rcentes dautres systmes dexploitation populaires. Le port source appartient la gamme la plus couramment utilise (1 024 4 095). Bien que cette indication ne sufse pas elle seule exclure des systmes, on peut supposer que le systme a tabli plus de 2 700 connexions avant celle-ci et quil est peu probable quil soit derrire un serveur qui fait du masquerading. Lordre des options (MSS, Selective ACK, Timestamp, taille de fentre) est spcique Linux 2.2 et versions ultrieures. La taille de la fentre (MSS*22) est un multiple de MSS. Le seul systme qui corresponde est Linux 2.2. On nobserve aucune anomalie, ni de violations RFC, ni dautres bizarreries dans le paquet, ce qui conrme lhypothse selon laquelle Linux est le systme excut. La Longueur maximale du segment (MSS) indique un rseau Ethernet ou un modem utilisant le protocole de connexion PPP (MTU de 1 500). Luptime du systme est denviron dix-neuf jours, et il est situ sept systmes du point dobservation.

Certes, certaines mesures peuvent tre modies par des applications ou des rglages utilisateur (par exemple, les utilisateurs ont tendance modier le TTL et activer ou dsactiver certains paramtres aprs la lecture de guides sur loptimisation des rseaux ou lexcution dun "docteur du systme"). Toutefois, par recoupement des observations, nous pouvons dterminer dune manire able le systme dexploitation de la machine qui semble correspondre le mieux.

* Un pare-feu est essentiellement un routeur ltre, souvent aussi en mesure de comprendre et de prendre des dcisions fondes sur les caractristiques de la couche suprieure du ux.

174

Dans la jungle

Dans notre exemple, nous avons de bonnes raisons de croire que le systme en question est Linux 2.2 et que lexpditeur est connect Internet par Ethernet ou par modem tlphonique. partir de cette hypothse, nous pouvons aussi conclure que le systme se trouve sept sauts (64-57, 64 tant le TTL initial pour les systmes Linux) et que son uptime est proche de vingt jours. Si plusieurs utilisateurs se cachent derrire cette IP particulire, on peut facilement les compter et distinguer leurs sessions en fonction des caractristiques de leurs systmes et des donnes de timestamp, si elles sont disponibles.

Les applications de ngerprinting passif


En observant le trac du rseau, le destinataire ou un intermdiaire (comme un FAI entre lexpditeur et le destinataire) peut obtenir des informations qui dpassent le cadre des donnes effectivement changes, y compris certains paramtres du systme de lexpditeur. Comme suggr prcdemment, lexposition est importante et trs intressante car, contrairement aux donnes transmises par les applications, elle nest pas forcment vidente et chappe souvent au contrle de lutilisateur. Bien que les utilisateurs puissent modier les paramtres de leur navigateur et ceux dautres applications an dempcher dtre surveills, identis et suivis, les informations divulgues par la couche infrieure IP ou TCP peuvent facilement compromettre cet effort, en dvoilant lobservateur autant de choses sur la victime que celle-ci essaie de cacher. Cette couche peut galement transporter des donnes dune importance plus fondamentale pour la scurit de linfrastructure, notamment des indications utiles sur la faon dont le rseau de la victime est construit et protg. Ceci dit, si lon excepte linvasion de la vie prive, le ngerprinting passif peut aussi tre utilis pour des tches de reconnaissance tout fait lgitimes. Toutes les applications pratiques (et couramment dployes) de ngerprinting passif peuvent aussi bien tre utilises dans un but malveillant que pour se dfendre de faon lgitime.

Collecter des donnes statistiques et des incidents de connexion


Une des utilisations lgitimes du ngerprinting passif consiste surveiller le rseau pour effectuer une analyse objective et non intrusive des plates-formes et des environnements rseaux utiliss, an de garantir que les utilisateurs reoivent un service optimis pour leurs logiciels et quaucun groupe dutilisateurs nest nglig dune faon ou dune autre. De plus, le ngerprinting passif peut grandement faciliter la collecte dinformation sur des agresseurs potentiels ou sur toute autre activit non autorise. Il est en particulier trs populaire lorsquon utilise des pots de miel.

Chapitre 9

Un accent tranger

175

NOTE Le pot de miel est un concept que Lance Spitzner, de Sun Microsystems 11, tudie et dont il fait lapologie. Lobjectif est de laisser le propritaire se renseigner sur ses opposants et leurs objectifs, en utilisant des priphriques (pots de miel) vulnrables qui nont pas de relle importance pour linfrastructure mais qui sont conus pour sembler en avoir une. Ils sont intressants dans le sens o ils apprennent au responsable de la scurit comment les attaquants agissent de faon non autorise et illicite.

Optimisation du contenu
Une application active du ngerprinting passif repose sur la fourniture de services optimiss un destinataire spcique partir dune analyse de la conguration quil utilise pour accder au serveur. Je considre quil est de mon devoir de citer de nouveau un de mes outils : p0f. p0f offre une mthode dinterrogation sur les paramtres des connexions entrantes rcentes partir dautres applications, ce qui rend loptimisation du contenu beaucoup plus facile : un script Web na pas besoin de savoir beaucoup de choses sur TCP et IP, il peut simplement demander p0f "qui est ce gars qui je parle ?" et obtenir une rponse utile.

laboration dune politique


La dtection et le blocage ventuel des installations obsoltes ou des systmes non conformes (par exemple les priphriques qui violent la politique de lentreprise ou posent un risque de scurit) ou les liaisons rseau non autorises sont dautres applications intressantes du ngerprinting passif. Depuis la version 3.4, OpenBSD fournit une mthode pour router et rediriger le trac en fonction des rsultats obtenus par la dtection du systme dexploitation, ce qui rend tout fait viable llaboration dune politique fonde sur les caractristiques du systme dexploitation distant. La mme fonctionnalit est dsormais fournie par le code patch-o-matic dans Linux netlter. Les deux implmentations sont troitement inspires par p0f ou fondes dessus.

La scurit du pauvre
Le ngerprinting passif peut aussi tre utilis pour minimiser plusieurs sortes dexpositions. Bien quil soit possible de tromper la technique de ngerprinting avec divers efforts, il pourrait tre utilis pour empcher certains types de clients (comme les systmes Windows, une plate-forme plus frquemment infeste par des logiciels espions, des portes drobes et des vers qui est souvent utilise pour la distribution en masse demails non sollicits ou pour une attaque base sur le nombre de sauts) dutiliser nombre de services sous-jacents sur le rseau, tout en permettant aux entits les "moins suspectes" dy accder.

176

Dans la jungle

Test de scurit et dcouverte du rseau


Le ngerprinting actif est souvent stopp ds le dpart par les pare-feu et dautres solutions qui ltrent et analysent attentivement le trac IP. Le ngerprinting passif, en revanche, peut tudier des systmes mme trs bien protgs et tablir une carte des rseaux sans dclencher aucune alerte. Lutilisation du ngerprinting passif pour tester et valuer la scurit est double. Premirement, il peut tre utilis pour analyser le trac entrant. Mme si lobservateur doit attendre que le parti distant se connecte ses systmes, une telle connexion peut tre assez facilement initie sans dclencher de soupon. En fait, il suft souvent denvoyer un e-mail ou un lien particulier vers un site Web la victime, mme si elle se trouve derrire la solution la plus sophistique de ltrage des paquets. Deuximement, le ngerprinting passif peut tre utilis pour analyser les rponses lgitimes un service disponible an de dterminer les paramtres de la partie distante. Si un hacker chapeau noir sait comment compromettre un rseau interne mais souhaite en savoir plus sur son fonctionnement interne an de rduire au minimum le risque dtre dtect prmaturment, le ngerprinting passif peut se rvler utile. On peut en dire autant des tests de scurit lgitimes pour celui qui est pay par lentit qui subit le test.

Proling du consommateur et invasion de la vie prive


De nombreuses entreprises se donnent beaucoup de mal pour rassembler et vendre des informations prcieuses sur les habitudes, les prfrences et les comportements de la population. Bien que cette information soit souvent utilise des ns commerciales, elle pourrait en thorie tre utilise contre une personne en particulier. La capacit de suivi des utilisateurs en mettant en corrlation les rsultats du ngerprinting passif pour les diffrents sites quils ont visits (que ce soit pour tablir la carte des rseaux interne et des logiciels utiliss, pour suivre les individus ou pour recueillir dautres donnes statistiques prcieuses) peut tre une source dinformations susceptible davoir une valeur considrable en elle-mme ou dtre utilise pour renforcer lattrait dautres offres qui ne respectent pas forcment lthique.

Espionnage et reconnaissance furtive


Il est souvent trs tentant de recueillir des informations supplmentaires sur larchitecture du rseau dun concurrent et sur le comportement et les prfrences dun utilisateur. Bien que cela puisse relever de la mauvaise science-ction, il sagit simplement dun type plus cibl de proling que celui abord ci-dessus.

Chapitre 9

Un accent tranger

177

Protection contre le ngerprinting


tant donn la complexit dune pile IP typique, il est extrmement difcile dempcher le ngerprinting en gnral, mais il est possible de rsoudre certains problmes spciques et de dsactiver certains types de logiciels de ngerprinting connus, en dterminant sur quel paramtre il sappuie le plus et en le changeant ensuite. Par exemple, certaines solutions de ltrage de paquets, comme pf dans OpenBSD, fournissent un service de normalisation des paquets qui assure que tout le trac sortant "ait la mme apparence". Mme si cela peut dans une certaine mesure contrer certains aspects du ngerprinting ou le rendre simplement plus difcile en diminuant la prcision de certains programmes populaires, cela ne rsout pas compltement le problme. Bien que la modication manuelle ou automatise, approfondie et apparemment exhaustive de plusieurs rglages du systme dexploitation ou de certains paramtres TCP puisse rendre plus difcile lidentication du systme, certains comportements sont profondment enfouis dans le noyau et ne sont pas personnalisables. Par exemple, il est assez difcile de changer loption dordonnancement dun paquet. En outre, lorsque les utilisateurs effectuent des modications manuelles, ils risquent dintroduire des caractristiques uniques dans les paquets provenant de leur systme, ce qui a pour seul rsultat daffecter encore plus leur vie prive et leur anonymat. Heureusement, des solutions rpondent certains types de tests. Par exemple, IP Personality, de Gal Roualland et de Jean-Marc Saffroy, modie la pile TCP an quelle semble provenir dun autre systme dexploitation pour certains outils. Si vous le souhaitez, vous pouvez utiliser IP Personality pour faire penser NMAP que votre systme est une imprimante laser Hewlett-Packard. Toutefois, divers problmes se posent. Tout dabord, il est facile daffaiblir rellement la pile TCP dun systme en usurpant lidentit dun priphrique qui utilise une pile faible. Si par exemple vous devez utiliser des numros de squence simples sur toutes les connexions an de vous conformer aux caractristiques particulires dune imprimante, quelquun protera tt ou tard de cet avantage pour facilement perturber ou modier votre trac. En outre, des logiciels comme IP Personality ne fonctionnent que pour les outils les plus populaires, clbres et bien documents, mais noffrent aucune garantie de succs contre les autres, car les caractristiques que chaque outil examine et la manire dont il les interprte varient. Vous ne pouvez quesprer tromper lattaquant le moins dtermin, le plus naf et le plus "grand public"qui utilise les outils que vous connaissez.
NOTE Contrairement aux agents de masquerading, un pare-feu de type proxy et les autres dispositifs de proxy ne transfrent pas les paquets mais interceptent les connexions et en initient de nouvelles en utilisant leur propre IP. Il sagit de la seule solution complte au

178

Dans la jungle

ngerprinting des troisime et quatrime couches OSI, mais ils ont un grave impact sur les performances et sont plus sujets aux problmes en raison de la plus grande complexit quils apportent. En outre, un ngerprinting de plus haut niveau de lapplication elle-mme est toujours possible.

Matire rexion : le dfaut fatal de la fragmentation IP


En examinant les caractristiques qui dnissent le protocole IP, jai fortuitement indiqu que le processus de fragmentation et de rassemblage de paquets prsentait des dfauts fatals. Cette ide mest venue principalement en raison dune observation assez intressante que jai faite lors de lcriture de ce livre. Bien que ce concept soit li une attaque active et visible excute par une entit ouvertement malveillante (mme sil nest pas facile de remonter jusqu cette entit), il sagit dun dfaut unique et intressant qui est inhrent la conception du protocole IP. Cest non pas le rsultat dune erreur clairement dnie, mais plus une collision de paradigmes sur les diffrentes couches de la conception dailleurs curieusement dnis par Jon Postel, lun des concepteurs du protocole IP. Jai dcid de linclure ici pour clore ce chapitre, comme matire rexion pour ceux qui sintressent la pathologie des failles informatiques. Examinons dabord ltat des choses, de nos jours ou peut-tre hier, en revenant sur une assez vieille technique dattaque dj mentionne lors de la discussion portant sur le protocole TCP. La technique en question, le blind spoong, a t dcrite pour la premire fois par Robert T. Morris au milieu des annes 1980 11. Elle a connu sa priode de gloire une dcennie plus tard, mais son importance a diminu depuis. Nous allons nous concentrer sur un exemple prcis dusurpation didentit aveugle, celui qui consiste injecter certaines donnes dans une session existante an de la perturber, de convaincre le serveur que lutilisateur a mis une commande particulire ou encore de convaincre lutilisateur quil reoit une rponse spcique du serveur. Cette technique est souvent appele dtournement de connexion (connection hijacking). Dans des circonstances normales, une machine tmoin malveillante voulant insrer des donnes dans un ux TCP doit dabord dterminer les numros de squence utiliss par au moins lune des parties. Mme si une telle attaque est trs dpendante du temps et doit tre cible contre une connexion existante en particulier, elle peut tre (et a t maintes reprises) excute avec succs lorsque les numros de squence sont prvisibles. En fait, la n des annes 1990, de nombreux outils ont t utiliss pour perturber les sessions TCP de Windows sur les rseaux IRC (Internet Relay Chat) en exploitant la faiblesse de lalgorithme de slection du numro de squence initial (ISN) dans

Chapitre 9

Un accent tranger

179

Windows. Il sufsait dinjecter un seul paquet RST ici et l pour jecter une personne hors du serveur. Cest ce que nous appelions samuser lpoque. De nos jours, la situation est un peu diffrente. Grce aux efforts de nombreux chercheurs (y compris lhumble auteur de ces mots), les dveloppeurs ont travaill darrachepied pour rendre les numros de squence initiaux des connexions TCP plus difciles prvoir. De nombreuses tentatives pour amliorer la qualit et la robustesse des gnrateurs de numro de squence dans les systmes dexploitation courants ont ni par rendre les attaques par prdiction de lISN plus difciles, quelques exceptions prs quil est inutile de citer. Les systmes qui utilisent des numros ISN squentiels ont en grande partie disparu ; un attaquant dans lincapacit de dterminer les nombres utiliss dans une communication avec une autre partie est forc deffectuer une recherche des valeurs possibles dans tout lespace 32 bits pour effectuer une attaque par insertion de donnes prcise (moins sil souhaite simplement interrompre ou altrer irrvocablement la session). Cela reprsente environ 4 294 967 296 combinaisons, si bien que cette attaque demande lattaquant denvoyer environ 80 Go de donnes pour quelle russisse. Inutile de dire que ce nest pas considr comme particulirement ralisable. Toutefois, en ce qui concerne les avantages rels que procure une attaque par injection de donnes russie, peu de choses ont chang. Mme si de plus en plus de communications sont changes sur des couches qui prennent en charge le cryptage, la pertinence de ce type dattaque na pas t sensiblement rduite ; beaucoup de scnarios dattaque fructueuse subsistent. En voici quelques exemples :
m

Les donnes peuvent tre insres dans un transfert non crypt de serveur serveur ou de routeur routeur, comme cest le cas des changes de-mails, des transferts de zones DNS, des communications BGP, et ainsi de suite. Une grande partie du trac de serveur serveur peut tre gnre par lattaquant et pourtant contenir des informations sensibles ou de conance, ce qui rend une attaque cible et fonde sur le temps plus ralisable. Les donnes peuvent tre insres dans un transfert non crypt de client serveur, comme le tlchargement de chier FTP (File Transfer Protocol) ou les rponses HTTP (Hypertext Transfer Protocol). Cette attaque peut tre effectue an que des lments malveillants, compromettants ou diffamatoires soient fournis un visiteur dun serveur de plus haut niveau ou pour faire croire quun visiteur innocent est lauteur dune tentative de compromission. Les donnes peuvent tre insres dans une session existante pour exploiter une vulnrabilit dans le service un stade qui nest pas disponible un utilisateur qui ne sest pas authenti. Cela vaut aussi bien pour le trac chiffr ou non. Par exemple, un service comme POP3 (Post Ofce Protocol Version 3, un protocole daccs distance de sa bote aux lettres lectronique) peut accepter diffrentes commandes uniquement si lutilisateur a russi se connecter. Avant la connexion, les seules

180

Dans la jungle

commandes disponibles sont celles qui concernent directement le processus dauthentication (directives USER et PASS). Sans un mot de passe valide, lattaquant ne peut pas exploiter une faille dans une des commandes disponibles plus tard (comme RETR, une commande utilise pour rcuprer un message en particulier dune bote aux lettres lectronique). Cependant, si lattaquant parvient injecter une requte RETR malveillante dans la session existante dun utilisateur dj authenti, il a gagn.
m

Mme un ux scuris et crypt et dont lintgrit est protge peut subir une attaque par dni de service lorsquune session est perturbe ou abroge par un seul paquet soigneusement prpar.

ce titre, il est tentant dtre en mesure dinjecter des donnes avec un minimum deffort, sans avoir chercher tous les numros de squence possibles. Et cest l que la fragmentation devient trs pratique.

Fragmentation TCP
Quand un paquet IP transportant une charge TCP est fragment (un phnomne courant au cours du transfert des chiers que lutilisation dun ag DF par certains systmes nempche pas toujours), les donnes voyagent dans le rseau en plusieurs morceaux et sont rassembles seulement quand elles arrivent au destinataire. Un attaquant intelligent, en anticipant cette fragmentation, peut envoyer un fragment IP illgitime spcialement conu et le faire passer pour un paquet de lexpditeur attendu. la rception de ce fragment, le destinataire peut, avec un peu de chance (une question de temps exact), nir par lutiliser au lieu du vrai fragment pour rassembler le paquet initial. Dans ce scnario dattaque, le premier fragment (contenant lintgralit des en-ttes TCP, y compris les ports exacts, les numros de squence, et ainsi de suite) est fusionn avec une charge malveillante falsie par lattaquant. En consquence, lattaquant na pas besoin de connatre les numros de squence ou dautres paramtres de la session pour insrer ses donnes dans la trame, sapant de ce fait lensemble des efforts de gnration ISN. Une fois lattaque termine, le paquet nal trait par le destinataire se compose des donnes den-tte valide copies partir dun fragment lgitime et dune charge malveillante injecte par lattaquant.
NOTE Lattaquant peut remplacer une partie de la charge dans le premier fragment en spciant un lger chevauchement entre les fragments ; de nombreux systmes honorent les chevauchements entre les fragments et crasent les donnes reues auparavant avec celles de la nouvelle copie. Dans le cas le plus extrme, lattaquant peut parvenir remplacer toutes les donnes lintrieur dun paquet TCP sauf le numro de squence.

Chapitre 9

Un accent tranger

181

Naturellement, certaines pices du puzzle manquent toujours. Dans ce scnario, lattaquant a non seulement besoin dagir un instant prcis et de savoir quand une transmission a lieu*, mais il doit surmonter deux obstacles : m Les fragments doivent avoir un numro IP ID correct pour que le fragment de lattaquant soit fusionn. Heureusement, ce nest pas un problme sur de nombreux systmes, car les identiants IP sont choisis de faon squentielle. Ainsi, le numro susceptible dtre utilis ce moment peut tre dduit en tentant simplement un test de connexion. Certains systmes, notamment Linux, FreeBSD et Solaris, offrent des numros didentication alatoires, ce qui peut rendre plus difcile lattaque mais pas lempcher. Lattaquant doit tout simplement vrier des milliers (et non des milliards) de combinaisons, car le champ IP ID est assez court (2 octets seulement).
m

Len-tte TCP contient une somme de contrle qui est vrie aprs le rassemblage, si bien que la somme de contrle des donnes modie par lattaquant doit tre la mme que celle de la charge originale. Toutefois, tant donn que la conception dune somme de contrle TCP est simple (une variation dune somme de 16 bits), on peut forger une charge qui ne modie pas la somme de contrle, tant que la section originale remplacer est connue de lattaquant (ce qui est souvent le cas, en particulier pendant les transferts de chiers, lorsque lattaquant veut insrer du code ou du contenu malveillant dans une partie des donnes disponible publiquement).

Lexemple suivant de somme de contrle simplie dun paquet qui est forme des mots den-tte H1 et H2 et des mots de charge P1, P2 et P3 illustre ceci :
C = H1 + H2 ... + P1 + P2 + P3 ...

H1, H2 et C ne sont pas connus de lattaquant (les en-ttes contiennent des numros de squence et la somme de contrle est affecte par ces donnes). Lattaquant na aucun moyen dexaminer effectivement ce paquet, mais il sait que la victime effectue une transaction spcique (prvisible) au niveau de lapplication (il contrle par exemple ses e-mails, tlcharge une page Web, discute avec des amis, etc.). Lattaquant peut dduire les donnes P1, P1 et P3 de la charge et vouloir les remplacer par ses propres mots malveillants N1 et N2, en utilisant un troisime mot pour la compensation de la somme de contrle (CC) de sorte que le paquet reste valide.
C = H1 + H2 ... + N1 + N2 + CC ...

* Le timing lui-mme nest pas un problme si grave quil peut sembler ltre premire vue. Lattaquant peut choisir denvoyer son deuxime fragment malveillant un peu en avance ; le destinataire cre alors une mmoire tampon de rassemblage et attend pendant une certaine priode de temps les portions restantes. Une fois que le premier fragment lgitime arrive, le contenu de la mmoire tampon est considr comme totalement reconstruit, sans attendre que le deuxime morceau vritable narrive.

182

Dans la jungle

En rsolvant ces quations pour CC, on peut conclure que la somme de contrle doit tre compense avec CC = (P1 + P2 + P3 N1 N2). Lattaquant peut alors modier le paquet pour que la somme de contrle reste la mme sans connatre lensemble du paquet ; il na besoin que du bit de remplacement. Cela est sufsant pour calculer correctement le bit de compensation et prserver la somme de contrle.

10
Stratgies avances pour compter les moutons
O lon examine comment dterminer larchitecture du rseau et localiser lordinateur.

Effectuer la reconnaissance et tablir la cartographie du rseau consistent exploiter un ensemble de vecteurs de divulgation dinformations inhrents au principe des protocoles de communication Internet an de reconnatre les systmes et les rseaux ou didentier ou de suivre des attaquants potentiels, des utilisateurs, des clients ou des concurrents. Il sagit sans doute de lanalyse des donnes passives la plus dveloppe,
la plus largement dploye, la plus importante et la plus utile ce jour. Cependant, certains problmes affectent dans certains cas la fois sa prcision et sa facilit dutilisation, en particulier pour les techniques de ngerprinting passif TCP/IP les plus connues et prouves.

184

Dans la jungle

Les avantages et les implications du ngerprinting passif classique


Les mesures de ngerprinting passif examines au chapitre prcdent permettent didentier facilement certaines caractristiques provenant dun systme ou dun rseau. Dans plusieurs cas, ces techniques permettent galement de suivre la trace des utilisateurs lorsquils changent dadresse ou la partagent avec dautres sur un mme rseau. On peut utiliser ces techniques sans interagir avec la partie distante aussi longtemps quon peut persuader la personne observe dinteragir avec un rseau spcique ou tant que ses communications rseau passent par un ensemble spcique de systmes contrls par une personne sufsamment curieuse. Ainsi, le ngerprinting passif permet notamment au propritaire dun serveur ou un fournisseur daccs dacqurir nombre dinformations assez facilement et de faon totalement furtive. Le ngerprinting passif fournit une arme double tranchant la partie distante. On peut le dployer pour obtenir des donnes utiles sur la structure interne dun rseau, an de rendre plus facile une attaque ou pour en apprendre davantage sur les technologies de gestion de rseau utilises (mme dans un environnement assez complexe, comme le montre la Figure 10.1). On peut aussi lutiliser ( juste titre) pour surveiller les violations ventuelles sur son propre rseau (par exemple des connections ou des points daccs illgaux qui connectent un rseau interne au monde extrieur) ou encore pour suivre la trace des attaquants. La perte de condentialit qui en rsulte pour un utilisateur unique est gnralement ngligeable, moins qutablir un lien entre les activits occasionnelles dun utilisateur avec les donnes acquises par le ngerprinting ou queffectuer le suivi dun seul utilisateur travers plusieurs domaines pose un problme particulier (ce qui a des chances de se rvler exact seulement lorsque le comportement de lutilisateur est contestable). La perte cumule de condentialit pour tous les utilisateurs peut devenir trs inquitante, mais les informations recueillies au moyen du ngerprinting ou le suivi effectu laide du ngerprinting peuvent avoir une valeur marchande considrable (vos donnes personnelles peuvent tre vendues plus cher aux annonceurs si elle saccompagnent dinformations sur vos prfrences et vos centres dintrt, par exemple). Lexposition du fonctionnement technique interne dun rseau peut galement tre indsirable pour les entreprises et dautres types dinfrastructures sensibles. Nanmoins, tout nest pas encore perdu. Comme indiqu prcdemment, certains problmes se posent pour obtenir des rsultats prcis laide du ngerprinting passif. Le manque de abilit de la technique traditionnelle de ngerprinting passif du systme dexploitation montre quel point il est facile de tromper lobservateur en rglant soigneusement certains ou la totalit des paramtres rseau utiliss sur un systme qui est observ. Mme sil nest pas particulirement facile de modier compltement tous

Chapitre 10

Stratgies avances pour compter les moutons

185

Commutateur

Pare-feu interne

TTL du serveur interne = X-3. Systme d'exploitation du serveur

MASQ

Commutateur
MASQ

Pare-feu externe
ATM

Internet

TTL d'une station de travail de confiance = X-3

TTL des postes de travail = X-2

Routeur une distance X

Ligne tlphonique

TTL de portable = X-3. MSS distinct (client VPN)

Serveur VPN d'accs distant (modem tlphonique)

TTL du serveur Web = X-2. Adresse spare

Cela montre que les composants rseau sont sous observation directe (active). On peut dduire effectivement l'existence des autres systmes.

Figure 10.1
On peut utiliser le ngerprinting passif pour tablir la carte dun rseau complexe et mme inaccessible simplement en observant le trac de certains de ces nuds (le plus important tant de mesurer les caractristiques du systme dexploitation ainsi que les valeurs TTL et MSS dans les paquets) et ensuite dduire la prsence dautres composants qui correspondent aux variations des caractristiques observes. Je laisse au lecteur le soin de dterminer comment la cartographie de ce rseau pourrait tre dnitivement tablie en observant simplement le trac depuis lextrieur.

les paramtres, une modication partielle peut tre sufsante pour contrecarrer certaines tentatives danalyse automatises (hourrah !) ou pour tromper un responsable de la scurit qui effectue une enqute sur un incident malveillant (oups !). Mme si ce nest pas un problme grande chelle et que cela nest donc pas une proccupation pour lanalyse statistique, la question de la abilit peut susciter des inquitudes dans des cas particuliers.

186

Dans la jungle

En outre, les capacits de suivi et de comptage des utilisateurs par ngerprinting que nous avons douloureusement dissques au Chapitre 9 reposent presque entirement sur la disponibilit de paramtres comme les informations de timestamp dans les paquets TCP/IP. Toutes les autres caractristiques sont normalises ou ont trop peu doptions possibles pour permettre didentier un seul ordinateur, sauf cas exceptionnel. Si de telles donnes ne sont pas disponibles parce que cette extension des performances spcique a t dsactive (comme sur la plupart des systmes Windows, par exemple), il nest pas possible didentier un systme avec prcision. Cela diminue la valeur potentielle des donnes la fois pour les membres zls dune conspiration (qui, comme nous le savons tous, cherchent connatre nos secrets les plus prcieux), ainsi que pour les testeurs de scurit ou les analystes des incidents (les experts en informatique judiciaire). Sans cette capacit didentication fonde sur le timestamp, il peut tre impossible de diffrencier plusieurs systmes identiques fonctionnant derrire un masquerading ou didentier un individu dont lIP a chang une fois quil a reconnect son modem. Cependant, une autre mthode de ngerprinting passif peut-tre plus intressante, prometteuse et exigeante comble facilement les lacunes du ngerprinting passif. Cette nouvelle approche rend extrmement difcile dinduire en erreur un observateur distant et elle est presque universellement adapte pour le suivi des systmes. Encore plus intressant, cette technique permet de distinguer plusieurs systmes disposant exactement de la mme conguration, en poussant la dtection du masquerading un tout autre niveau. Cette technique utilise les proprits du mcanisme de gnration du numro de squence au sein de TCP/IP et peut galement donner lieu quelques belles images.

Un bref historique des numros de squence


Comme nous lavons vu au chapitre prcdent, les numros de squence initiaux sont un mcanisme utilis dans TCP pour assurer lintgrit dune session et donc garantir le niveau de scurit le plus lmentaire. La seule faon vritablement universelle de protger une session TCP/IP non chiffre contre linjection de donnes, le dtournement ou lusurpation de la part dun parfait inconnu est de sassurer que les numros de squence sont slectionns dune manire imprvisible pour lattaquant. Cela rduit ses chances que sa supposition laveugle soit correcte (et quun paquet quil usurpe soit accept comme partie lgitime de la session dune autre personne), tel point que ce risque est peu inquitant dans le monde rel, mme si lattaquant lance une tempte rseau sur le systme et envoie des milliers de paquets en esprant quau moins un dentre eux aura un numro de squence peu prs correspondant. Au dbut des annes 1980, la scurit des communications bases sur TCP ne semblait pas tre un problme proccupant : Internet tait un environnement assez petit, autonome et

Chapitre 10

Stratgies avances pour compter les moutons

187

peut-tre un peu litiste utilis par les scientiques et leurs homologues. ce titre, la spcication RFC du protocole TCP ne contenait aucune recommandation pour la slection du numro de squence initial, si bien que presque toutes les premires implmentations de pile TCP/IP (et certaines implmentations ultrieures) utilisaient des algorithmes simples fonds sur le temps ou sur le compteur qui renvoyaient des suites de numros pour les connexions. lpoque, rendre ces numros alatoires apparaissait comme un gaspillage inutile de la prcieuse puissance de calcul. En outre, cela ne pouvait quaugmenter inutilement la probabilit dune collision de numros de squence (une collision est une situation dans laquelle deux numros ISN choisis pour se connecter un hte sont trop similaires, crant ainsi la possibilit que les anciens paquets arrivant dune manire inopportune puissent tre interprts dans le contexte dune mauvaise connexion. Naturellement, si lon utilise des numros alatoires plutt que des numros croissant de faon squentielle, il est plus probable court terme que des collisions se produisent). Bien entendu, Internet a normment volu depuis les annes 1980, pour devenir rapidement plus accessible un nombre grandissant dutilisateurs diffrents. Au fur et mesure que la quantit de donnes importantes circulant sur le rseau augmentait, les questions de scurit devinrent plus pertinentes. Malheureusement, les mcanismes populaires et ables de protection de la vie prive et de lintgrit des donnes nont pas suivi lexpansion dInternet : tous les services ne prennent pas en charge le cryptage, tous les utilisateurs ne savent pas comment lutiliser et, plus important encore, la plupart des utilisateurs ne savent pas comment valider correctement les certicats cryptographiques fournis par les parties distantes. Au l du temps, et en particulier avec la gnralisation des pratiques protant de la faiblesse du mcanisme de gnration ISN au milieu des annes 1990 (mme si ces abus se limitaient la plupart du temps aux services de discussion en ligne), il devint vident quune protection rudimentaire de lintgrit des ux TCP/IP tait ncessaire. Ceci tait encore plus important pour la fraction marginale du trac qui est effectivement protg par cryptographie, car une interruption de la couche de transport cause par linjection de donnes errones ou de paquets RST est tout aussi nfaste, mme si cela nentrane quune dconnexion (dni de service) et non linjection de donnes. Comme la seule manire de rsoudre ce problme (sans une rvision majeure de tout le systme communication TCP connu ou presque) consistait rendre le protocole difcile attaquer en lui-mme, de nombreux dveloppeurs ont entrepris bien des efforts pour sloigner des mcanismes simples et dangereux de gnration de numros ISN sincrmentant de un en un. Bien que ces efforts aient effectivement contribu amliorer la rsistance des connexions au blind spoong, ils ont aussi ouvert plusieurs vecteurs intressants de collecte dinformations qui permettent un ngerprinting des systmes et des rseaux plus avancs, quil sagisse dvaluer la scurit ou de planier une attaque.

188

Dans la jungle

Obtenir plus dinformations des numros de squence


Naturellement, il est important de pouvoir distinguer les bonnes implmentations de gnrateurs ISN des mauvaises, aussi bien pour garantir la qualit que pour effectuer des tests de scurit. Encore rcemment, on valuait gnralement la qualit des numros de squence gnrs en analysant le code source ou en effectuant certains tests unidimensionnels sur le ux de bits des suites de numros ISN, an destimer lentropie transporte par chaque bit en sortie. La premire approche est souvent complexe et coteuse, sujette aux erreurs et parfois impossible raliser (si le code source dun systme spcique nest pas mis la disposition du public). La seconde mthode navait pas la capacit de capturer les dpendances plus subtiles de la squence ni les autres caractristiques dun gnrateur dune manire able et lisible, se concentrant plus sur les imperfections statistiques que sur la corrlation entre les valeurs retournes des connexion suivantes. De toute vidence, prouver quune implmentation est scurise en nobservant que sa sortie est peu prs impossible, mais il est facile de vrier certains problmes courants et de veiller ce que lalgorithme sous-jacent soit raisonnablement robuste. Et, pourtant, mme l, les mthodes que nous utilisions pour vrier cela taient au mieux plutt faibles. Aussi bien les conceptions de gnrateurs ISN non scuriss originales que certains modles daujourdhui se fondent sur des systmes arithmtiques itratifs et additifs qui calculent les nouvelles valeurs partir de leur sortie prcdente ; seuls la complexit de lalgorithme de calcul et le montant de limprvisibilit pratique introduits dans le processus semblent varier. Seules les conceptions scurises les plus rcentes ne se basent pas sur larithmtique traditionnelle et utilisent des fonctions de cration de rsum relativement lentes mais scurises par chiffrement pour implmenter des systmes itratifs. Dans tous les cas, cependant, il serait intressant de rechercher une corrlation complexe entre les rsultats que le gnrateur produit pour les diffrentes connexions an de dtecter des failles ventuelles dans la conception de lalgorithme. Il est vident que, si une dpendance apparente peut tre observe entre la sortie du gnrateur ISN un instant t et celle un instant t+x, lattaquant peut choisir de se connecter avant la connexion quil espre brouiller ou usurper totalement, juste pour obtenir la sortie ISN linstant t. partir de son observation du numro de squence renvoy, il peut alors connatre la rponse qui sera ensuite gnre par lautre partie (t+x). Lattaquant peut donc usurper un paquet valide de cette nouvelle connexion mme sans pouvoir observer directement lISN utilis. partir de cette ide, jai effectu en 2001des recherches pour dcouvrir une mthode standard pour examiner les dpendances les moins videntes des squences ISN obtenues depuis des systmes distants. Mon travail ma amen crire un document dans lequel jexaminais certains des algorithmes de gnration ISN plus en dtail, en fournissant une mthode qui dpassait la dtection des motifs et des dfauts connus les plus vidents.

Chapitre 10

Stratgies avances pour compter les moutons

189

Dans ce document, intitul "Strange Attractors and TCP/IP Sequence Number Analysis" 1, jutilisais une mthode bien connue dans le monde des mathmatiques appliques, mais tout fait nouvelle dans celui de la mise en rseau.

Coordonnes temporises : images des squences dans le temps


Lorsquil est question dune bote noire gnrant des ISN dans un des systmes actuels dont les sources ne sont pas disponibles, on ne voit que sa sortie, une squence de valeurs 32 bits vhicules par les paquets TCP/IP et non lalgorithme. Pour de nombreux systmes dexploitation, ce code est propritaire et bien gard, hors de porte du simple mortel. Mme dans un systme open source, les sources peuvent tre trompeuses et dlicates, si bien quon peut reproduire les mmes erreurs que le dveloppeur original. Le type dentre typique que nous aurions valuer ressemblerait probablement ceci :
S0 = S1 = S2 = S3 = S4 = S5 = ... 244782 245581 246380 247176 247975 248771

La logique de ces numros est-elle immdiatement vidente ? Et, si cest le cas, y a-t-il une mthode universelle que lordinateur suive pour crer ce motif et dautres plus complexes ? Une solution lgante semblait encore loin. Jesprais dvelopper une mthode pour identier certaines proprits universelles de lalgorithme sous-jacent de lISN en observant uniquement sa sortie. Mais, avant de faire cela et an de rendre lanalyse plus facile, il tait souhaitable et tout fait commode de supposer que, puisque de nombreuses implmentations sont fondes sur la rptition de certaines oprations arithmtiques, mieux valait observer les modications entre les suites de rsultats que leurs valeurs absolues. Regarder ces changements reprsente un avantage pour ces algorithmes et risque dtre utile galement pour les autres gnrateurs possibles. Pour atteindre cet objectif, nous devons calculer un driv discret de la squence dentre : les incrments entre les lments de S. La squence des deltas, D, commenant lvidence t = 1, est donne par lquation suivante :
Dt = St St 1

Dans cet exemple, la squence de deltas qui en rsulte est la suivante :


D1 = 799 D2 = 796

190

Dans la jungle

D3 = 799 D4 = 796 D5 = 799 ...

En ngligeant les valeurs relles et en ne regardant que la dynamique des numros ISN, la dpendance sous-jacente devient plus vidente et le reste gnralement pour toutes les implmentations qui sappuient sur ce type darithmtique (pour les systmes qui ne reposent pas sur une arithmtique itrative simple, cela na pratiquement aucun intrt et naura pas dinuence signicative sur la qualit des donnes aux ns de la prsente analyse).
NOTE Un chercheur particulirement pdant compenserait galement les irrgularits dans le temps au cours de lacquisition de lchantillon ; ici, nous supposons quune dure dtermine, une unit de base 1, survient toujours entre les acquisitions. Toutefois, pour une acquisition haute vitesse, les performances du rseau et dautres vnements peuvent avoir de graves consquences sur le temps. Pour garantir que ces diffrences dans le temps ninuencent pas les algorithmes qui utilisent lentre de lhorloge au cours du processus de gnration de lISN, il serait plus sr dutiliser lquation suivante (dans laquelle Ttindique le dlai entre lacquisition de St_1 et de St) : (St -St_1)/Tt.

Lavantage de cette approche applique aux systmes arithmtiques itratifs est assez vident. Les cas simples mis part, cette mthode seule nest cependant gure sufsante : on passe simplement dune squence de donnes sans relief assez difciles analyser une autre. Je dcidai alors de convertir la squence de deltas dans une forme qui puisse tre facilement examine par un homme ou par une machine pour les types de corrlations peut-tre moins vidents que dans lexemple prcdent. Rien ne fonctionne mieux quun modle en trois dimensions de la dynamique du systme pour le premier groupe de donnes attendues. Malheureusement, les ISN nous fournissent juste assez dinformations pour tracer des images une dimension, sur un seul axe. Alors, comment faire pour transformer ces informations en une forme tridimensionnelle claire ? La solution est dtendre lensemble des donnes en appliquant une stratgie de reconstruction coordonne appele coordonnes temporises. Nous utilisons une mthode qui tend chaque chantillon en construisant des coordonnes virtuelles fondes sur les chantillons prcdents dans la squence. Si lchantillon existant est considr comme la valeur x de la coordonne, on peut utiliser cette technique pour attribuer des valeurs y et z pour chaque chantillon existant et ainsi construire un triplet de coordonnes x, y et z sufsant pour placer chaque chantillon sur un seul point (ici, des pixels) dans un

Chapitre 10

Stratgies avances pour compter les moutons

191

espace tridimensionnel (cette technique nest pas limite trois dimensions. Toutefois, pour visualiser et analyser des donnes, choisir un nombre plus lev ne serait pas pratique. De toute faon, la plupart des tres humains peinent se reprsenter un plus grand nombre de dimensions, moins dtre sols). Les coordonnes temporises sont calcules de sorte que la deuxime coordonne soit construite en utilisant la valeur chantillonn t-1, que la troisime coordonne corresponde la valeur observe t-2, et ainsi de suite. Dans le cas prsent, les coordonnes des donnes linstant t sont donnes par lensemble dquations suivant :
xt = Dt = St St-1 yt = Dt-1 = St-1 St-2 zt = Dt-2 = St-2 St-3

tant donn une squence de triplets (x, y, z) pour un systme dont on teste les dpendances dans le temps, il est possible de tracer le comportement dun systme de gnration ISN dans un espace en trois dimensions. Comme lemplacement dun pixel reprsentant un chantillon donn dpend la fois de la valeur "courante" et dun certain nombre de rsultats prcdents, de nombreuses dpendances mme assez complexes donnent comme rsultat des motifs abstraits mais visibles montrant une densit irrgulire dans lespace de la phase. On obtient ainsi un portrait unique de lalgorithme sous-jacent (quand il est utilis en rfrence ces portraits, le terme "attracteur"dsigne une forme qui tablit la cartographie de la dynamique dun systme. La forme (lensemble, lespace) reprsente une "trane" dtats travers lesquels le systme effectue des cycles ou volue lorsquil est livr lui-mme). La Figure 10.2 est une interprtation dun ensemble de donnes qui, lorigine, ressemblaient ceci :
4293832719 3994503850 4294386178 134819 4294768138 191541 4294445483 4294608504 4288751770 88040492 ...

Les Figures 10.3 10.5 illustrent plusieurs autres motifs de dpendance courants mais pourtant pas ncessairement vidents.

192

Dans la jungle

Figure 10.2
Une interprtation en trois dimensions de lensemble des donnes dcrites dans le texte.

Figure 10.3
Une interprtation en trois dimensions dun ensemble de donnes obtenues partir dune fonction de gnration de nombres alatoires complexe, mais non scurise.

Chapitre 10

Stratgies avances pour compter les moutons

193

Figure 10.4
Interprtation dun PRNG sans corrlation forte mais avec des tendances statistiques notables.

Figure 10.5
Un schma courant de dpendance dans le temps, observ dans des conditions de test imparfaites.

194

Dans la jungle

Une galerie de jolies images de la pile TCP/IP


Cette mthode de visualisation semble parfaitement fonctionner et produire des motifs uniques, charmants ou souvent inquitants pour de nombreuses implmentations que lon croyait raisonnablement scurises. Beaucoup de ces images se trouvent dissmines dans les pages qui suivent. Mais ces images peuvent-elles nous apporter davantage quune reprsentation visuelle des paramtres et des caractristiques difciles quantier dun gnrateur ? Un attaquant pourrait-il utiliser ces mystrieuses formes en trois dimensions de faon signicative ? Un ordinateur pourrait-il les examiner dune faon ou dune autre et nous indiquer clairement ce qui convient ou non ? Est-ce quun gnrateur en forme de tournesol est plus facile casser quun gnrateur en forme de brique ? Avant de rpondre cette question, permettez-moi de faire une pause et dincorporer quelques-unes des images les plus intressantes que jai obtenues lpoque o jai crit le document original. Elles dmontrent la grande diversit et la beaut de certains des motifs observs puisque, pour paraphraser lancien adage, une image en trois dimensions vaut mille mots. Les Figures 10.6 10.14 montrent les portraits des PRNG de plusieurs systmes dexploitation. Toutes les images ne sont pas traces la mme chelle et certaines formes sont nettement plus petites que dautres. Lchelle et dautres paramtres sont indiqus dans la premire ligne de chaque image, comme le montre la Figure 10.6.
Plage visible Position X courante Position Y courante Taille de bit de la fentre de visualisation Facteur de rotation de la fentre de visualisation Points actuellement visibles (en pourcentage)

Facteur de zoom

Points actuellement visibles et totalit des points

Figure 10.6
Windows 98. Lensemble illustr ici a un diamtre de 128 environ, ce qui indique que les prochains numros ISN sont augments par un nombre transportant environ 7 bits de "hasard". Au sein de cet ensemble, la frquence de rptition de certains points est leve, comme dans lun des exemples mentionns dans la section prcdente, ce qui indique peut-tre une dpendance dans le temps pour tous les rsultats. La taille de lattracteur est petite, ce qui est inquitant.

Chapitre 10

Stratgies avances pour compter les moutons

195

Figure 10.7
FreeBSD 4.2. Un cube uniforme dune largeur de 16 bits, ce qui indique plutt que lincrmentation est faible mais rellement alatoire chaque tape.

Figure 10.8
HP/UX 11. Une structure trange en forme de X dune largeur de 18 bits mais manifestement irrgulire. Plutt un signe de niveaux de correspondance levs dun PRNG dfectueux.

196

Dans la jungle

Figure 10.9
Mac OS 9. Une structure 17 bits semblable la prcdente mais lgrement diffrente.

Figure 10.10
Windows NT 4.0 SP3. De nouveau, un motif dattraction fort et un petit attracteur dune largeur de 8 bits.

Chapitre 10

Stratgies avances pour compter les moutons

197

Figure 10.11
IRIX 6.5. Un nuage dune largeur de 16 18 bits trs irrgulier ; sans doute un algorithme dfectueux.

Figure 10.12
NetWare 6. Un systme apparemment alatoire. Lattracteur forme un nuage dune largeur de 32 bits mais il est constitu dun grand nombre de points rpartis de faon trs dense mais pas uniformment.

198

Dans la jungle

Figure 10.13
UNICOS 10.0.0.8. Un trange nuage de 17 bits de largeur avec des bandes irrgulires de valeurs dont la probabilit est leve.

Figure 10.14
OpenVMS 7.2 (pile TCP/IP par dfaut). Une structure dune largeur de 32 bits avec une part faible de hasard, montrant des motifs de correspondance forts mais assez peu courants qui indiquent une conception de PRNG rate.

Chapitre 10

Stratgies avances pour compter les moutons

199

Attaques utilisant les attracteurs


Revenons maintenant la question du tournesol et de la brique. Oui, lintrt de ces belles images dpasse le simple plaisir visuel quprouvent les geeks informatiques les regarder. En fait, la structure de lattracteur sur chaque systme cre une matrice des motifs de comportements ISN possibles. La densit de lattracteur correspond aux probabilits dun type prcis de dpendance dans le temps ou des motifs statistiques dans le temps. Les rgions de densit plus leves dans lattracteur correspondent aux corrlations qui se rptent le plus et qui sont aussi plus susceptibles de se produire lavenir tandis que les rgions moins peuples sont moins susceptibles dtre visites. Et, donc, une fois lattracteur dun systme spcique approximativement trac, lattaquant peut deviner les rsultats futurs. Mais comment ces formes permettent-elles dtablir une carte des valeurs ISN exactes ? La cl dune attaque russie rside dans le fait de reconnatre que la coordonne x de tous les points de lattracteur dpend de la valeur de Dt, cest--dire des numros de squence observs au temps t et t1 (car Dt = St St 1). La coordonne y, en revanche, dpend de Dt1 (ISN t1 et t2) et z dpend de Dt2 (ISN t2 et t3). Supposons quun attaquant ait envoy trois sondes un systme distant pour lequel la structure de lattracteur du systme dexploitation a t cartographie. Les sondes correspondent des moments t3, t2 et t1 et, videmment, sont sufsantes pour reconstruire les coordonnes y et z du point qui indique le comportement de ce systme ce moment particulier sur la structure de lattracteur. Lattaquant peut utiliser cette information pour dduire les valeurs de x les plus susceptibles de se produire partir des coordonnes y et z quil connat, en fonction de lobservation des irrgularits dans la structure de lattracteur quil a remarqu jusquici. Les coordonnes y et z correspondent une seule ligne perpendiculaire au plan x dans lespace de lattracteur (comme illustr la Figure 10-15) lensemble des points avec toutes les valeurs x possibles, mais aux coordonnes connues restantes. Les points situs sur la ligne dintersection entre les zones de forte densit de lattracteur ou prs delles reprsentent les valeurs les plus susceptibles de correspondre la coordonne x. Les zones de plus faible densit sont, de toute vidence, moins susceptibles de correspondre la valeur correcte de x car, aprs tout, ces points de lattracteur ne sont pas apparus durant les mesures prcdentes. La possibilit dtablir une liste des valeurs x possibles une fois connues les coordonnes y et z reprsente une tape importante pour la russite de lattaque : en connaissant St1(qui, vous vous en souvenez, a t prcdemment obtenue par lattaquant), on peut facilement calculer St pour chaque valeur x potentielle (Dt) de la faon suivante :
St = x + St1

200

Dans la jungle

Ayant chantillonn trois numros de squence auparavant, St3, St2, et St1, lattaquant peut ainsi dnir un ensemble de candidats probables pour le prochain numro de squence St que choisira le systme attaqu pour la prochaine connexion celle que lattaquant na pas initie mais quil espre brouiller. Lattaquant peut alors excuter une attaque en envoyant des paquets TCP/IP contenant les numros de squence possibles ; il a besoin que ce numro soit le bon ds le dbut, car toutes les suppositions errones seront simplement ignores par limplmentation distante. Toutefois, ds que la valeur dun des paquets falsis correspondra au numro prvu dans la taille de fentre attendue, le trac sera accept, mettant ainsi en chec la protection de lintgrit de la session offerte par TCP/IP.

Figure 10.15
Une attaque "sur la ligne dintersection" de lattracteur.

Il faut bien sr mettre quelques rserves sur cette attaque :


m

La dynamique observe peut dpendre des conditions dobservation ou de la source elle-mme. Cependant, en juger par le taux de russite obtenu en dployant cette technique contre des implmentations courantes, cela est peu probable. Si lensemble des candidats est particulirement grand, comme avec les algorithmes qui produisent des nuages uniformes sans irrgularits claires, cette technique devient assez peu pratique car elle exige un trop grand nombre de tentatives pour faire une estimation correcte. Comme il est souvent peu pratique dchantillonner la squence entire des valeurs gnres par une implmentation ISN dans un systme (certains systmes ont des

Chapitre 10

Stratgies avances pour compter les moutons

201

cycles longs, voire illimits), il est impossible de construire un attracteur complet. Pour parer cela, il faut utiliser une approche par approximation : pour que la valeur soit choisie comme candidat, le point doit se trouver lintrieur dun certain rayon depuis un point prcis sur la ligne (y, z), ce qui compense le fait que mme des zones assez denses de lattracteur peuvent encore contenir des vides. Pour que les rsultats restent signicatifs et tablir une mthode dvaluation comparative de la qualit dun gnrateur ISN, jai dcid dvaluer de faon empirique le taux de succs avec un nombre limit dessais. Je voulais plus prcisment dterminer la probabilit de tomber sur le bon numro avec 5 000 tentatives, en me fondant sur lhypothse quun attaquant utilisant une connexion rseau bas ou moyen dbit ne pourrait envoyer quun maximum de 5 000 paquets dans un court laps de temps*. Pour tester la validit de la dmarche, jai choisi destimer la probabilit de succs en divisant les donnes dentre acquises depuis des systmes distants en deux : une partie pour construire lattracteur, et lautre pour raliser effectivement des tests. Le test lit simultanment quatre numros de squence qui se suivent et envoie trois dentre eux une implmentation qui doit ensuite gnrer un ensemble de 5 000 valeurs partir des donnes de lattracteur. Enn, le rsultat est compar au quatrime numro obtenu depuis lensemble des donnes de test. Ce test a t rpt des centaines de fois pour obtenir des suites de quadruplets de numros ISN pour chaque attracteur an de dterminer un pourcentage de russite approximatif, ce qui correspond dans la pratique aux chances qua lattaquant de russir grce cette approche. Voici quelques-uns des rsultats pour les systmes de la galerie dattracteurs.
Systme dexploitation IRIX 6.5.15 OpenVMS 7.2 Windows NT 4.0 SP3 Windows 98 FreeBSD 4.2 HP/UX 11 Mac OS 9 Taux de russite de lattaque 25 % (25 tentatives sur 100) 15 % 97 % 100 % 1% 100 % 89 %

* Le plus petit paquet SYN a 40 octets. Par consquent, lenvoi de 5 000 paquets SYN consomme au moins 200 kilo-octets de bande passante. Cette quantit de donnes peut tre transmise sur une ligne tlphonique avec un modem de compression des donnes V42.bis en 10 20 secondes. Le choix de ce seuil est tout fait arbitraire mais semble raisonnable.

202

Dans la jungle

Cette approche se rvle assez efcace*, ce qui a incit de nombreux fournisseurs de logiciels revoir leurs algorithmes ou les prtentions de leur algorithme de scurit (la recherche suivante que jai publie un an plus tard (2002) examinait certaines de ces modications, et toutes ntaient pas satisfaisantes). Mais la vritable question est : quest-ce que cela a voir avec le ngerprinting passif du systme ?

Retour au ngerprinting du systme


En effet, la capacit cartographier la dynamique dun gnrateur de numro de squence dans un systme particulier et le fait que la plupart des implmentations prsentent certains motifs dans lanalyse de phase plus ou moins uniques ont plusieurs consquences vraiment fascinantes. La plus vidente est lapplication du sondage de lISN lancienne mthode de ngerprinting. En observant plusieurs numros de squence obtenus partir dun systme distant (par exemple lorsquune partie tente dtablir plusieurs connexions un serveur), on peut essayer de trouver un attracteur qui corresponde le mieux ces donnes en comparant lchantillon observ avec une bibliothque dattracteurs connus (les chiffres nont pas besoin dtre prvisibles en utilisant la technique dattaque dcrite ici ; lattracteur dun systme doit seulement pouvoir tre distingu des autres). Compare au ngerprinting passif classique, cette mthode fournit gnralement moins dinformations dtailles sur la conguration du systme, mais elle est galement presque infaillible. Pour djouer cette technique, il faudrait modier la manire dont les numros de squence sont gnrs. Mais il est le plus souvent impossible de rgler de faon signicative les paramtres de gnration ISN depuis lespace utilisateur, et modier le noyau sans dgrader la scurit demande gnralement de solides connaissances et comptences (sans parler de laccs aux sources). Mais ce nest bien sr pas tout.

* Ces rsultats sappliquent des scnarios dans lesquels une injection de donnes prcises ou une usurpation est ncessaire. Si moins de prcision est ncessaire ou si lattaquant cherche uniquement pro voquer une rupture, la partie distante va accepter non seulement des paquets qui ont le numro de squence exact mais aussi ceux dont la taille de fentre correspond, comme spci dans les paramtres TCP/IP (voir Chapitre 9). En dautres termes, les attaques par dni de service (DoS) seront encore plus russies.

Chapitre 10

Stratgies avances pour compter les moutons

203

ISNProber, la mise en pratique de la thorie


En laissant de ct les images et la thorie, il serait bon de voir comment un chantillonnage ISN fonctionne en pratique et comment cela peut aider valuer la conguration dun systme distant ou identier les diffrentes machines qui utilisent cette conguration. Heureusement pour moi, il existe un programme qui mrite dtre mentionn. Aprs avoir lu mon analyse de lISN TCP/IP, Tom Vandepoel crivit un trs bon utilitaire appel ISNProber. ISNProber utilise lanalyse du numro de squence pour diffrencier plusieurs instances dun mme systme, en se fondant sur le fait que deux systmes distincts sont susceptibles dtre diffrents endroits dans lattracteur. Pour simplier, ISNProber peut dire que deux systmes se cachent derrire une adresse partage, en se basant sur lapparence des numros ISN observs. Par souci de clarication, supposons quun systme Y utilise un gnrateur ISN qui incrmente le numro dun en un. partir de ladresse IP du site Web www.exemple.com, nous voulons dterminer combien il y a de systmes. Nous identions dabord www.exemple.com comme tant le systme Y, tablissons ensuite plusieurs connexions, puis nous observons les numros ISN qui suivent : 10, 11, 534, 13, 540 et 19. Il semble vident que les numros les moins levs forment une squence provenant dun ordinateur qui gre moins de trac ou a un uptime plus faible (10, 11, 13, 19), tandis que les chiffres les plus levs correspondent un autre systme. Ainsi, deux ordinateurs partagent la mme IP publique, peut-tre derrire un rpartiteur de charge. En outre, en variant les intervalles dchantillonnage, nous pouvons examiner soigneusement le type de rpartiteur de charge, sa politique de distribution des requtes et le trac quil reoit. Cette approche peut non seulement diffrencier les systmes qui se cachent derrire une adresse commune mais galement effectuer le suivi des utilisateurs du systme Y lorsquils passent dune IP une autre, tant quils ne redmarrent pas leur machine (et donc remettent zro le compteur ISN). Pour les systmes qui disposent de systmes ISN plus sophistiqus que celui de notre exemple, cette distinction peut tre plus difcile raliser, mais elle reste possible tant que les numros ISN ne sont pas purement alatoires sur lensemble des 32 bits (auquel cas des problmes de collision se posent). Lapproche utilise ici ncessite uniquement la prsence dune dose de prvisibilit dans lalgorithme de gnration ISN. Lanalyse de la squence TCP/IP initiale semble donc reprsenter une alternative prometteuse ou un complment intressant au ngerprinting traditionnel. Elle peut aussi malheureusement tre trs utile pour envahir la vie prive et effectuer le suivi des utilisateurs.

204

Dans la jungle

Empcher lanalyse passive


Il est assez simple de se dfendre contre les attaques par prdiction des numros de squence, et il existe depuis longtemps de bonnes solutions pour cela, comme la spcication RFC1948 2, de Steven M. Bellovin. Toutefois, empcher lanalyse passive des chiffres est assez difcile, car ce problme non seulement relve de la faiblesse des algorithmes mais tient galement au nombre dalgorithmes utiliss, car peu de systmes partagent la mme empreinte ISN. Mme parmi les systmes qui implmentent RFC1948 ou qui utilisent dautres gnrateurs scuriss par cryptographie et dont lentropie est externe, les modes de comportement peuvent varier considrablement, selon les subtilits de lalgorithme et du choix des valeurs supposes sufre contrecarrer une attaque que limplmenteur a effectue. Un certain degr de scurit peut tre obtenu en dployant un pare-feu de paquets tats qui rcrit tous les numros de squence dans les paquets sortants*, rendant ainsi peu prs identiques tous les systmes lintrieur dun rseau protg. Malheureusement, rares sont les systmes offrir cette fonctionnalit et rares sont ceux qui peuvent en bncier.

Matire rexion
Lutilit de la technique danalyse de phase dpasse de loin la gnration de numro de squence. Les autres paramtres qui sont choisis de faon pseudo-alatoire ou selon certains schmas internes comme les champs ID des paquets IP, les identicateurs de requte DNS (voir Figure 10.16), les cookies que lapplication gnre en "secret" pour identier les sessions utilisateur, et ainsi de suite peuvent tre analyss avec succs, soit pour trouver des failles dans une conception soit pour identier une implmentation et simplier la poursuite de lanalyse ou faciliter une attaque.

* Solar Designer souligne que, techniquement, cela peut aussi tre implment dans un pare-feu sans tats sous la forme dun hack. Le pare-feu peut combiner (par lintermdiaire de XOR, par exemple) le numro de squence avec le hachage scuris dune cl secrte et associer le tout un quadruplet dadresses et de ports qui identient de faon univoque la connexion. Le hachage peut alors tre enlev des paquets en retour (l encore avec XOR), ce qui fait correspondre le paquet lide qua lhte en interne de la connexion au moment de la livraison, bien que le paquet nexiste que dans une forme de 32 bits alatoire et imprvisible lorsquil est lextrieur du pare-feu. Cela devrait fonctionner pour toutes les implmentations ISN, sauf les plus endommages (qui rptent souvent les mmes numros et sont sujettes aux collisions).

Chapitre 10

Stratgies avances pour compter les moutons

205

Figure 10.16
Un modle dattracteur intressant pour limplmentation du solveur de noms de Linux.

Des travaux dans ce sens ont t raliss ou sont en cours. Dans un document en partie li mon tude originale, Joe Stewart offre un aperu de certains des problmes du systme DNS 3 qui se posent en raison des avances des mcanismes de prvision des numros de squence. Il constate que non seulement les mthodes de vrication des requtes quoffre le protocole DNS bas sur UDP sont insufsantes pour rsister toute attaque par usurpation mme, mais galement que la faible qualit des identiants de requtes uniques gnrs par les diffrentes implmentations affaiblit encore ce modle et le rend vulnrable linjection de donnes malveillantes. tant donn que DNS est un des services fondamentaux dInternet et quil est tentant dusurper une rponse DNS dun site populaire pour rediriger tous les utilisateurs dun rseau en particulier sur une autre page Web, le DNS poisoning (empoisonnement du cache DNS) est une des menaces les plus sous-values qui existent sur Internet. Dan Kaminsky propose des images intressantes et plus avances des donnes prtendument alatoires ladresse suivante : http://www.doxpara.com/pics/ index.php?album=phentropy (voir Figure 10.17). Je vous conseille vraiment cette lecture.

206

Dans la jungle

Figure 10.17
Rendu de lala du noyau BSD effectu par Dan (reproduit avec laccord de www.doxpara.com).

11
La reconnaissance des anomalies
Ou ce que les lgres imperfections du trac rseau peuvent nous apprendre.

Dans les chapitres prcdents, jai dissqu et analys un certain nombre de moyens pour extraire des morceaux dinformations potentiellement importantes partir des paramtres "techniques" apparemment sans importance qui accompagnent tous les messages transmis par un suspect sur le rseau. Comme vous lavez constat, on peut obtenir une quantit considrable de donnes relatives lexpditeur sans
que celui-ci ne sache quil les fournit (ou, sil le sait, il napprcie gure dtre souvent incapable de ne plus fournir ces donnes). En utilisant bien des astuces pour analyser les ux et les paquets, on peut en thorie mesurer de nombreuses caractristiques de la partie distante, connatre la signature dun systme en particulier ainsi que la conguration du rseau partir de son comportement. Cependant, la ralit est un peu diffrente : certains des paramtres observs ne correspondent pas vraiment lensemble des valeurs normalement associes au priphrique spcique ou la conguration rseau que le suspect utilise. On peut bien sr simplement ignorer ces divergences accidentelles, qui nont apparemment pas de sens, et toujours russir identier lorigine du systme ou effectuer le suivi de ses utilisateurs, mais il nest pas forcment judicieux de le faire. On apprend ne pas prter attention

208

Dans la jungle

ce genre dennuis dnus de sens, mais rien dans le monde de linformatique ne se passe sans une bonne raison (du moins si lon prend une dnition assez large de "bonne"). En tudiant le mcanisme qui se cache derrire ces anomalies apparemment alatoires et ces motifs minoritaires au lieu de les ignorer, on peut obtenir des informations prcieuses sur des particularits de la conguration du rseau qui taient invisibles jusque-l. Dans ce chapitre, jexamine de plus prs certains des processus qui peuvent affecter les caractristiques observes dun systme. Jexplique les raisons fondamentales, le but (ou labsence de but), ainsi que les consquences des technologies qui dclenchent un tel comportement. Inutile de dire que la plupart des modications reproductibles apportes aux paquets IP que jexamine ici proviennent de systmes intermdiaires ayant une connaissance plus avance de la topologie IP. Par consquent, je vais commencer par un examen de deux sujets longtemps ngligs : les pare-feu en gnral, et la traduction dadresse rseau (NAT) en particulier. Les pare-feu sont conus pour rester des bastions solides, et moins on en sait sur ce quutilise lautre mieux cela vaut pour lui. Pourtant, en dpit de politiques et de rglages rigoureux, les pare-feu gagnent en complexit et grent de mieux en mieux les problmes de scurit actuels, si bien quil devient de plus en plus facile de les examiner en utilisant des techniques de dcouverte du rseau indirectes ou passives.

Les bases des pare-feu de paquets


Les pare-feu populaires 1 sont, par essence, une catgorie de dispositifs de routage intermdiaires conus pour aller lencontre de la conception originelle des priphriques de routage intermdiaires. Contrairement aux vrais routeurs, des systmes qui sont censs prendre des dcisions de routage non discriminatoires partir des informations codes sur la troisime couche OSI, les pare-feu interprtent, agissent ou mme modient les informations sur les couches suprieures (la couche TCP, voire la couche HTTP). La technologie des pare-feu, bien que relativement rcente, fournit un ensemble de solutions bien tablies et bien comprises qui se retrouve aussi bien dans les rseaux domicile que dans ceux des grandes entreprises. Les pare-feu sont congurs pour refuser ou autoriser certains types de tracs, les rediriger vers certains types de services et sont (ce qui nest pas surprenant) utiliss pour restreindre laccs certaines fonctions et ressources pour lensemble du trac qui les traverse. Ainsi, ils offrent une solution de gestion de rseau puissante, quoique parfois surestime et sur laquelle on sappuie trop. La cl du succs des pare-feu dans tous les environnements rseau tient au fait quun seul composant relativement solide protge toute une gamme de systmes complexes et fournit un dispositif de scurit tolrant aux pannes lorsquun problme de conguration expose un service ou une fonction vulnrable sur un serveur protg (dans les cas extrmes,

Chapitre 11

La reconnaissance des anomalies

209

les pare-feu sont simplement utiliss pour compenser la pauvret des congurations et le manque de maintenance dun systme protg, le plus souvent avec des rsultats dsastreux).

Filtrage et fragmentation sans tats


Les pare-feu basiques sont des ltres sans tats des paquets. Ils inspectent simplement certaines caractristiques de chaque paquet, comme le port de destination pour les tentatives de connexion SYN sur le protocole TCP. Ils dcident ensuite, uniquement partir de ces caractristiques, dautoriser ou non le paquet passer. La conception sans tats utilise les ressources et la mmoire de faon extrmement simple, able et efcace. Par exemple, un pare-feu sans tats peut limiter les connexions entrantes dun serveur de messagerie aux seuls messages adresss au port 25 (SMTP) et bloquer tous les paquets SYN sauf ceux qui sadressent ce port. Comme aucune connexion ne peut tre tablie sans ce premier paquet SYN, lattaquant ne peut pas interagir de manire signicative avec des applications sur dautres ports. Pour obtenir ce rsultat, le pare-feu na pas besoin dtre aussi rapide et complexe que le serveur de messagerie lui-mme, car il na pas besoin de conserver une trace des connexions actuellement tablies ni leur tat exact. Le problme avec ce type de protection aussi compltement transparente est que le parefeu et le destinataire nal peuvent comprendre certains paramtres diffremment. Par exemple, imaginons quune personne malveillante parvienne convaincre le pare-feu quil se connecte un port autoris mais conoive son trac de telle manire que le destinataire nal le lise diffremment et tablisse une connexion un port que le pare-feu est cens protger. Un attaquant peut alors accder un service vulnrable ou une interface dadministration et les ennuis commencent. Bien quun tel malentendu semble improbable, il est assez facile raliser grce la fragmentation des paquets, en utilisant une approche communment appele "attaque par recoupement de fragmentation" 2 (dcrite en 1995 dans la spcication RFC1858). Dans cette situation, lattaquant envoie un premier paquet contenant le dbut de la requte SYN un port autoris par le pare-feu de la victime (comme le port 25 dj mentionn). Il ne manque au paquet quun petit bit la n et il dispose du ag "more fragments" congur dans son en-tte IP, mais pourquoi le pare-feu devrait se soucier des donnes en n de paquet ? Le pare-feu examine le paquet et, comme il sagit dun paquet SYN, son port de destination est galement examin et jug acceptable. Le paquet traverse le pare-feu, mais le destinataire ne linterprte pas immdiatement (noubliez pas le processus de rassemblage trait au Chapitre 9). Au lieu de cela, le paquet est conserv et laisse en suspens la suite du rassemblage, ce qui ne se produira pas avant que le dernier segment de n du paquet narrive.

210

Dans la jungle

Ensuite, lattaquant envoie un second fragment de paquet. Ce deuxime paquet est cr pour recouvrir sufsamment le paquet initial et craser le port de destination (lun des champs de len-tte TCP) dans la mmoire tampon de rassemblage. Le fragment est conu pour commencer un dcalage diffrent de zro et ne contient pas la majeure partie de len-tte TCP, lexception du bit rcrit. cause de cela (et parce quil lui manque les informations ncessaires ou dautres paramtres essentiels que le pare-feu utilise pour examiner les attributs dun paquet TCP et dterminer sil doit autoriser ou bloquer ce trac), le deuxime fragment est relay tel quel par un pare-feu sans tats. Lorsque le destinataire le combine avec le premier paquet, ce deuxime paquet remplace le port de destination original par une valeur choisie par lattaquant et ouvre effectivement une connexion sur un port qui devrait tre protg par le pare-feu. Oups !
NOTE Pour se protger contre cette attaque, un pare-feu sans tats bien conu effectue une dfragmentation initiale avant danalyser les paquets. Toutefois, cela le rend un peu moins "sans tats" et moins transparent.

Filtrage sans tats et perte de synchronisation du trac


Les ltres de paquets sans tats ont aussi le dfaut de ne pas tre, et de loin, aussi restrictifs que nous pourrions lesprer. Le ltrage ne peut tre ralis que si un seul paquet contient toutes les informations dont le ltre a besoin pour dcider de la faon de le grer. Or, aprs la poigne de main initiale, une connexion TCP est largement symtrique ; les deux parties ont des droits gaux et utilisent le mme type de trac (paquets ACK) pour changer des donnes, si bien quil nest pas facile dappliquer des ltres ayant un sens en dehors de la phase initiale dune connexion. Il nexiste aucun moyen de dterminer qui (si quelquun la fait) a initi la connexion travers les paquets ACK qui sont changs sans effectuer de suivi ni enregistrer les connexions. Ainsi, il est assez difcile de dnir de faon signicative quelle politique de ltrage le pare-feu doit tenter dappliquer au transfert de paquets intermdiaires comme les paquets ACK, FIN ou RST. Cette incapacit ltrer le passage des paquets SYN nest normalement pas un problme. Aprs tout, si un attaquant ne peut pas fournir les paquets SYN initiaux, il ne peut pas tablir de connexion. Mais il y a un inconvnient : la faon dont les systmes grent le trac non SYN vers un port spcique dpend si un port est ferm ou si le systme est lcoute de ce port. Par exemple, certains systmes dexploitation utilisent

Chapitre 11

La reconnaissance des anomalies

211

RST pour rpondre aux paquets FIN errants et ne gnrent aucune rponse sur les ports qui sont dans un tat ouvert ( lcoute)*. Des techniques comme le scan de paquet FIN ou ACK (cette dernire dcrite lorigine par Uriel Maimon 3 dans Phrack Magazine), ainsi que les scans NUL et Xmas (respectivement des scans laide de paquets illgaux sans ags dnis et avec tous les ags dnis), peuvent donc tre utilises contre des ltres de paquets sans tats pour dcouvrir quels ports sont ouverts sur un systme distant ou pour tablir quel trac est rejet par le pare-feu. Apprendre quun port spcique est ouvert sans quil soit possible dtablir une liaison avec celui-ci ne constitue pas en soi-mme une menace immdiate. Toutefois, un scan de cette nature rvle souvent des informations extrmement prcieuses sur les entrailles du rseau (le systme dexploitation et les services qui sont excuts) qui peuvent ensuite tre utilises pour raliser une attaque plus efcace et plus difcile dtecter une fois que la premire ligne de dfense est compromise ou contourne. Par consquent, on considre ceci comme un point faible potentiel dun pare-feu sans tats. La combinaison du mcanisme des cookies SYN et du ltrage sans tats reprsente peut-tre une menace plus grave. Les cookies SYN sont utiliss pour protger les systmes dexploitation contre les attaques par puisement des ressources, dans lesquelles lattaquant envoie un trs grand nombre de demandes de connexion falsies lhte (ce qui nest pas en soi une opration difcile raliser). Cela oblige le destinataire envoyer des rponses SYN+ACK errones et galement allouer de la mmoire et consommer dautres ressources pour ajouter cette connexion potentielle ses tables dtat TCP. La plupart des systmes qui subissent une telle attaque consomment trop de ressources et ralentissent normment ou refusent un moment de servir tous les clients, jusqu ce que ces fausses connexions se terminent. Pour faire face ce problme potentiel, les cookies SYN utilisent une signature chiffre (un rsum, en fait, qui identie la connexion sans quivoque) dans toutes les rponses SYN+ACK lintrieur du champ ISN, puis oublient compltement la connexion. La connexion nest ajoute la table dtat quaprs larrive de la rponse ACK de lhte, et uniquement si le numro dacquittement est valid par la procdure de chiffrement. Cependant, le problme avec les cookies SYN dans une telle conception vient du fait quil est possible que le paquet SYN (et la rponse SYN+ACK) nait jamais t envoy en premier lieu. Si lattaquant peut crer un cookie ISN valid par lalgorithme de cookie SYN de lhte (peut-tre parce que lattaquant dispose de sufsamment de bande passante ou parce que lalgorithme est faible), il peut envoyer un paquet ACK qui poussera lhte distant ajouter une nouvelle connexion sa table dtat mme sil nenvoie
* Certains aspects de ce comportement (la tendance rpondre par RST aux paquets errants et inattendus envoys aux ports ferms et rejeter le mme trac adress aux ports sur lesquels un service coute les connexions) sont dnis par RFC 793, tandis que dautres relvent uniquement dun choix effectu lors de limplmentation.

212

Dans la jungle

jamais de paquets SYN ni ne reoit de paquets SYN+ACK. Un pare-feu sans tats naura aucun moyen de savoir quune connexion vient dtre tablie, car il na jamais reu la demande douverture ! Comme il nexiste pas de paquet SYN initial, le pare-feu na pas pu vrier ladresse IP et le port de destination et donc ni les approuver ni les rejeter et, pourtant, une connexion est tout dun coup tablie. Cest vraiment mauvais.

Les ltres de paquets tats


Pour rsoudre les problmes des ltres sans tats, il faut stocker sur le pare-feu certaines informations sur le trac prcdent et ltat des ux tablis. Cest la seule faon de prvoir de faon transparente les rsultats de la dfragmentation ou dobtenir le contexte des paquets en cours de transfert et de dcider sils sont illgitimes et doivent tre rejets ou sils sont attendus par le destinataire et doivent tre livrs. Les ordinateurs hautes performances devenant plus abordables, il est devenu possible de concevoir des systmes de pare-feu beaucoup plus complexes et plus avancs que nous ne pouvions limaginer auparavant. Ainsi, nous en sommes arrivs au suivi des tats de la connexion, une situation dans laquelle le pare-feu non seulement examine chaque paquet mais se souvient galement du contexte dune connexion et valide chaque paquet en fonction de ces donnes. Cela permet au pare-feu de surveiller troitement le rseau et de supprimer tout trac indsirable ou inattendu sans compter sur la capacit du destinataire distinguer ce qui est lgitime de ce qui ne lest pas. Les ltres de paquets tats essaient de suivre la piste des connexions et nautorisent que le trac appartenant lune des sessions actives. En consquence, ils amliorent la protection et les capacits de journalisation. La tche des ltres tats est bien entendu plus difcile que celle des ltres sans tats et consomme beaucoup plus de ressources, surtout si ce dispositif protge un rseau de grande taille. Dans ce cas, le pare-feu ncessite beaucoup de mmoire et un processeur rapide pour stocker et surveiller ce qui se passe sur le cble. Une analyse tats est galement plus susceptible dentraner des problmes ou de crer une certaine confusion. Les ennuis surviennent ds que le pare-feu et les terminaux comprennent diffremment ltat actuel dune session TCP/IP, ce qui nest pas improbable compte tenu de lambigut des spcications et le nombre de piles diffrentes utilises. Par exemple, lors de la rception dun paquet RST qui nentre pas dans les limites des numros de squence accepts par le destinataire, un pare-feu qui inspecte les numros de squence moins rigoureusement que le destinataire nal peut conclure que la connexion est termine, tandis que le destinataire pense, lui, que la session est encore ouverte et sattend recevoir dautres communications de cette connexion, ou vice versa. En n de compte, linspection tats a un prix.

Chapitre 11

La reconnaissance des anomalies

213

Rcriture de paquet et NAT


Pour amliorer linterprtation des paquets et assurer une meilleure protection contre les attaques, notamment celles qui utilisent la fragmentation des paquets pour contourner les rgles du pare-feu, on a donn la possibilit aux pare-feu de relayer mais aussi de rcrire des portions du trac transmis. Par exemple, une approche consiste rsoudre lambigut en effectuant une dfragmentation (rassemblage) obligatoire du paquet avant de confronter le paquet aux rgles daccs congures par ladministrateur rseau. Avec le dveloppement de solutions plus sophistiques, il est devenu vident que la rcriture des paquets non seulement bncierait au rseau mais constituerait galement un pas de gant pour la scurit et la fonctionnalit du rseau, notamment en dployant des technologies trs utiles comme NAT. NAT est un mcanisme qui permet de faire correspondre certaines adresses IP un ensemble diffrent dadresses IP avant de les transmettre et de reconstituer les rponses renvoyes par un systme protg. Un mcanisme NAT tats peut entre autres tre utilis pour implmenter des congurations tolrantes aux pannes dans lesquelles une seule adresse IP publique est desservie par plus dun serveur interne. Pour conomiser lespace dadressage et amliorer la scurit des communications sur Internet, NAT peut tre implment pour permettre aux htes dun rseau interne de "masquer" leurs adresses prives derrire une seule adresse IP publique. Dans le premier scnario, NAT rcrit les adresses de destination sur les paquets entrants vers un certain nombre de systmes privs situs derrire le pare-feu. Cette conguration tolrante aux pannes rpartit la charge de faon quilibre entre plusieurs systmes pour les requtes effectues vers un site Web populaire (http://www.microsoft.com, par exemple) ou dautres services essentiels. Si un systme choue, dautres systmes peuvent prendre la relve. Cette tche est parfois ralise par des priphriques ddis (appels rpartiteurs de charge), mais elle est souvent galement prise en charge par des pare-feu sur lesquels le NAT est activ. Le deuxime scnario, communment appel masquerading, sappuie sur la rcriture des adresses sources sur les paquets sortants de sorte quun certain nombre de systmes privs et protgs (qui peuvent utiliser des adresses prives non routes vers ce rseau depuis Internet, comme 10.0.0.0) peuvent se connecter au monde extrieur, puisque leurs connexions sortantes sont interceptes et rcrites par le pare-feu. Les systmes sont cachs derrire un pare-feu et, pour les destinataires situs en dehors du rseau protg par NAT, leurs actions semblent provenir du pare-feu. La connexion est transfre une adresse IP publique et un port spcique, puis le trac est envoy vers lextrieur. Tout le trac en retour qui arrive cette adresse IP et ce port est rcrit puis relay au systme priv qui a initi la connexion et transmis au rseau interne. Cela permet lensemble des stations de travail du rseau priv qui ne sont pas censes offrir de services

214

Dans la jungle

Internet de ne pas tre directement accessibles depuis le monde extrieur, ce qui accrot considrablement la scurit du rseau, dissimule une partie de sa structure et prserve lespace dadressage IP public, qui, autrement, aurait du tre achet pour tous les systmes. Grce ce systme, une partie qui ne possde quune seule adresse IP publique peut crer un rseau compos de centaines ou de milliers dordinateurs qui disposent tous dun accs Internet.

Lost in Translation
Une fois de plus, la traduction des adresses est plus complexe quelle ne semble ltre : certains protocoles de plus haut niveau ne permettent pas aussi simplement dtablir une connexion un systme distant et denvoyer un groupe de commandes. Par exemple, lancien mais trs populaire protocole FTP 4 (File Transfer Protocol) repose dans son mode le plus simple et le plus largement pris en charge sur la cration dune connexion en retour (direction inverse) depuis le serveur vers le client pour transfrer les donnes demandes ; la connexion initiale initie par le client est utilise uniquement pour mettre des commandes. Beaucoup dautres protocoles notamment certains protocoles de discussion, les utilitaires de collaboration P2P ou de partage de donnes, les services de diffusion multimdias utilisent aussi des conceptions tranges ou inhabituelles qui font appel aux connexions inverses et au saut de port ou qui autorisent un trac en particulier revenir la station de travail, mme sil ne conserve pas de "contexte serveur" pour la session de lutilisateur (comme les paquets UDP [User Datagram Protocol]). Pour relever ces ds, chaque implmentation du masquerading qui ne vise pas rendre ces protocoles inutiles doit tre quipe dun certain nombre dassistants de protocole. Ces protocoles inspectent les donnes de lapplication changes au sein dune connexion, rcrivent parfois une partie de celles-ci et ouvrent temporairement des trous dans le pare-feu pour permettre une connexion en retour. Do un autre problme, identi pour la premire fois dans lassistant FTP par Mikael Olsson il y a plusieurs annes 5 et tudi ensuite dans dautres assistants de protocole par lauteur de ce livre, entre autres6. Le problme est que ces assistants dcident douvrir des trous dans le pare-feu en se fondant sur les informations transmises par une station de travail au systme distant sur un protocole spcique. Ils supposent que le trac gnr par le systme est transmis lutilisateur au nom et la connaissance de lutilisateur. Inutile de dire que certains programmes, comme les navigateurs Web, peuvent tre abuss et envoyer certains types de tracs rseau, y compris du trac qui "ressemble " un protocole que le programme ne prend pas en charge nativement. Ils peuvent mme tre contraints de le faire automatiquement en crant du contenu malveillant spcique et en lenvoyant lapplication. Ce trac falsi peut tromper un assistant du programme ouvrir un trou dans le pare-feu.

Chapitre 11

La reconnaissance des anomalies

215

Un exemple classique de cette attaque consiste abuser un navigateur Web gnrique : en ajoutant une rfrence une page Web ou un lment Web prtendument situ sur un port HTTP non standard du systme dun attaquant (ce qui est cependant tout fait standard pour le trac FTP), le client peut tre contraint de se connecter cette ressource et essayer dmettre une requte HTTP. Comme le port sur lequel la connexion est tablie est normalement utilis par FTP, lassistant FTP du pare-feu commence lcoute de la conversation pour apporter son aide si cela se rvle ncessaire. Cet exemple de lien URL force le client HTTP se connecter au port FTP et mettre ce qui semble tre la commande FTP PORT, qui sera reprise par lassistant du pare-feu :
HTTP://SERVER:21/FOO<RETURN>PORT MY_IP,122,105<RETURN>

La requte mise par le client serait juste un charabia dnu de sens pour un service FTP lgitime sur lautre systme, et la rponse du service serait incomprhensible pour le client Web mettant cette requte, mais l nest pas la question. Ce qui importe, cest que lattaquant peut contrler une partie de la requte le nom du chier que le client demande au serveur. Ce nom de chier ctif, choisi par lattaquant, peut contenir toutes les donnes que lattaquant dsire. En intgrant au nom de chier des sous-chanes normalement identies comme des requtes FTP, lattaquant peut amener un assistant de protocole FTP qui coute cette connexion dans lattente dune commande textuelle en particulier (PORT) croire que lutilisateur tente de tlcharger un chier spcique. Ainsi, le serveur distant est temporairement autoris se connecter la victime (ici, un port 31337 dont le numro semble malveillant 122*256+105=31337). La victime laisse donc entrer lattaquant sans le savoir. Encore une fois, ce ntait pas ce qui tait prvu...

Les consquences du masquerading


Tous les scnarios mentionns prcdemment sont lis labus du masquerading, mais la simple prsence du masquerading lui-mme peut fournir des informations intressantes sur une autre partie. Comme indiqu prcdemment, le masquerading est intrusif. Son principe opratoire de base consiste modier le trac sortant en rcrivant certaines portions de celui-ci. Ce faisant, il ne se contente pas de modier simplement ladresse, ce qui rend non seulement possible de le dtecter mais permet aussi un observateur attentif didentier le systme particulier de pare-feu qui est utilis. Plus prcisment, lorsque le masquerading est utilis, on peut rencontrer certains des changements suivants :
m

On peut observer un cart entre le TTL des paquets qui arrivent et la distance mesure ou prvue du rseau de destination. Le trac qui est mis par un rseau utilisant le masquerading a au moins un saut "plus ancien" quun paquet provenant dun

216

Dans la jungle

systme dont ladresse IP pour les connexions sortantes provient directement dun rseau protg.
m

Dans la plupart des cas, plusieurs systmes dexploitation ou diffrentes congurations systme (ou uptime) peuvent tre trouvs dans le rseau dorigine. Ces systmes ont des caractristiques TCP/IP lgrement diffrentes, comme nous lavons vu aux Chapitres 9 et 10. En observant diffrentes empreintes TCP/IP dans les connexions provenant apparemment de la mme adresse IP, on peut savoir si le NAT est prsent sur une machine et quil existe un rseau interne derrire elle. Enn, un observateur distant est susceptible de noter une modication du port source. Il sagit dun autre incident inhabituel qui survient car les connexions provenant du rseau utilisent des ports source phmres qui ne font pas partie de ceux que le systme dexploitation utilise normalement.

Chaque systme dexploitation rserve une plage particulire de ports source pour crer un identiant local de toutes les connexions sortantes. Toutefois, un pare-feu utilise souvent une autre srie de ports spcique au priphrique NAT du systme dexploitation pour tablir la cartographie des connexions utilisant le masquerading. Dans ce cas, si on observe une gamme de ports diffrente de celle attendue pour le systme dexploitation dtect (si par exemple Linux, qui fonctionne normalement sur les ports 1024 4999, semble utiliser des numros de port trs levs), il est possible de dduire la prsence dune traduction dadresse et parfois mme de dterminer le type de pare-feu utilis. Ces techniques de base sont couramment utilises pour dtecter le masquerading et identier les rseaux qui utilisent le masquerading. Mais plusieurs autres moyens de dtecter la rcriture des paquets sont galement disponibles.

La taille des segments


Un moyen moins vident et donc moins courant de dtecter les dispositifs de rcriture des paquets et den apprendre plus sur la conguration du rseau consiste analyser la taille maximale dun segment dans le trac entrant. Comme la fragmentation des paquets IP ajoute une surcharge notable au trac fragment, il est souvent considr comme nuisible aux performances, si bien que de nombreux dveloppeurs essaient de lempcher lors de limplmentation. Mais, comme nous lavons vu plus tt, la fragmentation est difcile liminer puisquil semble peu prs impossible de dterminer avec prcision, rapidement et de faon able lunit de transmission maximale (MTU) sur un chemin avant la communication. Mme la meilleure mthode disponible, PMTU, est loin dtre parfaite et a toujours un impact sur les performances lorsquelle est dclenche. Pour lui permettre de dtecter par

Chapitre 11

La reconnaissance des anomalies

217

ttonnements le bon paramtre MTU, il peut tre ncessaire dabandonner et de renvoyer quelques paquets qui ne conviennent pas. Pour viter limpact du PMTU sur les performances et la abilit et an de rduire la charge de la fragmentation, de nombreux pare-feu NAT qui rcrivent certains paramtres du trac sortant modient galement le paramtre MSS (la longueur maximale du segment) dans les en-ttes TCP des connexions provenant du rseau priv au prot dun MSS plus appropri pour le lien externe du rseau. Ce nouveau paramtre est gnralement plus court (il a un MTU moins lev) que celui du rseau LAN. Cette modication garantit que le destinataire ne tente pas denvoyer des donnes qui ne conviendraient pas la liaison si celle-ci traverse la partie de linfrastructure qui a le MTU le plus faible, rendant ainsi la fragmentation moins probable (cela suppose que toute incompatibilit MTU a plus de chances de se produire prs du systme de lexpditeur ou du destinataire, l o se trouvent gnralement les diffrents types de liaisons o le MTU est le plus faible, comme les connexions DSL ou les rseaux sans l, et o la taille des paquets doit tre "rduite" pour passer). Cette rduction du paramtre MSS nest pas particulirement facile dtecter. En fait, il est impossible de dire si le MSS a t x une valeur donne par lexpditeur ou modi quelque part en chemin. Du moins une exception prs. Souvenez-vous du Chapitre 9 : lalgorithme de slection de la taille de fentre a quelque chose de spcial sur de nombreux systmes actuels. Le paramtre Taille de fentre dtermine la quantit de donnes qui peut tre envoye sans acquittement. Le dveloppeur dnit souvent son paramtrage en fonction de certaines rgles ou croyances qui relvent plus du mysticisme quautre chose. Dans les deux approches les plus populaires, la valeur doit tre un multiple du MTU moins les enttes de protocole (une valeur appele Longueur maximale du segment, ou MSS) ou tre tout simplement un chiffre sufsamment lev et "rond". Les anciennes versions de Linux (2.0) utilisaient comme valeurs des puissances de 2 (16 384, par exemple). Dans Linux 2.2, cette valeur tait un multiple du MSS (onze ou vingt-deux fois le MSS, pour une raison quelconque), tandis que les versions les plus rcentes de Linux utilisent une valeur gale deux ou quatre fois le MSS. La Dreamcast, une console permettant daccder au rseau, utilise une valeur de 4 096 et Windows utilise souvent 64 512. Un nombre sans cesse croissant de systmes actuels (y compris les nouvelles versions de Linux et de Solaris, certaines versions de Windows, et SCO UnixWare) utilisent une taille de fentre qui est un multiple du MSS. Ainsi, il est facile de dire quand le rglage du MSS dans un paquet a t altr, car la taille de la fentre du paquet nest alors plus un multiple du MSS. En fait, il est probable quelle ne puisse plus tre divise du tout par le MSS. En comparant le MSS la taille de la fentre, on peut dtecter de faon able la prsence dun groupe de pare-feu qui prennent en charge le MSS clamping (son rajustement pour

218

Dans la jungle

quil corresponde la liaison) sur de nombreux systmes. Bien que le MSS clamping soit facultatif sur Linux et FreeBSD, il est souvent effectu automatiquement sur les pare-feu et les routeurs DSL des rseaux domestiques. Ainsi, la prsence dun paramtre MSS anormal indique non seulement la prsence dun priphrique de rcriture des paquets, mais aussi une capacit NAT associe, ce qui peut tre considr comme un indicateur de la connexion rseau de lexpditeur.

Suivi tats et rponses inattendues


Le suivi dune connexion tats et la rcriture des paquets ont une autre consquence importante : certaines rponses exiges par les RFC sont gnres par le pare-feu, et non par lexpditeur. Cela permet un attaquant de dtecter et de sonder un tel priphrique assez efcacement. Lorsque la connexion est efface depuis la table dtats NAT (en raison de son expiration ou si un des terminaux envoie un paquet RST de n de connexion qui natteint pas lautre terminal), le trac de cette session nest alors plus transmis au destinataire, comme cela serait le cas avec des ltres de paquets sans tats, mais est gr directement par le pare-feu. Les spcications TCP/IP exigent quun destinataire rponde tous les paquets ACK imprvus par RST, an dinformer lexpditeur que la session quils tentent de prolonger nest plus honore par le destinataire ou ne la jamais t. Certains pare-feu peuvent violer ces spcications RFC et refuser de rpondre ce trac, en supprimant les paquets qui ne semblent pas appartenir une session existante (ce qui nest pas toujours sage, car cela peut causer des retards inutiles lorsquune connexion lgitime est abandonne en raison de problmes intermittents sur le rseau). De nombreux priphriques rpondent toutefois avec un paquet RST lgitime et attendu. Cela ouvre une nouvelle voie pour la dtection et le ngerprinting du pare-feu. Comme le paquet est cr de toutes pices par le pare-feu, ses paramtres concernent le pare-feu et non pas ce que le pare-feu protge. Cela permet dutiliser les techniques de ngerprinting habituelles mentionnes au Chapitre 9 (notamment lexamen des ags DF, du TTL, de la taille de la fentre, des types doptions, des valeurs et de leur ordre, etc.) pour identier le pare-feu. Il existe galement une autre possibilit, fonde sur la spcication RFC 1122 7 :
4.2.2.12 RST Segment : RFC-793 Section 3.4 TCP DOIT permettre un segment RST de contenir des donnes. DISCUSSION : il a t suggr quun segment RST pourrait contenir du texte ASCII qui code et explique la cause du RST. Aucune norme na encore t tablie pour ce type de donnes.

Chapitre 11

La reconnaissance des anomalies

219

Et, en effet, mme si aucune norme na t tablie, certains systmes choisissent de rpondre aux paquets ACK errants par des messages RST verbeux (bien que souvent obscurs), en esprant que lautre partie se trouve rassure de savoir ce qui nallait pas. Ces rponses contiennent souvent des mots cls internes ou, semble-t-il, des tentatives dhumour geek spciques au systme dexploitation, tels que no tcp, reset ; tcp_close, during connect (Mac OS) ; tcp_fin_wait_2_timeout; No TCP (HP / UX) ; new data when detached; tcp_lift_anchor, cant wait (SunOS). Si nous voyons un tel paquet RST verbeux envoy lhte en rponse des problmes de rseau ou du trac inattendu et si nous savons par ailleurs que le systme distant do il semble provenir nutilise pas ce genre de messages verbeux, nous pouvons en dduire quil existe un priphrique entre nous et le destinataire, probablement un parefeu tats. Nous pouvons galement dire quel est son systme dexploitation en comparant la rponse et les messages couramment produits par des systmes dexploitation communs et moins communs. Ces deux techniques de ngerprinting se rvlent trs efcaces pour dtecter la prsence de ltres de paquets tats chaque fois que le trac rseau peut tre observ lorsque surviennent des problmes rseau court terme. Ces techniques peuvent galement tre utilises pour le ngerprinting actif sans devoir cibler le pare-feu lui-mme mais en envoyant un paquet ACK errant vers une cible pour diffrencier les ltres sans tats des ltres tats. En fonction de la manire dont la cible rpond au paquet, lattaquant peut alors dnir la meilleure mthode dapproche du pare-feu (ou utiliser ces connaissances dans un autre but).

Fiabilit ou performances : la controverse sur le bit DF


Le Path MTU Discovery (PMTUD) est un rendez-vous pour le ngerprinting qui est troitement li au systme destin viter la fragmentation IP dcrite au Chapitre 9. Les versions rcentes du noyau Linux (2.2, 2.4, 2.6) et de Windows (2000 et XP) implmentent et activent le PMTUD par dfaut. Ainsi, moins que ce paramtre ne soit modi, tout le trac provenant de ces systme contient un bit DF (dont fragment). L encore, lalgorithme de dcouverte du chemin a tendance provoquer des problmes dans certaines situations rares, mais qui se sont dj produites.

Cas dchec du Path MTU Discovery


Le problme de PMTUD vient quil repose sur la capacit qua lexpditeur dun paquet recevoir le message derreur ICMP "Le paquet doit tre fragment, mais paramtr DF" et dterminer les rglages optimaux pour une connexion. Le paquet qui a dclench

220

Dans la jungle

le message est supprim avant datteindre sa destination et doit donc tre redimensionn et envoy nouveau. Si lexpditeur ne reoit pas ce message, il nest pas au courant que ses paquets ne sont pas parvenus destination. Cela entrane au mieux un retard ou au pire le blocage de la connexion pour une dure indnie, car les retransmissions ne sont pas non plus susceptibles de traverser une liaison qui autorise une taille maximale pour les paquets infrieure celle des paquets que lexpditeur tente de transmettre. En revanche, il nest pas garanti que le message ICMP gnr lorsque la taille dun paquet est trop importante pour une liaison parvienne lexpditeur. Dans certains rseaux, la suite dune tentative mal conue damliorer la scurit, tous les messages ICMP sont simplement supprims. Enn, mme si un priphrique envoie un message, il peut trs bien ne jamais tre livr. Pourquoi supprimer les messages ICMP ? Historiquement, nombre de ces messages taient connus pour causer des problmes de scurit : certains paquets ICMP de taille exceptionnelle ou fragments corrompaient la mmoire du noyau dans de nombreux systmes (cette attaque est connue sous le nom de "ping de la mort"). Les messages ICMP envoys aux serveurs de diffusion ont galement t utiliss pour dclencher une tempte de rponses vers une fausse adresse source (attaques par rexion ou attaque "Smurf"), ainsi que pour effectuer des attaques par dni de service (DoS). Des systmes mal congurs interprtaient galement souvent les messages du routeur*, un type spcique de diffusion ICMP, comme une commande visant modier leurs paramtres rseau. Comme ils lacceptaient sans se proccuper si ces messages taient dignes de conance ou non, cela a ouvert une nouvelle voie intressante pour les attaques. Si bien quaujourdhui beaucoup craignent et bloquent ICMP.
NOTE Des guides de scurit suggrent souvent de rejeter tout trac ICMP et certains administrateurs systme suivent ce conseil naf. Je lai mme vu dans une recommandation de test dintrusion professionnelle crite par un spcialiste renomm dont je ne peux malheureusement pas rvler le nom ici.

Un autre problme qui peut rendre le PMTUD peu able, cest que certains messages derreur reus proviennent de priphriques qui utilisent un espace dadressage priv. Parfois, an de limiter lespace dadressage IP public (qui est gnralement coteux),
* Les annonces des routeurs ont t conues pour permettre la conguration automatique des htes du rseau sans avoir entrer les paramtres manuellement. Le routeur diffuse priodiquement ou la demande un message disant en gros : "Je suis l, utilisez-moi." Par dfaut, quelques systmes acceptaient des messages non sollicits sans trop dhsitation, ce qui est videmment une mauvaise ide.

Chapitre 11

La reconnaissance des anomalies

221

les interfaces sur le cble qui relient le routeur et le pare-feu dun rseau distant sont choisies parmi un pool dadresses rserves une utilisation locale et prive, au lieu de partir de celles effectivement routes vers ce rseau particulier depuis le monde extrieur. Malheureusement, lutilisation de lespace dadressage priv peut interrompre le PMTUD. Pourquoi ? Parce que, si un paquet en provenance du monde extrieur est trop volumineux pour tre relay destination par le pare-feu du destinataire, le pare-feu envoie un message derreur ICMP avec ladresse source du pare-feu lui-mme, qui appartient au pool priv. Le pare-feu de lexpditeur du paquet original peut alors rejeter le paquet de cette rponse car il semble venir du monde extrieur mais a une adresse IP dun pool priv (peut-tre mme du mme pool que le rseau LAN priv de lexpditeur). Le pare-feu rejette ce trac, car cest souvent le signe dune tentative visant usurper lidentit dun hte interne de conance. Toutefois, dans ce cas, cette dcision interrompt le mcanisme de dcouverte PMTU relativement rcent et lexpditeur original ignore que ses paquets ne sont pas passs. Pour aggraver les choses, mme si toutes les conditions sont runies et que le paquet atteint sa destination nale, de nombreux priphriques actuels limitent les taux de rponse ICMP et nenvoient quun certain nombre de messages pendant une priode donne. Cela a aussi t implment par mesure de scurit. Comme les messages ICMP ont t conus uniquement des ns dinformation et ntaient pas essentiels la communication avant lintroduction des algorithmes PMTUD, limiter le taux semblait tre un bon moyen dcarter certains types de dnis de suivi ou les attaques par puisement de la bande passante.

La lutte contre PMTUD et ses retombes


la lumire de ce qui prcde, certains considrent le PMTUD comme une conception assez mauvaise. Il offre une lgre amlioration des performances, mais au prix de problmes rares mais rcurrents et gnralement difciles diagnostiquer qui peuvent empcher les utilisateurs daccder certains serveurs ou bloquer leur connexion de manire inattendue. Bien que de nombreux algorithmes "de dtection des trous noirs " aient t conus pour dtecter les htes ou les rseaux sur lesquels le PMTUD devrait tre dsactiv (ces travaux ont connu plus ou moins de succs), cela ne rsout pas totalement le problme et peut introduire des retards supplmentaires le plus souvent lorsque cela est le moins souhaitable. Pour rsoudre ces problmes et viter les plaintes, certains fournisseurs de pare-feu congurent leurs solutions pour quelles effacent le ag DF sur tout le trac sortant. Cette lgre modication est souvent apprcie mais elle offre aussi un excellent moyen didentier la prsence dun dispositif de ltrage et de rcriture des paquets. Si on observe sur une adresse ou un rseau donn les caractristiques des systmes o le

222

Dans la jungle

PMTUD est activ mais que les paquets entrants naient pas de ag DF comme prvu, on peut dduire la prsence et le type dun pare-feu et donc obtenir de petits bits de donnes sans interagir avec la victime.

Matire rexion
Ainsi sachve ma petite histoire visant montrer quamliorer les pare-feu et les rendre plus mme dempcher les intrusions et la reconnaissance directe les rendent galement plus faciles examiner par valuation indirecte. Mais permettez-moi une brve parenthse. La dcouverte la plus bizarre et la plus intressante est peut-tre celle que jai faite en 1999. Bien que ntant pas directement lie la conception des pare-feu, elle nen fournit pas moins une piste de rexion intressante pour tous ceux qui sintressent au problme du ngerprinting passif des systmes intermdiaires. Jacek P. Szymanski, avec qui jai travaill brivement et avec qui jai ensuite eu le plaisir de discuter de certains motifs inhabituels et suspects du trac rseau*, a not une augmentation soudaine du nombre de paquets TCP/IP casss arrivant au port 21 536 (et, dans une moindre mesure, des ports comme 18 477 ou 19 535). Ces paquets casss provenaient toujours de ports comme 18 245, 21 331 ou 17 736 et avaient pour origine un grand nombre de systmes dans lespace dadressage tlphonique exploit par Telekomunikacja Polska, loprateur tlphonique national en Pologne. Une fois quelques-uns de ces paquets capturs, le trac tait trangement et svrement altr. Les paquets arrivaient avec des en-ttes IP en place (avec un type de protocole dni sur TCP), mais les en-ttes taient immdiatement suivis de la charge TCP ; les en-ttes TCP avaient tout simplement disparu. La combinaison de ports observe provenait de linterprtation des quatre premiers octets de la charge comme une paire de numros (sil y avait eu un en-tte TCP, ces numros correspondraient la combinaison des ports source et de destination). La paire 18 245 et 21 536 tait simplement une reprsentation de la chane de texte "GET", les quatre caractres qui commencent la plupart des requtes HTTP transfres sur le rseau. De mme, 18 477 et 21 331 reprsentaient SSH-, la phrase douverture de toute session Secure Shell. Et 19 535 et 17 736 reprsentaient EHLO, la commande qui ouvre toutes les sessions ESMTP (Extended SMTP).

* Une coopration qui, un moment donn, a abouti la cration dun groupe informel de chercheurs polonais qui, de 1999 2000, ont cherch mettre en corrlation, suivre et expliquer de nombreux types bizarres et inattendus de modles de circulation du trac travers le rseau.

Chapitre 11

La reconnaissance des anomalies

223

Mais la raison pour laquelle ce type de trac t soudainement son apparition restait un mystre. En outre, pourquoi ne provenait-il que de ce rseau en particulier ? Et pourquoi ce type daltration des paquets ne donnait-il pas lieu des problmes de connexion ou dautres dsagrments pour les utilisateurs, si certains quipements du rseau les produisaient effectivement ? La rponse suivit bientt. Il sest avr que tout le trac observ provenait des priphriques Nortel CVX, un systme daccs par modem que cet oprateur avait commenc utiliser. Le problme napparaissait que sporadiquement, sous de fortes charges. Par consquent, seul un faible pourcentage de paquets incomplets tait envoy et seul ce petit nombre parvenait aux destinataires ( leur plus grande surprise). Ce problme tait sans doute d une gestion incorrecte de la mmoire tampon ou du verrouillage de la le dattente, ce qui explique pourquoi il pouvait tre remarqu que lorsque de nombreuses sessions taient traites presque simultanment. Certains paquets semblaient alors tre envoys trop tt, alors quils taient encore "en construction" ou taient altrs par limplmentation. La socit corrigea son implmentation TCP/IP peu de temps aprs son dploiement en Pologne, et tout se termina bien. Mais, comme vous pouvez limaginer, ils ntaient ni les premiers ni les derniers laisser accidentellement une empreinte unique de leurs systmes dans des paquets dont ils graient le trac. Une fois de plus, la morale de cette histoire est quil est naf de ne pas tenir compte de ce que nous ignorons gnralement. Dans le monde en rseau actuel, les indices les plus tnus et les observations inhabituelles, inattendues ou inexpliques sont extrmement prcieux. Ils sont faciles trouver, mais difciles analyser. Les diffrentes mthodes dployes pour djouer le ngerprinting du systme constituent peut-tre aussi matire rexion et mritent dtre explores. Plusieurs fournisseurs de pare-feu ont tent dincorporer des mesures antingerprinting qui altrent certaines caractristiques des paquets en modiant diffrents paramtres TCP/IP (comme les identiants IP, les numros de squence TCP, etc.). Inutile de dire que cette solution aide en fait lattaquant et produit un rsultat exactement inverse de celui attendu : moins que toutes les caractristiques que le ngerprinting peut dcouvrir soient changes et rendues homognes (y compris les numros de squence, les temps de retransmission, les valeurs de timestamp et ainsi de suite), il est non seulement possible de dtecter le systme dexploitation sous-jacent mais aussi le pare-feu utilis pour protger le rseau. Cest la vie !

12
Fuite des donnes de la pile
Encore un court rcit expliquant o trouver ce que nous navions pas du tout lintention denvoyer.

Parfois, un peu de chance suft pour trouver des indices lgers mais trs utiles sur les personnes qui partagent le mme rseau que vous et o elles se trouvent. Ce fut du moins le cas lorsque je dcouvris en 2003 un vecteur de divulgation dinformations assez intressant et trs vasif aprs plusieurs semaines de chasse intensive.

Le serveur de Kristjan
Mais reprenons dans lordre. Il y a plusieurs annes, jai demand Kristjan, un ami, de me laisser utiliser un peu despace disque sur une de ses machines an dhberger certains de mes projets sur un systme able et rapide. Il a accept et, peu de temps aprs, jai commenc transfrer progressivement la plupart de mes programmes et documents vers leur nouvelle demeure. Parmi les projets que je transfrais se trouvait une nouvelle version de p0f, mon outil de ngerprinting passif du systme dexploitation (dont jai parl au Chapitre 9). Cet utilitaire implmentait des techniques danalyse passive intressantes mais, pour tre vraiment puissant, il devait saccompagner dune large base de donnes de signatures des systmes dexploitation qui soit actualise.

226

Dans la jungle

La mise jour manuelle de la base tait difcile effectuer, et jai rapidement manqu de systmes obscurs ajouter. Alors que recueillir des signatures pour les logiciels de ngerprinting actif ncessitait souvent dinteragir de faon rprhensible avec la cible (ce qui soulve des controverses, sature la liaison rseau et parfois crase particulirement les piles TCP/IP mal implmentes), le ngerprinting passif nexigeait heureusement pas de mener ce genre daction et pouvait tre pratiqu sans effort sur tous les systmes qui se connectaient au systme de Kristjan pour afcher ma page. Pour encourager les visiteurs participer, jai cr une page annexe sur laquelle ils pouvaient immdiatement voir leur empreinte, corriger les informations recueillies sur leur systme ou ajouter une nouvelle signature. Cette page sest rvle tre un excellent moyen de recueillir des signatures et damliorer le logiciel, mais lhistoire ne se termine pas l. Les vnements prirent alors une tournure trange. Kristjan dcida dhberger un autre site, but lucratif celui-l, de manire nancer son systme. Ce site, comme vous pouvez limaginer, ne traitait du tout de la scurit des rseaux, du jardinage ou de quelque autre cause aussi noble. Au contraire, il tait consacr un aspect de notre vie moins prestigieux mais peut-tre plus attrayant : le sexe, la nudit, et tout ce qui sy rapporte. Cela me rjouissant, comme tout geek qui se respecte, non pas en raison du contenu de ce site mais parce quen quelques heures des millions de signatures de connexion analyser par le logiciel que je dveloppais commencrent afuer. Allluia !

Des dcouvertes surprenantes


Mieux vaut prvenir que gurir : lors de llaboration du nouveau code de p0f, je dcidai dimplmenter un certain nombre de contrles an de dtecter dans le trac entrant des motifs inconnus, bizarres ou improbables an denglober toutes les combinaisons dnues de sens ou illgales des paramtres TCP/IP. Tandis que je pensais ne jamais rencontrer de paquets dont les paramtres soient bizarrement altrs (du moins pas en communiquant avec des systmes courants et donc bien tests), il semblait ny avoir aucun mal implmenter cette fonctionnalit. De plus, sil savrait effectivement quun systme envoyait des paquets prsentant un type danomalie en particulier, la capacit de le dtecter constituerait une excellente faon de distinguer ce systme dexploitation des autres implmentations similaires qui ne partageaient pas ce dfaut. Pendant les mois heureux o cette tempte bnie de signatures eut lieu, jai vu les choses les plus tranges. Jai nalement russi en expliquer certaines et les documenter pour p0f, mais dautres restaient un mystre. La plupart des contrles danomalie que javais implments auparavant remplissaient leur rle, si bien que je localisais immdiatement les systmes qui partageaient les implmentations TCP/IP les plus inhabituelles. Mais

Chapitre 12

Fuite des donnes de la pile

227

une chose tait particulirement proccupante et difcile croire, si bien que je dcidai dy accorder plus dattention. Deux des tests une vrication de la valeur ACK dnie dans les en-ttes TCP/IP lorsque le ag ACK nest pas dni (une action futile, en effet) et un test de la valeur URG dnie lorsque le ag nest pas activ semblaient relativement vides de sens au premier abord et ne donnaient jamais de rsultats intressants, jusqu ce que je remarque quelque chose de tout fait inhabituel. Je notai que certains systmes sous Windows 2000 et XP qui se connectaient au serveur de Kristjan avaient de temps autre des valeurs URG ou ACK diffrentes de zro dans des paquets o aucun de ces ags ntait dni (en particulier dans les paquets SYN qui ouvrent une nouvelle connexion). Avoir des valeurs URG ou ACK dnies alors que leurs ags respectifs ne le sont pas ne reprsente pas un problme strictement parler. Selon la spcication RFC793, ces valeurs perdent simplement toute signication lorsque cest le cas. Par exemple :
Pointeur durgence : 16 bits Ce champ communique la valeur courante du pointeur durgence comme un offset positif du numro de squence dans ce segment. Le pointeur durgence pointe vers le numro de squence de loctet qui suit les donnes urgentes. Ce champ doit seulement tre interprt dans les segments o le contrle URG est dni.

Dans sa faon toute particulire de prsenter les choses, la spcication RFC793 nous dit que cette anomalie ne risque pas de provoquer de problmes rseau. Elle aurait donc pu passer inaperue indniment. Et je ne la remarquai tout simplement que parce quil sagissait dune bizarrerie. Jai dabord pens que la faute venait dun lment particulier de lquipement rseau, comme pour la plupart des problmes dcrits au Chapitre 11, mais ce ntait pas le cas. Les anomalies provenaient de systmes simples, non de rseaux entiers, et ntaient pas persistantes ; elles apparaissaient seulement dans quelques paquets (avec des valeurs xes ou changeant de faon alatoire), puis disparaissaient sans jamais rapparatre de nouveau sur les connexions suivantes. Ce problme semblait tre lapanage unique de Windows ; aucun systme dexploitation minoritaire napparaissait dans lensemble des systmes prsentant ce dfaut. Jai pass plusieurs semaines tenter de trouver lorigine du problme. Jai dploy dautres installations dans des environnements plus contrls. ma grande surprise, le problme est apparu, mme dans des rseaux locaux et mme dans les systmes les plus jour, mais seulement pour de courtes priodes de temps. Les utilisateurs ne se souvenaient pas avoir fait quoi que ce soit dinhabituel lorsque ce type de trac provenait de leur systme et je ne trouvais pas de type particulier de communication ni daction qui aurait pu dclencher cela ; il semblait ny avoir aucun motif. Troublant.

228

Dans la jungle

Rvlation : la reproduction du phnomne


Jtais sur le point dabandonner. Je publiai mes observations sur plusieurs listes de diffusion publiques (notamment VULN-DEV, une liste de discussion populaire sur la vulnrabilit hberge par Security Focus), la recherche dune analyse plus approfondie et de lavis dautres chercheurs, mais cela ne donna aucun rsultat. Et puis je surpris par chance une de mes propres stations de test en train de reproduire exactement ce schma de comportement alors que je travaillais sur un problme compltement diffrent. Il se trouve que javais un sniffer sexcutant en tche de fond (nest-ce pas le cas pour nous tous ?). Je pus bientt effectuer un diagnostic : le problme survenait lorsque la station de travail ralisait un transfert de chier en tche de fond ou une autre opration sollicitant beaucoup le rseau tout en essayant dtablir une connexion. Dans presque tous les systmes dexploitation, le paquet envoyer est dabord cr dans la mmoire principale du systme, laide soit dune mmoire tampon statique (un lieu xe dans la mmoire utilis exclusivement dans ce but) soit dune mmoire tampon dynamique (une partie de la mmoire alloue selon les besoins et pouvant utiliser la mmoire dj utilise auparavant pour dautres ns). Dans ce scnario particulier, lorsque deux connexions se produisaient peu prs simultanment, la mmoire tampon utilise pour crer les paquets sortants avant de les envoyer la carte rseau semblait ne pas tre correctement initialise avant dtre utilise. En fait, tout le contenu restant des utilisations prcdentes de la mmoire tampon ntait pas effac ; autrement dit, la mmoire tampon ntait pas efface parce quelle avait t utilise dans un but diffrent la fois prcdente. Le code dimplmentation suppose que tout le contenu de la mmoire tampon est zro et ne prend pas la peine de toucher le contenu quil na pas besoin dinitialiser une valeur particulire (comme cest le cas pour les valeurs URG et ACK lorsque leurs ags respectifs ne sont pas dnis). Par consquent, une partie du contenu rsiduel est envoy dans le paquet. Naturellement, tous les autres champs IP et TCP taient correctement initialiss ; seuls les champs URG et ACK ne ltaient pas puisquils navaient pas dimportance dans ce contexte particulier. Mais cette omission signiait quune petite partie des donnes appartenant une connexion diffrente (ou un aspect diffrent des oprations de lordinateur) tait envoye une autre partie. Le problme se manifestait uniquement lorsque plusieurs sessions taient ouvertes (ce qui est courant lorsquon navigue sur le Web ou quon tlcharge en tche de fond, par exemple), mais pas lorsque le systme tait inactif. Limportance de linformation divulgue dans cette situation est double : m On peut considrer quil sagit dun scnario de divulgation dinformations classique. Bien que la quantit dinformations divulgues dans chaque paquet o les valeurs URG et ACK ne sont pas initialises correctement soit assez faible et puisse

Chapitre 12

Fuite des donnes de la pile

229

ne pas tre signicative (sauf si la mmoire tampon contenait quelque chose dintressant), elle peut tre utile dans certains cas de gure, surtout lorsquune session simultane pouvant contenir des informations sensibles et donc le bogue lui-mme peut tre provoque par une entit externe. m Cette vulnrabilit peut tre considre comme une mesure de ngerprinting pratique qui rvle des informations supplmentaires sur le systme dexploitation et son tat une faon simple de diffrencier les systmes qui utilisent largement le rseau de ceux qui sont inactifs. Voil. Mme si la signication de cette dcouverte ne doit pas tre surestime, jai dcid de linclure ici pour sa valeur divertissante et pour montrer quel point il est facile dobtenir des donnes complexes dune partie distante sans mme le demander.

Matire rexion
Il est facile de rejeter la faute sur les dveloppeurs. Bien quils soient bien sr responsables de ne pas initialiser la mmoire correctement, le fait mme davoir un "activateur" spar pour un champ de len-tte tient peut-tre plus un dfaut de conception du protocole TCP lui-mme et peut contribuer ce genre de problme. Nous avons vu au Chapitre 7 certains petits dfauts similaires des spcications de protocole, lorsque nous avons parl dun type semblable de vulnrabilit d au simple fait de suivre une spcication trop la lettre sans beaucoup rchir aux effets secondaires potentiels.

13
Fume et miroirs
Ou comment disparatre avec lgance.

Beaucoup de cas de divulgation dinformations examins jusquici ncessitent quune analyse minutieuse des donnes transmises par un systme distant soit effectue pour dduire certains faits sur lexpditeur ou pour intercepter plus de donnes quil na conscience den envoyer. Dans plusieurs cas, toutefois, on ne peut obtenir quune preuve circonstancielle de la prsence dune certaine forme dactivit.
Comme indiqu aux Chapitres 1 et 2, en interprtant prcisment cette preuve on peut dterminer lendroit probable o se trouve lutilisateur ou une application qui traite les donnes sensibles et ainsi rvler indirectement les secrets de la machine de la victime sans avoir accder aux donnes elles-mmes. En raison de certaines caractristiques du protocole IP, bon nombre de ses implmentations sont vulnrables et divulguent des lments de cette preuve circonstancielle, dune manire assez semblable celle que nous avons vue prcdemment avec certains types de gnrateurs de nombres pseudo-alatoires ou certains algorithmes de traitement des donnes plus ou moins complexes. Il peut tre intressant dobserver puis de dchiffrer soigneusement ces informations car elles noffrent dans le pire des cas plus de renseignements que ncessaire sur les habitudes dun concurrent en gnral ou sur ses activits en particulier.

232

Dans la jungle

Jusqu prsent, nous nous sommes consacrs dans ce livre aux attaques sur la couche IP, ce qui ncessite dobserver directement le trac en provenance dun expditeur, mme sans interagir en gnral avec la victime. Dans ce chapitre, en revanche, nous allons examiner une attaque IP active spectaculaire bien quindirecte dans laquelle un attaquant tablit le prol de ses victimes en devinant ce quil ne peut pas voir. Pour cela, il interagit avec une innocente machine victime qui nest pas le vrai sujet du test sans quelle ne le sache et sans son consentement pour apprendre ce quil est possible de ltre sur la victime relle de lattaque. Une telle approche ne semble pas le moyen le plus simple de recueillir des donnes. Donc, dans lesprit dun geek, pourquoi ne pas prendre la route touristique, mme si elle est plus longue, et examiner le paysage en dtail ?

Lusurpation dadresse IP : le scan de port avanc


Les internautes malveillants utilisent frquemment le balayage des ports pour prparer leurs attaques et raliser le ngerprinting du systme. Lors du balayage des ports, un attaquant potentiel tente de se connecter pendant une courte dure chaque port sur un systme et tablir la carte de tous les programmes qui coutent le trac rseau. De cette manire, il peut savoir o attaquer en trouvant tous les services rseau sur le systme qui sont vulnrables ou potentiellement intressants. Dans de nombreux cas, il peut aussi dterminer quel systme dexploitation utilise sa victime, car les services par dfaut sont souvent spciques chaque systme dexploitation. Le premier problme du balayage de port traditionnel est quil est assez bruyant la victime est susceptible de remarquer une tempte ou mme un ux rgulier de tentatives de connexion des ports inhabituels. Il nest pas non plus facile de se cacher ; lattaquant doit tre en mesure de voir les rponses ses paquets SYN pour savoir si un port est ouvert ou ferm. Les ports ouverts rpondent avec SYN+ACK, les ports ferms, avec RST, tandis que les ports ltrs par un pare-feu sont susceptibles de ne gnrer aucune rponse ou un message ICMP (Internet Control Message Protocol). En consquence, lattaquant ne peut pas simplement usurper ladresse source sur tous les paquets sortants ; il doit rvler son identit en fournissant des adresses sources qui sont routes en retour vers le rseau quil coute pour dtecter le trac entrant.

Larbre qui cache la fort


Quon effectue le balayage de port par curiosit (pour voir par exemple quel systme dexploitation un concurrent utilise) ou pour prparer une tentative dattaque, on souhaite en gnral laisser aussi peu de traces que possible et viter dalerter la victime. Les administrateurs rseau et les autorits ont gnralement une ide assez ngative du

Chapitre 13

Fume et miroirs

233

balayage des ports des htes et des rseaux. Bien que la question de savoir si ces analyses doivent tre considres comme malveillantes ne soit toujours pas tranche, la personne qui effectue cette dcouverte perd presque toujours quand un administrateur systme agac dcide de signaler un abus ou quand un employ qui essaie de sonder les rseaux de la concurrence se fait remarquer, quels que soient les vritables intentions et les plans de ce testeur curieux. Pour camouer le balayage de port, on dploie couramment un balayage "leurre". Lattaquant envoie alors des paquets SYN chaque port depuis un certain nombre de fausses adresses, ainsi que depuis sa vritable adresse IP. La victime traite ces faux paquets de la mme faon que les vrais, mais les rponses ceux qui sont faux sont bien sr envoyes dans le vide. En consquence, il est beaucoup plus difcile pour la victime de savoir qui est rellement derrire le scan, car elle doit effectuer une analyse approfondie ou procder par ttonnements pour liminer tous les systmes leurres de la liste des paquets source. Pourtant, avec un peu deffort, il est possible de localiser lexpditeur sans faire appel aux autorits, mme si lattaquant espre dcourager la victime en rendant un tel incident mineur trop long rsoudre entirement.

Lidle scan
Comme cest souvent le cas, une personne qui avait trop de temps libre et qui le perdait lire des spcications de protocole au lieu de faire quelque chose de productif dcouvrit la dfense ultime contre le risque dtre dcouverte. Ainsi naquit la technique baptise "idle" scan (balayage "inactif"). Initialement conue par Salvatore "antirez" Sanlippo en 1998, elle a rapidement t implmente grande chelle et est devenue trs populaire parmi les hackers ( la fois les simples curieux et les personnes malveillantes) 1. Lidle scan se fonde sur une observation importante. Pour citer la spcication RFC793 :
En rgle gnrale, un paquet reset (RST) doit tre envoy chaque fois quarrive un segment qui nest apparemment pas prvu pour la connexion en cours. Un paquet RST ne doit pas tre envoy sil nest pas certain que ce soit le cas.

Les paquets RST du protocole TCP sont utiliss pour clore une connexion sans condition et dire lexpditeur de cesser toute nouvelle tentative de communiquer. Le systme, sans beaucoup dhsitation, envoie un paquet RST lorsquil rencontre du trac imprvu, selon la rgle de la RFC793 (naturellement, les paquets RST eux-mmes, mme lorsquils ne sont pas attendus, ne reoivent aucune rponse ; sils ltaient, un ux interminable de paquets RST rebondirait au moindre hoquet du rseau). Lidle scan use et abuse habilement du fait que la machine tmoin gre tous les paquets inattendus de cette faon. Lattaque permet aux membres malveillants du rseau de scanner une victime avec laquelle ils nont pas lintention de communiquer directement.

234

Dans la jungle

Lors de lidle scan, lattaquant choisit au hasard un systme sur Internet et lutilise sans quil ne se doute de rien pour scanner un troisime systme (la vraie victime), sans jamais dvoiler son identit. Lidle scan fonctionne de la faon suivante : lattaquant usurpe lidentit dun paquet SYN destin un port quil veut contrler sur le systme de la victime. Ce paquet est adress la victime, mais ladresse de retour indique ladresse du systme tmoin au lieu de celle du systme de lattaquant. Cette technique elle seule ne semble pas mener bien loin, mais attendez la suite. Ce qui se passe ensuite dpend si le port est ouvert ou non :
m

Si le port sond sur le systme de la victime rpond au systme tmoin par un paquet RST, la machine tmoin reoit et conserve simplement le RST en silence, sans gnrer aucun trac en retour vers la victime. Si le port sond est ouvert, la victime rpond par un message SYN+ACK. Le tmoin, incrdule, conclut quil na jamais envoy de paquet SYN auparavant et envoie donc un message RST pour indiquer la victime quelle se trompe manifestement et quelle ferait mieux de sarrter maintenant. La victime, en bon mouton de panurge, accepte la rponse et abandonne tous les enregistrements de la connexion quelle esprait accepter.

Limportance de cette distinction est difcile apprcier en premier lieu. Mais souvenezvous du Chapitre 9 et des informations sur un des champs de len-tte IP :
Le numro didentication (ID) est une valeur 16 bits qui diffrencie les paquets IP lorsque la fragmentation se produit. Sans IP ID, si deux paquets sont fragments simultanment, les fragments de ces deux paquets seront altrs, mlangs ou endommags au rassemblage. Les IP ID identient de faon unique plusieurs mmoires tampon de rassemblage pour les diffrents paquets. La valeur utilise pour cela est souvent choisie simplement en incrmentant un compteur chaque paquet envoy ; le premier paquet envoy par un systme a un IP ID de 0, le deuxime, un IP ID de 1, et ainsi de suite.

Comme lattaquant a choisi une machine victime qui utilise en effet ce systme de slection dIP ID (et il a lembarras du choix), il peut dsormais facilement savoir si la machine victime a envoy un paquet IP dans un dlai donn. Pour cela, il envoie tout simplement du trac dnu de sens au systme tmoin avant et aprs le sondage et compare les valeurs des IP ID dans les rponses quil reoit. Sil observe que deux IP ID ne diffrent que de 1, cela signie quaucun paquet na t envoy par la machine tmoin entre-temps. En revanche, si lcart est suprieur 1, cela indique que certains paquets ont effectivement t changs, mme si lattaquant ne peut pas savoir avec certitude avec qui a eu lieu cet change.

Chapitre 13

Fume et miroirs

235

Lattaquant peut galement effectuer un sondage juste avant et juste aprs lenvoi dun paquet usurp la victime. Les rponses de la machine tmoin lui permettent ainsi de savoir si un port est ouvert ou ferm. Si lIP ID du tmoin augmente, il est probable quil rponde la victime avec un paquet RST, ce qui signie que la victime doit avoir auparavant envoy un message SYN+ACK en rponse au paquet usurp. Lattaquant peut alors conclure que ce port est ouvert. Si, en revanche, le tmoin produit le prochain IP ID comme prvu, il na rien reu de la victime ou a dcid dignorer les paquets RST reus. Il y a, bien sr, certaines considrations pratiques. Il est primordial que la machine tmoin ait une activit relativement limite pendant lidle scan et que le test soit rpt plusieurs fois an dliminer les rsultats faussement positifs, car sinon lattaquant risque de mal interprter certaines communications tierces du ct du tmoin et penser quun port spcique est ouvert sur la machine de la victime.
NOTE Cependant, aucune de ces deux questions ne sest rvle reprsenter un vrai problme et de nombreux utilitaires avancs implmentent lidle scan et le font bien (depuis le prcurseur idlescan en 1999 ou lingnieux NMAP actuellement).

Limportance de lidle scan vient de sa capacit masquer lorigine dun balayage des ports non pas en essayant simplement de dcourager la victime mais en rendant impossibles identier toutes les communications manant de lattaquant. Cela rend plus difcile de procder au suivi de lattaquant sans laide du propritaire de la machine tmoin (comme ce dernier peut se voir demander des IP ID par lattaquant dans un cadre lgitime, comme une session HTTP, il peut par consquent tre difcile de savoir sil a t utilis pour une attaque ou pas du tout) ou celle dentits externes (autorits judiciaires et fournisseurs daccs Internet). Comme, en gnral, les autorits dclenchent des poursuites judiciaires non parce quun systme a t sond mais uniquement lorsquil est compromis (les concurrents curieux peuvent dormir tranquilles) et qui ncessitent que la victime reconnaisse que son systme a t compromis (ce qui nest pas toujours facile pour certaines grandes entreprises), lattaquant se sent plutt en scurit.
NOTE Bien que les rsultats obtenus ne semblent a priori pas diffrents de ceux obtenus avec un scan SYN classique, lidle scan offre des perspectives de balayage des ports assez uniques. Lutilisation dune machine tmoin permet de voir le systme de destination partir de son point de vue. Si ce tmoin dispose de privilges daccs suprieurs au systme de la victime (si, par exemple, il sagit dun systme situ lintrieur dun rseau protg par un pare-feu ou un systme pour lequel certaines rgles de ltrage IP sont dnies de faon laxiste an de faciliter laccs un rseau dentreprise), on peut utiliser lidle scan pour dcouvrir les rouages internes dun rseau protg.

236

Dans la jungle

Se dfendre contre lidle scan


Il nexiste lheure actuelle aucune dfense immdiate contre lidle scan ni aucun moyen simple de le diffrencier dun scan SYN ordinaire. Toutefois, il est assez facile dempcher son systme de devenir une machine tmoin en utilisant des IP ID alatoires ou constants, comme nous lavons vu au Chapitre 9. Mme si cela ne rendra pas plus difciles les attaques menes contre vous ni les attaques en gnral (beaucoup de systmes utiliseront toujours des identiants squentiels), cela empchera votre rseau dtre abus dans ce but prcis. Pour viter une attaque qui contourne le pare-feu, faites preuve de bon sens lors de la conception des voies daccs pour les systmes extrieurs et utilisez le paramtre Ingress ltering appropri sur les systmes passerelles pour interdire tous les paquets en provenance dInternet dont les adresses sources semblent appartenir un rseau protg. Mme si, comme nous lavons vu prcdemment, ce type de ltrage peut empcher les mcanismes de PMTU (path maximum transmission unit), il rsout gnralement plus de problmes quil nen pose.

Matire rexion
Bien que ce soit moins facilement ralisable, il est toujours possible dutiliser des IP ID pour tablir le prol gnral de lactivit IP. En fait, lorsque la victime tablit une session interactive avec un systme distant, les IP ID peuvent mme tre utiliss pour analyser la frappe des touches dans le temps ou pour des actions analogues, ce qui rend donc cette technique applicable dans les scnarios dattaque dans le temps dj abords. De mme, vous pouvez amliorer les capacits de traage de lutilisateur en mesurant le nombre de paquets envoys par un hte en particulier entre deux visites conscutives un rseau contrl. En fonction de la conception du gnrateur ISN, vous pouvez galement utiliser les numros de squence TCP sur certains systmes pour disposer des mmes fonctionnalits quoffre lanalyse des identiants IP. Je vous encourage explorer cette ide plus en dtail. Pour ce qui est de traquer la source dun idle scan (ou de toute autre attaque par usurpation), reportez-vous au Chapitre 17.

14
Lidentication du client : vos papiers, sil vous plat !
Voir par le biais dun dguisement mince peut se rvler utile dans de nombreux cas.

En local, il est assez simple de connatre la vritable identit dun logiciel et sa lgitimit sur lordinateur qui lexcute. Mais il nest pas si facile de le faire sur un rseau. Les administrateurs systme et les dveloppeurs dapplications cherchent souvent identier le logiciel utilis lautre extrmit lors dune session rseau, et ils y parviennent avec plus ou moins de succs.
Ils essaient didentier les logiciels pour plusieurs raisons. Dans le cas du WWW (World Wide Web), il sagit gnralement doptimiser le contenu destin au client en fonction du moteur de rendu utilis, que ce contenu soit lgitime ou malveillant. Dans de nombreux autres systmes de communication messageries instantanes, clients mail, et ainsi de suite , identier les clients permet de garantir le respect de la politique rseau et de dtecter des communications manant dapplications ventuellement dangereuses ou inacceptables. Enn, les programmeurs eux-mmes tentent didentier les programmes pour viter quun logiciel non approuv (ou sans licence) nutilise un service rseau en particulier (ce qui les prive dune partie de leurs revenus) ou pour dtecter de tels incidents et prendre des mesures correctives.

238

Dans la jungle

La manire la plus simple et la plus courante didentier lautre partie repose sur lexamen des informations volontairement afches par le systme distant. Ces informations peuvent provenir dune bannire de "bienvenue" fournie par un serveur, tre obtenues en consultant les en-ttes de protocole envoys par un client (le prxe X-Mailer pour les e-mails, User-Agent dans les sessions WWW, etc.), en analysant ltat textuel et les messages derreur ou davertissement utiliss par le service pour rpondre certains types de tracs*. Malheureusement, la premire mthode est extrmement peu able et facilement sabote par les utilisateurs qui ont quelque chose cacher. La dernire mthode est intrusive et assez difcile utiliser sur les clients sans causer de problmes (la plupart des logiciels clients sont conus pour abandonner et se plaindre la premire condition derreur quils rencontrent ; les utilisateurs qui, la suite dune tentative didentier leurs logiciels, rencontrent un message derreur et ne peuvent pas accder lgitimement un service naccueilleront pas ce fait avec joie).

Camouage
Lexamen des annonces textuelles produites par le client nest pas able, non seulement parce que les utilisateurs peuvent camouer leur logiciel Internet (navigateurs Web, clients de messagerie, etc.) an dimiter les rponses des clients les plus frquemment utiliss, mais aussi parce quils ont souvent une bonne raison dessayer, soit pour se fondre dans la masse soit tout simplement pour tromper les serveurs qui ont tendance mieux connatre queux la version dun programme utiliser. Ce camouage est simple raliser, laide dune fonctionnalit intgre du client ou en modiant les sources ou les valeurs binaires dun programme avec lun des multiples utilitaires disponibles gratuitement. En outre, comme de nombreux environnements dentreprise ont commenc implmenter un ltrage plus rigoureux du contenu an de bloquer le trac indsirable, certains codeurs qui travaillent sur des applications plus contestables se sont alors mis usurper lidentit dun logiciel inoffensif. Il ny a pas si longtemps, les applications P2P de partage de musique, les chevaux de Troie malveillants et les logiciels espions ont commenc se faire passer pour le navigateur Web le plus rpandu, Microsoft Internet Explorer, dans leurs communications sortantes. Il en va de mme pour beaucoup de robots utiliss par des entreprises commerciales assez douteuses dans le monde entier pour collecter les adresses Web.

* AMAP, de THC, est un outil populaire qui utilise le ngerprinting pour analyser les rponses. Pour en savoir plus, visitez ladresse suivante : http://www.thc.org/releases.php. NMAP, cre par Fyodor et qui peut identier des services en analysant des bannires.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

239

Dautres protocoles sont galement la proie des imitateurs. Il nest pas surprenant que la majorit des logiciels de mailing de masse tant mpriss quutilisent les spammeurs et les escrocs feignent dtre des programmes comme Microsoft Outlook, PINE, Mutt, Eudora, The Bat! ou Netscape Mail. La rgle de base est de se cacher derrire un camouage pour chapper au contrle des administrateurs rseau, qui, sils venaient prendre conscience de la prsence du logiciel, trouveraient facilement comment le bloquer. Aucun spammeur sain desprit nannoncera que ses e-mails proviennent d"Oncle Bernie, le sinistrement clbre expditeur de mailing de masse. Edition Ultime", tout simplement parce quil serait alors trop facile pour un utilisateur ou un ltre de spam de les dtecter et de les supprimer.

Dnition du problme
Puisquil est facile de modier le texte de base des rponses et les bannires renvoyes par un programme, nous devons trouver un meilleur moyen de dtecter les subterfuges quen utilisant des rponses textuelles simples correspondantes pour identier le logiciel client avec une prcision raisonnable. Des solutions qui se contentent de vrier des paramtres ou des rponses moins vidents sont voues lchec un moment ou un autre : bien quil soit possible dans presque tous les cas de concevoir un seul contrle pour identier un type particulier de logiciel indsirable, trois ttes vont repousser la place de celle qui vient dtre coupe. En pratique, il devient rapidement impossible de tenter de rpondre chaque incarnation de logiciels malveillants. Dans certains cas, une dtection gnrale des clients malveillants peut tre ralise en vriant simplement les motifs qui sont clairement rvlateurs de la nature des abus quon espre empcher : contrairement au logiciel dun spammeur, il est assez improbable quun client de messagerie lgitime essaie denvoyer 10 millions de courriers en mme temps. Pourtant, cette approche est trs limite : alors quelle peut parfaitement fonctionner pour certains protocoles et certaines attaques clairement dnis, il en va autrement pour le trac WWW. Et il est difcile datteindre la bonne cible sans se retrouver avec un nombre excessif de faux rsultats positifs ou sans oublier certains programmes. Comme le WWW est considr comme la base de tous les services Internet la disposition des utilisateurs naux, il est un des rares protocoles qui doit simplement tre ouvert presque tous. Par consquent, le trac Web est le plus souvent choisi par les applications malveillantes pour masquer leur comportement dans un systme et camouer les donnes quils transfrent un hte distant. Il nest pas rare que les navigateurs Web dclenchent des temptes de connexions sur diffrents sites ou effectuent des milliers de requtes par heure. En mme temps, il est impossible denvoyer des informations sensibles un hte distant en une seule connexion brve. Le proling du trac est donc loin de fournir une rponse dans ce cas.

240

Dans la jungle

Vers une solution


Compte tenu de tout cela, il semble extrmement difcile de distinguer un logiciel espion ou un cheval de Troie dune demande lgitime. Toutefois, il savre que quelques bons utilitaires permettent didentier prcisment ces types de programmes, ce qui permet aux parties intresses didentier de faon plus prcise les applications client. La solution la plus prometteuse et universelle, gnralement considre comme une analyse comportementale (un terme fantaisiste pour dsigner ltude des "motifs dans le temps"), vise analyser les lgres dpendances internes entre les portions conscutives du trac, par opposition lobservation des donnes effectivement changes dans un seule requte ou du volume des connexions dans le temps. Comme ces dpendances sont troitement associes aux algorithmes internes et aux performances dun programme, elles sont beaucoup plus difciles usurper que la plupart des autres mesures quon peut examiner. Je vais discuter de cette approche dans ce chapitre et proposer une analyse simple des outils permettant datteindre ce niveau de prcision et de dtail, en utilisant le trac du World Wide Web comme exemple. Mais avant de nous plonger dans les dtails, nous avons besoin dun peu dhistoire. Examinons rapidement lhistoire du World Wide Web, la conception des clients Web et les protocoles quils utilisent pour communiquer avec les serveurs. Tout a commenc plus tt que vous ne le pensez

Une (trs) brve histoire du Web


Le concept de World Wide Web nest pas particulirement difcile saisir : lide est de donner aux utilisateurs un accs instantan un certain nombre de documents lis contenant des rfrences croises et qui intgrent diffrents types dinformations. Assez simple. Le Web tel que nous le connaissons aujourdhui est constitu principalement de texte accompagn de mtadonnes (des rfrences dautres chiers, des lments de mise en forme, des annotations et des lments dynamiques ou interactifs), souvent mis en valeur avec du contenu multimdia (vidos, musique, et applications diverses). Il reprsente lesprit de notre poque et constitue une toute nouvelle faon de communiquer et de trouver des informations. Mais lide du Web nest pas nouvelle. Elle existait depuis de nombreuses annes avant que la technologie ne rende possible cet ensemble de fonctionnalits pour les documents lectroniques, peut-tre mme longtemps avant que les documents lectroniques ne soient considrs comme une possibilit srieuse.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

241

Selon un document 1 publi par le World Wide Web Consortium (W3C), le concept de lien hypertexte a t envisag pour la premire fois dans un article de la revue Atlantic Monthly 2 en 1945 par Vannevar Bush, qui tait directeur de lOSRD (Ofce of Scientic Research and Development) pendant et aprs la Seconde Guerre mondiale. Bush a dcrit un dispositif appel Memex, une unit lectromcanique personnelle qui peut en fait tre considre comme un prdcesseur des assistants personnels actuels. Memex offrait un stockage des chiers personnels et des documents de lutilisateur et visait fournir des mcanismes intuitifs pour accder ces donnes. Memex tait entre autres capable de crer et de suivre des liens entre les documents stocks sur microlm. Mais lide dun dispositif mcanique follement complexe fonctionnant sur microlm na pas vraiment retenu lattention lpoque. La notion de lien hypertexte a ressurgi plusieurs reprises dans les annes suivantes et les premiers essais dimplmentation dans les ordinateurs eurent lieu dans les annes 1960. Cependant, ces tentatives ne furent pas particulirement couronnes de succs, en grande partie parce que la puissance de calcul ncessaire pour que la technologie sduise les utilisateurs ntait pas encore disponible. Ce moment arriva la n des annes 1980. Aprs lexplosion des micro-ordinateurs et peu avant lattaque frontale de la plate-forme PC, des membres du Conseil europen pour la recherche nuclaire (CERN)* envisagrent les possibilits de crer des hyperliens. Tim Berners-Lee, lun des chercheurs du CERN, est de toute vidence la personne ofciellement coupable de la diffusion du HTML (Hypertext Markup Language), une srie de contrles pour lintgration de mtadonnes, de liens et de ressources multimdias dans les chiers texte ( vrai dire, le HTML, qui est au cur du Web tel que nous le connaissons, nest gure une conception entirement nouvelle et emprunte quelques ides au SGML (Standard Generalized Markup Language), dcrit par la norme ISO 8879 en 1986). Le premier navigateur Web est n peu de temps aprs sur NeXT, une plate-forme informatique aujourdhui peu connue mais qui tait trs innovante et avance pour lpoque. Ce navigateur fut alors baptis World Wide Web. partir du moment o ce nom accrocheur tait trouv, la rvolution devint impossible arrter. En 1992, Tim Berners-Lee dposa une premire spcication 3 du protocole HTTP (Hypertext Transfer Protocol), un outil qui encapsule les donnes HTML et dautres ressources dans les communications serveur/client. En 1993, plusieurs moteurs de navigateur Web taient disponibles et une poigne de serveurs Web offraient dj leur contenu aux visiteurs curieux. Bien sr, le HTTP ne reprsentait que 0,01 % de lensemble du trac, mais il ne cessait daugmenter !

* Laboratoire europen de physique des particules de Genve, Suisse.

242

Dans la jungle

Le premier navigateur Web populaire, Mosaic, fut dvelopp au centre de recherche NCSA (National Center for Supercomputer Applications) de luniversit de lIllinois. Il empruntait le code de Berners-Lee mais ajoutait la prise en charge dautres contenus que le texte et introduisait de nombreuses autres fonctionnalits qui nous semblent banales aujourdhui. Le code de Mosaic a ni par voluer pour devenir Mozilla, qui son tour a servi de code de base pour Netscape Navigator (qui sera ensuite adapt dans le projet open source Mozilla, dont le code sera ensuite utilis pour les gnrations suivantes de Netscape Navigator simple, non ?). Au mme moment, an dembrouiller davantage les utilisateurs, la socit Spyglass transforma Mosaic pour crer la base de ce qui allait devenir le principal concurrent de Netscape : Microsoft Internet Explorer. En 1994, le W3C, un organisme conu pour superviser le dveloppement du Web, fut fond. La premire version ofcielle de ce protocole, tendue et nettement amliore, a t dpose par Tim Berners-Lee, Roy T. Fielding et Henrik Frystyk en 1996, bientt suivie par les spcications de code HTML 3.2. HTTP et HTML, dsormais rgis par le W3C et qui ont connu plusieurs amliorations au cours des annes suivantes. Et vous connaissez tous la n de lhistoire. moins que ce ne soit que le dbut ?

Notions lmentaires sur le protocole de transfert hypertexte


HTTP 4 est un protocole fond sur le texte tonnamment simple, construit par-dessus TCP/IP. Un client de ce protocole se connecte un service o le protocole HTTP est activ sur un serveur distant et formule une requte, en demandant une ressource spcique sur le serveur. La premire ligne dune requte HTTP contient les paramtres suivants :
m

Une mthode daccs la ressource. Le plus souvent, le client demande simplement rcuprer un chier, en mettant une requte GET (bien que dautres mthodes existent pour envoyer les donnes dun formulaire, effectuer des diagnostics, stocker des donnes sur un serveur ou excuter certaines extensions). Un URI (Universal Resource Identier). Il sagit du chemin daccs au chier statique ou lexcutable dynamique qui fait lobjet de la requte. Si le chier est un excutable dynamique, il est galement possible de transmettre des paramtres correctement encods ce programme dans lURI. La version du protocole que le client prend en charge et veut utiliser. Le serveur peut choisir de rpondre avec une version plus ancienne du protocole si celle quutilise le client nest pas prise en charge (si cette information est manquante, le client est

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

243

suppos utiliser HTTP/0.9, une des premires versions du protocole, maintenant obsolte et que nous naborderons pas ici). Une requte HTTP peut par exemple ressembler ceci :
GET /show_plush_toys.cgi?param1=value&param2=this+is+a+test HTTP/1.1 Host: www.plush-penguins.com User-Agent: Joes Own Web Client (UnixWare) Accept: text/html, text/plain, audio/wav Accept-Language: pl, en Connection: close

Cette requte demande une ressource intitule /show_plush_toys.cgi au site www.plush-penguins.com. en juger par lextension CGI du chier, il sagit dun programme excut dynamiquement qui est appel avec deux paramtres (param1 et param2) indiqus aprs le point dinterrogation. La requte du client peut tre (et cest effectivement le cas dans cet exemple) suivie par un certain nombre de champs den-tte (un par ligne) qui prcisent certains paramtres supplmentaires. Il peut sagir de lidentication du client (le champ User-Agent, comme indiqu prcdemment), de la langue prfre pour le contenu (ici le polonais et langlais), en passant par la spcication dun serveur virtuel auquel le client se rfre (si plusieurs noms de domaine pointent vers une seule adresse IP, cela permet au serveur de dterminer si lutilisateur est la recherche de www.squeaky-ducks.com ou de www.plush-penguins.com, qui peuvent tre hbergs sur le mme systme). Le protocole exige certains de ces en-ttes. Lensemble des en-ttes requis dpend de la version du serveur, mais la plupart des serveurs sont assez laxistes et ne ragissent pas du tout si certains en-ttes sont omis. Cela mis part, certains en-ttes prcisent certains lments qui vont au-del des spcications du protocole lui-mme. Chaque requte doit se terminer par une ligne vide, pour indiquer la n des en-ttes client, ce qui, pour la plupart des types de requtes, signie que le serveur doit traiter la requte et produire une rponse. Le serveur rpond habituellement par un message dont la structure est semblable celle de la requte et qui commence par un code HTTP en retour et du texte descriptif, comme celui-ci :
HTTP/1.0 404 Not Found Content-Type: text/plain Server: Uncle Marys Cookie Recipe Server (Linux and proud of it!) Date: Mon, 09 Feb 2004 19:45:56 GMT Le document que vous recherchez est introuvable.

Le code ou le message en retour peut signaler que la requte a t accomplie correctement, indiquer au navigateur quil doit chercher un autre endroit ou tre un message derreur comme "Fichier introuvable" ou "Autorisation refuse". Cette information est suivie par un ensemble den-ttes semblable au format accept pour la requte.

244

Dans la jungle

Ces en-ttes dcrivent diffrents paramtres, comme la version du logiciel du serveur, lemplacement o le navigateur doit ensuite se diriger, le type de contenu du chier renvoy, un paramtre utilis pour diffrencier les images du texte ou les documents HTML des chiers binaires, et ainsi de suite. Vient ensuite le contenu, sil est disponible. Comme vous pouvez le voir, HTTP est la base assez simple. Mme sil offre quelques fonctions avances, la plupart sont soit un peu tranges, soit rarement utilises (je suppose que vous ne voyez pas le message derreur "402 - reformuler votre paiement" tous les jours). Pourtant, il serait naf de croire que le protocole de base est sufsant pour satisfaire les besoins et les attentes des utilisateurs daujourdhui.

Amliorer HTTP
Lpoque o un site Web typique tait compos de plusieurs kilo-octets de texte statique et de quelques lments graphiques est rvolue depuis longtemps. Les ordinateurs sont devenus plus puissants, les modems 300 bauds se trouvent plus facilement dans un muse que dans un foyer et la forme a commenc supplanter le fond sur le Web. Des centaines de kilo-octets dimages, de pages secondaires et de scripts ct client sont couramment utiliss pour rendre les sites plus attrayants et professionnels, avec plus ou moins de bonheur. Pour de nombreux sites, le contenu multimdia constitue en fait le principal type dinformations prsentes, le HTML ne reprsentant plus quun espace pour intgrer des images, de la vido, des programmes Java ou des jeux. Le Web en gnral nest plus simplement une faon de montrer aux autres ses projets ou ses centres dintrt personnels ; ce qui compte est la capacit commercialiser des produits et offrir des services moins chers et plus rapidement que jamais. Or le marketing exige que ces produits et ces services soient prsents dune faon qui attire lattention. Les navigateurs Web, les serveurs Web et le HTTP lui-mme ont d sadapter cette volution pour rendre plus facile le dploiement de nouvelles technologies et suivre les nouvelles tendances. Un grand nombre des technologies introduites dans ce processus ont des implications intressantes sur la scurit pour un simple mortel et peuvent galement nous aider identier le client lautre bout du rseau de manire transparente. Cest pourquoi nous devons considrer les options et les extensions introduites depuis le jour o le Web est n.

La rduction de la latence : du bricolage


Le problme avec le Web et dautres protocoles actuels est que les lments prsents lutilisateur sur un seul site multimdia proviennent de sources diverses (voire de domaines totalement diffrents) et sont ensuite runis ensemble sur une page. Le texte et les informations de mise en forme des pages Web sont spars des images et des autres

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

245

lments de grande taille (ce qui est parfait pour les personnes qui ne disposent que dune bande passante limite et souhaitent simplement obtenir des informations). Les clients doivent donc ncessairement effectuer plusieurs requtes pour procder au rendu dune page Web. On pourrait navement croire que le meilleur moyen dy parvenir serait de demander chaque lment lun aprs lautre dans lordre, mais cest loin dtre le cas en ralit, car cela provoque des goulets dtranglement : pourquoi attendre quune page se charge tout simplement parce que le serveur o se trouve la bannire fonctionne lentement ? Ainsi, an damliorer la vitesse de rcupration du contenu, le navigateur met de nombreuses requtes simultanment. Et l rside la premire faiblesse du protocole HTTP : il nest pas capable en natif de procder des requtes simultanes mais doit les effectuer lune aprs lautre. Ce modle de recherche squentielle (aussi appel en srie) pnalise considrablement les performances si lun des lments de la page Web doit tre tlcharg partir dun serveur lent ou depuis une liaison peu rapide ou si cela prend un certain temps au serveur pour prparer et fournir un lment en particulier. Si la recherche squentielle tait la seule option, chaque requte lente empcherait les requtes suivantes dtre mises et satisfaites jusqu ce que la requte lente soit complte. Comme les nouvelles versions de HTTP nont pas amlior cette situation, la plupart des logiciels clients implmentent un bricolage : le navigateur Web ouvre simplement un certain nombre de sessions TCP/IP simultanes et spares sur un serveur ou un ensemble de serveurs et essaie deffectuer plusieurs requtes la fois. Cette pratique est en fait tout fait saine lorsque la page demande des ressources des ordinateurs distincts. En revanche, ce nest pas une bonne solution lorsque les ressources demandes se trouvent sur un seul systme car toutes les requtes pourraient tre effectues dans une seule session et raisonnablement gres par le serveur. Voici pourquoi :
m

Le serveur na aucune chance de connatre quel est lordre le mieux appropri pour traiter les requtes (sil le pouvait, il fournirait en dernier les objets les plus lourds, ceux qui demandent le plus de temps de traitement ou ceux qui sont tout simplement les moins pertinents). Il est simplement oblig de presque tout faire la fois, ce qui peut encore retarder inutilement les lments les plus importants puisque la charge du processeur augmente. Si plusieurs ressources de grande taille sont traites la fois et que le gestionnaire du systme dexploitation bascule entre les sessions, le rsultat peut avoir un impact trs ngatif sur les performances, car le disque dur doit alternativement rechercher deux chiers distants de faon rpte. Chaque nouvelle poigne de main TCP/IP entrane gnralement une surcharge considrable (bien que cela soit quelque peu attnu par les capacits keep-alive dans les nouvelles versions de HTTP). Il est plus efcace deffectuer toutes les requtes au sein dune mme connexion.

246

Dans la jungle

Louverture dune nouvelle session et le dclenchement dun nouveau processus pour satisfaire la requte impliquent une surcharge sur le systme dexploitation et des contraintes sur certains priphriques comme les pare-feu tats. Bien que les serveurs Web modernes tentent de minimiser ce problme en conservant des processus persistants en rserve pour accepter les requtes au fur et mesure quelles arrivent, le problme est rarement compltement limin. Une seule session vite une surcharge inutile et permet au serveur dallouer seulement les ressources absolument ncessaires pour servir de manire asynchrone les requtes choisies. Enn et surtout, si le goulet dtranglement est d au rseau et non au serveur, les performances peuvent en fait se dtriorer car des paquets sont abandonns puisque la liaison est sature de donnes qui arrivent de plusieurs sources simultanment.

Hlas, bonne ou mauvaise, on doit pour le moment se contenter de cette architecture, qui est malgr tout toujours prfrable une recherche squentielle. On doit tenir compte de son existence et apprendre en tirer parti. Comment cette proprit peut-elle bien aider identier le logiciel quutilise le client ? Cest trs simple. La rcupration de chier en parallle revt une importance assez vidente pour le ngerprinting du navigateur : il ny a pas deux algorithmes de rcupration simultans identiques, et il existe de bons moyens de mesurer cela. Mais, avant de tourner notre attention sur la recherche en parallle, nous devons examiner deux autres lments importants concernant la scurit et la condentialit sur le Web : les caches et la gestion de lidentit. Mme si ces deux sujets ne semblent pas avoir de lien apparents, ils crent un ensemble logique la n. Voil pourquoi nous allons brivement faire un entracte.

La mise en cache du contenu


La conservation des documents reus par le serveur dans des caches locaux est une des caractristiques les plus importantes du dveloppement rapide dInternet ces dernires annes*. Sans cette mise en cache, le cot de fonctionnement aurait t beaucoup plus lev. Laugmentation du poids et de la complexit des sites Web exige de plus en plus de bande passante (qui reste gnralement assez chre pour les entreprises) ainsi que de meilleurs serveurs pour fournir les donnes une vitesse raisonnable.

* Toutefois, son importance diminue progressivement : comme de plus en plus de pages Web sont gnres dynamiquement et que le backbone Internet devient de plus en plus adulte et se dote de nouvelles capacits, la mise en cache est destine perdre de son importance.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

247

Si les performances ne sont pas affectes par les goulets dtranglement de la bande passante, des solutions comme les sessions simultanes (dcrites plus haut) ajoutent des contraintes supplmentaires pour les fournisseurs daccs. La raison peut sembler surprenante : si une personne disposant dune liaison assez lente (par modem, par exemple) ouvre quatre sessions la suite pour rcuprer ne serait-ce quune page assez simple, quatre connexions et quatre processus ou ls doivent tre maintenus sur le serveur, ce qui rend ces ressources inaccessibles pour ceux qui ont des connexions plus performantes. Enn, pour aggraver les choses, les sites Web les plus lourds et les plus complexes ne rpondent pas toujours aux attentes des utilisateurs. Les utilisateurs actuels ne supportent plus quune page Web mette un temps relativement long se charger. En fait, les tudes indiquent que lutilisateur Web nattend en moyenne pas plus de 10 secondes quune page se charge avant dabandonner 5. Cela signie que les entreprises et les fournisseurs daccs ont besoin de plus de ressources et de meilleures liaisons pour grer le trac entrant. En fait, si les choses taient restes telles quelles ltaient lorigine, la demande de ressources ct serveur aurait sans doute depuis longtemps excd la capacit des serveurs satisfaire cette demande. Heureusement, les lments fournis aux internautes sont souvent statiques ou changent rarement, du moins si on compare la frquence laquelle ce contenu est modi la vitesse laquelle une ressource est rcupre par les utilisateurs (ceci est particulirement vrai pour les gros chiers, comme les images, les vidos, les documents, les chiers excutables, etc.). En rapprochant de lutilisateur nal la mise en cache des donnes, que ce soit au niveau du fournisseur daccs Internet ou mme sur le navigateur dextrmit lui-mme, on peut considrablement diminuer la bande passante et donc faciliter la gestion du trac pour les serveurs. En effet, comme plusieurs utilisateurs partagent le mme moteur de cache, ils protent des lments mis en cache par les prcdentes visites. Le FAI bncie galement de la baisse de consommation de la bande passante, ce qui lui permet de desservir plus de clients sans avoir investir dans de nouveaux quipements et de nouvelles connexions. Toutefois, HTTP a besoin dun mcanisme pour que la mmoire cache contienne les bons lments et quelle soit mise jour. Lauteur dune page (un tre humain ou une machine) doit tre en mesure de signaler au moteur de cache quand rcuprer une version plus rcente dun document. Pour implmenter la mise en cache de document, HTTP intgre deux fonctionnalits :
m

Une mthode pour indiquer, avec un minimum deffort, si une partie des donnes a t modie par rapport la version la plus rcente que le moteur de cache dtient (le document enregistr lors de la dernire visite).

248

Dans la jungle

Une mthode pour savoir quelles portions des donnes ne doivent pas tre mises en cache, que ce soit pour des raisons de scurit ou parce que ces donnes sont gnres dynamiquement chaque fois que la ressource est demande.

En pratique, cette fonctionnalit est ralise assez simplement : le serveur renvoie tous les documents pouvant tre mis en cache avec la session HTTP, mais en leur ajoutant len-tte de protocole Last-Modied. Comme on peut sy attendre, cet en-tte reprsente lide que le serveur se fait de la date laquelle ce document a t modi pour la dernire fois. En revanche, les documents qui ne peuvent pas tre mis en cache sont marqus par le serveur avec len-tte Pragma: no-cache (Cache-Control: no-cache en HTTP/1.1). Le navigateur client (ou un moteur de cache intermdiaire gr par le fournisseur daccs Internet) est cens mettre en cache une copie de chaque page qui peut ltre en fonction de la prsence de len-tte appropri, avec les dernires modications. Il doit conserver la page mise en cache aussi longtemps que possible, jusqu ce que la limite du cache congur par lutilisateur soit dpasse ou que lutilisateur purge manuellement le cache, moins que len-tte Expires ne lui indique expressment de la supprimer aprs une certaine date. Plus tard, lorsque le site est visit de nouveau, le client considre quil dispose dune version antrieure de la page mise en cache sur le disque et suit une procdure lgrement diffrente pour y accder. Tant que le document est dans le cache, le client cherche obtenir le chier chaque fois que lutilisateur revient sur ce site, mais prcise loption den-tte If-Modied-Since dans chacune de ses requtes, en utilisant la valeur <Since> prcdente dans len-tte Last-Modied. Le serveur compare la valeur Modied-Since avec la date de la dernire modication de la ressource quil connat. Si la ressource na pas t modie depuis cette date, le message derreur HTTP "304 Not Modied" est renvoy au lieu des donnes demandes. Par consquent, le transfert rel du chier est supprim, de manire prserver la bande passante (seules quelques centaines doctets sont changs au cours de cette communication). Le client (ou le moteur de cache intermdiaire) est cens utiliser une copie de la ressource mise en cache auparavant plutt que la tlcharger nouveau.
NOTE Une approche plus rcente repose sur les en-ttes ETag et If-None-Match, qui font partie des fonctionnalits de balisage de HTTP/1.1. Leur fonctionnement est identique mais ils ont pour but de rsoudre lambigut qui entoure linterprtation de la date de modication des chiers lorsquun chier est modi plusieurs reprises dans un court laps de temps (en dessous de la rsolution de lhorloge utilise pour les donnes Last-Modied) ou lorsque des chiers sont restaurs partir dune sauvegarde (la date de modication tant alors antrieure celle de la dernire copie mise en cache), et ainsi de suite.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

249

La gestion des sessions : les cookies


Bien que cela soit apparemment sans lien, il est galement important que HTTP soit en mesure de distinguer les sessions et deffectuer leur suivi travers les connexions, de stocker les paramtres et les informations dauthentication. Certains sites Web, par exemple, protent pleinement de leur capacit sadapter et restaurer les prfrences personnelles de lutilisateur chaque fois quil visite le site. Bien sr, lidentit de lutilisateur peut tre tablie en lincitant saisir un identiant et un mot de passe chaque fois quil afche une page, ce qui permet ensuite de charger ses paramtres personnels, mais le nombre de personnes disposes faire ce petit effort supplmentaire pour accder la page diminue alors considrablement. Une faon transparente et persistante de stocker et de rcuprer certaines informations depuis la machine client tait ncessaire pour assurer un accs personnalis et invisible aux forums, aux bulletin-boards, aux chats et aux nombreuses autres caractristiques de la navigation Web pour un si grand nombre de personnes. En revanche, si les administrateurs des serveurs Web reconnaissent et identient les visiteurs en leur attribuant chacun une balise, cela signie que lutilisateur perd en anonymat ce quil gagne en confort dutilisation. Des entreprises dont la moralit est douteuse peuvent utiliser ce mcanisme pour suivre et tablir le prol des utilisateurs, enregistrer leurs prfrences dachats et de navigation, connatre leurs centres dintrt, et ainsi de suite. Les moteurs de recherche peuvent facilement mettre en corrlation les requtes dun mme utilisateur et les fournisseurs de contenu publicitaire et utiliser ces informations pour suivre les internautes, mme sans leur permission ou sans que le responsable du site ne le sache*. Ces proccupations mises part, il semble toutefois quil nexiste aucune autre alternative qui soit sufsamment universelle pour ce mcanisme. Et ainsi naquirent les cookies Web. Les cookies, dnis dans la spcication RFC2109 6, sont de petites portions de texte qui sont mises par un serveur lorsque le client se connecte celui-ci. Le serveur dnit un en-tte Set-Cookie dans sa rponse au visiteur. Dautres paramtres donnent cette portion de texte une porte limite un domaine, un serveur ou une ressource spcique et une dure de vie limite. Les cookies sont stocks par le logiciel client qui les autorise dans un chier ou un dossier conteneur spcial et sont automatiquement renvoys au serveur laide dun en-tte Cookie chaque fois quune connexion une ressource spcique est de nouveau tablie.
* Si une bannire publicitaire ou tout autre lment dun site Web est plac sur un serveur partag, comme http://banners.evilcompany.com, loprateur de evilcompany.com peut mettre et rcuprer des cookies chaque fois quune personne visite un site Web lgitime qui utilise une de ses bannires. Inutile de dire que la plupart des fournisseurs de bannire utilisent les cookies et suivent les utilisateurs, mais ils le font surtout pour raliser des tudes de march.

250

Dans la jungle

Les serveurs peuvent choisir de stocker (ou pas) les paramtres utilisateur dnis dans les en-ttes Set-Cookie et se contenter de les lire lors des visites suivantes ; idalement, cest uniquement cela que serviraient les cookies. Malheureusement, les ordinateurs nont aucun moyen de dire ce qui est stock dans un cookie. Un serveur peut choisir daffecter un identiant unique un client en utilisant len-tte Set-Cookie, puis le lire en retour pour tablir un lien entre lactivit courante de lutilisateur et ses prcdentes actions dans le systme. Beaucoup considrent que ce mcanisme a de graves rpercussions sur la condentialit. Certains militants hassent littralement les cookies, mais lopposition cette technologie se rduit de plus en plus de nos jours. Naviguer sur le Web sans jamais accepter de cookies devient de plus en plus difcile, voire impossible sur certains sites qui refusent le trac des clients qui ne passent pas le contrle des cookies. Heureusement, de nombreux navigateurs disposent de paramtres permettant daccepter, de restreindre ou de rejeter les cookies et peuvent mme demander si chaque nouveau cookie doit tre accept (bien que cela ne soit pas particulirement pratique). Il est ainsi possible de protger de faon raisonnable sa vie prive, ne serait-ce quen dnissant les sites "autoriss" et les sites de conance. Mais contrlons-nous notre vie prive, alors ?

Le mlange des cookies et du cache


Le respect de la vie prive lors de la navigation sur le Web a longtemps t considr comme une question brlante, et ce non sans raison. Beaucoup de gens ne veulent pas que dautres espionnent leurs prfrences et leurs centres dintrt, mme si leur activit est tout fait lgitime. Pourquoi ? On peut ne pas vouloir quune socit de publicit sache quon est en train de lire un article sur une maladie en particulier puis quelle relie cette information un compte que vous avez sur un bulletin-board professionnel, surtout quil nexiste aucun moyen de savoir qui disposera de cette information. Le contrle des cookies rend la navigation relativement confortable, tout en cartant les importuns. Mais mme la dsactivation des cookies nempche pas linformation dtre stocke sur un systme et dtre renvoye plus tard un serveur. Tous les navigateurs ont longtemps dispos dune fonctionnalit permettant de stocker et de rcuprer des donnes sur la machine dune victime, indpendamment de ses paramtres concernant les cookies. Les deux technologies ncessaires, les cookies et les chiers mis en cache, fonctionnent dune faon similaire et seuls leurs objectifs diffrent. Au cours de lanne 2000, Martin Pool posta une remarque courte mais intressante 7 accompagne dun peu de code sur la liste de diffusion Bugtraq. Il ne voyait aucune diffrence signicative entre les fonctionnalits Set-Cookie et Cookie dune part et LastModied et If-Modied-Since dautre part, du moins pour les systmes qui nutilisent

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

251

pas de proxy-cache centralis et qui stockent les copies des documents dj consults sur le disque local (comme cest le cas pour la plupart des simples mortels que nous sommes). Un administrateur de site Web malveillant peut stocker peu prs nimporte quel message dans len-tte Last-Modied renvoy pour une page que la victime visite (si loption sanity-check est active pour cet en-tte, il peut galement simplement utiliser une date unique et arbitraire pour identier ce visiteur en particulier). Le client envoie ensuite len-tte If-Modied-Since avec une copie exacte de lidentiant unique stock par un oprateur malveillant sur son ordinateur, chaque fois quune page est revisite. Une rponse "304 Not Modied" sassure que ce "cookie" nest pas supprim.

Empcher lattaque utilisant les cookies en cache


Utiliser son navigateur pour modier lgrement les donnes Last-Modied en retour semble tre une bonne faon dempcher ce type dexposition (tout en introduisant certaines inexactitudes de cache), mais ce nest pas le cas. Une autre variante de cette attaque se fonde sur le stockage des donnes dans les documents mis en cache plutt que sur lutilisation directe des balises : un oprateur malveillant peut prparer une page spciale pour la victime lorsquelle visite un site pour la premire fois. La page contient une rfrence un nom de chier unique gurant dans la liste des ressources incorpores (une image, par exemple). Quand un client revient sur cette page, le serveur note la prsence de len-tte If-Modied-Since, rpond avec le message derreur 304 et demande donc que lancienne copie de la page soit utilise. Lancienne page contient une rfrence de chier unique qui est ensuite demande par le serveur, ce qui permet dtablir un lien entre ladresse IP du client et la session prcdente au cours de laquelle le nom de chier a t renvoy. Oups ! Naturellement, la dure de vie des "cookies" bass sur le cache est limite par la taille du cache et les paramtres dexpiration des documents mis en cache selon la conguration de lutilisateur. Toutefois, ces valeurs sont gnralement trs gnreuses, si bien que linformation stocke dans les mtadonnes pour une ressource qui est rexamine une fois toutes les deux semaines peut durer des annes, jusqu ce que le cache soit purg manuellement. Pour les entreprises qui fournissent des composants communs des centaines ou des milliers de sites (encore une fois, les bannires sont un bon exemple), cela nest pas anodin. La principale diffrence entre ces cookies mis en cache et les cookies proprement parler vient non pas des fonctionnalits quils offrent mais plutt de la facilit avec laquelle on peut contrler lexposition mentionne plus tt (la mise en cache de donnes doit aussi servir dautres ns et ne peut pas tre facilement restreinte. La dsactivation partielle ou complte de la mise en cache a un grand impact sur les performances).

252

Dans la jungle

Ces tranges contorsions vous montrent comment deux aspects du Web entrent en collision, en annulant effectivement les mesures de scurit construites autour de lun deux. La pratique montre que les intentions ne sufsent pas toujours, car les attaquants ne sont pas toujours disposs respecter les rgles ni utiliser la technologie comme on voudrait quils le fassent. Peut-tre que dsactiver les cookies ne fait pas beaucoup de diffrence, aprs tout ? Mais il est maintenant temps de revenir lobjet principal de notre discussion.

La dcouverte des trahisons


Autrement dit, comment dtecter les subterfuges et procder au ngerprinting prcis des logiciels client. Jai indiqu jusqu prsent quil tait difcile mais pas impossible de dtecter les faux clients et que lanalyse comportementale, un contrle attentif de la srie dvnements produits par les navigateurs en question, tait une voie qui mrite dtre explore. HTTP est un objet dtude particulirement intressant car, comme nous lavons vu, une grande partie de lactivit se droule en parallle ou presque dune part et parce que les algorithmes de mise en attente et de traitement des donnes sont lgrement diffrents pour chaque client dautre part. En mesurant le nombre de chiers tlchargs simultanment, les dlais relatifs entre chaque requte dans le temps, lordre des requtes et dautres petits dtails dune session, il est possible de mesurer les caractristiques uniques dun systme un niveau qui est beaucoup plus difcile pour lutilisateur manipuler. Ainsi, vous pouvez sans effort distinguer les usurpateurs des citoyens qui respectent les lois. Pour donner un exemple rel et le plus simple qui soit de cette dmarche tout en restant aussi proche que possible des applications relles, jai dcid de voir ce quon pourrait apprendre partir des chantillons de donnes existants et assez limits dont beaucoup dentre vous disposent probablement. Jai donc examin les journaux standard dun peu plus de 1 million de requtes effectues sur un site Web populaire. Les donnes utilises pour cette analyse proviennent dun journal des accs un serveur Web Apache. Il sagit autrement dit des temps dachvement des requtes, des requtes dURI, des donnes transmises au navigateur par len-tte User-Agent et dautres informations de base de ce genre. Le journal est cr partir dune page compose dun ensemble dimages de tailles relativement petites et comparables ainsi que dun seul document HTML qui appelle tous ces lments.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

253

Exemple simple danalyse comportementale


On pourrait considrer comme un problme le fait quApache insre les requtes dans le journal des accs lorsquelles sont termines plutt quau moment de leur mission, mais cest en fait trs utile, en supposant que lensemble des chiers demands est relativement homogne. Lordre de lancement des requtes suit gnralement lordre dans lequel les ressources sont rfrences dans la page principale, contrairement au temps daccomplissement, qui est beaucoup plus complexe. Lordre dachvement dpend du nombre de requtes, des dlais entre chaque requte et dautres paramtres qui varient lgrement mais sensiblement dun navigateur lautre. Les navigateurs qui gardent toujours une seule connexion ouverte effectuent toujours les requtes dans un ordre connu, A-B-C-D ; les navigateurs qui ouvrent trois connexions la fois et mettent les requtes rapidement sont aussi bien susceptibles de les produire dans lordre B-A-C-D que C-B-A-D ou C-A-B-D Pour ces derniers cas, la mise en attente des requtes et la gestion de la session compte plus que tout. Naturellement, nous ne devons pas oublier que la squence observe dpend galement beaucoup de la latence, de la abilit et dautres alas du rseau. Nanmoins, on peut raisonnablement sattendre ce que, pour un grand nombre dchantillons, ces effets qui ne sont pas spciques chaque navigateur soient en moyenne toujours les mmes ou affectent les donnes destines tous les clients de la mme manire. Et, quand cela se produit, on peut esprer que soient visibles les lgres diffrences entre les navigateurs qui se trouvent sous une interface utilisateur conviviale. La Figure 14.1 montre une rpartition statistique des tentatives de charger la page Web de dix lments que nous avons mentionne plus haut par les quatre clients Web les plus populaires. Chaque graphique est divis en dix segments principaux. Le premier correspond au chier HTML principal, qui est directement demand et constitue videmment le premier lment du site. Les neuf autres segments correspondent aux neuf images rfrences sur ce chier HTML, dans lordre o ils sont appels par le code HTML. Chacun des segments est ensuite divis en dix sections sur laxe X (qui nest pas indiqu ici pour viter de surcharger le graphique). La hauteur de la courbe du graphique la nime section, dans un segment donn, reprsente la probabilit que le chier correspondant soit charg dans le nime ordre. Pour rendre le graphique plus lisible, les probabilits de distribution sont donnes en pourcentage entre 1 et 100 (correspondant un pourcentage, avec toutes les valeurs de moins de 1 % arrondies lunit suprieure), et les points se sont connects des lignes. Les graphiques sont ensuite reports sur une chelle logarithmique (log10, logarithme en base 10, avec les principaux guides 1, 10 et 100) pour rendre les lgres diffrences plus marques et plus faciles comparer visuellement.

254

Dans la jungle

Internet Explorer

Netscape Navigator

5
Opera

10
Wget

10

10

10

10

10

10

10

10

10

Figure 14.1
Les diffrences de comportement des clients Web courants.

Idalement, avec des navigateurs totalement squentiels et prvisibles, le premier segment ne contiendrait quun pic dans la premire section ( gauche), le second segment contiendrait seulement un pic dans la deuxime section, et ainsi de suite. Dans la pratique, en revanche, certains navigateurs effectuent plusieurs requtes simultanment, si bien que cet ordre est plus rarement respect : le troisime chier rfrenc peut

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

255

nir par tre charg avant le deuxime ou aprs le quatrime. Moins un seul pic est prononc dans chaque segment, plus lalgorithme de rcupration du navigateur semble tre agressif, autrement dit plus la probabilit que ce chier ne soit pas charg dans lordre augmente. Les diffrences devraient tre clairement visibles, mme entre les navigateurs qui se basent historiquement sur le mme moteur, comme Mozilla et Internet Explorer. Tous les clients semblent respecter lordre dans lequel les chiers sont rfrencs dans le document principal, si bien qu chaque segment le sommet du pic se dcale vers la droite par rapport celui qui le prcde. Pourtant, comme vous pouvez le voir, Mozilla est gnralement beaucoup moins impatient quInternet Explorer et nit le plus souvent par tlcharger les chiers dans lordre dans lequel ils ont t demands. Opera, en revanche, prsent comme le navigateur le plus rapide de la plante, est considrablement moins squentiel (de nombreux chiers ont deux ou trois pointes prononces presque identiques, ce qui semble indiquer quun ensemble de requtes est effectu si rapidement que la squence dachvement est quasi arbitraire et la plus fortement inuence par les uctuations du rseau). Wget, un gestionnaire de tlchargement Web open source, est en comparaison parfaitement squentiel (un schma commun pour les logiciels dexploration automatiques), utilise une seule connexion et charge tous les chiers dans le mme ordre.

Donner un sens aux graphiques


Les images et les graphiques ne sont gure ou pas du tout utiles pour lexcution automatise dune politique de scurit ou la dtection des abus. Pour quantier les motifs observs et rendre le ngerprinting un peu plus raliste, jai dcid de donner un meilleur score un segment (dans une fourchette de 0 10) quand il ne contient quun seul pic et de lui donner une note plus faible lorsque la distribution est plus arbitraire. Cela pourrait permettre de crer un ngerprinting simple de dix valeurs pour un logiciel en particulier puis, en faisant correspondre lactivit observe un ensemble de signatures, de dterminer le meilleur. Pour construire un indicateur qui exprime une qualit relative (linarit) Q du comportement observ dans le segment principal s, jai utilis la formule suivante (fn indique la probabilit que le chier apparaisse la position n dans la squence de rcupration, exprime en pourcentage par commodit et pour perturber les puristes) : 10 2 fn n=1 Qs = 1,42 ------------------- 3 10

256

Dans la jungle

Cette quation semble effrayante premire vue mais elle est en fait trs simple. Je voulais que la formule donne la prfrence au cas o ce chier est le plus souvent charg lorsquil se trouve une position xe dans une squence (cest--dire lorsquune valeur f est proche de 100 % et que les autres probabilits sont proches de 0 %) par rapport aux situations dans lesquelles toutes les positions ont autant de chances de se produire (toutes les valeurs f 10 %). Comme la somme de tous les lments de f est xe (100 %), le moyen le plus simple dy parvenir est dutiliser une somme de carrs : pour toute squence de chiffres non nulle, la somme des carrs de ces nombres est toujours infrieure au carr de la somme. Les rsultats les plus hauts et les plus bas sont les suivants : 102 + 102+ 102+ 102+ 102+ 102+ 102+ 102+ 102+ 102 = 1 000 1002 + 02 + 02 + 02 + 02 + 02 + 02 + 02 + 02 + 02 = 10 000 Le reste de lquation, outre la somme principale, est utilis uniquement pour reprsenter les rsultats avec une chelle raisonnable de 0 10 (quand ils sont arrondis). Les rsultats du calcul de cette mesure pour chaque segment du trac observ pour chaque navigateur sont superposs la Figure 14-1, en tant que valeur numrique dcrivant tous les segments du graphique. Comme prvu, le score de Wget est parfait chaque segment. Les scores des autres navigateurs conrment les observations visuelles prcdentes et les rendent plus tangibles. Bien que les moteurs dInternet Explorer et de Mozilla/Netscape semblent avoir des graphiques peu prs similaires, on peut remarquer de grandes diffrences de charge pour les lments 4 6 et dans une moindre mesure dans lensemble de la squence de rcupration. Opera se distingue clairement des autres avec des scores constamment plus bas pour chaque segment. En consquence, cet outil danalyse assez simple permet dobtenir un cadre pour laborer une mthode pratique didentication des navigateurs et pour dtecter des supercheries dans un chantillon statistiquement signicatif du trac HTTP de lutilisateur. On peut amliorer ce modle en analysant les autres lments qui se chargent automatiquement, comme les scripts, les feuilles de style HTML, les images ractives, les cadres et dautres chiers qui montrent encore plus les diffrences entre chaque navigateur. Le pre Nol devrait pouvoir prparer la liste des utilisateurs qui nont pas t sages cette anne.

Au-del du moteur...
Jespre simplement montrer quel point il est facile de dtecter les caractristiques caches dune application inconnue en observant son comportement, sans mettre dhypothse particulire ni dissquer les entrailles de ce programme. Les chiffres exacts cidessus ne sont pas directement utilisables sur un autre site Web que celui que jai utilis.

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

257

Je vous encourage donc faire vos devoirs, si vous pensez que cette technique peut vous tre utile. Une fois que vous disposez du prol dun site ou dun ensemble de sites, vous pouvez utiliser les donnes pour reconnatre efcacement les systmes en fonction de leur activit dans le temps. Inutile de dire que la mthode que jai utilise ici est une approche (peut-tre trop) simpliste de lanalyse comportementale et se fonde peut-tre sur le plus simple des scnarios possibles ; je vous la fournis pour vous encourager et vous inciter effectuer de plus amples recherches. Vous pouvez facilement utiliser le processus de rendu du contenu des cadres, des tableaux et des autres conteneurs visuels ou le processus de rcupration et de rendu de certains types de chiers an de connatre le navigateur utilis, mme sans effectuer de correspondance statistique des performances (certains aspects trs spciques de lactivit des navigateurs prsentent des diffrences beaucoup plus agrantes). Vous pouvez galement vous tourner vers lanalyse des diffrences dans le temps. Tenez galement compte de la chose suivante : vous pouvez rchir plus en profondeur sur lanalyse comportementale et lutiliser pour diffrencier les machines des tres humains, voire pour identier les utilisateurs plutt que pour distinguer un moteur de rendu dun autre. Comme indiqu au Chapitre 8, les modes dutilisation du clavier sont souvent tellement caractristiques dun individu quil est possible de les utiliser pour une reconnaissance biomtrique. De mme, les tudes semblent indiquer que nous pouvons utiliser la faon dont les utilisateurs cliquent sur les liens, effectuent des choix, lisent les informations et ainsi de suite pour indiquer de qui ou de quoi proviennent un ensemble de requtes 8. Bien que plus proche de la spculation scientique que de ltude des faits, il sagit l dun merveilleux champ de recherches.

et au-del de lidentication
Les applications danalyse de lactivit et du comportement du navigateur vont au-del de la dtection du logiciel de navigation en fait, certains relvent du domaine du respect de la vie prive et de lanonymat. Un intressant travail de recherche publi en 2000 par Edward Felten et Michael Schneider 9 apporte une contribution fascinante aux applications possibles de cette technique, une capacit qui est troitement lie aux mcanismes de mise en cache dploys dans les moteurs actuels. Tous les lments examins jusquici se rejoignent enn. Leur tude repose sur le principe suivant : en insrant une rfrence un chier sur un site particulier puis en mesurant le temps que le navigateur met tlcharger ce chier, il est possible de dire si lutilisateur a visit un site particulier les jours prcdents. Assez simple.

258

Dans la jungle

Je vous pargne (pour cette fois) une longue digression dans le monde de la thorie, des prvisions et des spculations et vous propose plutt un exemple proche dune situation relle. Supposons que je sois le responsable du site www.rogue-servers.com. Pour une raison ou pour une autre, jai dcid que ma page principale fera rfrence une image (un logo, par exemple) tire du site www.kinky-kittens.com*. Je rends cet lment visuel difcile trouver ou je rduis sa taille de faon quil ne soit pas visible mais quil soit quand mme charg par le navigateur. Un utilisateur sans mance visite mon site. Sil na jamais visit www.kinkykittens.com, il lui faut un certain temps pour tlcharger limage que jai rfrence. En revanche, sil sagit dun visiteur rcurrent de ce site, limage est dj prsente dans son cache, si bien quelle est rcupre presque instantanment. Comme la rfrence la ressource de www.kinky-kittens.com est prcde et suivie de requtes pour les autres lments visuels que jhberge sur mon site, il est possible en dployant des heuristiques dans le temps de mesurer avec abilit si lensemble du logo a t rcupr ou sil tait dj dans le cache. Tout cela suft savoir si un nouveau visiteur de ma page est en fait un habitu dun site Web en particulier (ou dune section particulire dun site Web), ce qui reprsente un envahissement brutal de sa vie prive. Bien que ce scnario nait que peu de chances dtre utilis pour dployer des routines despionnage grande chelle (principalement parce que cela laisse une preuve claire qui pourrait tre remarque par loprateur du serveur sur lequel se trouvent les utilisateurs quon veut espionner), des attaques cibles pourraient tre tout fait efcaces. Finalement, toutes les pices du puzzle sembotent, mme si elles le font peut-tre dune faon assez lche. Les utilisateurs, les programmes et les habitudes peuvent tre facilement rvls en abusant soigneusement des caractristiques rcentes dun protocole Internet populaire. Ce qui nest pas forcment rassurant pour les visiteurs de www.kinky-kittens.com.

* NdT : Le site www.kinky-kittens.com est un site pornographique

Chapitre 14

Lidentication du client : vos papiers, sil vous plat !

259

Prvention
Rendre totalement anonyme sa navigation sur le Web semble tre un combat perdu davance. Bien que certaines pratiques visant amliorer la protection de la vie prive et lanonymat des internautes soient gnralement acceptes, ces fonctionnalits peuvent facilement tre contournes par un site Web malveillant. Le problme est, malheureusement, trop grave pour le ngliger. Quune entit laquelle nous avons dcid de faire conance (comme un FAI) connaisse notre activit, daccord, mais il nen va pas de mme lorsque des parties avec lesquelles nous ferions mieux de ne pas traiter recueillent systmatiquement des informations sensibles sur notre prol et les revendent probablement dautres dans le cadre de leurs activits commerciales. Cela suft inquiter mme ceux qui ne portent pas de sous-vtements en aluminium tous les jours. Par ailleurs, la relative difcult rester totalement anonyme ou apparatre totalement inoffensif est importante dans des environnements o le trac HTTP doit tre autoris mais o les utilisateurs doivent tre protgs et surveills, sans porter atteinte leur vie prive au-del de ce qui est strictement ncessaire. Dans les rseaux dentreprise, aussi bien les utilisateurs que les administrateurs systme apprcient vraiment de pouvoir reprer les systmes en infraction sans avoir inspecter manuellement les donnes.

Matire rexion
Aucun lment HTTP nest en lui-mme mal conu, cass ou ne prsente aucune garantie. Cependant, lorsquon les additionne, de nombreuses fonctionnalits de scurit et de protection de la vie prive semblent sannuler et laisser lutilisateur trs vulnrable aux indiscrtions. Malheureusement, nous ne pouvons pas faire grand-chose contre cela sans tout reprendre zro. Et, dans ce cas, il ny a aucune garantie que les rsultats obtenus fonctionneraient aussi bien ou fourniraient autant de protection de la vie prive que les clients HTTP, HTML et WWW ne le font actuellement.

15
Les avantages dtre une victime
Dans lequel nous concluons que faire preuve doptimisme peut aider traquer lattaquant.

Jai abord diffrents problmes qui peuvent avoir un impact signicatif sur toutes les communications quotidiennes lorsquils sont cumuls et prsenter des risques assez embarrassants. Vous avez vu comment les autres peuvent exploiter le rseau pour vous voler des informations ou pour en savoir plus que vous ne pensiez ou ne leur permettriez, mais aussi comment utiliser ces techniques pour recueillir plus dinformations
sur votre propre rseau dentreprise ou domestique et sur les attaquants qui les ciblent. Jespre avoir prsent un aperu la fois utile sur la faon dont ces problmes sont ns et sur celle de les viter quand cela est possible. Jai essay de montrer que la scurit et la condentialit ont des implications sur chaque activit et quil ne suft pas de prendre des dcisions de conception correctes, dinstaller les bons logiciels ni dtablir et de faire respecter les politiques appropries pour les liminer totalement. La divulgation dinformations ne peut tout simplement pas tre totalement supprime. Notre seul espoir est davoir sufsamment dinformations et de connaissances sur les fuites potentielles ou les scnarios dattaque pour en attnuer autant que possible les effets les plus signicatifs dans une application en particulier.

262

Dans la jungle

Dans cette troisime partie de louvrage, jai mis laccent sur les menaces qui se cachent dans les rseaux de grande taille. Bien que cette partie soit la plus longue et narrive que maintenant sa conclusion, elle est trs loin de prsenter de faon exhaustive tous les problmes qui peuvent se poser dans un rseau ouvert. En fait, il serait trs difcile et en grande partie inutile daborder toutes les variantes des problmes. Cest pourquoi jai choisi de ne couvrir que les aspects les plus complexes, difciles ou fascinants des communications dhte hte. Jai mis laccent sur la dcouverte des scnarios dattaque sur les diffrentes couches de protocole et les diffrents niveaux dabstraction, plutt qunumrer les concepts et les vecteurs dattaque, ressasser de vieilles ides et ne rien apporter de nouveau au sujet. Jespre que les informations fournies jusque-l vous aideront et vous encourageront trouver dautres exemples de ces problmes dans dautres aspects de la mise en rseau et de linformatique voire peut-tre au-del. Dans la prochaine partie de louvrage, nous effectuerons un important changement de paradigme car nous tudierons comment lobservation attentive de lensemble du rseau, par opposition lobservation de systmes uniques, peut tre utilise pour nous dfendre ou pour attaquer. Mais, avant cela, penchons-nous sur une partie inhabituelle de la surveillance du rseau : le contre-espionnage passif (en apprendre plus sur lattaquant ou ses objectifs en analysant ses actions). Les donnes collectes de cette faon peuvent fournir un ensemble de pistes trs intressantes et permettre didentier plus facilement les intentions dune personne malveillante, ses outils ou encore lattaquant lui-mme. tablir le prol dun attaquant, essayer de lire ses penses et peut-tre mme jouer au chat et la souris avec lui constituent souvent une exprience passionnante en soi.

Connatre les mesures de lattaquant


Comme prvu, on peut acqurir une bonne partie des informations sur une partie attaquante en utilisant simplement certaines des mesures courantes du trac TCP/IP que nous avons vues prcdemment (comme le ngerprinting passif du systme dexploitation). On peut ainsi identier lutilitaire utilis pour effectuer le scan des ports, par exemple. De mme, on peut aussi appliquer lanalyse comportementale aux caractristiques du comportement de lattaquant, comme les retards et lordre des requtes (lordre dans lequel les ports sont scanns et quelle vitesse, par exemple). On peut utiliser lanalyse comportementale pour effectuer le suivi des programmes, voire pour connatre les caractristiques dun attaquant (comme sa matrise de lordinateur) lors dune effraction effectue manuellement ou lors de tentatives de dcouverte non autorises. Une mthode particulirement intressante que nous pouvons dployer pour identier lutilitaire que lattaquant utilise pour scanner notre rseau sappuie sur lapplication de

Chapitre 15

Les avantages dtre une victime

263

lune des mthodes voques au Chapitre 9, le ngerprinting de la squence des ports, pour une toute nouvelle tche. Cette mthode repose sur le fait quune majorit des scanners utiliss aujourdhui explorent les rseaux et les systmes de faon squentielle (depuis le port ou ladresse ayant le plus petit numro vers le port ou ladresse ayant le numro le plus lev) ou accdent aux ressources dans un ordre alatoire. Cette dernire approche est la plus souvent utilise et considre comme la meilleure car elle peut quilibrer les charges et rendre le scan lgrement plus difcile dtecter. Mais lutilisation dun ordre alatoire peut bizarrement se retourner contre lattaquant de diffrentes faons. Le problme se pose car les auteurs des utilitaires de balayage des ports ne considrent pas que ces applications soient trs importantes ni quelles ncessitent un haut niveau de scurit. La faon la plus courante et la plus simple pour implmenter un gnrateur de nombres pseudo-alatoires dans des programmes dont la sortie ne ncessite pas dtre scurise par chiffrement consiste utiliser les langages standard ou intgrs du systme. La norme ISO 1 pour le langage de programmation le plus rpandu dans le monde, savoir le langage C, suggre dutiliser un simple algorithme linaire congruent pour implmenter une bibliothque standard C pour le gnrateur de nombres pseudoalatoires (vu au Chapitre 1). Selon cette norme, la recette pour crer et utiliser le gnrateur est la suivante : 1. Le gnrateur doit tre initialis avec une valeur initiale 32 bits (S0), en faisant appel la fonction de la bibliothque standard srand(). Dans le cas contraire, le gnrateur utilisera un germe dni par dfaut et produira des squences identiques dans tous les cas. 2. Dans chaque appel rand(), la fonction principale invoque plusieurs reprises pour obtenir les suites de nombres pseudo-alatoires qui seront utiliss dans les applications de lutilisateur, le germe S est recalcul comme suit : St+1 = St *1103515245 + 12345. Le rsultat est tronqu 32 bits (modulo 4294967296). 3. La valeur en retour de chaque appel rand() est le mot plus important de St+1, modulo 32768. Dans une variante 32 bits, lun des algorithmes les plus couramment utiliss sur les ordinateurs actuels, la procdure prvue cette tape et ltape prcdente est rpte plusieurs fois pour calculer les portions de bits suivantes de la valeur obtenue comme rsultat. Comme mentionn au Chapitre 1, tous les gnrateurs linaires congruents, y compris celui dcrit ici, sont sensibles la mthodologie de cryptanalyse propose par H. Krawczyk dans les annes 1990. En observant les sorties de quelques suites de squences (qui se suivent ou sont ordonnes diffremment), il est possible de reconstituer ltat interne du gnrateur et de prdire ainsi toutes ses sorties prcdentes et futures. Naturellement, la consquence immdiate (la victime peut savoir partir des tentatives prcdentes dans quel ordre lattaquant va essayer de cibler dautres ressources sur

264

Dans la jungle

la machine ou le rseau) nest pas particulirement excitante ni na de grande valeur en elle-mme. Nanmoins, cette possibilit a deux rpercussions importantes dans le contexte des tentatives de dcouvertes du rseau :
m

Il est possible de connatre la valeur de S0. Si on sait ou si on peut estimer quand le gnrateur a commenc fonctionner (ou du moins quelles proprits gnrales le germe initial devrait avoir), on peut alors reconstruire la valeur utilise pour initialiser le gnrateur. Comme S0 est la seule entre de lalgorithme, des valeurs de germes identiques doivent avoir un comportement identique. On peut donc suivre la trace des germes en observant la sortie du PRNG. Il est possible de connatre les incrments t. Une fois quon a reconstruit ltat du gnrateur, on peut savoir combien de valeurs alatoires ont t demandes par le scanner en utilisant rand() entre deux appels que le scanner a effectus pour obtenir les valeurs des paquets (les numros de port ou les adresses des htes).

Limportance de la premire consquence, la capacit reconstruire la valeur utilise pour initialiser le gnrateur, peut ne pas tre immdiatement apparente. Mais on doit galement tenir compte dune autre pice du puzzle. Pour initialiser un gnrateur de nombres alatoires, on utilise couramment une valeur 32 bits qui change sufsamment souvent pour viter que le PRNG ne se comporte trop souvent lidentique. Pour cela, on utilise souvent le compteur de temps du systme, en le combinant parfois avec un autre nombre de petite taille comme lidentiant de processus courant (PID), an de rduire le risque que deux programmes qui sexcutent dans un court intervalle de temps produisent des rsultats similaires. En utilisant ces connaissances la valeur S0 calcule, la victime peut dcouvrir lheure du systme de lattaquant (heure GMT ou locale, selon les rglages du systme dexploitation et le type de scanner). En connaissant lheure locale du systme, lobservateur a un indice sur lorigine et lidentit de lattaquant dune manire trs simple. Sil usurpe des paquets provenant de plusieurs sources pour crer une certaine confusion, on peut heureusement exclure les sources o S0 indique un fuseau horaire qui ne correspond pas la rgion gographique laquelle appartient ladresse source. Si on compare par exemple lheure estime du systme de lattaquant avec lheure du mridien de Greenwich et quon dcouvre que lheure de lattaquant est gale GMT-5 heures, on peut alors conclure quil se trouve sur la cte est des tats-Unis et non en Chine. En comparant cette estimation de la zone horaire avec les enregistrements de plusieurs blocs dadresses IP, on peut savoir malgr tous les "leurres" que la vritable identit de lattaquant a plus de chances dtre dans les paquets provenant dun FAI de Boston que dans ceux dun FAI situ Pkin. En outre, une fois connue lheure locale de lattaquant, on peut le suivre en mesurant lcart entre lhorloge de son systme et le temps rel (et, long terme, quel rythme il

Chapitre 15

Les avantages dtre une victime

265

sen carte). Comme les horloges des ordinateurs ne sont gnralement pas particulirement prcises et ont tendance retarder ou avancer un peu quand elles ne sont pas rgulirement synchronises avec une source externe (cet cart peut slever plusieurs minutes par jour dans certains cas), cela peut reprsenter un bon moyen pour mettre en corrlation les attaques menes par la mme personne. Dune machine lautre, le dcalage dans le temps est systmatiquement diffrent et volue diffremment. Enn, lorsque le PID et lheure du systme sont utiliss dans le cadre de linitialisation des germes et quon dispose dune valuation de lheure du systme de lattaquant, le PID peut permettre de connatre approximativement luptime du systme ou le nombre de tches excutes entre deux scans. Comme chaque nouveau processus sur une machine se voit attribuer un nombre PID plus lev, cette dpendance est assez simple*. En reconstruisant ltat du PRNG, on peut aussi voir combien de nombres alatoires ont t gnrs entre la cration de deux paquets reus par le destinataire. Quand un seul systme est scann, il ne doit pas y avoir de trous ou dcarts marginaux dus des problmes rseau. En revanche, lorsque plus dun systme est scann, ces trous (causs par les paquets envoys des cibles diffrentes) peuvent tre facilement dtects. Et cette dtection permet de dterminer combien de systmes sont pris pour cible en mme temps. En outre, lorsque le logiciel de scan gnre de faux paquets leurres qui semblent provenir dhtes alatoires, il est possible dliminer les adresses usurpes qui ont t cres laide du PRNG (elles correspondent sa sortie possible), de savoir laquelle ne correspond pas et donc doit tre relle. On pointe ainsi de faon concluante vers le vritable auteur dune attaque. Par exemple si les donnes du PRNG reconstruit montrent que le trac provient dadresses comme : 198.187.190.55 (reprsentation dcimale : 3334192695) ; 195.117.3.59 (reprsentation dcimale : 3279225659) ; 207.46.245.214 (reprsentation dcimale : 3475961302). On peut alors savoir que 3334192695 et 3475961302 correspondent lune des premires sorties que produirait un gnrateur initialis avec le germe S0. Comme 3279225659 ne semble pas correspondre lun des premiers rsultats produits par un PRNG reconstruit, il sagit donc probablement dune adresse relle. Ces informations peuvent tre utilises pour connatre les intentions dun attaquant et les logiciels quil utilise. On peut sen servir pour suivre le systme sur lequel il travaille, en mettant ces informations en corrlation avec dautres donnes an de dterminer sa vritable identit et sa situation gographique, voire, parfois, savoir comment il utilise son ordinateur mesure que le scan des ports progresse.
* Bien que certains systmes offrent des options de randomisation du PID dans le but de rendre plus difciles certains types dattaques locales sans liens entre elles.

266

Dans la jungle

NOTE NMAP, en rponse aux problmes de divulgation de luptime et de lhistorique des scans examins plus haut, tente dutiliser les mcanismes scuriss RNG (comme /dev/random, dcrit au Chapitre 1) pour gnrer des nombres alatoires, au lieu de compter sur les outils de la bibliothque standard du langage C. Cependant, cette mthode nest pas disponible sur de nombreux systmes dexploitation (comme Windows) et les autres scanners nont pas pris de mesures similaires pour dfendre lattaquant..

Se protger : observer les observations


Internet est devenu un immense champ de bataille au cours des dix dernires annes. Ds leur connexion, les machines sont instantanment lobjet dattaques par des sondes automatiques, des vers et dautres types dinformations qui sollicitent leur dispositif de scurit. Les mthodes traditionnelles de dtection et de prvention dintrusion ( la mode actuellement) utilisent des utilitaires danalyse du trac spcialement conus pour identier et arrter les attaques et avertir ladministrateur lorsque des dcouvertes du rseau sont ralises. Dans des environnements htrognes ou tout simplement assez complexes, ces techniques produisent plus de bruit et de rsultats faussement positifs quil est possible den traiter. Dans certains cas, toutefois, la possibilit dobserver les attaques et les rponses quelles dclenchent est un excellent moyen pour ladministrateur den savoir plus sur les problmes du rseau et sur les attaques (mme si ces incidents ne mritent le plus souvent pas dtre nots). Dans certains rseaux, il est difcile dinitier ou trop ennuyeux de procder la dcouverte active et la numrisation des actifs destins garantir le respect des politiques et la conguration du systme (en raison de la politique de rglementation, de la lenteur des dlais dexcution, des tickets de maintenance du rseau rarement ouverts, etc.). Dans ce cas, la capacit observer et savoir ce que les attaquants voient peut tre un prcieux substitut la reconnaissance initie en local. En outre, la dcouverte active ralise priodiquement peut ne pas tre sufsamment rapide pour rpondre certaines menaces ; il peut donc tre utile dapprendre que quelque chose a brusquement mal tourn en observant simplement les rsultats que les autres obtiennent. Bien entendu, cest l une arme double tranchant, un attaquant qui a compromis ou prvoit de compromettre un rseau mais qui souhaite rester prudent et planie chaque tape lavance peut observer le trac gnr par la dcouverte dautres tentatives pour en savoir plus sur un systme en particulier. Proter des connaissances acquises par un attaquant nest simple quen thorie ; il nest pas facile de mettre en corrlation et de traiter les rsultats, en particulier lorsque lanalyse porte sur des environnements vastes ou lorsquelle se fonde uniquement sur

Chapitre 15

Les avantages dtre une victime

267

des informations partielles obtenues partir de diffrentes tentatives dattaques effectues depuis plusieurs endroits. Lentement, des outils qui facilitent ltablissement de la cartographie du rseau et du systme en utilisant "le balayage passif" font cependant leur apparition DISCO 2, de Preston Wood, tant un excellent exemple.

Matire rexion
Je trouve trange que les techniques dcrites dans le prsent chapitre ne soient pas plus tudies ni dcrites dans des livres blancs ou que des utilitaires ne soient pas disponibles sur ce sujet. Vu lengouement pour le suivi des attaques suscit par ltude du pot de miel de Lance Spitzner (et que seuls des produits comme les systmes de dtection des intrusions alimentent), on pourrait sattendre ce que moins defforts soient consacrs identier les attaques (qui ne sont gnralement pas particulirement excitantes en elles-mmes et qui utilisent gnralement des vecteurs et des failles bien documents) au prot de tentatives qui visent connatre les intentions et les origines dune attaque et tablir une corrlation entre des vnements qui nont aucun sens lorsquils sont isols mais qui peuvent signaler un problme lorsquils sont combins. Je ne peux que montrer la partie merge dun iceberg, mais il va sans dire que cela pourrait tre un domaine des plus passionnants tudier. Et, maintenant, quelque chose de compltement diffrent

Partie IV
Vision densemble
Notre service juridique nous a conseill de ne pas baptiser cette partie : "le rseau est lordinateur".

16
Le calcul parasitaire, ou comment lunion fait la force
Dans lequel se conrme que mieux vaut avoir une arme de serviteurs que faire le travail soi-mme.

Jespre que vous avez apprci le parcours jusquici. Jai abord un certain nombre de problmes qui affectent la scurit et la condentialit des informations depuis leur saisie au clavier jusqu leur destination nale des centaines ou des milliers de kilomtres de distance. Mais il est encore trop tt pour sarrter l, car quelque chose manque encore, quelque chose de bien plus grand que ce que nous avons vu jusqu prsent. La matire noire.
Notre histoire jusqu prsent prsente un dfaut assez vident : les communications ne se produisent pas dans le vide. Bien que le processus dchange des donnes se limite gnralement deux systmes et une dizaine dintermdiaires, il est impossible dignorer le contexte gnral. Les proprits de lenvironnement peuvent inuencer en profondeur la ralit dune communication entre deux terminaux. Nous ne pouvons pas ignorer limportance des systmes qui ne sont pas directement impliqus dans les communications ni limportance de tous les vnements minuscules, apparemment isols, que les donnes rencontrent en cours de chemin. Il peut tre fatal de se concentrer

272

Vision densemble

uniquement sur ce qui semble relever dune application spcique ou dun cas particulier, comme jespre que ce livre vous la montr jusquici. Plutt que tomber dans ce pige, jai choisi de tout englober. Ainsi, la quatrime et dernire partie de cet ouvrage se concentre exclusivement sur la scurit du travail en rseau dans son ensemble et examine Internet comme un cosystme et non comme un ensemble de systmes accomplissant chacun des tches spciques. Nous rendons hommage la matire apparemment inerte qui relie toutes choses. Cette partie de louvrage commence par lanalyse dun concept qui semble tre le moyen le plus appropri pour effectuer la transition. Pour beaucoup de geeks informatiques, ce concept, appel calcul parasitaire, a rvolutionn notre faon de penser Internet.

Lutilisation des processeurs distants


Tout commence par un modeste document de recherche publi sous forme dune lettre dans le journal Nature par Albert Laszlo Barabasz, Vincent W. Freeh, Hawoong Jeong et Jay B. Brochman en 20011 qui aurait trs bien pu passer inaperu. premire vue, cette lettre ne semblait mriter quon lui accorde une grande attention. En fait, la thse mise semblait mme apparemment drisoire. Ses auteurs indiquaient que du trac pouvait tre cr lintrieur de protocoles rseau bien tablis comme TCP/IP pour poser (comme un message) un problme arithmtique simple un ordinateur distant. Le systme distant rsoudrait alors involontairement le problme tout en analysant le message et en prparant une rponse. Mais pourquoi perdre du temps poser des nigmes des machines dpourvues dmotion ? Quaurions-nous y gagner ? Ne serait-il pas aussi amusant de les rsoudre soi-mme ? Bien entendu, la rponse est trs intressante. Premirement, la rsolution de puzzles avec un ordinateur nest pas si simple : la cryptographie actuelle se fonde en majorit sur la relative difcult rsoudre une srie de problmes prtendument non dterministes polynomiaux* (NP). Les problmes NP-complet semblent prendre plaisir faire chouer chaque attaque sur le code au moment le moins
* Selon la thorie de la complexit, un problme polynomial peut tre rsolu par une machine de Turing dans un temps polynomial proportionnel la longueur dentre (nombre ou taille des variables pour lesquelles la rponse doit tre trouve). Cela signie que le temps ncessaire pour rsoudre un problme polynomial correspond directement la longueur en entre leve une puissance constante, qui peut tre gale zro (ce qui fait que le temps ne dpend pas du tout de la longueur en entre, comme pour les tests de parit). Un problme non dterministe polynomial (NP) na pas de solution connue de cette nature et peut e xiger beaucoup plus de temps pour tre rsolu mesure que la longueur dentre augmente et prsente par e xemple une dpendance exponentielle. Certains problmes NP, connus sous le nom de NP complets, nont aucune solution en temps polynomial. Les problmes NP sont gnralement considrs comme "difciles" pour des entres complexes, tandis que les problmes dterministes sont moins coteux rsoudre.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

273

opportun. Linventeur dune manire efcace de les rsoudre, que ce soit grce une norme puissance de calcul, des algorithmes astucieux ou aux deux, deviendrait quasiment le matre du monde. Il y a donc une bonne raison de chercher le faire, mais comment y parvenir ? Cette tude proposait une mthode tout fait indite. Tout dabord, ce document dclarait que de nombreux problmes NP en mathmatiques peuvent tre facilement exprims en termes dquations SAT (quations boolennes ayant une solution). Les quations SAT reprsentent ces problmes sous la forme doprations boolennes logiques, en crant une squence de paramtres et de variables (une formule boolenne). Voici un exemple classique de formule SAT :
P = (x1 XOR x2) AND (~x2 AND x3)

Ici, P est la formule elle-mme (le problme) tandis que x1, x2 et x3 sont les entres binaires ou les paramtres. Bien quil existe 23 combinaisons possibles pour les valeurs x1, x2 et x3, seule lune delles rend P vrai : x1 = 1, x2 = 0 et x3 = 1. Par consquent, seul ce triplet est une solution de P. Trouver la solution des problmes SAT revient donc dterminer un ensemble de valeurs pour toutes les variables de lquation, an que lensemble de la formule qui intgre ces variables ait une valeur logique vraie. Bien que les problmes SAT simples comme celui de notre exemple soient faciles rsoudre uniquement par ttonnements, les cas plus complexes comprenant de multiples variables sont effectivement NPcomplets. Par consquent, dautres problmes NP peuvent tre rduits des problmes SAT dans un temps polynomial (ou acceptable). Cest l que rside le problme. Nous pouvons formuler un problme NP difcile avec une quation SAT, mais cela ne nous apporte pas grand-chose de plus. ce jour, quand il sagit dune quation complexe, mme les meilleurs algorithmes de rsolution SAT connus ne sont pas beaucoup plus efcaces que la recherche par force brute dans laquelle toutes les possibilits sont essayes et la valeur de la formule, value chaque possibilit. Cela signie que, si nous avons un problme SAT et sufsamment de puissance de calcul pour envisager de la rsoudre, il nest pas aussi dment que cela de chercher une solution en utilisant la force brute. Une mthode plus sophistique napporterait pas grand-chose de plus et puis, de toute faon, nous navons pas grand-chose perdre essayer. Et voici le lien entre les problmes SAT et le protocole TCP/IP. Le constat de base des chercheurs est assez vident (ou devrait ltre, si vous souscrivez au journal Nature) : lalgorithme de la somme de contrle de TCP (ou IP) dcrit au Chapitre 9, mme sil a en principe t conu dans un tout autre but que pour rsoudre des quations, nest rien dautre quun ensemble doprations boolennes ralises la suite sur les bits du message en entre. Aprs tout, au niveau le plus bas, lalgorithme neffectue rien dautre quune suite doprations logiques purement boolennes sur les mots du paquet transmis. La conclusion de cette tude est la suivante : en fournissant des contenus

274

Vision densemble

spciques au paquet ("entre"), le systme distant peut alors tre contraint de procder une srie doprations arithmtiques, puis dvaluer son exactitude donner son accord avec la somme de contrle dclare dans len-tte TCP ou IP. Bien que lopration excute par le systme distant pendant le processus de la somme de contrle soit exactement le mme chaque itration, il dispose dune fonctionnalit sufsante pour servir de porte logique universelle, un mcanisme que nous avons abord au Chapitre 2. En intercalant dans lentre effectivement teste des mots de "contrle" soigneusement choisis qui inversent ou modient la somme de contrle partielle calcule jusque-l, il est possible de mener bien nimporte quelle opration boolenne. Cela signie que la logique SAT peut tre facilement recre en utilisant une squence de contrle spcique et des bits en "entre"dans un paquet une fois que les donnes sont exposes lalgorithme de la somme de contrle ; les variables de lquation (dans un sens ou dans lautre) sont intercales avec des mots dnis qui sont utiliss pour transformer la valeur actuelle de la somme de contrle an que la sortie de la prochaine opration imite un oprateur boolen spcique. Le rsultat nal la valeur laquelle un paquet se rsume montre la sortie nale : la valeur logique dune formule valuer. Ainsi, le test de valuation est accidentellement effectu par le destinataire distant lorsquil tente de valider la somme de contrle son arrive. Si la somme de contrle est gale 1 (ou quelque autre valeur qui correspond dans notre systme de calcul SAT une dclaration SAT dont lvaluation est vraie), le test de valuation des valeurs de variable choisies pour ce paquet russit (le trac est transmis aux couches suprieures et une action sensuit). Si la somme de contrle choue, la formule na pas t remplie, et le paquet est abandonn en silence. En dautres termes, si nos bits en entre mettent une hypothse, le destinataire vrie quelle est vraie ou fausse et agit diffremment en fonction du rsultat. En outre, une partie qui veut rsoudre un problme SAT rapidement peut prparer un ensemble de toutes les combinaisons de valeurs possibles que les variables (entres) peuvent avoir dans une formule donne, intercaler ces valeurs avec les informations qui font que les entres se combinent avec les autres donnes de la meilleure faon, placer ces informations dans des paquets TCP et les envoyer (presque en parallle) un grand nombre dhtes dans le monde entier. Au lieu dtre calcule, la somme de contrle pour un paquet serait dnie manuellement une valeur que nous savons correspondre ce que "lhypothse" produirait si elle savrait. Seuls les htes qui reoivent des paquets contenant des valeurs de variables avec lesquelles lvaluation de la formule donne la valeur souhaite rpondront au trac ; les autres systmes considreront tout simplement ce trac comme corrompu en raison de linadquation de la somme de contrle. Lexpditeur peut ainsi dterminer la solution correcte, sans effectuer de calculs massifs. Il lui suft de vrier lensemble des valeurs utilises dans les paquets envoys aux htes qui ont rpondu une requte.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

275

Ltude va plus loin et signale une tentative russie de rsoudre un problme NP en utilisant des htes rels dans le monde entier, fournissant donc non seulement un fondement thorique mais aussi la conrmation relle du bien-fond de cette approche. Cette technique a un impact trs lger, mais galement important : elle prouve quil est effectivement possible de "dlocaliser" les calculs vers des parties distantes sur le rseau sans quelles ne le sachent et ne le veuillent, y compris certaines oprations ncessaires pour rsoudre de vrais problmes de calcul. Et cela peut tre ralis sans rellement attaquer ces systmes, en prendre le contrle, installer de logiciels malveillants ni interfrer en quoi que ce soit avec les tches lgitimes. Une personne peut donc effectivement diviser une tche de calcul entre un grand nombre de systmes. Ce processus ne consomme quune partie inme et ngligeable de la puissance de calcul de chaque systme mais peut nanmoins correspondre lquivalent dun superordinateur quand des millions de systmes collaborent sur un mme problme. La domination du monde porte de main ? Pas si vite.

Considrations pratiques
Ou peut-tre, mais pas seulement. Lapproche suggre dans cette recherche est rvolutionnaire et intressante mais ne reprsente pas ncessairement une manire particulirement pratique de construire un superordinateur en volant aux riches. Le montant de bande passante ncessaire pour maintenir un taux raisonnable de calcul ainsi que le nombre de calculs ncessaires pour prparer des problmes simples que les autres systmes doivent rsoudre sont assez levs. De ce fait, ce systme nest pas assez efcace pour externaliser la rsolution de problmes mathmatiques complexes sur les systmes de victimes non consentantes. Dans le schma dcrit plus haut, la puissance de calcul exponentielle ncessaire est remplace par la bande passante exponentielle ncessaire. Ce nest pas forcment un change intressant, surtout si lon considre que des tests relativement simples peuvent ne pas se drouler compte tenu de la taille limite des paquets sur la plupart des rseaux (tous ces tests pourraient facilement tre rsolus en autant de temps quil nen faut pour transmettre ces donnes sur Ethernet). Cette technique apporte la preuve que lattaque est possible et fournit un moyen vritablement universel de la mener bien, mais des scnarios dattaque plus spciques pourraient donner des rsultats beaucoup plus utiles. Dautres moyens de parvenir une puissance de calcul impressionnante moindre cot en volant des quantits ngligeables de la puissance de calcul de chaque machine sont peut-tre plus intressants. Par exemple, certains types de logiciels clients (comme les navigateurs Web) peuvent facilement tre utiliss pour excuter des algorithmes assez

276

Vision densemble

complexes dune faon relativement simple. Sur son site md5crk.com, Jean-Luc Cooke encourageait par exemple les webmasters ajouter leurs pages Web un petit applet Java qui utilisait un schma de calcul bas sur la "loterie chinoise" et dtaill dans la RFC 3607 2. Une fois cet applet ajout un site, chaque visiteur pouvait excuter lapplet sur son systme. Lapplet empruntait une quantit ngligeable des cycles du processeur pour contribuer un projet visant trouver des collisions dans les fonctions des rsums MD5 (les collisions dsignent deux messages diffrents qui produisent le mme rsum. Ces cas rares et anecdotiques mais trs certainement possibles* peuvent nous permettre de mieux comprendre les faiblesses des fonctions de rsum et pourraient empiriquement prouver, voire dmontrer, que MD5 ne reprsente plus un cueil pour les ordinateurs daujourdhui). Les applets Java sont de petits programmes indpendants de la machine qui sont excuts par dfaut par les navigateurs Web dans des environnements "sandbox" spciaux et restreints. Ils nont pas accs au contenu local du disque et ne peuvent (en thorie seulement) faire aucun mal, mme sils peuvent utiliser la connectivit du rseau de faon limite pour effectuer des calculs et ajouter certains lments visuels une page Web. Ils sont le plus couramment utiliss pour amliorer les sites Web en leur apportant des fonctionnalits supplmentaires comme des jeux interactifs, des effets visuels, et ainsi de suite. Mais Jean-Luc utilisait ces applets pour quelque chose dautre : pour trouver des collisions possibles en utilisant simultanment la puissance de calcul conjointe de centaines ou de milliers de systmes travers le monde. Le principe de cette opration tait simple : lapplet tait excut sur les systmes clients du monde entier chaque fois quun site cooprant lopration tait visit. Ensuite, une fois lanc, lapplet essayait de calculer le rsum MD5 de diffrents messages choisis au hasard. Cela continuait jusqu ce que soit trouv un rsum qui corresponde un certain motif de masquage arbitrairement choisi et dni. Ce motif pouvait tre "tout rsum dont les quatre derniers octets valent zro" ou quelque chose de semblable. Le motif tait choisi de manire que la dcouverte du rsum par ttonnements ne prenne pas trop de temps (de sorte que la personne nait pas quitter la page Web et arrter le code avant que le rsum ne soit trouv) mais aussi de manire quune petite fraction seulement de lensemble des rsums possibles corresponde.

* Alors que la version originale de ce livre tait en cours de prparation pour limpression, une quipe de chercheurs chinois de luniversit de Shandong (Xiaoyun Wang, Dengguo Feng, Xuejia Lai et Hongbo Yu) ont dcouvert une technique pour trouver des collisions MD4, MD5, Haval-128 et RIPEMD-128 et ont fourni des chantillons. Cette dcouverte majeure pour la cryptographie moderne conrme que ces fonctions sont insufsantes pour certaines applications lies la scurit. Bien que le projet md5crk.com se soit interrompu, sa contribution lexploration du calcul parasitaire reste valable.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

277

Une fois quun message tait trouv, le programme le signalait et lenvoyait lauteur, qui pouvait alors lexaminer. Lapplet avait dj examin et rejet un certain nombre de possibilits de collision et transmettait uniquement celles qui correspondaient une condition prdnie (celles qui taient en partie identiques). Comme les donnes collectes de cette faon risquent beaucoup moins de varier, le risque de collision dans un morceau de n entres est considrablement plus lev que pour des donnes purement alatoires. Par analogie, la probabilit de rencontrer deux pommes ayant le mme aspect dans un lot est plus leve si lon commande uniquement des pommes qui ont peu prs le mme poids et la mme couleur que si lon achte des fruits en vrac. Bien que discutable dun point de vue thique, cette approche ingnieuse dploye pour la premire fois par md5crk.com a vraiment fonctionn et a dmontr que le calcul parasitaire peut tre la fois trs efcace et furtif. Il est possible de voler des cycles processeur dans un but "lgitime" et peut-tre mme de les utiliser plus souvent que nous le voudrions. Et cette possibilit est l pour perdurer. Si on est sceptique, on peut se demander si le calcul parasitaire peut utiliser un peu de la puissance des processeurs pour autre chose que le dchiffrement des systmes de cryptage, une tche qui nintresse que peu de personnes.

Les dbuts du stockage parasitaire


Lorsque vous criez, les ondes sonores se dplacent dans lair, perdent peu peu de lnergie et se dispersent dans toutes les directions. Toutefois, si elles rencontrent un obstacle solide, elles vont probablement rebondir et, si langle est le bon, revenir vers vous. Vous pouvez constater ce rsultat sonore lorsque vous entendez lcho de votre voix une fraction de seconde aprs avoir cri. Mais que se passe-t-il quand un fanatique des thories de linformation lit haute voix son code depuis le sommet dune montagne, en dirigeant ses paroles vers une valle rocheuse ? Jattendais que vous le demandiez. Dans ce cas, il ne peut que faire le constat suivant : sil lit rapidement puis oublie immdiatement tout ce quil a rcit (parce que dautres questions le proccupent), il peut encore ventuellement rcuprer les informations lorsquelles se rpercutent depuis le bas de la valle et font cho. Voil un mcanisme de stockage de donnes commode. Cela vous semble ridicule ? Peut-tre que nous sommes tout simplement trop jeunes. Les premiers types de modules de mmoire informatique utilisaient une technique acoustique similaire pour permettre au processeur de stocker des informations "hors ligne" et les rcuprer plus tard. Plutt quutiliser lair ( travers lequel les ondes se propagent un peu trop rapidement pour fournir des capacits de stockage sufsantes sans devoir crer des units de mmoire de trs grande taille), un tambour rempli de mercure tait utilis (un environnement dans lequel les ondes acoustiques se propagent beaucoup

278

Vision densemble

plus lentement). Toutefois, le principe restait identique et donna mme un sens intressant la notion de fuite de mmoire. Ce dispositif de mmoire mercure a par exemple t utilis dans le clbre UNIVAC I*. Naturellement, ce type de mmoire lente, encombrante, dangereuse et peu pratique a t abandonn au prot dautres solutions, ds que la technologie a volu. Toutefois, linvention elle-mme avait un certain charme et ne sera pas oublie si facilement. Lors de la confrence DefCON de Las Vegas, en 2002, Saqib A. Khan t une courte prsentation sur ce sujet en indiquant comment utiliser les proprits dun rseau de grande taille comme Internet pour construire le mme type de stockage momentan. Pour tous les hackers et les geeks qui regardaient ce court diaporama, la description de la mmoire acoustique na pas sembl ridiculement primitive mais les a fascins. La mmoire acoustique t son retour avec lgance. Comme les temps daller-retour des paquets (le temps ncessaire pour quun message arrive un systme distant et pour quune rponse revienne) ne sont pas nuls, une certaine quantit de donnes peut toujours tre conserve "sur le l" en envoyant et en recevant de faon rpte des portions de ces donnes et en attendant quelles produisent un cho en retour. Saqib utilisait des paquets "echo request" (ping) du protocole ICMP (Internet Control Message Protocol) pour obtenir cet effet. La plupart des systmes sur Internet rpondent de tels paquets avec "echo reply", en citant la charge utile originale quils ont reue. Cela semblait une astuce intelligente. Toutefois, la mise en application de cette technique est galement loin dtre pratique car elle exige la retransmission frquente de portions de donnes. Comme le message ICMP "echo reply" est renvoy presque immdiatement aprs la rception du message "echo request", seule une petite quantit de donnes peut tre transmise chaque aller-retour. En consquence, la quantit de donnes pouvant tre stockes de cette faon ne saurait dpasser ce que lutilisateur peut transmettre pendant quelques secondes (le plus souvent, pendant moins dun dixime de seconde). Ah ! Mais le stockage parasitaire pourrait tre amlior.

* On peut noter quune mmoire analogique de faible capacit a galement t utilise au dbut des implmentations des rcepteurs de tlvision SECAM (squentiel couleur avec mmoire). Contrairement au NTSC ou au PAL, le SECAM utilise une rsolution colorimtrique moindre ; les composantes de chrominance rouges et bleues sont transmises en alternance, jamais simultanment. Lautre composante doit tre prise partir de la ligne prcdente pour dterminer laspect dun pixel en particulier. Pour ce faire, un dispositif de mmoire doit tre implment.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

279

Rendre possible le stockage parasitaire


En 2003, Wojciech Purczynski et moi avons cocrit un document appel "Juggling with Packets: Parasitic Data Storage" (Jongler avec les paquets : le stockage parasitaire des donnes). Nous avons pouss le concept de stockage parasitaire un peu plus loin et examin un certain nombre de mthodes qui pourraient tre utilises pour tendre de manire spectaculaire la capacit de stockage dInternet, tout en prservant la bande passante ncessaire pour maintenir linformation. Nos recherches ont port sur plusieurs autres manires de stocker des donnes sur des systmes distants que nous avons classes en fonction des proprits du support de stockage (sa visibilit, sa volatilit et sa abilit). Nous avons galement inclus un examen dtaill de capacits de stockage hypothtiques de chacune de ces techniques. Ce document trs court, amusant et rafrachissant (du moins, je lespre) est reproduit ici.
========================================================== Jongler avec les paquets: le stockage flottant de donnes ========================================================== "Votre donjon est construit sur une pente. Les monstres ne peuvent pas jouer aux billes!" Wojciech Purczynski <cliph@isec.pl> Michal Zalewski <lcamtuf@coredump.cx> 1) Jongler avec des oranges! -----------------------------La plupart dentre nous, y compris les auteurs de ce document, ont tent de jongler avec trois pommes ou plus, des oranges ou dautres objets fragiles. Leffet est en gnral assez pathtique, mais le plus habile des apprentis jongleurs apprend tt ou tard le faire sans entraner de dommages collatraux excessifs. Sil est observateur, un apprenti jongleur peut remarquer que, tant quil continue suivre une procdure simple, au moins un des objets est toujours en lair et quil doit tenir deux objets au maximum en mme temps. Pourtant, chaque pomme passe de temps en temps dans ses mains et il peut la rcuprer quand il le souhaite. Aprs stre un peu amus jongler, notre apprenti jongleur dcide que lensemble du processus est extrmement ennuyeux et retourne son ordinateur. Tout en vrifiant son courrier lectronique, il remarque quun service rseau typique na quune occupation: accepter et traiter les donnes provenant dun systme distant et prendre toutes mesures quil juge appropries en fonction de son interprtation des donnes. Beaucoup de ces services font de leur mieux pour tre robustes, tolrants aux pannes et fournir des indications utiles sur la transaction.

280

Vision densemble

Dans certains cas, le simple fait que le service tente de traiter les donnes et de rpondre peut tre utilis dune faon que les auteurs du protocole nont jamais imagine. Ltude intitule "Parasitic Computing" (calcul parasitaire) de luniversit de Notre Dame et publie dans des lettres au journal Nature en est un spectaculaire exemple. Nanmoins, notre hros conclut que ces tentatives sont assez peu pratiques dans le monde rel. Le cot de la prparation et de la livraison des problmes simples rsoudre dpasse de loin les gains ventuels puisque lexpditeur doit effectuer des oprations aussi complexes pour mettre la requte que sil effectuait les calculs luimme. Pour lui, "la puissance de calcul dun tel dispositif est minable!". Un vrai jongleur se concentrerait alors sur une forme dexternalisation du traitement de donnes qui soit beaucoup plus proche de son domaine dexpertise. Pourquoi ne pas implmenter un stockage des donnes fond sur le mouvement des fruits? Que se passe-t-il si jcris une seule lettre sur chaque orange et que je commence ensuite jongler? Je peux alors enregistrer plus doctets dorange que ma capacit physique ne le permet (le nombre doranges que je peux tenir dans mes mains)! Gnial Mais cela fonctionnerait-il sans les oranges? 2) La mme chose, sans les oranges ---------------------------------Le prsent document se fonde sur lobservation suivante: pour lensemble des communications rseau, il y a toujours un dlai diffrent de zro (et souvent considrable) entre lenvoi des informations et la rception dune rponse du fait des contraintes physiques du mdium utilis pour le transfert et le temps ncessaire au traitement des donnes sur tous les quipements informatiques. De la mme faon quune orange sur laquelle est crit un message, un paquet utilis pour stocker des donnes voyage pendant un certain temps avant de revenir sa source; dure pendant laquelle nous pouvons oublier le message sans perdre de donnes. En tant que tel, Internet a une capacit de stockage momentane de donnes non nulle. Il est donc possible de transmettre une information et quelle soit effectivement stocke jusqu ce quelle soit renvoye en cho. En tablissant un mcanisme pour la transmission et la rception cyclique de morceaux de donnes vers et depuis un certain nombre dhtes distants, il est possible de maintenir un nombre arbitraire de donnes constamment "sur le fil" et donc dtablir ainsi un mdium volatile de grande capacit. Ce support peut tre utilis pour des oprations coteuses en mmoire, soit comme stockage classique soit pour certains types de donnes sensibles pour lesquelles on ne souhaite pas laisser de traces physiques sur un disque dur ou tout autre support non volatile. Puisquon ne considre pas que renvoyer autant dinformations pertinentes lexpditeur que lexpditeur en envoie au service soit une erreur de programmation et puisque de nombreux services et piles

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

281

maintiennent un haut niveau de verbosit, notre exprience de la jonglerie nous indique quil est non seulement possible mais aussi ralisable de mettre en place ce type de stockage, mme sur un rseau bas dbit. Contrairement aux mthodes traditionnelles de stockage parasitaire de donnes (comme lutilisation abusive du P2P, les serveurs FTP ouverts, les fichiers binaires Usenet, etc.), cette mthode peut ou peut ne pas laisser de trace des donnes (selon la faon dont nous limplmentons) et ne cre aucune charge particulire sur aucun systme. En consquence, contrairement aux mthodes traditionnelles, cette technique risque moins dtre dtecte et dtre considre comme un abus. Ainsi, la possibilit que les donnes soient interceptes et dlibrment supprimes est beaucoup moins problmatique. 3) Stockage des donnes de classe A: la mmoire tampon -------------------------------------------------------Le stockage des donnes de classe A utilise les capacits inhrentes aux dlais des communications durant la transmission et le traitement des donnes en temps rel lorsquelles traversent des rseaux entre deux systmes dextrmit. Les informations stockes demeurent dans la mmoire cache dun ordinateur distant et ne sont pas susceptibles dtre transfres sur un disque physique. Tous les exemples de mmoire de classe A reposent sur lenvoi dun message connu pour entraner un cho partiel ou total la demande initiale. Cet cho peut tre obtenu par: - Les rponses SYN+ACK, RST+ACK aux paquets SYN, et par dautres rebonds. - Les rponses "echo reply" ICMP. - Les rponses DNS lookup et les donnes mises en cache. Il est possible de stocker des informations dans une requte lookup et de les renvoyer avec une rponse NXDomain ou de stocker les donnes dans une mmoire cache NS. - Le transfert des messages de discussion entre plusieurs serveurs. Relayer les messages textuels travers les serveurs IRC et autres entrane une latence considrable. - HTTP, FTP, proxy Web, erreur SMTP ou les rponses dtat. Les proprits les plus importantes de la classe A de stockage sont les suivantes: - Une faible latence (de quelques millisecondes plusieurs minutes), ce qui la rend plus utile pour les applications proches de la mmoire vive. - Une capacit de stockage par systme faible (gnralement quelques kilo-octets), ce qui la rend inadapte au stockage de fichiers de grande taille.

282

Vision densemble

- Une seule chance dtre reue ou peu de chances dtre retransmise, ce qui la rend moins fiable en cas de panne du rseau. - Une rduction des risques denregistrement permanent. Les donnes ne sont pas susceptibles dtre stockes sur un support non volatile ou dplaces sur une mmoire accs lent, ce qui accrot leur anonymat et rend plus facile de nier quelles nous appartiennent. Lors de lutilisation de protocoles de plus haut niveau, des caractristiques supplmentaires apparaissent qui pourraient rsoudre certains problmes (temps court pour rcuprer les donnes, faible capacit) communs aux diffrents types de stockages de classe A. Il est par exemple possible dtablir une connexion un service comme SMTP, FTP, HTTP ou tout autre service fond sur le texte et denvoyer une commande connue pour provoquer lenvoi en cho dun message derreur ou dacquittement contenant une partie des donnes initiales. Toutefois, on nenvoie pas un message entirement format; certains caractres ne doivent pas tre envoys. Dans la plupart des cas, les caractres de fin de ligne sont ncessaires pour mener bien la commande. Dans cette phase, nos donnes sont dj stockes sur le service distant qui attend une commande complte ou que le temps de connexion expire. Pour ne pas dpasser ce dlai, que ce soit sur TCP ou au niveau de lapplication, des paquets no-op doivent tre envoys priodiquement. Un caractre \0 interprt comme une chane vide ne produit aucun effet sur de nombreux services, mais il suffit pour rinitialiser les compteurs TCP et le dlai dattente du service. Microsoft Exchange est un bon exemple dune application vulnrable cette attaque. Lattaquant peut maintenir la connexion pendant une dure arbitraire avec une portion de donnes dj stockes sur lautre systme dextrmit. Pour rcuprer les informations, la commande doit tre complte avec les caractres \r\n manquants, puis la rponse est envoye au client. La commande SMTP VRFY est un bon exemple: 220 inet-imc-01.redmond.corp.microsoft.com Microsoft.com ESMTP Server Thu, 2 Oct 2003 15:13:22 -0700 VRFY AAAA ... 252 2.1.5 Cannot VRFY user, but will take message for <AAAA...@microsoft.com> Il est possible de stocker un peu plus de 300 octets, y compris les caractres non imprimables, de cette faon et de les rendre disponibles presque instantanment. Davantage de donnes peuvent tre stockes si la mthode HTTP TRACE est utilise avec les donnes transmises dans des en-ttes HTTP arbitraires, selon le logiciel du serveur. En maintenant les connexions, on peut obtenir une latence arbitrairement leve et donc crer une plus grande capacit de stockage.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

283

Ce type de stockage est naturellement plus adapt aux applications dans lesquelles la confidentialit est primordiale ou lorsque la latence la plus faible est infrieure la capacit de stockage du mdium (stockage immdiat sur la RAM des informations qui ne doivent laisser aucune trace visible). Ce stockage nest pas adapt aux donnes essentielles qui devront tre prserves tout prix, en raison du risque que les donnes soient perdues en cas de panne du rseau. 4) Stockage des donnesde classe B: les files dattente du disque ------------------------------------------------------------------Le stockage des donnes de classe B utilise les files dattente de donnes "inactives"qui stockent des informations pendant une longue priode de temps (souvent sur le disque). Par exemple, les systmes MTA peuvent mettre en file dattente les courriers lectroniques pendant sept jours (ou plus, selon la configuration). Cette fonctionnalit peut nous donner un long dlai entre lenvoi de donnes stocker sur lordinateur hte et leur rception. Comme un serveur SMTP typique empche que le courrier lectronique du client soit relay au serveur lui-mme, on peut utiliser les rebonds de le-mail pour que les donnes reviennent aprs une longue priode de temps. Prenons par exemple ce scnario potentiel dattaque: 1.Lutilisateur construit une liste de serveurs SMTP (peut-tre des serveurs qui semblent tre hors de porte de ses adversaires). 2.Lutilisateur bloque (avec bloc/drop, et non pas reject) toutes les connexions entrantes sur le port 25. 3.Pour chaque serveur, lattaquant doit confirmer le dlai dexpiration de la livraison et ladresse IP partir de laquelle le serveur se connecte lorsquil essaie de renvoyer un rebond. Cela se fait par lenvoi dune sonde une adresse locale au serveur (ou en demandant une notification DSN pour une adresse valide) et en vrifiant pendant combien de temps le serveur essaie de se connecter avant dabandonner. Le serveur na pas besoin dtre un relais ouvert. 4.Aprs avoir confirm les objectifs, lattaquant commence envoyer des donnes un rythme choisi pour que le processus soit rparti uniformment sur une priode dune semaine. Les donnes doivent tre divises de manire quil y ait un morceau pour chaque serveur. Chaque morceau est envoy un serveur distinct pour gnrer immdiatement un rebond renvoy lexpditeur. 5.Le processus de maintien de donnes revient accepter une connexion entrante et recevoir le retour une semaine au plus tard compter de la date denvoi initiale, juste avant que lentre ne soit retire de la file dattente. Cela se fait en permettant ce serveur en particulier de passer travers le pare-feu. Ds que le morceau est reu, il est relay en retour.

284

Vision densemble

6.Pour accder toute portion de donnes, lattaquant cherche quel MTA dtient ce bloc puis autorise cette adresse IP se connecter et envoyer le rebond. Trois scnarios sont alors possibles: Si le MTA distant prend en charge la commande ETRN, la livraison peut tre initie immdiatement. Si le MTA distant excutait depuis trois minutes une tentative de connexion un systme local (il continue dessayer grce au fait que ses paquets SYN sont abandonns et non rejets avec RST+ACK), la connexion peut tre tablie en lespace de quelques secondes. Sinon il est ncessaire dattendre de cinq minutes une heure, en fonction des paramtres de la file dattente. Ce motif peut tre amlior en utilisant des noms DNS au lieu des adresses IP pour les utilisateurs ayant une adresse IP dynamique ou pour fournir une protection supplmentaire (ou lorsquil est ncessaire de couper la chane immdiatement). Les proprits importantes de stockage de classe B sont les suivantes: - Capacit leve par systme (plusieurs mgaoctets), ce qui en fait la solution idale pour stocker des gros fichiers, par exemple. - Une latence daccs plus leve (quelques minutes quelques heures), plus proche dun priphrique bande que de la RAM ( lexception des htes SMTP, qui acceptent que la commande ETRN tente de nouveau dinitier un transfert immdiat). - Une trs longue dure de vie, ce qui augmente la capacit et la fiabilit de chaque utilisateur. - Beaucoup de tentatives de livraison, ce qui facilite la rcupration des donnes mme aprs un problme rseau ou matriel temporaire. - Un risque certain de laisser une trace sur les priphriques de stockage, ce qui en fait une solution moins utile pour le stockage dont on nie totalement la paternit (mme sil serait ncessaire dexaminer un certain nombre de systmes dans diffrents pays, ce qui ne doit pas tre ralisable). Le stockage de classe B est adapt pour stocker des archives de fichiers ordinaires, les mmoires tampon de grande taille en mode append-only, les ressources cryptes (avec une bonne slection des htes, il est quasiment possible de nier leur paternit), etc.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

285

5) Stockage de classe A discret -------------------------------Dans certaines situations, il peut tre ncessaire de concevoir une solution pour le stockage discret de donnes qui ne rside pas sur la machine elle-mme et qui permette de nier la prsence de cette information un endroit ou un autre. Lexigence de base est que les donnes soient: - Non renvoyes jusqu ce quune squence cl spciale soit envoye. - Supprimes de faon permanente sans laisser aucune trace sur nimporte quel support de stockage non volatile en labsence de requte keep-alive. Il est possible dutiliser le stockage de classe A pour implmenter cette fonctionnalit en utilisant la mthode de commande pour maintenir les donnes dont nous avons parl plus tt. Le bon numro de squence TCP est ncessaire pour librer les donnes et, tant que cette squence nest pas fournie, les donnes ne sont pas renvoyes ou divulgues aucune partie. Si le nud client est hors ligne, les donnes sont supprimes et probablement crases par dautres. Le numro de squence est donc la clef linformation stocke et, si la dure de vie restant aux donnes est assez courte quand la commande darrt du keep-alive \0s arrive, il sagit souvent dune protection adquate. 6) La capacit accessible lutilisateur -----------------------------------------Dans cette section, nous tentons destimer la capacit de stockage disponible pour un seul utilisateur. Afin de maintenir un niveau constant de donnes "externalises" sur le rseau, nous devons tre en mesure de les recevoir et de les renvoyer rgulirement. Le temps pendant lequel les donnes peuvent tre stockes distance est limit par la dure de vie maximale Tmax dun seul paquet (mise en file dattente et dlais de traitement du paquet compris). La quantit maximale de donnes pouvant tre envoyes est limite par la bande passante maximale du rseau qui est disponible (L). Ainsi, la capacit maximale peut tre dfinie comme suit: Cmax [octets] = L [octets / seconde] * Tmax [secondes] / Ptaille * Dtaille avec: Dtaille - La taille dun paquet ncessaire pour stocker une premire partie des donnes sur un hte distant.

286

Vision densemble

Ptaille - La taille dun paquet ncessaire pour maintenir les informations stockes sur un hte distant. Ptaille et Dtaille sont gaux et peuvent donc tre omis lorsque la totalit du bloc de donnes effectue des rebonds; ils ne diffrent que pour les cas o la "commande de maintien" des donnes est utilise. Le plus petit paquet TCP/IP pour accomplir cela compte 41 octets. La quantit maximale de donnes pouvant tre maintenue en utilisant les en-ttes HTTP est denviron 4096 octets. Ce qui nous donne le tableau suivant: Bande passante 28,8Kbits/s 256Kbits/s 2Mbit/s 100Mbits/s Classe A 105Mo 936Mo 7,3Go 365Go Classe B 2Go 18Go 147Go 7 To

7) Internet dans son ensemble ----------------------------Dans cette section, nous essayons destimer la capacit thorique momentane dInternet dans son ensemble. Classe A Pour estimer la capacit thorique du stockage de classe A sur Internet, nous supposons que: - Les messages ICMP offrent le meilleur quilibre entre capacit de stockage et prservation des ressources sur un systme distant. - Sur un systme dexploitation, la file dattente des paquets dentre peut en moyenne contenir au moins 64 paquets. - La valeur par dfaut du PMTU est denviron 1500 (le MTU le plus courant). Pour estimer le nombre dhtes sur Internet, nous utilisons une enqute de lISC (Internet Systems Consortium) ralise en 2003, qui compte 171638297 systmes ayant des entres DNS inverses (bien que toutes les adresses IP ayant des DNS inverses ne soient pas obligatoirement oprationnelles). Pour en tenir compte, nous avons utilis le taux de rponse lcho ICMP calcul par la dernire enqute avoir ralis ce test (en 1999). Les donnes indiquent quenviron 20% des systmes visibles taient oprationnels, ce qui signifie que le nombre de systmes prts rpondre aux requtes ICMP est denviron 34millions.

Chapitre 16

Le calcul parasitaire, ou comment lunion fait la force

287

En multipliant le nombre de systmes qui rpondent aux requtes cho ICMP par la taille moyenne du cache des paquets et la taille maximale des paquets (moins les en-ttes), nous estimons que la capacit thorique totale du stockage ICMP momentan de classe A slve environ 3 To. Classe B Pour estimer la capacit de stockage thorique de la classe B, nous utilisons lexemple du logiciel MTA. Il ny a pas de limite la quantit de donnes que nous pouvons fournir un seul hte. Bien quil soit raisonnable de penser que seuls les messages dune taille infrieure 1Mo environ ne causeront aucune charge sur le systme qui puisse tre constate ni aucun autre effet indsirable, nous supposons que la taille moyenne de la file dattente est de 500Mo. Nos propres recherches indiquent que le port 25 est ouvert sur prs de 15% des systmes qui rpondent aux requtes Ping. Nous avons donc valu la population des serveurs SMTP 3% (15% de 20%) du montant total des htes, soit un peu plus de 5millions dhtes. Cela donne une capacit totale de stockage de 2500 To.

Applications, considrations sociales, et dfense


Et maintenant ? quoi servent le calcul parasitaire et les systmes de stockage si les avantages quils procurent sont encore loin dtre sufsants pour reprsenter une alternative sduisante laugmentation de la puissance matrielle ? Malgr les progrs de lexploitation pratique du calcul parasitaire, les applications qui visent tendre la puissance de calcul ou lespace de stockage dun systme traditionnel peuvent sembler futiles si lon considre labondance de la mmoire bon march et des processeurs dont la frquence dpasse le gigahertz. Le vrai potentiel de cette technologie peut toutefois se trouver dans un tout autre ensemble dapplications : le calcul volatil. Construire des ordinateurs distribus utilisables qui peuvent se disperser volont, sans laisser de traces physiques et sans stocker de donnes signicatives nulle part, peut tre un puissant outil de protection de la vie prive, mme si cela reprsente galement un d pour les enqutes judiciaires et lapplication des lois. Comme la mmoire volatile stocke et conserve des donnes sans quil soit obligatoire de retransmettre frquemment des donnes mais se vide en peu de temps si un seul nud est hors ligne, lauteur dune infraction (ou le membre dune minorit opprime, dailleurs) peut facilement nier que ces donnes lui appartiennent. Par consquent, un grand nombre de procdures de recherche de preuves doivent tre modies assez radicalement. En outre, imaginez des systmes volatiles qui pourraient, une fois amorcs et initialiss, se maintenir pendant de longues priodes de temps et vivre dans Internet sans consistance

288

Vision densemble

physique. Deux conceptions sont possibles pour les systmes informatiques volatils et distribus, et aucune nest totalement absurde : m Les systmes peuvent tre conus de manire remplir une tche complexe en recherchant une solution en parallle (ce que ralise dj en grande partie le systme informatique SAT, dont nous avons parl plus tt). Ces systmes prsentent deux inconvnients : le rsultat du calcul doit tre rcupr et la prochaine itration du traitement doit tre lance manuellement par lajout occasionnel de "nouveaux germes" lensemble du systme depuis un endroit quelconque. Les solutions qui reposent sur les proprits de bas niveau des protocoles comme TCP entrent probablement dans cette catgorie. m Les systmes peuvent tre conus de faon excuter eux-mmes des suites ditrations de calcul distribu. Tous les types dabus des fonctionnalits de plus haut niveau (comme les algorithmes de rendu intgrs aux documents) et certains services de rseau peuvent tre utiliss pour faciliter ce type dactivit. Dans chaque cas, les consquences peuvent tre assez importantes. Par exemple, comment prendre le contrle dune machine qui se rpare elle-mme et qui nutilise aucun systme en particulier mais emprunte de minuscules bribes de mmoire et de puissance de traitement aux autres pendant une fraction de seconde sans utiliser les failles de ces systmes ni produire de trac clairement identiable qui puisse tre ltr ? Nest-il pas aussi un peu inquitant de constater que nous ne serions pas en mesure de discerner immdiatement les objectifs dun tel ordinateur distribu ? Je mincline respectueusement devant les matres de la mauvaise science-ction car je pense que la domination des ordinateurs est imminente. Je souhaite la bienvenue nos nouveaux matres, les machines.

Matire rexion
Il est en gnral extrmement difcile de se dfendre contre le calcul parasitaire. La capacit de stocker des donnes ou de forcer lautre partie procder certains calculs simples est souvent lie aux fonctionnalits fondamentales des protocoles rseau. Il est impossible dimaginer supprimer cette caractristique sans anantir Internet tel que nous le connaissons ni introduire une foule de nouveaux problmes plus graves que ceux auxquels on remdierait. Il est galement assez difcile dempcher quun seul systme devienne un nud de calcul parasitaire. Comme le nombre de ressources voles un systme reprsente souvent une part ngligeable de linactivit du temps et de la mmoire du processeur, cette technique peut par consquent facilement passer inaperue. Il est probable que le calcul parasitaire nait pas encore rvl tout son potentiel et que cette menace, qui concerne non pas les systmes en particulier mais le rseau dans son ensemble, soit amene perdurer.

17
La topologie du rseau
Ou comment connatre le monde qui nous entoure peut nous aider suivre la trace des amis et des ennemis.

Quelle est la forme dInternet ? Aucune commission ne le supervise ni ne dcide o, comment et pourquoi il doit stendre ni encore comment les nouveaux systmes et les systmes existants doivent tre organiss ou grs. Le rseau Internet se dveloppe dans toutes les directions en fonction de la demande, pour des raisons conomiques, politiques, techniques ou au hasard.
Cependant, Internet nest pas une entit informe : il existe une hirarchie des systmes autonomes planie et rgie au niveau local, avec des routeurs de base entours de nuds de moindre importance, des liaisons congures par des mcanismes automatiques ou soigneusement conues par lhomme. Internet est une structure maille spectaculaire, une toile daraigne la fois complexe et fragile qui couvre lensemble du monde industrialis et en voie de dveloppement. Il semble difcile de prendre un instantan de cette topologie sans cesse changeante, mais il est aussi tentant dessayer de le faire, en particulier lorsque nous nous rendons compte quel point nous pourrions tirer parti de cette information. Dans ce chapitre, je vais dabord examiner deux tentatives notables visant dresser la carte de la topologie du rseau. Je vais ensuite une fois de plus considrer les utilisations possibles de cette information dun point de vue moral.

290

Vision densemble

Capturer linstant
La tentative la plus complte dtablir la carte dInternet a t effectue par la CAIDA (Cooperative Association for Internet Data Analysis), une organisation nance entre autres par des agences de recherche gouvernementales amricaines (NSF, DHS, DARPA) et des entreprises (Cisco, Sun). Cette organisation a t cre pour mettre au point des outils danalyse du trac et de linfrastructure dInternet an damliorer le rseau, de le rendre plus able, plus rsistant et plus robuste. Depuis 2000, un des projets publics phares de CAIDA a consist tablir et maintenir la carte du rseau des systmes autonomes de base (le projet "Skitter"). Les plus rcentes donnes de captures publies reprsentent 12 517 grands systmes autonomes, ce qui correspond 1 134 634 adresses IP et 2 434 073 liaisons (chemins logiques) entre elles. Bien quelle semble tonnamment mystrieuse, la carte dInternet tablie par CAIDA a t cre en utilisant uniquement les donnes de conguration BGP des routeurs accessibles au public, les rsultats de tests empiriques sur le rseau (traceroute) et les enregistrements WHOIS des blocs rseau. Cette carte est organise en utilisant des coordonnes polaires. Les points reprsentant chaque systme sont situs un angle correspondant lemplacement physique du sige central dun rseau et un rayon correspondant la "pertinence du peering" de ce systme autonome. Ce dernier paramtre est obtenu en calculant le nombre de systmes autonomes qui acceptent le trac partir de ce nud particulier. Ainsi, les principaux systmes sont situs vers le centre de la carte, tandis que les systmes qui sont en contact direct avec seulement un ou deux nuds sont situs prs du primtre extrieur. Les lignes dans le graphique correspondent tout simplement aux relations de peering entre les routeurs.
NOTE Malheureusement, nous navons pas t autoriss reproduire les graphiques du projet Skitter dans ce livre sans payer de droits. Je vous encourage cependant voir cette magnique photo en ligne ladresse suivante : http://www.caida.org/analysis/ topology/as_core_network/pics/ascoreApr2003.gif, o elle est accessible gratuitement au grand public.

Une autre tentative notable dtablir la carte du rseau utilise une approche qui sappuie sur lanalyse des distances observes entre les diffrents rseaux depuis un emplacement particulier (dans ce cas, depuis les laboratoires Bell) an de construire une structure arborescente assez diffrente du maillage complexe cr par CAIDA. Cette analyse mene par Bill Cheswick en 2000 1 a abouti la carte de la Figure 17.1. La structure de ce graphique ne dpend pas de lemplacement physique ou administratif dun systme ; la distance relative dun systme par rapport au centre correspond au nombre de sauts entre ce nud et les laboratoires Bell.

Chapitre 17

La topologie du rseau

291

Bien que ces deux tentatives semblent impliquer la collecte et lanalyse dun nombre important de donnes, il nest pas trop difcile pour un amateur dessayer de dresser la carte du rseau, mme sur une liaison au dbit assez faible. Dcouvrir tous les sousrseaux routables publiquement avec un seul paquet pourrait ne ncessiter de gnrer que quelques gigaoctets de trac lquivalent de quelques heures ou dune journe avec une connexion DSL typique. Le seul risque est dalerter certains administrateurs systme, mais rares sont ceux qui ont un seuil de tolrance aussi bas vu la prolifration des vers informatiques et des attaques automatises. Cartographier la structure observe dInternet est possible et cela peut tre enrichissant, surtout parce que cela peut nous en dire long sur lorganisation du rseau mondial.

Figure 17.1
La carte dInternet de Bill Cheswick.

292

Vision densemble

Mais il savre que ces donnes, quil sagisse des informations acquises par CAIDA, Bill Cheswick ou par nimporte quel utilisateur qui matrise le Net, peuvent galement tre utilises an de mieux comprendre la nature et lorigine dun trac mystrieux que nous pourrions un jour rencontrer.

Utiliser les donnes de topologie pour identier lorigine du trac


Le blind spoong est un des problmes majeurs dInternet ou du moins lun de ses aspects les plus ennuyeux. Les paquets usurps avec de fausses adresses sources ou des adresses spcialement choisies mais trompeuses peuvent tre utiliss pour abuser la relation de conance entre des ordinateurs, injecter du contenu malveillant (comme le mailing de masse non sollicit) sans laisser de traces concluantes ni dinformation sur leur origine. Le blind spoong peut galement tre utilis pour masquer lidentit dun attaquant qui scanne des systmes (le "scanning leurre" voqu au Chapitre 13). Mais lusurpation utilise pour raliser des attaques par dni de service (DoS) est le pire au de tous. Dans une attaque DoS typique, ladministrateur a une chance de voir lorigine du trac malveillant dirig contre un de ses services (vraisemblablement dans lintention de provoquer une dfaillance de ce service et de causer des dsagrments ou dentraner des pertes pour loprateur). Toutefois, il est possible dusurper de faon alatoire les paquets malveillants. Ladministrateur est alors sans dfense et incapable de ltrer le trac en provenance de lattaquant sans dconnecter les autres utilisateurs. La seule situation dont il dispose consiste collaborer avec le fournisseur en amont pour enquter sur lorigine relle du trac sur la couche liaison et ensuite transmettre ces informations au FAI de lattaquant, ce qui prend beaucoup de temps. Il faut galement convaincre toutes les parties que laffaire mrite quils enqutent (et y consacrent du temps et de largent) sans injonction judiciaire. Il est donc particulirement important que ladministrateur systme soit quip doutils et de mthodes pour distinguer le trac usurp du trac lgitime. lpoque o je vivais et travaillais aux tats-Unis (je vis en Pologne actuellement), mon collgue Mark Loveless dcida dimplmenter une ide initialement propose par Donald McLachlan : il sagissait de mesurer le temps de vie (TTL) sur le trac rseau entre lui et lexpditeur prsum dun paquet pour dterminer automatiquement si un paquet entrant tait usurp. Il est important de pouvoir identier lorigine dun paquet sur le rseau dans un monde o linformation ne peut pas tre digne de conance. La capacit le faire, ne serait-ce que dans certains cas, reprsenterait un grand avantage pour de nombreuses tches analytiques et administratives, pour les raisons mentionnes prcdemment.

Chapitre 17

La topologie du rseau

293

Pour comprendre lide de Mark et de Donald, il faut considrer que le systme distant partir duquel nous observons le trac se trouve une distance logique spcique par rapport nous et que nous en sommes spars par un certain nombre de priphriques rseau. Ainsi, tous les paquets lgitimement envoys par ce systme montrent un certain TTL larrive, qui correspond la valeur initiale du TTL congur par dfaut sur ce systme moins le nombre de systmes intermdiaires que le paquet a traverss (comme nous lavons vu au Chapitre 9). En revanche, pour le trac usurp qui provient probablement dun rseau compltement diffrent, ce TTL initial et cette distance sont trs certainement diffrents de ce que lobservation mentionne indique. Lutilitaire de Mark, despoof 2, compare le TTL observ du trac spcialement initi avec celui prcdemment reu an de diffrencier le trac lgitime du trac usurp. Cependant, bien que cette mthode puisse parfaitement fonctionner dans des cas particuliers lorsquelle est utilise contre des attaquants qui ne se doutent de rien, elle prsente au moins deux inconvnients :
m

Un attaquant paranoaque peut mesurer les distances avant lattaque et choisir un TTL qui corresponde la valeur attendue. Bien que possible, cette astuce est assez difcile implmenter. Dune part, lattaquant peut tre dans limpossibilit matrielle de dnir un TTL assez lev pour obtenir une valeur qui corresponde celle qui est attendue pour un paquet vritable une fois que le paquet arrive destination. Ce plan de lattaquant peut tre mis en chec si le systme dont il essaie dusurper lidentit utilise un TTL par dfaut gal ou proche de 255 (le maximum possible) et quil est plus loign de la cible que le systme dont il usurpe lidentit (il lui est par consquent quasi impossible denvoyer un paquet qui ait le TTL voulu son arrive destination). Bien sr, peu de systmes utilisent le TTL le plus lev possible et il est rare quun attaquant souhaite usurper lidentit dun systme spcique. Lattaquant peut galement ne pas tre en mesure de dterminer la distance exacte entre sa victime et le systme usurp sil est loin deux, ne les connat pas et ne connat pas les spcicits de routage entre ces htes. Mais, si la victime utilise despoof pour implmenter dynamiquement des rgles de ltrage et supprimer les paquets malicieux, lattaquant peut simplement essayer diffrents TTL provenant de diverses sources jusqu ce quil constate que la victime nest plus capable de faire la distinction (il serait vident de le constater : le systme cibl commencerait montrer les signes dune attaque russie, notamment en termes de performances). Chaque fois quun paquet suspect est reu, le destinataire doit ouvrir une enqute et attendre ensuite les rsultats. Cela rend despoof impossible utiliser comme base de dfense automatique, surtout pour rpondre aux attaques DoS. En revanche, cette mthode est encore trs utile pour dterminer la vritable origine dun "scan leurre".

294

Vision densemble

Sans connatre la topologie dun rseau, il est difcile de faire mieux avec despoof ; la technique danalyse du TTL que cet utilitaire implmente est sufsamment bonne pour reconnatre et arrter un grand nombre de dcouvertes et dattaques individuelles, mais ensuite ? Si lon combine lutilitaire de Mark avec des donnes en temps rel sur la structure du rseau et quon applique le ngerprinting passif pour dterminer le TTL initial dun systme qui envoie des requtes spciques, cette technique devient alors beaucoup plus puissante. Ces donnes supplmentaires nous permettent de raliser une premire valuation passive du trac entrant, en comparant le TTL observ et le TTL initial avec la distance attendue qui est indique par la carte du rseau*. Comme la distance que nous devrions voir peut tre dtermine sans initier aucune dcouverte active de la topologie du rseau, nous pouvons distinguer instantanment le trac lgitime du trac malveillant sans grand effort. Cela rend ensuite possible de ragir des incidents importants de faon assez able et de dtecter des prols de sondage individuel sans alerter lattaquant quun systme de dtection du spoong est en place. De toute vidence, il y a beaucoup gagner tenir compte de la structure dun rseau dans le cas des relations de pair pair. Mais la dtection des usurpations nen est qu ses dbuts.

La triangulation du rseau laide des donnes de la topologie maille


La triangulation du rseau est une utilisation beaucoup plus intressante des donnes de la topologie maille du rseau pour analyser le trac. On peut utiliser la triangulation du rseau pour dterminer lemplacement approximatif dun attaquant qui envoie des paquets usurps sans laide du backbone de routage sous-jacent ds quil choisit dattaquer plusieurs cibles simultanment ou successivement (ce qui nous reprsente une certaine consolation). Pour tre tout fait exact, bien que la triangulation fonctionne mieux lorsque lattaquant choisit plusieurs cibles, elle peut fonctionner assez bien dans certaines situations, mme sil choisit de nattaquer quun seul service. Il est en particulier possible dobserver la mme attaque partir de diffrents points de vue lorsque lobjet attaqu a plusieurs adresses IP et que le service est fourni depuis plusieurs emplacements physiques an de rpartir la charge et de rendre lensemble de la structure tolrant aux pannes (ce qui est courant pour les services Web). Dans tous les autres cas de gure, on peut obtenir un
* La comparaison des TTL doit alors tre effectue avec une certaine marge derreur, car il peut y avoir plusieurs sauts supplmentaires dans les rseaux internes. De plus, certains chemins sont asymtriques et leur longueur peut varier lgrement en fonction de la direction dans laquelle le trac est chang.

Chapitre 17

La topologie du rseau

295

ensemble de donnes sur une attaque lorsque les administrateurs systme remarquent que plus dun systme est pris pour cible par un attaquant et quils partagent leurs donnes au sujet de lincident. Quel que soit le cas de gure, une fois que les donnes censes provenir dune seule source sont observes sur plus dune destination, on peut trianguler. Pour chaque destination o le trac est observ, seuls certains rseaux se trouvent une distance qui corresponde la distance observe pour le paquet incrimin (ce qui encore une fois peut tre dcouvert en examinant le TTL*). En recoupant lensemble des rseaux possibles pour chaque point dobservation, on obtient un plus petit ensemble ou bien souvent un seul rseau do lattaque peut provenir, comme illustr la Figure 17.2. La possibilit de suivre la trace du paquet par nous-mmes nous rend indpendants sans condition des FAI et nous permet de localiser avec prcision qui est en train dattaquer ou de sonder notre rseau, voire peut-tre de dcouvrir pourquoi. Bien que cette approche soit beaucoup plus difcile djouer que le despoong traditionnel, un attaquant habile peut encore tre en mesure de tromper un observateur en utilisant alatoirement un TTL (ou un ensemble de TTL) diffrent pour chaque cible. Bien sr, il nexiste notre connaissance aucun utilitaire capable de le faire lheure actuelle, mais cela pourrait changer. La bataille est perdue ? Non, il existe un moyen dempcher les attaquants de nous tromper ainsi.

Lanalyse de la saturation du rseau


Cette solution, baptise "analyse de la saturation du rseau ", provient dune tude prsente par Hal Brunch et Bill Cheswick la confrence LISA de 2000 3. Brunch et Cheswick proposrent une utilisation intressante des donnes topologiques arborescentes dun rseau (semblables celles du graphique de la Figure 17.1) obtenue partir dun endroit prcis. Ils parvinrent utiliser ces donnes pour dtecter lorigine dun type particulier de trac usurp : le dni de service. Lapproche elle-mme est assez simple et se fonde sur lhypothse selon laquelle une telle attaque saturerait non seulement le systme contre lequel elle est mene mais aussi les routeurs intermdiaires. Cette saturation pourrait donc tre mesure de lextrieur par la victime et utilise pour (presque littralement) remonter le long du l en tirant dessus.
* Mme si lutilitaire de scan utilise des TTL alatoires, il est possible dvaluer la distance en utilisant le TTL maximal observ si un nombre de paquets peut tre observ chaque destination (ce qui est presque toujours le cas). Par exemple, si lutilitaire de scan utilise alatoirement un TTL initial situ dans une fourchette de 32 255 mais que, pour plusieurs milliers de paquets reus destination, aucun nait de TTL suprieur 247, lhte a de fortes chances de se trouver 255 - 247 = 8 systmes de distance.

296

Vision densemble

Systme d'observation 2 Systme d'observation 1 Distance l'attaquant = 4 Distance l'attaquant = 2

Attaquant Systme d'observation 3 Distance l'attaquant = 3

Figure 17.2
Une triangulation du rseau simple : une seule origine est conforme toutes les observations. Lattaquant peut usurper des adresses sources, mais il ne peut tromper les victimes.

Pour tester la saturation des liaisons du rseau, on commence par crer ou obtenir une arborescence de liaisons partir de lendroit o lon se trouve pour tous les rseaux Internet, puis on passe de branche en branche dans cette structure arborescente quand une attaque se produit. Pour chaque branche (qui, en ralit, dsigne une connexion un routeur suprieur dans la hirarchie), on peut mesurer par itration la charge rseau sur le nud en envoyant du trac de test vers ou travers le routeur qui lui est associ (dans ce document, une charge UDP [User Datagram Protocol] est utilise, mais les requtes ICMP ou tout autre type de message peuvent tre galement utiliss). On choisit un des nuds les plus saturs comme candidat potentiel pour le trac entrant, puis on tablit la liste et on teste toutes les branches qui partent de ce nud jusqu remonter lorigine du trac. La Figure 17.3 illustre un simple cas de retraage. Dans la premire phase, le systme attaqu tente de mesurer les performances des trois routeurs Internet les plus proches quand une attaque se produit et conclut que le premier routeur (en haut) est le plus satur. partir de ces informations, la victime choisit de tester uniquement les routeurs connects directement (peering) ce priphrique. Dans ce cas de gure, seulement trois priphriques sont tests (les six autres ne le sont pas car ils nont pas de liaison de pair

Chapitre 17

La topologie du rseau

297

pair avec ce priphrique) et, de nouveau, le premier est le plus satur. Ce processus continue jusqu ce quun routeur directement reli un rseau sur lequel lemplacement physique et le propritaire sont disponibles dans les bases de donnes publiques corresponde au systme dextrmit.

Rseau X
Routeurs charge leve

Attaquant (usurpe l'adresse source des paquets dans le rseau A)

tape X (dernire): Le routeur satur dcouvert l'tape X-1 est connect un seul rseau. Le coupable se trouve ici.

Victime (considre que le trafic provient du Rseau A)

tape 1: La victime dtermine quel routeur du second niveau a la charge la plus leve.

Ordinateur dont l'attaquant usurpe l'identit (machine victime) Rseau A

tape N: La victime dtermine lequel des routeurs du Nime niveau qui communique avec le routeur satur au niveau N-1

Figure 17.3
Une attaque retrace de faon rcursive en utilisant des donnes sur la topologie du rseau et des tests de saturation.

298

Vision densemble

Un problme potentiel se pose : certains priphriques peuvent tre saturs pour des raisons autres que la gestion du trac DoS tandis que dautres peuvent avoir beaucoup de cycles processeur libres et donc ne pas tre considrablement affects lorsquils relaient du trac malveillant. Pour rsoudre ce problme, ltude propose de mettre articiellement une charge court terme sur le routeur (en gnrant un trac supplmentaire), puis dobserver la manire dont ce test inue sur la bande passante et la latence des requtes DoS ; si ce priphrique relaie effectivement des paquets malveillants, le taux de lattaque doit baisser lorsque nous augmentons sa charge (encore une fois, en gnrant des requtes ctives TCP, UDP ou ICMP supplmentaires qui visent plus consommer la puissance du processeur dun priphrique qu congestionner ses interfaces). Par consquent, il devrait y avoir une corrlation uniquement sur les branches qui sont impliques dans la fourniture du trac malveillant. Cette mthode brillante et simple a t utilise avec succs dans des environnements tests. En revanche, comme elle implique dinteragir avec les routeurs et daugmenter leur charge, certaines considrations thiques entrent en jeu lorsque lon envisage de lutiliser dans le monde rel.

Matire rexion
La principale difcult quil y a utiliser les techniques prsentes dans ce chapitre pour traquer les assaillants est que nous devons construire et mettre jour les cartes du rseau pour chaque emplacement. Il nest pas trs vident de savoir quelle frquence ces cartes devraient tre mises jour ni quelles mthodes se rvleraient les plus ables et les moins intrusives. Une autre question tient au fait que la majeure partie de linfrastructure de base dInternet est redondante. Certains chemins de rechange peuvent ntre choisis quen cas de panne ou de saturation du chemin principal, mais cette commutation se produira dans certains cas pour quilibrer la charge. Ainsi, certaines cartes empiriques risquent de devenir obsoltes en lespace de quelques minutes ou de quelques heures, bien que de tels cas ne soient pas trs frquents. En n de compte, mme si lutilisation individuelle et prive de diffrentes tactiques de despoong se rvle trs fructueuse, de nombreuses questions subsistent avant de pouvoir dployer ces techniques grande chelle. Et certaines questions ne relvent pas uniquement du domaine technique.

18
En regardant le vide
Quand on baisse les yeux vers labme, ce qui ne nous tue pas nous rend plus forts.

Nous avons examin de nombreuses faons de dcouvrir des informations et dintercepter des donnes en observant les communications entre deux systmes ou en observant les effets secondaires de ces communications. Cependant, lhistoire ne sarrte pas l. Parfois, en dtournant les yeux de la cible que nous essayons de dcouvrir, nous pouvons voir encore plus de choses.
Tout un ensemble de mthodes, couramment baptis "surveillance des trous noirs", est ddi lobservation et lanalyse du trac indsirable ou non sollicit qui arrive accidentellement, tort ou dans une forme altre une destination spcique. Ces mthodes consistent le plus souvent simplement excuter un utilitaire de suppression des paquets, puis soigneusement analyser et mettre des thories sur toutes les occurrences. Bien que dans lidal nous nayons rien gagner rechercher des donnes l o nous ne sommes pas censs les trouver, nous pouvons en fait utiliser ces mthodes pour recueillir de nombreuses informations et des indices prcieux sur ltat dun rseau dans son ensemble. Mme si ces informations sont le plus souvent alatoires et que nous ne pouvons pas dcider qui nous coutons, nous pouvons tout de mme en tirer prot.

300

Vision densemble

Les tactiques dobservation directe


La surveillance des trous noirs permet de dtecter et danalyser les tendances mondiales dattaques. Beaucoup de pirates en possession de nouvelles techniques dattaques scannent souvent de gros blocs dadresses rseau pour trouver des cibles vulnrables qui peuvent tre compromises et nalement utilises pour des activits illicites (sans doute pour crer des machines zombies ou crer des botnet an de raliser des attaque automatises). Nous pouvons utiliser la surveillance des trous noirs pour nous alerter que de nouvelles vulnrabilits sont exploites, en observant simplement laugmentation des scanners de vulnrabilit effectus partir de diverses sources. De nombreux administrateurs rseau dploient une surveillance des trous noirs. Ils la combinent parfois avec la technique du pot de miel (dans laquelle un systme sur le rseau sert "dappt" pour attirer des attaquants, intercepter leurs utilitaires et identier leurs techniques 1) an dobtenir un systme dalerte qui leur permette dtre les premiers connatre les nouveaux types de vers et dautres programmes malveillants (vous pouvez galement utiliser le trac du trou noir pour calibrer les "niveaux de bruit" et dtecter les attaques cibles contre vos serveurs plus efcacement sans tenir compte des activits malveillantes automatises et ralises laveugle). Des chercheurs comme Dug Song et Jose Nazario (Jose, dans son livre Defense and Detection Strategies against Internet Worms 2) ont tent danalyser lactivit du trou noir au cours des pidmies massives de vers sur un rseau. Leur objectif est de mieux comprendre et de modliser la dynamique de rpartition du rseau (propagation initiale et rinfection) et de tester lefcacit et la persistance des algorithmes dinfection des vers. Leurs recherches nous aideront concevoir les futures dfenses contre les menaces distribues grande chelle, tout en apportant un clairage prcieux sur ltat du rseau actuel. Quelques exemples de leurs conclusions sont prsents aux Figures 18.1 18.4. La Figure 18.1 montre comment un ver se propage lors dune pidmie. Les donnes sont fondes sur le nombre de tentatives dattaque observes sur le port TCP 137, une partie de limplmentation NetBIOS de Windows installe par dfaut sur tous les ordinateurs sous Windows et qui est la cible de nombreux types de logiciels malveillants se propageant par eux-mmes. Comme vous pouvez le remarquer cette gure, aprs une semaine de propagation initiale durant laquelle le nombre de sites infects (sources) et de systmes attaqus sur le rseau trou noir observ a constamment et rapidement augment, une soudaine priode de stabilisation suit qui stend sur plus dun mois et compte des crtes et des creux importants. Une telle empreinte de propagation est typique dun ver et des conditions du rseau dans lesquelles il opre ; elle rete galement des dtails sur la slection de la cible et sur les algorithmes dinfection utiliss.

Chapitre 18

En regardant le vide

301

La Figure 18.2 montre un autre aspect de lalgorithme de propagation du ver et dpeint les proprits de lalgorithme de slection des cibles. Dans ce cas, un ver populaire qui cible des serveurs Microsoft SQL semble avoir une couverture assez continue de lespace dadressage (bien que les adresses ayant des octets entre 200 et 225 environ soient nettement plus souvent choisies, et le ver semble sauter les valeurs suprieures 225). La Figure 18.3 montre le mme graphique pour un autre ver de rseau, Slapper. Ce ver cible les systmes Linux en exploitant une faille dans une librairie de cryptage OpenSSL populaire. Lalgorithme semble offrir une couverture beaucoup plus uniforme mais beaucoup moins continue et compte des trous bants pour certaines valeurs. La Figure 18.4 montre la persistance des motifs du ver dans le temps. Par exemple, certains vers semblent mourir lorsque les systmes sont corrigs et dsinfects, tandis que dautres utilisent des algorithmes qui entranent des augmentations et des diminutions soudaines et rcurrentes (ce motif est familier pour quiconque a tudi des modles pidmiologiques ou de population fonds sur des phnomnes naturels).

Sources Cibles

Frquence de l'occurrence

Premier octet de l'adresse IP

Figure 18.1
Les caractristiques de propagation du ver sous Windows.

302

Vision densemble

Frquence de l'occurrence

Premier octet de l'adresse IP

Figure 18.2
Lhistogramme de lalgorithme de slection de cible du ver SQLSnake ; notez la couverture non uniforme mais gnralement continue de lespace dadressage.

Frquence de l'occurrence

Premier octet de l'adresse IP

Figure 18.3
Lhistogramme de lalgorithme de slection de cible du ver Slapper montre une rpartition beaucoup plus homogne, mais non continue. Les trous indiquent que les bits les moins importants de chacune des adresses "alatoires" sont constants, peut-tre en raison dune erreur de programmation.

Chapitre 18

En regardant le vide

303

700
CodeRed CodeRedII (et variantes) Nimda (et variantes)

600

Propagation de linfection

500

400

300

200

100

18/09

28/09

08/10 Date

18/10

28/10

07/11

Figure 18.4
La persistance du ver dans le temps. Notez que la complexit du schma de propagation du ver CodeRed, qui se comporte comme un modle de population biologique.

Comme Jose et ses collgues sefforcent de le dmontrer, la surveillance des trous noirs peut ne pas tre seulement une activit de routine compltement inutile mais tre galement un excellent moyen de dcouvrir la vie secrte de toutes les choses malveillantes. Hlas, les choses ne sarrtent pas l ! En nobservant que le trac que nous estimons nous viser, nous manquons les bits de donnes les plus intressants.

Lanalyse des retombes du trac de lattaque


Lautre application de la surveillance des trous noirs sappuie sur lobservation du trac qui ne nous a jamais t destin mais qui est simplement un effet secondaire dune autre activit. Ici, nous pouvons voir comment un certain nombre de systmes de reconnaissance et dattaque utilisent lusurpation dadresse pour dissimuler lidentit dun attaquant. On peut estimer quun administrateur aura quelque difcult diffrencier le trac leurre des adresses usurpes rellement utilises par lattaquant. Mme si, comme je lai indiqu

304

Vision densemble

dans les chapitres prcdents, cette approche ne garantit pas lanonymat complet de lattaquant, un administrateur doit pour russir le "despoong" du trac implmenter une vaste journalisation et des mesures additionnelles au moment de lattaque. Comme ces procdures ne sont pas toujours implmentes, les attaquants peuvent souvent raliser efcacement leurs attaques par usurpation et rester dans lombre. Que des paquets soient usurps ou non, le systme attaqu rpondra en toute bonne foi toutes les requtes, y compris celles en provenance dadresses cres de toutes pices. Cependant, seules les rponses aux paquets dont ladresse source est correcte parviendront en retour lexpditeur ; toutes les autres sondes gnrent dautres rponses qui sparpillent dans tout le rseau Internet. Et on peut souvent les capturer. Bien quil semble peu probable de recevoir un paquet aussi mal achemin, noubliez pas quun nombre considrable de paquets SYN+ACK, RST+ACK et RST sont gnrs en rponse des scans leurres ou des attaques SYN en grande quantit. Lespace dadressage Internet est trs vaste et des millions de paquets sont gnralement impliqus dans ces attaques, mais il est fort probable quavec le temps certains atteignent chaque bloc rseau. Bien quil ny ait quune chance sur 4 294 967 296 (1 jusqu 232) quun seul paquet usurp gnr alatoirement rebondisse vers une adresse spcique, cette probabilit passe de 1 sur 16 777 216 (1 jusqu 224) si lon considre quun petit sous-rseau affect une petite entreprise ou une organisation est habituellement compos de 256 adresses (rseau de classe C ou quivalent). Cette probabilit peut encore tre amliore en excluant les plages dadresses qui sont connues pour tre rserves des ns spciales ou celles qui ne mritent pas quon en tienne compte et sont donc exclues dans certains types dattaques. Comme le poids dun seul paquet SYN est denviron 40 octets (et se compresse bien en vrac) et quune liaison rseau typique la disposition dun attaquant occasionnel a un dbit denviron 10 150 kilo-octets par couche IP par seconde (DSL bas de gamme et liaison T1, respectivement), il peut envoyer 250 prs de 3 000 paquets dans ce dlai ou de 900 000 environ 10 millions de paquets par heure*. Pour quune attaque DoS typique produise des rsultats visibles et entrane des inconvnients majeurs pour la victime, elle doit en gnral tre mene pendant plusieurs heures ou plusieurs jours (lattaquant veut gner sa victime aussi longtemps que possible). De ce fait, des dizaines, voire des centaines, de millions de paquets sont envoys, ce qui gnre un nombre semblable de rponses SYN+ACK ou RST+ACK. En raison de cette norme quantit de trac, on peut sattendre ce que mme une entit relativement petite constate les retombes dune petite attaque SYN ood en cours
* Notez que les attaquants chevronns dtermins et comptents dans les attaques par dnis de service disposent souvent de dizaines ou de centaines de nuds "zombies" leurs ordres, ce qui augmente de faon spectaculaire cette estimation.

Chapitre 18

En regardant le vide

305

dexcution, mme si le destinataire hte abandonne de nombreux paquets de lattaque. En outre, les administrateurs en mesure de surveiller des rseaux de classe B (65 356 adresses, le plus souvent la proprit de grandes entreprises, des fournisseurs daccs Internet, des instituts de recherche, etc.) seront capables de dtecter rapidement des vnements beaucoup moins importants. Puisque toutes les rponses retombes dans une attaque DoS contiennent certains dtails des messages fabriqus par lattaquant pour dclencher ces rponses (comme les numros de port et les numros de squence, les informations dans le temps, et ainsi de suite), on peut utiliser ces rponses pour extraire des informations importantes sur le type de lattaque et sur son ampleur. Nous pouvons utiliser ces rponses pour dterminer si un service spcique a t pris pour cible, le nombre de systmes cibls, la bande passante dont dispose lattaquant, et lutilitaire utilis pour effectuer lattaque (en examinant la slection du port source, le choix des numros de squence et les motifs IP "alatoires"*). Enn, en analysant les sources de ces rponses en ricochet, on pourrait remarquer que tel ou tel segment de rseau est attaqu ou est en mesure didentier les "tendances hostiles" globales et ainsi peut-tre mieux se prparer si une industrie ou une entreprise en particulier est la cible. Nous pouvons galement utiliser ces informations pour en apprendre davantage sur les attaques qui sont masques par la victime ou pour identier les fausses allgations dattaques (parfois, les chargs de communication afrment avoir t lobjet dattaques par des cyberterroristes pour justier des pertes nancires ou pour des raisons politiques. Ces dernires annes, certains experts ont accus le groupe SCO davoir mis ses serveurs hors ligne en prtendant tre victime dune attaque DoS coordonne pour discrditer la communaut des utilisateurs de Linux).

Dtecter les donnes malformes ou mal diriges


Cette application de la surveillance des trous noirs repose sur le contrle du trac qui ne semble pas avoir de sens mais qui parvient toujours une destination prcise. Pour mieux illustrer ce problme, permettez-moi la digression suivante. En 1999, avec laide dun groupe damis et de collgues en Pologne, jai commenc un modeste projet aprs mes heures de travail. Nous cherchions suivre la trace dune srie de paquets RST+ACK difciles expliquer dont nous avions constat la prsence dans les rseaux sous notre surveillance et surveiller les tendances du trac inhabituel et non sollicit arrivant sur des segments inutiliss du rseau en gnral. Ce fut trs amusant et, comme vous pouvez limaginer, nous avons chafaud de nombreuses hypothses pour
* Par exemple, certains utilitaires "usurpent" uniquement les paquets qui proviennent dadresses IP paires ou impaires en raison de dfaillances dans leur code. Des analyses semblables celles menes par Jose Nazario se rvlent tout aussi capables didentier les utilitaires dattaque que les vers.

306

Vision densemble

tenter dexpliquer certains des cas les plus insolites. Notre recherche nous a aussi permis den apprendre plus sur le monde qui nous entoure car nous avons rencontr du trac extrmement bizarre et apparemment inexplicable qui, une fois correctement analys, nous donna un meilleur aperu des grandes conspirations de notre monde lectronique. Bien quofciellement abandonn, ce projet sest retrouv dans mon "muse priv des paquets casss" 3 sur ma page Web semi-humoristique consacre la traque, la documentation et lexplication des paquets qui ne devraient jamais avoir atteint leur destination ou qui ne devraient jamais avoir laspect quils ont. Lobjectif dclar de ce muse est le suivant : Il sagit de fournir un abri pour les paquets tranges, indsirables, malforms, abandonns et vous tre des phnomnes de foire, alors que nous, simples mortels, les rencontrons sur les chemins tortueux de la vie. Les pices de notre collection ou ses habitants, si vous prfrez, ne sont souvent que lombre de ce quils taient avant quils ne rencontrent un routeur hostile et dfaillant. Certains dentre eux sont malforms depuis leur naissance dans les profondeurs dune mauvaise implmentation de pile IP. Dautres paquets taient normaux, tout comme leurs amis (vous ou moi), mais se perdirent en recherchant le sens ultime de leur existence et arrivrent o ils nauraient jamais d. Quoi quil en soit, nous essayons de dcouvrir lhistoire singulire de la vie de chaque paquet et de vous aider comprendre quel point il est difcile dtre un messager solitaire dans lunivers hostile des bits et des octets. Et cest ce dernier type que la surveillance des trous noirs se rsume. Mme si cette tche peut paratre inutile au premier abord, il est illusoire de penser quelle lest. Ce muse a permis la dcouverte passive de sombres secrets sur les diffrents priphriques propritaires et de rseaux bien protgs, et excuter une exprience similaire ailleurs ne manquerait pas de fournir des rsultats identiques ou suprieurs. Mon muse contient certaines merveilles comme les suivantes :
m

Des paquets provenant de rseaux avec un type prcis dacclrateur Web, de routeur ou de pare-feu ; le priphrique ajoute, dcoupe ou tronque certaines des donnes. Une faille dans plusieurs priphriques de Nortel CVX qui est responsable de laltration occasionnelle des en-ttes de paquets TCP (comme nous lavons vu au Chapitre 11) constitue un bon exemple. Le caractre unique de cette faille nous permet dapprendre beaucoup sur un certain nombre de rseaux distants sans avoir rellement les sonder. Plusieurs bruits de liaisons entranent la cration de paquets ne contenant que des donnes inutiles ou qui nappartiennent sans doute pas une connexion spcique. Lune des pices les plus surprenantes est un trac non sollicit contenant des donnes qui semblent provenir dun vidage du contenu de la zone DNS .de (une liste de tous les domaines de lAllemagne). Ce trac ne peut pas tre n nimporte o, puisque de simples mortels nont pas le droit dobtenir une telle liste. Ces donnes

Chapitre 18

En regardant le vide

307

doivent plutt provenir dune partie autorise en mesure de les obtenir et de les transfrer et doivent avoir t tronques soit par lexpditeur soit par un priphrique en cours de route. Bien que tous ces cas napportent que peu dclaircissement sur la nature des accidents de parcours sur le rseau, des cas comme celui-ci constituent des dcouvertes inattendues mais prcieuses qui enrichissent lobservateur. On pourrait galement citer les cas despionnage apparents camous en trac rgulier et les nombreux autres hoquets de codage ou des rseaux. Mais assez fanfaronn, si vous avez envie den savoir plus, visitez ladresse suivante : http://lcamtuf.coredump.cx/mobp/.

Matire rexion
Beaucoup considrent la surveillance des trous noirs comme un autre moyen de dtecter les attaques contre leurs systmes (et peut-tre un moyen coteux, tant donn la raret des ressources publiques sur lespace IP). Mais la valeur relle de cette technique est quelle permet non seulement didentier les attaques connues (quelque chose qui peut tre fait tout aussi bien dans de nombreux autres endroits, sans gaspiller lespace IP) mais aussi de dtecter et danalyser les motifs subtils qui seraient autrement noys sous le "niveau de bruit" dans un rseau largement utilis. Naturellement, effectuer ce type de contrle type des trous noirs nest pas facile et reste coteux. Il faut du temps pour savoir comment trouver cette aiguille dans la botte de foin de lactivit du ver ou du pirate. Et elle na gnralement aucune signication dans un assez vaste rseau, part pour tablir des statistiques. Pourtant, la joie de trouver enn laiguille mrite souvent quon essaie.

pilogue
Dans lequel le livre approche de sa conclusion. Ce livre se termine, mais jespre que votre voyage commence. Jai pris un grand plaisir vous guider travers le monde des problmes de scurit complexes et inhabituels que japprcie le plus, et jespre que cest galement votre cas. Que vous soyez un professionnel de la scurit chevronn peut-tre plus expriment et comptent que moi ou que vous dcouvriez avec enthousiasme ce domaine, jespre vous avoir ouvert de nouvelles perspectives et que vous considrez maintenant la scurit comme un d et un art et non pas comme un ensemble dobstacles qui doivent tre limins ou contourns. En comprenant les relations subtiles entre des composants et processus sans lien apparent, on peut rellement lutter contre les problmes de scurit les plus dangereux et difficiles mais aussi valuer et attnuer efcacement les risques quotidiens. Les problmes de scurit doivent tre considrs comme une fonction dune solution presque tous les ds dans le monde de linformatique, quelle que soit sa simplicit ou sa porte limite, et non pas comme des circonstances empchant de faire des affaires. Ce nest quen voyant la magie et le charme des univers complmentaires et la faon subtile avec laquelle ils interagissent que nous pouvons viter la routine et commencer vraiment proter de notre travail ou comprendre notre passe-temps. Mais ce nest ni le moment ni le lieu de jouer sur la corde sensible. Merci de mavoir accompagn.

Notes bibliographiques

Chapitre 1 1. Alan Turing, "On Computable Numbers, with an Application to the Entscheidungsproblem", Proceedings of the London Mathematical Society, Series 2, 42 (1936). 2. R. L. Rivest, A. Shamir et L. Adleman, "A Method for Obtaining Digital Signatures and Public-Key Cryptosystems", Massachusetts Institute of Technology (1978). 3. Ueli M. Maurer, "Fast Generation of Prime Numbers and Secure Public-Key Cryptographic Parameters", Institute for Theoretical Computer Science, ETH Zurich, Suisse (1994). 4. Donald E. Knuth, The Art of Computer Programming, Volume 2 : Seminumerical Algorithms, 3e ed. Addison-Wesley (1997). 5. H. Krawczyk, How to Predict Congruential Generators, Journal of Algorithms 13, n 4 (1992). 6. S. Bakhtiari, R. Safavi-Naini et J. Pieprzyk, "Cryptographic Hash Functions : A Survey", Centre for Computer Security Research, Department of Computer Science, University of Wollongong, Australie (1995). 7. Dawn Xiaodong Song, David Wagner et Xuqing Tian, "Timing Analysis of Keystrokes and Timing Attacks on SSH", University of California, Berkeley (2001).

312

Menaces sur le rseau

8. Claude E. Shannon, Prediction and Entropy of Printed English", Bell Systems Technical Journal 3 (1950). 9. Benjamin Jun, Paul Kocher, "The Intel Random Number Generator", Cryptography Research Inc. (1999). 10. "Evaluation of VIA C3 Nehemiah Random Number Generator", Cryptography Research Inc. (2003). 11. Michael A. Hogye, Christopher T. Hughes, Joshua M. Sarfaty et Joseph D.Wolf, "Analysis of Feasibility of Keystroke Timing Attacks Over SSHConnections", CS588 Research Project, School of Engineering and Applied Science, University of Virginia (2001). Chapitre 2 1. Yurii Rogozhin, A Universal Turing Machine with 22 States and 2 Symbols, Romanian Journal of Information Science and Technology, 1, n 3 (1998). 2. Aleksandar Milenkovic et Jeffrey Kulick, Demystifying Intel Branch Predictors, Electrical and Computer Engineering Department, University of Alabama, Huntsville (2002). 3. Paul C. Kocher, Timing Attacks on Implementations of Dife-Hellman, RSA, DSS, and Other Systems, Cryptography Research Inc. (1999). 4. Intel 80386 Programmers Reference Manual, section 7.2.IMUL, Intel Corp. (1986). 5. E. Biham et A. Shamir, Differential Fault Analysis: Identifying the Structure of Unknown Ciphers Sealed in Tamper-Proof Devices (1996). Chapitre 3 1. Wim van Eck, Electromagnetic Radiation from Video Display Units: An Eavesdropping Risk?, PTT Laboratories, Pays-Bas (1985). 2. Ian A. Murphy, Whos Listening?, IAM/Secure Data Systems (1988, 1997). 3. Winn Schwartau, Information Warfare, 2e ed., Thunders Mouth Press, New York (1996). Chapitre 5 1. John A.C. Bingham, The Theory and Practice of Modem Design, Wiley-Interscience (1988). 2. Electronic Industries Association, Engineering Department, Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange (1991).

Notes bibliographiques

313

3. Charles E. Spurgeon, Ethernet: The Denitive Guide, OReilly and Associates (2000). 4. Joe Lughry et David A. Umphress, Information Leakage from Optical Emanations, ACM Trans. Info. Sys. Security 5, n 3 (2002). 5. Adi Shamir et Eran Tromer, Acoustic Cryptanalysis: On Nosy People and Noisy Machines. Une prsentation en anglais de cet ouvrage est disponible l'adresse suivante : http://www.wisdom.weizmann.ac.il/~tromer/acoustic/ (2004). 6. Paul Kocher, Joshua Jaffe et Benjamin Jun, Differential Power Analysis, Cryptography Research, Inc. (2000). Chapitre 6 1. J. Postel et J. Reynolds, "RFC-1042: A Standard for the Transit of Internet Protocol Datagrams Over IEEE 802 Networks", Network Working Group (1988). http:// www.ietf.org/rfc/rfc1042.txt. 2. Or Arkin et Josh Anderson, "EtherLeak Ethernet Frame Padding Information Leaks", @Stake (2003). http://www.atstake.com/research/advisories/2003/atstake_etherleak_ report.pdf. Chapitre 7 1. David C. Plummer, RFC 826, "An Ethernet Address Resolution Protocol", Network Working Group (1982). 2. Louis Senecal, "Layer 2 Attacks and Their Mitigation", Cisco (2002). Chapitre 8 1. J. Case, M. Fedor, M. Schoffstall et J. Davin, RFC 1157, "A Simple Network Management Protocol", Network Working Group (1990). 2. Institut fr Bankinnovation GmbH, "PSYLock: a typing behaviour based psychometrical authentication method" (2003). http://pc50461.uni-regensburg.de/ibi/de/ leistungen/research/projekte/einzelprojekte/ psylock_english.htm. 3. Solar Designer et Dug Song, "Passive Analysis of SSH (Secure Shell) Trafc", Openwall Project (2001). http://www.openwall.com/advisories/OW-003-ssh-trafcanalysis. 4. Nikita Borisov, Ian Goldberg et David Wagner, "Intercepting Mobile Communications: The Insecurity of 802.11" (2001).

314

Menaces sur le rseau

Chapitre 9 1. J. Postel, universit de Californie du Sud, "RFC 791: Internet Protocol", Network Working Group (1981). 2. J. Postel, universit de Californie du Sud, "RFC 796: Address Mappings", Network Working Group (1981). 3. J. Mogul et S. Dearing, "RFC 1191: Path MTU Discovery", Network Working Group (1990). 4. J. Postel, universit de Californie du Sud, "RFC 768: User Datagram Protocol", Network Working Group (1980). 5. J. Postel, universit de Californie du Sud, "RFC 793: Transmission Control Protocol", Network Working Group (1981). 6. S. Bellovin, "RFC1948: Defending Against Sequence Number Attacks", Network Working Group (1996). 7. V. Jacobson et B. Braden, "RFC1232: TCP Extensions for High Performance", Network Working Group (1992). 8. M. Mathis, J. Mahdavi, S. Floyd et A. Romanow, "RFC2018: TCP Selective Acknowledgment Options", Network Working Group (1996). 9. B. Braden, "RFC1644: T/TCP TCP Extensions for Transactions Functional Specication", Network Working Group (1994). 10. J. Postel, universit de Californie du Sud, "RFC 792: Internet Control Message Protocol", Network Working Group (1981). 11. Lance Spitzner, Honeypots: Tracking Hackers, ditions Addison-Wesley (2002). 12. R. Morris, "A Weakness in the 4.2BSD UNIX TCP/IP Software", Laboratoires AT&T Bell (1985). Chapitre 10 1. Michal Zalewski, "Strange Attractors and TCP/IP Sequence Number Analysis", BindView Corporation (2001). http://www.bindview.com/Support/RAZOR/Papers/ 2001/ 2. S. Bellovin, "Defending Against Sequence Number Attacks", Network-Working Group (1996). http://www.ietf.org/rfc/rfc1948.txt. 3. Joe Stewart, "DNS Cache Poisoning: the Next Generation" (2002). http:// www.lurhq.com/dnscache.pdf.

Notes bibliographiques

315

Chapitre 11 1. Elizabeth D. Zwicky, Simon Cooper et D. Brent Chapman, Building Internet Firewalls, OReilly & Associates (2000). 2. G. Ziemba, D. Reed et P. Traina, "RFC1858: Security Considerations for IP Fragment Filtering", Network Working Group (1995). 3. Uriel Maimon, "TCP Port Stealth Scanning", Phrack Magazine n 49 (1996). 4. J. Postel et J. Reynolds, "RFC959 : File Transfer Protocol", Network Working Group (1985). 5. Mikael Olson, "Extending the FTP ALG Vulnerability to any FTP client", liste de diffusion VULN-DEV (2000). http://www.securityfocus.com/archive/82/50226. 6. Michal Zalewski, "Linux Kernel IP Masquerading Vulnerability", Bindview Corporation (2001). http://razor.bindview.com/publish/advisories/adv_LkIPmasq.html. 7. R. Braden (edition), "RFC1122: Requirements for Internet HostsCommunication Layers", Network Working Group (1989). Chapitre 13 1. Salvatore Sanlippo, "New TCP Scan Method". Bugtraq (1998). http://seclists.org/ bugtraq/1998/Dec/0082.html. Chapitre 14 1. World Wide Web Consortium. http://www.w3c.org/History.html. 2. Vannevar Bush, "As We May Think", Atlantic Monthly 176, n 1, p 101-108 (1945). 3. Tim Berners-Lee, "Basic HTTP". http://www.w3c.org/Protocols/ HTTP/HTTP2.html. 4. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach et T. Berners-Lee, "RFC2616: HyperText Transfer ProtocolHTTP/1.1", Network Working Group (1999). 5. Rfrences provenant de diffrentes sources, cites sur la page http://usability.gov/ guidelines/softhard.html : Anna Bouch, Allan Kuchinsky et Nina Bhatti, "Quality Is in the Eye of the Beholder: Meeting Users Requirements for Internet Quality of Service", CHI (2000) ; Martin Corl, "System Response Time Effects on User Productivity", Behaviour and Information Technology, vol. 5 n 1, pages 3-13 (1986) ; Jakob Nielsen, "Top Ten Mistakes in Web Design" (1996), http://www.useit.com/ alertbox/9605.html ; Nielsen, "The Need for Speed" (1997), http://www.useit.com/ alertbox/ 9703a.html ; Nielsen, "Changes in Web Usability Since 1994" (1997),

316

Menaces sur le rseau

6. 7. 8. 9.

http://www.useit.com/alertbox/9712a.html ; Nielsen, "The Top Ten New Mistakes of Web Design" (1999), http:// www.useit.com/alertbox/990530.html. Kristol et Montulli, "RFC2109: HTTP State Management Mechanism", Network Working Group (1997). Martin Pool, "Privacy Problems with HTTP Cache-Control", Bugtraq (2000). http:// cert.uni-stuttgart.de/archive/bugtraq/2000/03/msg00365.html. Bamshad Mobasher, Robert Cooley et Jaideep Srivastava, "Automatic Personalization Based on Web Usage Mining", ACM Communications, vol. 43 n 8, p. 142-151 (1999). Edward Felten et Michael Schneider, "Timing Attacks on Web Privacy", ACM Conference on Computing and Communications Security (2000).

Chapitre 15 1. ISO/IEC Standard 9899, "Programming Language C (1999). http://plg.uwaterloo.ca/~cforall/N843.ps. 2. DISCO. http://www.altmode.com/disco. Chapitre 16 1. Albert Laszlo Barabasz, Vincent W. Freeh, Hawoong Jeong et Jay B. Brochman, "Parasitic Computing", Lettre au journal Nature, n 412 (2001). 2. Leech, "RFC 3607: Chinese Lottery Cryptoanalysis Revisited", Network Working Group (2003). Chapitre 17 1. Bill Cheswick, Hal Burch et Steve Branigan, "Mapping and Visualizing the Internet" (2000). http://www.cheswick.com/ches/papers/mapping.ps.gz. 2. Despoof : http://razor.bindview.com/tools/desc/despoof_readme.html. 3. Hal Brunch et Bill Cheswick, "Tracing Anonymous Packets to Their Approximate Source", (2000). http://www.usenix.org/publications/library/ proceedings/lisa2000/ burch/burch_html. Chapitre 18 1. Lance Spitzner, Honeypots: Tracking Hackers, Addison-Wesley (2002). 2. Jose Nazario, Defense and Detection Strategies against Internet Worms, Artech House (2003). 3. Michal Zalewski, "Museum of Broken Packets", (2001). http:// lcamtuf.coredump.cx/mobp.

Index
A Accumulateurs 56 ACK paquets et ags attaque DoS 304 despoong 304 en TCP 155 et pare-feu sans tats 212, 219 idle scan 232 valeurs dans les mmoires tampon 229 Address Resolution Protocol (ARP) 119 Adleman, Len 9 Adresse matrielle (MAC) 67, 110 Algorithmes GCL 12 GNFS 10 PRNG 11 RSA 10 Viterbi 22 Analyse comportementale 240 des attaques 266 des navigateurs Web 259 Analyse de leffort de calcul 61 AND 30 Anderson, Josh 113 Applets Java 276 Arkin, Or 113, 164 ARP (Address Resolution Protocol) 119 Attaques DoS et PMTUD 222 identier lorigine 294 paquets et ags ACK 304 retombes 305 mesures de lattaquant 266 par recoupement de fragmentation 209 Attracteurs des numros de squence 202 B Barabasz, Albert Laszlo 272 Berners-Lee, Tim 241 BGP (Boundary Gateway Protocol) 140 Biham, E. 62 Blind spoong 178 Blinding 61 Blinkenlights 96 dnition 95 espionnage des DEL via LPT 99 espionner 103 implications 96 protection 106 Boole, George 30 Boolens 34 De Morgan 32 et ip-op 42 Boundary Gateway Protocol (BGP) 140 Brochman, Jay B 272 Brouillage du signal 92 Brunch, Hal 295 Bush, Vannevar 241 C CAIDA, carte dInternet 290 Calcul parasitaire 275 volatil 287 CAM (Content Addressable Memory) 119 dbordement 123 Camouer lidentit dun logiciel 240 Capteurs CCD (Charge Coupled Device) 26 Carrier Sense Multiple Access with Collision Detection (CSMA/CD) 91 Cartographie dInternet 292 CERN 241 Checksum 91 Cheswick, Bill 290, 295 Church et Turing (thse) 43 Codage bipolaire 91 Manchester (ou biphase) 81 NRZ 82 Collisions dans les transmissions de donnes 92 numros de squence 187

318

Menaces sur le rseau

Conception ip-op 42 Conception multicycles 47 Conseil europen pour la recherche nuclaire (CERN) 241 Contrleur programmable dinterruption (PIC) 12 Cooke, Jean-Luc 276 Cookies HTTP 250 SYN 211 Coordonnes temporises 190 Courtay, Olivier 171 Crible gnral de corps de nombres (GNFS) 10 CRONOS 171 Cryptographie cl publique 10 et problmes NP 273 RSA 10 CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 91 D De Morgan, Augustus 30 Dfauts de cache 51 dfauts de cache 51 DEL 96 espionner 103 implications 96 protection 106 Despoof 294 Dtournement de connexion 178 DF (dont fragment) 148 controverse 222 et ngerprinting passif 165 Dibits 86 Dife, Whiteld 9

Diodes lectroluminescentes 95 DISCO 267 Discriminateur binaire 103 DNS, problmes 204 DoS 220 DPSK (modulation par sauts de phase) 84 DRAM (mmoire vive dynamique accs direct) 50 DSL (Digital Subscriber Line) 82 DTP (Dynamic Trunking Protocol) 120, 124 E early-out 56 En-ttes HTTP 243 ICMP 162 IP 151 numro didentication 149 offset 148 TCP 162 MSS (Maximum Segment Size) 160 UDP 153 EOL 161 Espaces dadressage et PMTUD 222 Ethernet 110 Internet 142 tapes dexcution dans le temps 56 des instructions 49 Ethernet 111 composants 95 mmoire tampon 114 remplissage des trames 112, 114

rseaux commuts 117 somme de contrle 92 Euler, thorme 10 F Factorisation GNFS 10 Failles du wi- 134 Felten, Edward 257 Fielding, Roy T 242 Fingerprinting passif applications 176 optimisation du contenu 175 avantages et implications 186 empcher 177, 204 en pratique 174 ag DF 165 MSS 169 p0f 175 techniques 171 Flags dans les en-ttes IP 148 dans les en-ttes TCP 158 DF (dont fragment) 148 controverse 222 et ngerprinting passif 165 MF (more fragments) 148 URG 159 Flip-op 42 Fonctions de hachage 17 Fragmentation attaque par recoupement 209 dans les ltres sans tats 209 paquets IP 148, 182 Freeh, Vincent W 272 Frystyk, Henrik 242 FSK (Frequency Shift Keying) 83

Index

319

FTP (File Transfer Protocol) 215 Fyodor 164 G Gnrateur de congruence linaire (GCL) 12 Gnration de nombres alatoires automatique 11 et scan des ports 266 matrielle 26 GNFS 10 Goulets dtranglement HTTP 245 GUID (Globally Unique Identier) 67 H Hachage 17 Heen, Olivier 171 Hellman, Martin 9 Hijacking 178 Horloges et scan des ports 265 et transmision des donnes 80 HTML (Hypertext Markup Language) 241 HTTP (Hypertext Transfer Protocol) 241, 244 cache 248 condentialit 259 cookies 250 en-ttes 243, 244 goulets dtranglement 245 latence 246 poigne de main 245 recherche squentielle 245

I ICMP 163 chec du PMTUD 220 en-ttes 162 stockage parasitaire 278 Idle scan 235 IMUL 56 Interface LPT, espionnage des DEL 99 Internet cartographie 292 Control Message (ICMP) 163 Explorer 242 Protocol (IP) 151 Interruptions lmatrielles IRQ 12 IP 151 fragmentation 148, 182 IP ID 149 utilisation pour le proling 236 IP spoong 146 dtournement de la connexion 178 IPv4 141 IRQ (Interrupt Request) 12 ISNProber (utilitaire) 203 J Jeong, Hawoong 272 Jun, Benjamin 25 K Kaminsky, Dan 205 Khan, Saqib A 278 Kocher, Paul 25 Krawczyk, H 263

L Logique boolenne 30 calculs 40 quations SAT 275 et conception informatique 37 et ip-op 42 mise en application 34 Loi de De Morgan 32 Loveless, Mark 292 Lughry, Joe 96 M MAC (Media Access Control) 110 et protocole Ethernet 118 spoong 123 Machine de Turing 45 Markov, modle cach 21 Masquerading 216 McLachlan, Donald 292 MDF (modulation par dplacement de frquence) 83 Mcanisme /dev/random 19 Memex 241 Mmoire acoustique 277 cache 51 tampon fuites 69 pour les trames Ethernet 114 stockage parasitaire 283 valeurs ACK et URG 229 Mtadonnes stockes dans les documents 68 MF (more fragments) 148 Microsoft Word, stockage des mtadonnes 67

320

Menaces sur le rseau

Modle de Markov cach 21 OSI 112 Modems 82, 90 Modulation de limpulsion 103 par dplacement de frquence (MDF) 83 par sauts de phase (DPSK) 84 Modulo 12, 55 Morris, Robert T 178 Mosaic 242 Mozilla 242 MSS (Maximum Segment Size) dans les en-ttes TCP 160 et ngerprinting passif 169 et pare-feu 218 MSS clamping 217 MTU (maximum transmission unit) 145 et pare-feu 217 ngerprinting passif 169 N NAND 32 NAT 215 Navigateurs Web analyse comportementale 259 historique 242 Nehemiah 25 Netscape Navigator 242 NMAP 164, 235 Nombres alatoires gnration automatique 11 matrielle 26

Nombres premiers en cryptographie 10 NOP 161 NOR 32 NOT 30 NP 275 NRZ 82 NUL (scan) 211 Numro didentication (ID) en-ttes IP 149 et idle scan 234 utilisation pour le proling 236 Numros dacquittement TCP 158 Numros de squence attracteurs 202 TCP 158 O Observations des attaquants 267 directes 303 Offset (paramtre) dentte IP 148 Offset des donnes TCP 158 Olsson, Mikael 214 Opera 169 Oprateurs boolens 34 loi de De Morgan 32 Optimisation early-out 59 ngerprinting passif 175 Options TCP 162 OR 30 conception ip-op 42 loi de De Morgan 30 OSI 112

P p0f 175 Paramtres den-tte TCP 159 Pare-feu 208, 212 tats 212 et rponses inattendues 219 et masquerading 216 ltrage sans tats 212 MTU 217 rcriture des paquets 215 taille des segments 218 traduction dadresse 215 Path MTU Discovery (PMTUD) 219 Phototransistor 98 PIC 12 ping 162 de la mort 220 Pipelining 53 PMTU 148 exemples dchec 222 Poigne de main HTTP 245 TCP 154 Pool, Martin 250 Ports phmres 152, 216 Postel, Jon 178 Pot de miel 175 Prdiction de branchement 53 PRNG matriels 26 scan des ports 266 scurit 11, 15 Projet CRONOS 171 Projet Skitter 290 Protocoles BGP 140 Ethernet 111

Index

321

composants 95 remplissage des trames 114 rseaux commuts 117 FTP 215 HTTP 244 cache 248 cookies 250 latence 246 IP 151 fragmentation 148, 182 TCP 162 UDP 153 PSYLock 130 Purczynski, Wojciech 279 Q QAM (modulation damplitude en quadrature) 87 R Raymond, Eric S 96 Rayonnements lectromagntiques 66 Reed, Tracy 133 Remplissage des trames Ethernet 112 Rseaux commuts et rsolution dadresse 120 triangulation 294 wi- 134 Rivest, Ron 9 Roualland, Gal 177 Routeur backbone 140

RSA 9, 10 dcryptage 56 S Saffroy, Jean-Marc 177 Scan des ports 233 analyse 266 idle scan 235 NMAP 164, 235 NUL et Xmas 211 Schneider, Michael 257 SGML (Standard Generalized Markup Language) 241 Shamir, Adi 9, 62 Signal, mcanisme de brouillage 92 Somme de contrle des fragments IP 182 en-ttes ICMP 163 IP 150 TCP 159 et quations SAT 274 Ethernet 92 Spitzner, Lance 175 Spoong en aveugle 155 Staging 48 dans le temps 56 des instructions 49 Stewart, Joe 205 Stockage parasitaire 278, 288 les dattentes 286 mmoire tampon 283 SYN, cookies 211 Systme autonome 140 binaire 34 Szymanski, Jacek P 222

T TCP 162 ags 158 offset des donnes 158 options 162 EOL 161 NOP 161 paramtres den-tte 159 poigne de main 154 TEMPEST 66 Thormes dEuler 10 des restes chinois 10 Thse de Church et Turing 43 Traceroute 147 Traduction dadresse 215 Transmission Control Protocol (TCP) 162 Triangulation 294 Tso, Theodore 19 TTL 146 Turing (machine) 45 Turing tarpits 46 UTM 45 Turing, Alan 8, 43 U UAL 49 UDP 153 Umphress, David A. 96 URG (ag) 159 URI (Universal Resource Identier) 242 USB (Universal Serial Bus) 90 User Datagramm Protocol (UDP) 153 Usurpation didentit 178

322

Menaces sur le rseau

UTM (Machine de Turing universelle) 45 V Van Eck, Wim 64 Veysset, Franck 171 Viterbi 22

W W3C (World Wide Web Consortium) 241 Warying et Wardriving 134 WEP (Wired Equivalent Privacy) 132 Wi-, failles 134

Wood, Preston 267 World Wide Web Consortium (W3C) 241 X Xmas (scan) 211 XOR 38

Menaces sur le rseau


Scurit informatique : guide pratique des attaques passives et indirectes
Des rcits rvlateurs qui clairent dun jour nouveau les failles et les risques de linformatique au quotidien
Dans cet ouvrage unique, Michal Zalewski nous plonge dans les entrailles de linformatique moderne et porte un jour nouveau sur la conception dun rseau et nos propres pratiques informatiques. travers ltude de quelques ds exceptionnels, rares et souvent trs recherchs en terme de scurit, ce rcit fascinant chappe toute classication et renonce lopposition traditionnelle entre attaque et victime. Michal Zalewski est depuis longtemps connu et respect dans les communauts de hackers et de scurit pour son intelligence, sa curiosit et sa crativit. Dans Menaces sur le rseau, il partage son savoir-faire et son exprience pour expliquer le fonctionnement des ordinateurs et des rseaux, le traitement et la livraison des informations ainsi que les menaces pour la scurit qui se cachent dans lombre. L o dautres livres se contentent dnumrer les failles de scurit, Zalewski les explique. La lecture de cet ouvrage fascinera les tudiants et les professionnels de la scurit, les responsables SI et tous les technophiles dsireux dapprendre comment la scurit informatique sinscrit dans un cadre plus large.
propos de lauteur
Michal Zalewski, chercheur autodidacte sur la scurit de linformation, a travaill sur des sujets allant de la conception de matriel et de systmes dexploitation la gestion des rseaux. Depuis le milieu des annes 1990, il participe activement Bugtraq, une liste de diffusion ddie la scurit informatique. Il a travaill comme expert pour la scurit dans plusieurs entreprises de renom, dont deux gants des tlcommunications, la fois dans son pays natal la Pologne et aux tats-Unis.

Niveau : Intermdiaire / Avanc Catgorie : Scurit informatique

Pearson Education France 47 bis, rue des Vinaigriers 75010 Paris Tl. : 01 72 74 90 00 Fax : 01 42 05 22 17 www.pearson.fr

ISBN : 978-2-7440-4031-3

Vous aimerez peut-être aussi