web-dev-qa-db-fra.com

Pourquoi une attaque (D) DoS ralentit-elle le CPU et plante-t-elle un serveur?

J'ai donc l'idée de base du (D) DoS utilisé pour les inondations, mais je ne comprends pas très bien comment cela fait planter les serveurs ou les ralentit en raison d'une utilisation excessive du processeur.

Pour autant que je sache, la chose qui est utilisée pour ralentir un serveur est la poignée de main TCP SYN, mais cela prend une quantité insignifiante de CPU.

Comment planter un serveur en utilisant (D) DoS?

22
DrDoom

Comment planter un serveur en utilisant (D) DoS?

Pour répondre spécifiquement à votre question, pour planter un serveur en utilisant uniquement des DDoS, vous devez cibler la couche application (explication détaillée ci-dessous). Ces types d'attaques tentent spécifiquement d'utiliser autant de ressources de serveurs cibles que possible et de les arrêter, plutôt que de simplement les marteler avec le trafic réseau.

Cependant, pour mettre cela en contexte aux côtés d'autres types d'attaques DDoS, explorons leurs principales catégories et leurs utilisations.

Cet article couvre les 3 principaux types d'attaque pour les DDoS. De l'article:

Les attaques DDoS peuvent être largement divisées en trois types:

Attaques basées sur le volume

Comprend les inondations UDP, les inondations ICMP et d'autres inondations de paquets usurpés. L’objectif de l’attaque est de saturer la bande passante du site attaqué, et l’amplitude est mesurée en bits par seconde [sic] "(Bps)" [sic].

Attaques de protocole

Comprend les inondations SYN, les attaques de paquets fragmentées, Ping of Death, Smurf DDoS et plus encore. Ce type d'attaque consomme les ressources réelles du serveur ou celles des équipements de communication intermédiaires, tels que les pare-feu et les équilibreurs de charge, et est mesurée en paquets par seconde.

Attaques de couche application

Comprend les attaques faibles et lentes, les inondations GET/POST, les attaques qui ciblent les vulnérabilités Apache, Windows ou OpenBSD et plus encore. Composé de demandes apparemment légitimes et innocentes, le but de ces attaques est de planter le serveur Web, et l'ampleur est mesurée en demandes par seconde.

TL; DR - il existe plusieurs types d'attaques DDoS selon ce que l'attaquant veut réaliser. Parfois, un attaquant voudra simplement prendre toute la bande passante disponible, d'autres fois, il tentera de submerger le processeur.

Il convient de noter que DDoS n'est qu'un type distribué du générique ' Denial of Service' - cela n'implique pas du tout de planter un serveur, empêchant seulement le serveur de faire tout ce à quoi il est destiné, que ce soit c'est empêcher les affaires réelles d'avoir lieu en utilisant toute la bande passante ou autrement.

40
R. Murray

Un SYN flood ne consiste pas à épuiser le CPU, il s'agit d'épuiser la mémoire.

Une connexion TCP est établie via ce que l'on appelle une "prise de contact à trois voies". Traditionnellement, elle fonctionne comme suit:

  1. Le client envoie un paquet SYN. Le serveur reçoit le paquet et alloue des ressources pour suivre la connexion.
  2. Le serveur répond avec un SYN/ACK paquet.
  3. Le client répond avec un paquet ACK, établissant la connexion.

Dans un déluge SYN, l'attaquant envoie un flux continu de paquets SYN, tout en ignorant le SYN/ACK réponses. Cela laisse au serveur un grand nombre de connexions à moitié ouvertes qui resteront en place pendant un certain temps; si l'attaquant peut envoyer des paquets assez rapidement, le serveur ne pourra pas répondre aux demandes authentiques. Un serveur mal écrit peut même manquer de mémoire et se bloquer.

La défense standard contre les inondations SYN est cookies SYN :

  1. Le client envoie un paquet SYN.
  2. Le serveur répond par un SYN/ACK paquet avec des valeurs soigneusement sélectionnées pour certains paramètres TCP qui lui permettent d'identifier le ACK répondant.
  3. Le client répond avec un paquet ACK basé sur ces paramètres, établissant la connexion. Le serveur alloue maintenant des ressources pour suivre la connexion.

En retardant l'allocation des ressources jusqu'à ce que la connexion soit entièrement établie, il n'y a plus l'asymétrie d'effort qui rend l'attaque par inondation pratique.

18
Mark

Un DDoS ne plante généralement pas un serveur. Il le surcharge, le rendant inaccessible pour une utilisation normale. La "meilleure" façon d'y parvenir dépend de la fonction du serveur et de la façon dont il est configuré. Il existe de nombreuses façons de procéder, pour n'en nommer que quelques-unes:

  • surcharger l'interface réseau avec du trafic afin qu'il soit rempli d'ordures et que le trafic légitime n'atteigne pas le serveur
  • épuiser le pare-feu en créant un grand nombre de sessions, tant il ne peut pas suivre l'état de la session et n'acceptera pas de nouvelles sessions
  • déclencher rapidement des requêtes (par exemple, des pages Web ouvertes sur un serveur Web) qui nécessitent beaucoup de ressources pour être générées (par exemple, des calculs complexes ou des recherches de base de données). Cela réduit la disponibilité du processus serveur et augmente la charge sur le processeur.
  • remplir des disques, par exemple en créant de nombreuses entrées de journal ou en téléchargeant des données
10
Teun Vink

Habituellement, les attaques DDoS sont ce qu'on appelle des attaques de couche 4. Ceux-ci utilisent souvent des inondations SYN et visent à épuiser toute la bande passante disponible. Tout comme vous ne pouvez pas télécharger des films à une vitesse illimitée depuis votre ordinateur personnel, un serveur ne peut pas accepter les demandes entrantes et envoyer des réponses sortantes à un taux illimité. Bien sûr, un serveur peut avoir plus de bande passante que vous, mais les plus grandes attaques DDoS utilisent des centaines de gigabits par seconde!

Il y a ensuite ce qu'on appelle les attaques de couche 7. Il s'agit souvent d'attaques non distribuées visant certaines ressources comme le processeur ou l'espace disque. Alors qu'une attaque de couche 4 est universelle, une attaque de couche 7 doit viser une faiblesse spécifique de la victime. Habituellement, quelque chose de très gourmand en ressources (qui n'est pas mis en cache) comme la recherche en texte intégral est utilisé comme cible. Comme vous le dites, une prise de contact SYN-ACK ne consomme pas beaucoup de ressources, ce qui serait un mauvais choix pour une attaque de niveau 7.

Donc, en conclusion:

  • Une attaque de couche 4 peut utiliser des paquets SYN, mais vise la bande passante et non l'utilisation du processeur.
  • Une attaque de couche 7 pourrait viser l'utilisation du processeur, mais n'utiliserait pas les paquets SYN.
10
Anders