bmweb.fr

Attaque par déni de service (DoS/DDoS)

Définition attaque par déni de service

  • L’attaque par déni de service consiste à bloquer un service sur le réseau.
  • L’attaque peut être en ligne comme par exemple pour bloquer un site web ou hors ligne comme par exemple une attaque par ransomware qui bloquerait une base de données servant pour un site web.
  • Il y a deux type d’attaque par déni de service. L’attaque simple depuis un seul point (DOS, Deny Of Service) ou depuis plusieurs points d’attaque , que l’on appelle attaque distribuée (DDOS, Distributed Deny Of Service).

Attaques DDOS dans le monde (historique et j-1)

  • Attaques du 31/12/2017 dans le monde :
Attaques DDOS dans le monde (historique et j-1)

Déroulement d’une attaque TCP SYN flood

  • L’attaque la plus connu de déni de service est le TCP SYN FLOOD. Elle concerne le protocole TCP.
  • Pour établir une connexion TCP/IP :
    • Le client envoie un segment SYN au serveur pour ouvrir une "socket" (Point de connexion TCP).
    • Le serveur lui répond par un segment SYN/ACK.
    • Le client confirme la réponse du serveur par un segment ACK.
Déroulement d’une attaque TCP SYN flood
    • Le client qui initialise la socket envoie son numéro de séquence dans le champ numéro de séquence du segment SYN (par exemple : x).
    • Le serveur utilise son numéro de séquence initial dans le champ "numéro de séquence" dans sa réponse SYN/ACK (par exemple y) et ajoute 1 au numéro de séquence du client (x+1) dans le champ "numéro d’acquittement" du segment.
    • Le client confirme la connexion en envoyant un ACK avec son numéro de séquence augmenté de 1 et un numéro d’acquittement correspondant au numéro de séquence du serveur +1.
  • Quand un client envoie un SYN, le serveur alloue un espace mémoire pour la suite des échanges avec ce client.
  • Une attaque TCP SYN FLOOD est une attaque DDOS distribuée depuis de nombreux objets connectés et/ou PC qui envoient des demandes d’ouverture de socket TCP à un même serveur. Ce serveur réservant une place mémoire pour chacune des sockets demandées, sa mémoire est alors rapidement saturée et finit par se mettre hors-service

Pré-requis et environnement

  • VM : Kali Linux et Windows 7 allumés

Windows > Voir l’état du CPU avant l’attaque

  • Dans la VM Widows, faire un clic-droit sur la barre des tâches et choisir "Start Task Manager" :
Windows > Voir l’état du CPU avant l’attaque
  • L’utilisation normale du CPU avoisine les 0 % :
Windows > Voir l’état du CPU avant l’attaque

Kali > Hping > Lancer une attaque DOS

  • Dans Kali Linux, ouvrir le terminal et taper :
root@kali:~# hping3 10.0.2.7 --flood -S -p 445 -d 1200
HPING 10.0.2.7 (eth0 10.0.2.7): S set, 40 headers + 1200 data bytes
hping in flood mode, no replies will be shown
^C
--- 10.0.2.7 hping statistic ---
1253194 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
  • Pour arrêter, taper Ctrl+C  :
^C
--- 10.0.2.7 hping statistic ---
1253194 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms

Windows > Voir l’état du CPU pendant l’attaque

  • Une fois l’attaque lancée, le pourcentage du CPU utilisé monte entre 50 et 60 % :
Windows > Voir l’état du CPU pendant l’attaque
  • Sous Linux, si vous lancez un autre terminal et que vous lancez une deuxième fois la même commande, le CPU grimpe à 75 % :
Windows > Voir l’état du CPU pendant l’attaque
  • Imaginez si ce n’est pas 2 attaques mais des centaines de machines (PC ou objets connectés) qui envoient ces mêmes commandes :
Windows > Voir l’état du CPU pendant l’attaque

Se protéger des attaques DDOS

Bertrand Mounier

bm@bmweb.fr

Haut de page