Fiche savoir : la fragmentation IP

Présentation

La taille maximale d’un paquet IP qui est envoyé sur le réseau est définie par la valeur de la MTU (Maximum transmission unit) de l'interface de sortie.

Ce paramètre permet à l'interface de sortie d'un équipement :

d'adapter la taille des paquets aux capacités de la couche 1 et 2 (Ethernet pour les réseaux locaux) pour un PC ou un routeur ;

de tenir compte de l’utilisation d’encapsulation spécifiques (VPN, PPP, …) pour un routeur.

Lors de l'acheminement du paquet dans les différents traversés jusqu’à sa destination, des liens ayant une capacité de transmission inférieure peuvent être utilisés. Dans ces cas, le paquet IP est fragmenté par les routeurs intermédiaires qui ont une MTU plus petite :

En IPv4, la fragmentation d’un paquet est interdite* lorsque le bit DF est positionné dans l’en-tête IP. La MTU minimale est de 576 octets.

En IPv6, la fragmentation par un équipement intermédiaire est interdite. La MTU minimale est de 1280 octets.

Un paquet IP qui ne peut être acheminé compte tenu de la MTU de l'interface d'entrée est détruit (drop).

Une valeur optimale de MTU correspond à la valeur maximale que le réseau accepte. S’il est trop bas, cela ajoute de la latence.

L’option offset indique la position de chaque portion des données qui ont dû être fragmentées.

Lors de la fragmentation d'un paquet, seul le premier fragment contient les ports (TCP/UDP) utilisés par la connexion. Pour que le pare-feu puisse analyser tous les fragments celui-ci doit reconstituer le paquet original.

MTU discovery (PMTUD)

Lien : https://www.malekal.com/quest-ce-que-le-mtu-et-mss-et-optimiser/

MTU discovery (PMTUD) est une méthode qui permet d’obtenir le MTU de tous les équipements que traversent un paquet :

on envoie des paquets jusqu’à ce que ce dernier ne soit plus droppé par un des routeurs le long du chemin.

Lorsqu’un périphérique le long du chemin abandonne le paquet, il renvoie un message ICMP avec son MTU.

Le périphérique source abaisse son MTU et envoie un autre paquet de test.

Ce processus est répété jusqu’à ce que les paquets de test soient suffisamment petits pour traverser tout le chemin du réseau sans être abandonnés.

Le site speedguide permet d’obtenir les réglages MTU et MSS d'un PC ainsi que d’autres paramètres TCP/IP.

Des ajustements supplémentaires doivent alors être faits pour la partie Données utiles.

Optimiser le MTU

La commande ping permet de déterminer le meilleur MTU, en utilisant le même principe que le path MTU discovery : envoyer des paquets fragmentés de différentes tailles pour voir si un équipement drop ou fragmente le paquet.

Paramètres de la commande ping :

envoyer des paquets non fragmentés avec l’option -f

envoyer des paquets avec une taille de MTU différente avec -l

ping www.yahoo.com -f -l 1500

La commande netsh de Windows permet de modifier la valeur de la MTU du PC.

Attaque par fragmentation IP

Le mécanisme de fragmentation IP peut être détourné pour véhiculer des attaques :

la menace est répartie sur plusieurs fragments.

Le code malveillant est découpé puis inséré dans des fragments consécutifs ,

l’analyse unitaire des fragments par le PC ou le serveur pare-feu ne révèle pas l’attaque.

C’est au moment du réassemblage des fragments que la menace est reconstituée.

Attaque par recouvrement

Détournement de l’usage de l’option offset :

utilisation de deux fragments consécutifs avec des valeurs d’offset qui se chevauchent ,

l'acceptation et la reconstitution du paquet se traduit par le second fragment qui écrase la fin du premier fragment et reconstitue la menace.