Qu'est-ce qu'une attaque DDoS ACK flood ? | Types d'attaques DDoS

Dans une attaque ACK flood, l'attaquant tente de submerger la cible avec de faux paquets ACK, qui sont censés être utilisés pour reconnaître qu'un périphérique a bien reçu les données transmises.

Share facebook icon linkedin icon twitter icon email icon

ACK flood

Objectifs d’apprentissage

Après avoir lu cet article, vous pourrez :

  • Apprendre ce que signifie ACK
  • Comprendre le fonctionnement d'une attaque ACK flood
  • Apprendre comment arrêter les attaques ACK flood

Qu'est-ce qu'une attaque DDoS ACK flood ?

Une attaque par ACK flood se produit lorsqu'un attaquant tente de surcharger un serveur avec des paquets ACK TCP. Comme les autres attaques DDoS, le but d'une attaque ACK est le déni de service pour les autres utilisateurs en ralentissant ou en bloquant la cible à l'aide de données indésirables. Le serveur cible doit traiter chaque paquet ACK reçu, ce qui utilise tellement de puissance de calcul qu'il est incapable de servir les utilisateurs légitimes.

Imaginez qu'un petit plaisantin remplisse la boîte vocale de quelqu'un avec de faux messages, afin que les messages vocaux d'appelants légitimes ne puissent pas être enregistrés. Imaginez maintenant que chacun de ces faux messages dise : « Bonjour, j'appelle pour dire que j'ai reçu votre message. » Cela ressemble un peu à ce qui se passe lors d'une attaque DDoS ACK flood.

Qu'est-ce qu'un paquet ?

Toutes les données envoyées sur Internet sont divisées en segments plus petits appelés paquets. Pensez à une personne qui voudrait faire une commentaire détaillé ou raconter une longue histoire sur Twitter. Elle devra diviser son texte en segments de 280 caractères et le publier dans une série de tweets au lieu de tout publier en même temps. Pour ceux qui n'utilisent pas Twitter, pensez à la façon dont les téléphones portables sans application de SMS dédiée divisaient les longs SMS en sections plus petites.

Le protocole TCP (Transmission Control Protocol) est un élément essentiel de la communication Internet. Les paquets envoyés à l'aide du protocole TCP ont des informations qui leur sont attachées dans l'en-tête de paquet. Le protocole TCP utilise l'en-tête de paquet pour indiquer au destinataire le nombre de paquets et dans quel ordre ils doivent arriver. L'en-tête peut également indiquer la longueur du paquet, le type de paquet, etc.

Cela revient un peu à nommer un dossier de fichiers pour permettre de se rappeler ce qu'il contient. Pour revenir à l'exemple Twitter, les personnes qui publient une longue série de tweets indiquent souvent le nombre total de tweets dans la série et numérotent chaque tweet pour permettre aux lecteurs de suivre.

Qu'est-ce qu'un paquet ACK ?

ACK est l'abréviation de Acknowledgement (accusé de réception). Un paquet ACK est un paquet TCP qui accuse réception d'un message ou d'une série de paquets. La définition technique d'un paquet ACK est un paquet TCP avec l'indicateur « ACK » défini dans l'en-tête.

TCP Handshake

