Le SYN flood est une attaque informatique visant à atteindre un déni de service. Elle s'applique dans le cadre du protocole TCP et consiste à envoyer une succession de requêtes SYN vers la cible.

Principe modifier

Lors de l'initialisation d'une connexion TCP entre un client et un serveur, un échange de messages a lieu. Le principe est celui du three-way handshake, qui, dans le cas d'une connexion normale sans volonté de nuire, se déroule en trois étapes :

  1. le client demande une connexion en envoyant un message SYN (pour synchronize) au serveur ;
  2. le serveur accepte en envoyant un message SYN-ACK (synchronize-acknowledgment) vers le client ;
  3. le client répond à son tour avec un message ACK (acknowledgment) ; la connexion est alors établie.
 
Schéma d'une connexion normale entre un client et le serveur.

Un client malveillant peut supprimer la dernière étape et ne pas répondre avec le message ACK. Le serveur attend un certain temps avant de libérer les ressources qui ont été réservées pour le client, car le retard du message ACK pourrait être causé par la latence du réseau. Cette période d'attente par le serveur était d'environ 75 secondes lors des premières attaques SYN flood.

Après l'étape 2, la connexion est semi-ouverte et consomme un certain nombre de ressources du côté du serveur (mémoire, temps processeur, etc.). En générant suffisamment de connexions incomplètes de ce type, il est possible de surcharger les ressources du serveur et ainsi d'empêcher le serveur d'accepter de nouvelles requêtes, avec pour résultat un déni de service. Dans certains cas, le serveur peut même planter par manque de ressources.

 
L'attaquant envoie une série de messages SYN, mais laisse les connexions semi-ouvertes. La file d'attente du serveur se remplit et le nouveau client ne peut plus se connecter.

Historique modifier

Ce type d'attaque devint populaire au milieu des années 1990 au côté d'autres attaques qui visaient le protocole TCP. Des groupes de hackers diffusèrent, dans deux magazines électroniques, la technique ainsi que le code source pour la mener à bien[1]. Le , un fournisseur d'accès Internet américain (Panix) fut paralysé par un SYN flood[2].

Contre-mesures modifier

Les façons de parer ces attaques sont[3]:

  • la limitation du nombre de connexions depuis la même source ou la même plage d'adresses IP ;
  • la libération des connexions semi-ouvertes selon un choix de client et un délai aléatoire ;
  • la réorganisation de la gestion des ressources allouées aux clients en évitant d'allouer des ressources tant que la connexion n'est pas complètement établie[4] ;
  • l'utilisation de SYN cookies (vérification basée sur des numéros de séquence générés avec une fonction de hachage)[5] ;
  • l'analyse statistique du trafic (algorithme CUSUM[6]).
  • La commande flow mask

Références modifier

Articles connexes modifier

Lien externe modifier