Attaques/DoS/exhaust-services-remotely/syn-flood

From aldeid
Jump to navigation Jump to search

Attaque SYN flood

Description

L'établissement d'une connexion, appelé poignée de main TCP (TCP handshake), s'effectue en 3 temps :

  • L'hôte A signifie à l'hôte B qu'il souhaite établir une connexion en envoyant un paquet SYN
  • L'hôte B accuse réception de cette demande en renvoyant SYN/ACK. Il stocke alors en mémoire (file des connexions) la demande reçue, en attente d'un ACK de l'hôte A, concluant l'établissement de la connexion.
  • L'hôte A termine la poignée de main par l'envoi d'un paquet ACK.

L'attaque SYN flood se base sur ce principe en n'envoyant que des paquets SYN à partir de sources et ports sources différents, afin de saturer la mémoire de la cible. Cette dernière, en attente de paquets ACK n'arrivant jamais, stocke les différentes demandes de connexion jusqu'à saturation. Dans ces conditions, les hôtes légitimes seront incapables de se connecter à la cible.

Seules, les deux premières étapes du handshake étant replies, on parle de connexions à demi ouvertes (half-open connection)

Note
Il existe un timeout au delà duquel la cible considère comme obsolète la demande de connexion. Néanmoins, celui-ci est souvent de l'ordre de la minute, ce qui, dans le cadre d'une attaque distribuée (DDoS), permet à l'attaquant de saturer la cible.

Pour mener son attaque, l'attaquant prendra généralement comme adresses IP sources des adresses inutilisées. En effet, si une adresse IP est valide, celle-ci rejettera immédiatement le paquet SYN/ACK reçu par la cible par l'émission d'un paquet RST, ne lui ayant jamais adressé de demande de connexion (SYN). Ce principe est illustré sur la figure suivante. Néanmoins, nous pouvons considérer que l'utilisation d'adresses IP existantes génère un trafic plus important, permettant d'obtenir la saturation de la bande passante plus rapidement.

Outils

INCOMPLETE SECTION OR ARTICLE
This section/article is being written and is therefore not complete.
Thank you for your comprehension.

Exemples

INCOMPLETE SECTION OR ARTICLE
This section/article is being written and is therefore not complete.
Thank you for your comprehension.

Protections

Il existe plusieurs approches pour se protéger contre ce type d'attaque :

  • Augmenter la taille de la file des connexions (connection queue)
  • Diminuer le temps d'attente (timeout) des connexions à demi-ouvertes
  • Suppression de la file des connexions par activation des SYN cookies dans le noyau
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
  • Mettre en place du traffic shaping