Tech

Découverte d'une faille au coeur même du protocole TCP

ActualitéClassé sous :Tech , protocole , tcp/ip

-

Le protocole TCP/IP est la fondation même des échanges réseaux... et on vient de se rendre compte qu'il comportait depuis toujours une faille structurelle ! Il serait beaucoup plus simple qu'on ne le pensait jusqu'alors de neutraliser une connexion TCP/IP. Cette perspective ouvre la voie à de nombreux dénis de service. Le protocole BGP, qui fait office de glue d'Internet, serait particulièrement affecté par cette faille.

TCP/IP, la pierre fondatrice des réseaux actuels, serait plus vulnérable qu'on ne le pensait à une attaque par déni de service. C'est en tout cas l'alerte que vient de lancer le US-CERT, l'organisme de veille du gouvernement américain.
En fait de faille nouvelle, le CERT décrit les résultats de tests menés par Paul Watson, qui a travaillé sur les méthodes d'injection de paquets TCP dans une connexion existante et fait une découverte plutôt embarrassante.

Lors du fonctionnement normal d'une connexion TCP, le protocole se protège contre l'arrivée de paquets étrangers à la connexion en exigeant que chacun porte un numéro de séquence qui l'identifie comme faisant bien partie de la connexion initialisée à l'origine. Ce numéro de séquence est aléatoire à la création de la connexion, puis il augmente tout simplement à chaque paquet échangé.

Depuis très longtemps le pirate qui souhaitait détourner une connexion pouvait le faire en essayant de deviner le numéro de séquence des paquets à envoyer, afin d'injecter les siens dans le flot de la connexion originale. Pour cela, il devait essayer tous les numéros de séquence possibles, une tâche généralement lourde, même si elle était rendue plus ou moins facile en fonction du système d'exploitation qui avait initié la chose (Windows est historiquement une farce dans ce domaine tandis que les différents Unix sont largement plus robustes).

Mais Paul Watson a découvert qu'en fait, plutôt que de devoir essayer tous les numéros de séquence, il était possible au pirate d'envoyer une partie seulement de ceux-là, dont les limites sont calculées en fonction de la fenêtre TCP, une valeur fixe généralement définie par le système d'exploitation. Lors de ces tests, il a observé qu'à partir d'une connexion ADSL typique il pouvait injecter un paquet TCP toutes les cinq minutes dans n'importe quelle session TCP existante. Ce délai tombe à 15 secondes à partir d'une ligne de type T1.

Ces chiffres sont énormes. Car injecter des paquets à volonté dans n'importe quelle session TCP existante signifie être capable, par exemple, de lui envoyer un RST, l'ordre de reset qui termine la connexion.

Une menace pour les liens BGP

Cette capacité à stopper une connexion TCP établie devient véritablement inquiétante face au protocole BGP. Ce protocole, véritable "glue" sur Internet, assure le lien entre de grandes portions du réseau (il permet la communication entre les réseaux des différents opérateurs). Oui mais voilà, BGP exige des liaisons TCP permanentes pour fonctionner. Une attaque sur ces dernières ferait s'écrouler les liens BGP entre opérateurs, et pourrait ainsi isoler de grandes portions d'Internet, comme le fait remarquer le CERT US.

Les éditeurs et fabriquants de matériels réseau s'apprêtent à fournir des correctifs censés limiter le risque, et le CERT US préconise l'utilisation de procédés de signature des paquets TCP afin d'éviter l'injection de paquets.