SYN flood
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
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 :
- le client demande une connexion en envoyant un message SYN (pour synchronize) au serveur ;
- le serveur accepte en envoyant un message SYN-ACK (synchronize-acknowledgment) vers le client ;
- le client répond à son tour avec un message ACK (acknowledgment) ; la connexion est alors établie.
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.
Historique
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
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
- TCP SYN Flooding and IP Spoofing Attacks
- « SYN cookies », sur yp.to (consulté le ).
- TCP SYN Flooding Attacks and Remedies
- https://archive.wikiwix.com/cache/20110223235954/http://www.internetsecuritysystems.com/security_center/advice/Exploits/TCP/SYN_flood/default.htm.
- Les SYN cookies
- http://www.cs.wm.edu/~hnw/paper/attack.pdf