Ping of death
Le ping of death (ping de la mort en français) est une attaque historique de réseau. Elle entraîne un arrêt immédiat des systèmes vulnérables. Heureusement, ce type d’attaque ne fonctionne plus sur la plupart des systèmes depuis 1998.
L’attaque ping of death, ou ping of death attack en anglais, utilise le protocole ICMP (Internet Control Message Protocol). En principe, d’autres protocoles basés sur l’IP peuvent également être utilisés. Les systèmes modernes sont sécurisés contre le ping of death et aujourd’hui les hackers privilégient l’utilisation du ping flood.
Qu’est-ce qu’un ping of death ?
Le ping of death fait partie des attaques par déni de service (DoS). Pour lancer une attaque, le hacker envoie un paquet de données malveillant à sa cible. Le traitement du paquet de données par le système cible déclenche une erreur et le système s’arrête.
On peut comparer le ping of death à un colis piégé : c’est l’ouverture du paquet qui active le mécanisme et attaque ou détruit la cible. La commande Ping est généralement utilisée sur un réseau pour vérifier si une machine est disponible. La commande ping est basée sur le protocole ICMP (Internet Control Message Protocol). Ce protocole est utilisé pour communiquer des informations sur le statut sur Internet.
Sous le terme générique d’attaque par déni de service, il existe différents types de modèles d’attaque : le ping of death, comme le SYN flood, fait partie des attaques du protocole. Il existe également des attaques sur la couche application, notamment le flood HTTP, et les attaques volumétriques qui inondent la cible d’un flux de données. Parmi ces dernières figurent le ping flood, dont le nom indique la fonction, et le UDP flood, qui est devenu célèbre avec le « Low Orbit Ion Cannon », un outil DDoS très puissant.
Fonctionnement du ping of death
Pour effectuer une attaque par ping of death, le hacker crée un paquet ICMP qui dépasse la taille autorisée. Lors du transfert le paquet est divisé en plusieurs petits éléments. Lors du réassemblage dans le système cible, le dernier fragment fait dépasser la taille autorisée. Sur les systèmes non protégés, cela provoque un débordement de la mémoire tampon. La conséquence : le système se bloque ou s’arrête complètement, ce qui entraîne un effet de déni de service.
Un paquet « echo » ICMP fait généralement une taille de 56 octets. Un paquet de type « ping of death » au contraire, avec ses quelque 65 535 octets, est près de mille fois plus volumineux. Le protocole Internet (IP) sur lequel se base ce type d’attaques est responsable de la limitation à une taille totale de 65 535 octets par paquet.
Pour générer un paquet « ping of death », on utilise la commande ping dans la ligne de commande. Le paramètre d’options dont la valeur détermine la taille du champ de données ICMP est le point central de cette attaque. Sur les systèmes Windows, l’option est appelée '-l' (pour « load »). Dans d’autres systèmes, on utilise l’option '-s' (pour « size ») à la place.
Ping of death sous Windows :
ping <adresse ip> -l 65500 -w 1 -n 1
Ping of Death sous Linux/UNIX/macOS :
ping <adresse ip> -s 65500 -t 1 -n 1
Mesures de protection contre les attaques de type ping of death (ping of death attacks)
Le ping of death est une attaque historique. Depuis la découverte de cette attaque en 1997, des modifications ont été apportées aux logiciels serveur et aux systèmes d’exploitation. Des contrôles supplémentaires permettent de s’assurer que la taille maximale des paquets n’est pas dépassée lors de la fusion des fragments IP. Une autre solution consiste à utiliser une mémoire tampon plus importante pour éviter qu’elle ne soit dépassée. La plupart des systèmes actuels ne sont donc plus vulnérables au ping of death.
En outre, les paquets malveillants sont également filtrés lorsqu’ils transitent par le réseau. Cela peut se faire au niveau des routeurs et des pare-feu ou en utilisant un CDN (Content Delivery Networks). L’en-tête IP de chaque fragment est contrôlé. La formule « position du fragment + longueur totale ≤ 65 535 octets » doit être vraie pour chaque fragment. Si un fragment IP enfreint cette règle, la taille totale autorisée sera dépassée lors de l’assemblage. Dans ce cas, le paquet est supprimé.
Dans la mesure où les systèmes modernes sont généralement protégés contre le ping of death, il ne constitue guère une menace pour les utilisateurs d’aujourd’hui.