Un SYN flood exploite une vulnérabilité dans la négociation TCP/IP pour tenter de perturber un service web.
Cet article s'articule autour des points suivants :
Contenu associé
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
Une attaque SYN flood (attaque semi-ouverte) est un type d’attaque par déni de service (DDoS) qui vise à rendre un serveur indisponible pour le trafic légitime en consommant toutes les ressources serveur disponibles. En envoyant à plusieurs reprises des paquets de demande de connexion initiale (SYN), le pirate est en mesure de submerger tous les ports disponibles sur une machine serveur ciblée, ce qui oblige l’appareil ciblé à répondre lentement au trafic légitime, ou l’empêche totalement de répondre.
Les attaques SYN flood fonctionnent en exploitant le processus d’établissement de liaison d’une connexion TCP. En temps normal, la connexion TCP présente trois processus distincts pour établir une connexion.
Pour créer un déni de service, un pirate exploite le fait qu’après réception d’un paquet SYN initial, le serveur répond avec un ou plusieurs paquets SYN/ACK et attend l’étape finale du handshake. Voici comment cela fonctionne :
En réseau, lorsqu’un serveur laisse une connexion ouverte mais que la machine de l’autre côté de la connexion ne l’est pas, la connexion est considérée comme étant à moitié ouverte. Dans ce type d’attaque DDoS, le serveur ciblé laisse en permanence des connexions ouvertes et attend que chaque connexion expire avant que les ports ne redeviennent disponibles. Le résultat est que ce type d’attaque peut être considéré comme une « attaque semi-ouverte ».
En utilisant une attaque SYN flood, un acteur malveillant peut tenter de créer un déni de service dans un appareil ou un service ciblé avec beaucoup moins de trafic que les autres attaques DDoS. Au lieu d’attaques volumétriques, qui visent à saturer l’infrastructure réseau autour de la cible, les attaques SYN doivent seulement être plus volumineuses que le backlog disponible dans le système d’exploitation de la cible. Si le pirate est en mesure de déterminer la taille du backlog et pendant combien de temps chaque connexion sera laissée ouverte avant d’expirer, il peut cibler les paramètres exacts nécessaires à la désactivation du système, en réduisant ainsi le trafic total au minimum nécessaire pour créer le déni de service.
La vulnérabilité aux attaques SYN flood est connue depuis longtemps et un certain nombre de voies d’atténuation ont été utilisées. Voici quelques approches :
Chaque système d’exploitation sur un appareil ciblé dispose d’un certain nombre de connexions semi-ouvertes qu’il autorise. Il est possible de répondre aux volumes élevés de paquets SYN en augmentant le nombre maximal de connexions semi-ouvertes possibles que le système d’exploitation autorisera. Afin d’augmenter avec succès le backlog maximal, le système doit réserver des ressources de mémoire supplémentaires pour traiter toutes les nouvelles requêtes. Si le système ne dispose pas de suffisamment de mémoire pour pouvoir gérer l’augmentation de taille de la file d’attente de backlog, les performances du système seront affectées négativement, mais cela peut être un pis-aller par rapport au déni de service.
Une autre stratégie d’atténuation consiste à écraser la connexion semi-ouverte la plus ancienne une fois le backlog rempli. Cette stratégie nécessite que les connexions légitimes puissent être entièrement établies en moins de temps qu’il ne faut pour que le backlog soit rempli de paquets SYN malveillants. Cette défense particulière échoue lorsque le volume d’attaque est augmenté ou si la taille du backlog est trop petite pour être pratique.
Cette stratégie implique la création d’un cookie par le serveur. Afin d’éviter le risque de perdre des connexions lorsque le backlog est rempli, le serveur répond à chaque demande de connexion avec un paquet SYN-ACK, mais supprime ensuite la demande SYN du backlog, en retirant la demande de la mémoire et en laissant le port ouvert, prêt à établir une nouvelle connexion. Si la connexion est une requête légitime et qu’un paquet ACK final est renvoyé de la machine cliente au serveur, le serveur reconstruira alors (avec certaines limitations) l’entrée de la file d’attente du backlog SYN. Bien que cet effort d’atténuation perde des informations sur la connexion TCP, elle est préférable au déni de service qui affecterait les utilisateurs légitimes à la suite d’une attaque.
Cloudflare atténue en partie ce type d’attaque en se plaçant entre le serveur ciblé et l’attaque SYN flood. Lorsque la requête SYN initiale est effectuée, Cloudflare gère le processus de handshake dans le cloud, en maintenant la connexion avec le serveur ciblé jusqu’à la fin du handshake TCP. Cette stratégie retire le coût en ressources de la maintenance des connexions avec les faux paquets SYN du serveur ciblé et le réaffecte sur le réseau Anycast de Cloudflare. En savoir davantage sur le fonctionnement de la protection anti-DDoS de Cloudflare.