Les paquets ACK font partie du « three-way TCP handshake » une série de trois étapes qui démarrent une conversation entre deux appareils connectés sur Internet (tout comme les gens peuvent se saluer avec une poignée de main dans la vie réelle avant d'entamer une conversation). Les trois étapes du handshake TCP sont les suivantes :

  1. SYN
  2. SYN ACK
  3. ACK

L'appareil qui ouvre la connexion (par exemple, l'ordinateur portable d'un utilisateur) démarre le « three-way handshake » en envoyant un paquet SYN (abréviation pour « synchroniser ). L'appareil à l'autre extrémité de la connexion, par exemple un serveur qui héberge un site web d'achat en ligne, répond avec un paquet SYN ACK. Enfin, l'ordinateur portable de l'utilisateur envoie un paquet ACK et le three-way handshake est terminé. Ce processus garantit que les deux appareils sont en ligne et prêts à recevoir des paquets supplémentaires qui, dans cet exemple, permettraient à l'utilisateur de charger le site web.

Cependant, ce n'est pas l'unique utilisation des paquets ACK. Le protocole TCP nécessite que les appareils connectés reconnaissent qu'ils ont reçu tous les paquets dans l'ordre. Supposons qu'un utilisateur visite une page web qui héberge une image. L'image est divisée en paquets de données et envoyée au navigateur de l'utilisateur. Une fois l'image entière arrivée, l'appareil de l'utilisateur envoie un paquet ACK au serveur hôte pour confirmer qu'aucun pixel n'est manquant. Sans ce paquet ACK, le serveur hôte doit renvoyer l'image.

Étant donné qu'un paquet ACK est un paquet TCP avec l'indicateur ACK défini dans l'en-tête, l'ACK peut faire partie d'un message différent que l'ordinateur portable envoie au serveur. Si l'utilisateur remplit un formulaire et soumet des données au serveur, l'ordinateur portable peut faire de l'un de ces paquets le paquet ACK pour l'image. Il n'est pas nécessaire que ce soit un paquet séparé.

Comment fonctionne une attaque ACK flood ?

Les attaques ACK flood ciblent les appareils qui doivent traiter chaque paquet qu'ils reçoivent. Les pare-feu et les serveurs sont les cibles les plus probables d'un ACK flood. Les équilibreurs de charge, les routeurs et les commutateurs ne sont pas sensibles à ces attaques.

Les paquets ACK légitimes et illégitimes se ressemblent fondamentalement, ce qui rend les attaques ACK flood difficiles à arrêter sans utiliser un réseau de distribution de contenu (CDN) pour filtrer les paquets inutiles ACK. Bien qu'ils se ressemblent, les paquets utilisés dans une attaque ACK DDoS ne contiennent pas la partie principale d'un paquet de données, également appelé payload (ou charge utile). Afin d'apparaître légitime, ils n'ont qu'à inclure l'indicateur ACK dans l'en-tête TCP.

Les attaques ACK flood sont des attaques DDoS de la couche 4 (couche transport). Découvrez la couche 4 et le modèle OSI.

Comment fonctionne une attaque SYN ACK flood ?

Une attaque DDoS flood SYN ACK est légèrement différente d'une attaque ACK, bien que l'idée de base soit toujours la même : submerger la cible avec trop de paquets.

Rappelez-vous comment fonctionne un handshake TCP en trois étapes (le « three-way TCP handshake ») : la deuxième étape du handshake est le paquet SYN ACK. Habituellement, un serveur envoie ce paquet SYN ACK en réponse à un paquet SYN à partir d'un appareil client. Dans une attaque DDoS SYN ACK, l'attaquant inonde la cible de paquets SYN ACK. Ces paquets ne font pas du tout partie du handshake en trois étapes. Leur seul but est de perturber les opérations normales de la cible.

Il est également possible pour un attaquant d'utiliser des paquets SYN dans une attaque DDoS SYN flood.

Comment Cloudflare arrête-t-il les attaques DDoS ACK flood ?

Tout le trafic vers et depuis le serveur d'origine d'un client Cloudflare est traité en proxy par le Cloudflare CDN. Le CDN ne transmet aucun paquet ACK non associé à une connexion TCP ouverte. Ainsi, le trafic ACK malveillant n'atteint pas le serveur d'origine. Le réseau Cloudflare des datacenters est assez grand pour absorber les attaques DDoS de presque toutes les tailles, de sorte que les attaques ACK flood ont peu d'effet voir aucun effet sur Cloudflare.

Cloudflare Magic Transit et Cloudflare Spectrum bloquent également ce type d'attaques DDoS. Magic Transit traite en proxy le trafic de la couche 3 et Spectrum celui de la couche 4, au lieu du trafic de la couche 7 comme le CDN. Les deux produits bloquent les attaques ACK flood en détectant automatiquement les modèles d'attaque et en bloquant le trafic d'attaque.

En savoir plus sur les autres types d'attaques DDoS.