SYN flood

Un article de Wikipédia, l'encyclopédie libre.

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.

Sommaire

[modifier] Principe

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 comme suit :

  1. le client demande une connexion en envoyant un message SYN (pour synchronize) au serveur
  2. le serveur répond et accepte en envoyant 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 (Alice) et le serveur
Schéma d'une connexion normale entre un client (Alice) et le serveur

Un client malveillant peut supprimer la dernière étape et ne pas répondre avec le ACK. Le serveur attend un certain temps car ce délai pourrait avoir été 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.

À ce stade, 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 de ce type, il est possible de monopoliser les ressources du serveur. Comme le nombre de connexions est la plupart du temps limité, le serveur n'accepte plus de nouveaux clients avec pour résultat un déni de service. Dans certains cas, le serveur peut même planter par manque de ressources.

Schéma du SYN flood. L'attaquant (Bob) envoie une série de paquets mais laisse les connexions semi-ouvertes. La file d'attente du serveur se remplit et le nouveau client (Alice) ne peut plus se connecter
Schéma du SYN flood. L'attaquant (Bob) envoie une série de paquets mais laisse les connexions semi-ouvertes. La file d'attente du serveur se remplit et le nouveau client (Alice) ne peut plus se connecter

[modifier] Historique

Ce type d'attaque devient populaire au milieu des années 1990 aux côtés d'autres techniques qui visent TCP. Des groupes de hackers diffusent, dans deux magazines électroniques, la technique ainsi que le code source pour la mener à bien[1]. Le 6 septembre 1996, un fournisseur d'accès américain (Panix) fut paralysé par un flot important de requêtes SYN [2].

[modifier] Contre-mesures

Plusieurs solutions existent [3]:

  • limitation du nombre de connexions depuis la même source ou la même plage d'IP, avec un délai imparti plus ou moins grand
  • libération des connexions semi-ouvertes selon un choix de client et un délai aléatoires
  • réorganisation de la gestion des clients en évitant de consommer des ressources avec des champs inutiles tant que la connexion n'est pas complètement établie [4]
  • 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]
  • analyse statistique du trafic (algorithme CUSUM [6])

[modifier] Références

  1. TCP SYN Flooding and IP Spoofing Attacks
  2. http://cr.yp.to/syncookies.html
  3. TCP SYN Flooding Attacks and Remedies
  4. http://www.internetsecuritysystems.com/security_center/advice/Exploits/TCP/SYN_flood/default.htm
  5. Les SYN cookies
  6. http://www.cs.wm.edu/~hnw/paper/attack.pdf

[modifier] Voir aussi

[modifier] Lien externe