Comme nous l'avons vu précédemment il existe différents types d'attaques de deni de service. Nous rappellerons que le but du jeu est de mettre la cible hors ligne. Commençons le jeu.
Exploiter une vulnérabilité
C'est la première forme d'attaque, par exemple certains systèmes d'exploitation ont pu dans le passé mal géré des paquets réseaux fragmentés (ne vous en faite pas, cela peut revenir). Généralement, lorsqu'un paquet est trop grand pour un réseau, il est divisé en plusieurs plus petits paquets. Une marque dans le paquet indique que celui-ci est fragmenté, c'est au récepteur de réassembler le paquet. Si maintenant ce paquet n'est pas fragmenté, à dessein, correctement (par exemple offset négatif, chevauchement,...). Ceci est un exemple connu sous les noms évocateurs de bonk, boink, teardrop, ou newtear. Obsolète cette méthode, c'est vous qui le dites. Ne vous en faite pas on trouvera bien des vulnérabilités de ce type dans le futur. Mais ne vous en faites pas, il existe des patches pour les exploits sus cités.
Attaque du protocole
L'exemple évident est l'attaque TCP SYN. Ce type d'attaque tire partie du processus de connexion tcp (dite Three way Handshake), en créant des connexions demi ouverte (half open) qui oblige le serveur a alloué des ressources en attendant le ack du client (qui bien sûr ne viendra jamais, il faudra donc attendre un time out pour libérer les ressources). Si le time out de la machine est mal réglé, le serveur n'accepte plus de nouvelles connexions... donc deni de service. Pour réaliser cette attaque, il suffit de repérer un port ouvert sur le serveur victime. Une petite quantité de paquets peut suffire. On peut aussi inonder tous les ports ouverts de la victime pour saturer l'infrastructure réseau plutôt que la machine cible. Une paramétrisation plus fine du protocole peut souvent résoudre ce problème. Il existe de nombreuses variantes à cette technique d'attaque, comme par exemple établir une connexion complète en envoyant un ack sur un seq différent.
Middleware
On peut aussi attaquer une fonction de hashing basique. En injectant des valeurs qui forcent les plus mauvaises conditions de calcul. La machine cible augmente d'autant son temps de calcul jusqu'à excéder son utilisation de processeurs ou mémoire. Bien sûr la plupart du temps, ce type de vulnérabilité peut être corrigée, la plupart du temps. C'est une attaque insidieuse, car elle ne se fait pas par inondation, et peut perturber seulement le middleware pas le reste, ce qui la rend difficile à détecter même pour les outils de détection d'attaque DOS/DDOS.
Application
L'attaquant peut cibler l'application elle-même, et envoyer des paquets pour atteindre les limites de celle-ci. Par exemple, un serveur web peut fournir 1000 requêtes par seconde. Si l'attaquant dispose d'un botnet de 10 000 machines, il lui est alors aisé d'envoyer plus de 1000 requêtes par seconde pour saturer le serveur.
_