UDP flood
Une attaque UDP flood est une attaque par déni de service. Comme pour les autres attaques flood connues – le ping flood, l’HTTP flood et le SYN flood – le hacker envoie des paquets de données inutiles au système cible de façon très rapprochée. L’objectif est de saturer la cible jusqu’à ce qu’elle ne soit plus en mesure de répondre aux requêtes légitimes. Une fois cet état atteint, le service est alors interrompu.
Qu’est-ce qu’un UDP flood ?
L’UDP flood est une attaque DoS volumétrique : à l’instar du ping flood, son fonctionnement repose sur le fait que le système cible est saturé par un volume important de flux de données entrants. L’UDP Flood se distingue ainsi du ping of death, qui pousse le système cible au crash en exploitant une erreur de mémoire, ainsi que du SYN flood qui réserve les ressources au serveur. Toutes les attaques DoS citées se rejoignent dans leur objectif de surcharger le système et ainsi d’empêcher son utilisation légitime.
L’UDP flood a attiré l’attention du grand public à la suite d’attaques de hacking spectaculaires lancées contre des organisations à portée internationale. En dehors de l’église de scientologie, ces attaques ont également touché des entreprises des secteurs des médias et de la finance. Les sites Internet et les services concernés se sont écroulés face au flot de données entrant et ont été inaccessibles aux utilisateurs pendant plusieurs heures. Pour déclencher l’UDP flood, ces attaques ont utilisé comme arme l’outil puissant qu’est Low Orbit Ion Cannon (LOIC).
Fonctionnement des attaques UDP flood
Le fonctionnement des attaques UDP flood repose sur les particularités du User Datagram Protocol (UDP) utilisé. Lorsqu’un paquet UDP arrive sur un serveur, le système d’exploitation vérifie si le port indiqué comporte des applications d’écoute. Si aucune application n’est détectée, le serveur doit en informer l’expéditeur. Comme l’UDP est un protocole sans connexion, le serveur utilise l’Internet Control Message Protocol (ICMP) pour informer l’expéditeur du fait que le paquet n’a pas été distribué.
Dans le cas d’une attaque UDP flood, les choses se passent de la façon suivante :
- le hacker utilise une adresse IP d’expéditeur usurpée pour envoyer des paquets UDP à des ports aléatoires du système cible.
- du côté du système cible, le processus suivant doit être répété pour chaque paquet entrant :
- Vérifier si une application écoute sur le port indiqué dans le paquet UDP ; comme le port est choisi au hasard, ce n’est généralement pas le cas.
- Envoyer un paquet ICMP « Destination Unreachable » à l’expéditeur présumé ; comme l’adresse IP a été usurpée, ces paquets sont généralement reçus par un tiers.
Mesure de protection contre les attaques UDP flood (UDP flood attacks)
Une attaque de réseau volumétrique est reconnaissable à un pic soudain dans le volume du trafic réseau entrant. Le trafic réseau est soumis à une surveillance routinière par le fournisseur du réseau et d’autres acteurs spécialisés. Des mesures de réduction des dommages peuvent donc être engagées aux premiers signes d’une attaque.
Les mesures suivantes offrent une protection efficace contre les attaques UDP flood :
- La limitation du débit des réponses ICMP par unité de temps : cette limitation des réponses ICMP a normalement lieu au niveau du système d’exploitation.
- Un filtrage au niveau du pare-feu sur le serveur : les paquets suspects sont alors rejetés. Le pare-feu peut toutefois également s’écrouler sous la pression des attaques UDP flood.
- Le filtrage des paquets UDP à l’exception du DNS au niveau du réseau : normalement, les requêtes DNS se déroulent via l’UDP. Avec cette mesure, toute autre source générant un trafic UDP à grande échelle est considérée comme suspecte. Les paquets concernés sont alors rejetés.
Pour affaiblir une attaque importante, les exploitants de serveurs ont également recours à des services cloud spécifiques comme Cloudflare. Ces services répartissent le trafic réseau sur une multitude de centres de données situés dans le monde entier. Ils disposent ainsi d’une plus grande bande passante pour mieux absorber le volume du flot de données entrant en cas d’attaque. Par ailleurs, un filtrage du flux de données est réalisé par défaut afin d’empêcher les différentes attaques dès la phase de développement.