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 :
- le client demande une connexion en envoyant un message SYN (pour synchronize) au serveur
- le serveur répond et accepte en envoyant 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 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.
[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
[modifier] Voir aussi
[modifier] Lien externe
- (en) Detecting SYN flooding attacks - Analyse mathématique et algorithmique du problème et des solutions]