.

Attaque Dos


reseausale.blogspot.com
Une attaque par déni de service (denial of service attack, d'où l'abréviation DoS) est une attaque ayant pour but de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser. Il peut s'agir de :
  • l’inondation d’un réseau afin d'empêcher son fonctionnement
  • la perturbation des connexions entre deux machines, empêchant l'accès à un service particulier
  • l'obstruction d'accès à un service à une personne en particulier
L'attaque par déni de service peut ainsi bloquer un serveur de fichiers, rendre impossible l'accès à un serveur web, empêcher la distribution de courriel dans une entreprise ou rendre indisponible un site internet.
Le pirate n'a pas forcément besoin de matériel sophistiqué. Ainsi, certaines attaques DOS peuvent être exécutées avec des ressources limitées contre un réseau beaucoup plus grand et moderne. On appelle parfois ce type d'attaque « attaque asymétrique » (en raison de la différence de ressources entre les protagonistes). Un pirate avec un ordinateur obsolète et un modem lent peut ainsi neutraliser des machines ou des réseaux beaucoup plus importants.
Les attaques en déni de service se sont modifiées au cours du temps (voir historique).
Tout d'abord, les premières n'étaient perpétrées que par un seul « attaquant » ; rapidement, des attaques plus évoluées sont apparues, impliquant une multitude de « soldats », aussi appelés « zombies ». On parle alors de DDoS (distributed denial of service attack). Ensuite, les attaques DoS et DDoS étaient perpétrées par des pirates seulement attirés par l’exploit et la renommée. Aujourd’hui, il s'agit majoritairement d'organisations criminelles, essentiellement motivées par l'argent. Ainsi, certains pirates se sont spécialisés dans la « levée » d’armées de « zombies », qu’ils peuvent ensuite louer à d’autres pirates pour attaquer une cible particulière. Avec la forte augmentation du nombre d’échanges commerciaux sur Internet, le nombre de chantages au déni de service a très fortement progressé[1] (un pirate lance une attaque en DoS ou DDoS contre une entreprise et lui demande une rançon pour arrêter cette attaque !).

Exploitation des failles ou des limites des machines 

Une des attaques les plus courantes consistait à envoyer un paquet ICMP de plus de 65 535 octets. Au dessus de cette limite, les piles IP ne savaient pas gérer le paquet proprement, ce qui entrainait des erreurs de fragmentation UDP, ou encore les paquets TCP contenant des « flags » illégaux ou incompatibles.
Les piles actuelles résistent à ce type d’attaques. Néanmoins, les délais de traitement de ce genre de paquets restent plus longs que ceux nécessaires pour traiter les paquets légitimes. Ainsi, il devient commun voire trivial de générer une consommation excessive de processeur (CPU) par la simple émission de plusieurs centaines de milliers d’anomalies par seconde, ce qu’un outil tel que hping3 permet en une unique ligne de commande...
Ex : [root@localhost root]# hping3 -SARFU -L 0 -M 0 -p 80 www.reseausale.blogspot.com --flood
Avec l'arrivée du haut débit et l'augmentation de la puissance des ordinateurs personnels, le potentiel d'attaque a été décuplé, mettant en évidence la faiblesse des installations développées il y a plusieurs années. Cette augmentation permet à quasiment toutes les anomalies d’être à l’origine d’un déni de service, pourvu qu’elles soient générées à un rythme suffisamment important.
Par exemple :
  • l’usage des champs « réservés » de l’en-tête TCP
  • le positionnement d’un numéro de séquence d’accusé de réception dans un paquet SYN
  • des paquets dont l’en-tête de couche 4 (TCP/UDP) est tronqué en dépit de checksums corrects

Attaque par déni de service SYN Flood 

Article détaillé : SYN flood.
Une attaque SYN Flood est une attaque visant à provoquer un déni de service en émettant un nombre important de demandes de synchronisation TCP incomplète avec un serveur. Quand un système (client) tente d'établir une connexion TCP vers un système offrant un service (serveur), le client et le serveur échangent une séquence de messages. Le système client commence par envoyer un message SYN au serveur. Le serveur reconnaît ensuite le message en envoyant un SYN-ACK message au client. Le client finit alors d’établir la connexion en répondant par un message ACK. La connexion entre le client et le serveur est alors ouverte, et le service de données spécifiques peut être échangé entre le client et le serveur. Voici une vue de ce flux de messages:
     Client                  Server
           ------                  ------
           SYN-------------------->
             <--------------------SYN-ACK
            ACK-------------------->
Le risque d'abus se pose à l'endroit où le système de serveur a envoyé un accusé de réception (SYN-ACK) au client, mais ne reçoit pas le message ACK. Le serveur construit dans sa mémoire système une structure de données décrivant toutes les connexions. Cette structure de données est de taille finie, et elle peut être débordée en créant intentionnellement trop de connexions partiellement ouvertes.
Créer des connexions semi-ouvertes s’accomplit facilement avec l'IP spoofing. Le système de l'agresseur envoie des messages SYN à la machine victime; ceux-ci semblent être légitimes, mais font référence un système client incapable de répondre au message SYN-ACK. Cela signifie que le message ACK final ne sera jamais envoyé au serveur victime.
Normalement il y a un délai d'attente associé à une connexion entrante, les semi-connexions ouvertes vont expirer et le serveur victime pourra gérer l’attaque. Toutefois, le système agresseur peut simplement continuer à envoyer des paquets IP falsifiée demandant de nouvelles connexions, plus rapides que le serveur victime.
Dans la plupart des cas, la victime aura des difficultés à accepter toute nouvelle connexion réseau entrante. Dans ces cas, l'attaque n'affecte pas les connexions entrantes, ni la possibilité d'établir des connexions réseau sortant. Toutefois, le système peut saturer la mémoire, ce qui provoque un crash rendant le système inopérant.

UDP Flooding 

Ce déni de service exploite le mode non connecté du protocole UDP. Il crée un "UDP Packet Storm" (génération d’une grande quantité de paquets UDP) soit à destination d’une machine soit entre deux machines. Une telle attaque entre deux machines entraîne une congestion du réseau ainsi qu’une saturation des ressources des deux hôtes victimes. La congestion est plus importante du fait que le trafic UDP est prioritaire sur le trafic TCP. En effet, le protocole TCP possède un mécanisme de contrôle de congestion, dans le cas où l’acquittement d’un paquet arrive après un long délai, ce mécanisme adapte la fréquence d’émission des paquets TCP et le débit diminue. Le protocole UDP ne possède pas ce mécanisme. Au bout d’un certain temps, le trafic UDP occupe donc toute la bande passante, ne laissant qu’une infime partie au trafic TCP.
L’exemple le plus connu d’UDP Flooding est le « Chargen Denial of Service Attack ». La mise en pratique de cette attaque est simple, il suffit de faire communiquer le service chargen d’une machine avec le service echo d’une autre. Le premier génère des caractères, tandis que le second se contente de réémettre les données qu’il reçoit. Il suffit alors au pirate d’envoyer des paquets UDP sur le port 19 (chargen) à une des victimes en spoofant l’adresse IP et le port source de l’autre. Dans ce cas, le port source est le port UDP 7 (echo). L’UDP Flooding entraîne une saturation de la bande passante entre les deux machines, il peut donc neutraliser complètement un réseau.

Packet Fragment

Les dénis de service de type Packet Fragment utilisent des faiblesses dans l’implémentation de certaines pile TCP/IP au niveau de la défragmentation IP (réassemblage des fragments IP).
Une attaque connue utilisant ce principe est Teardrop. L’offset de fragmentation du second fragment est inférieur à la taille du premier ainsi que l’offset plus la taille du second. Cela revient à dire que le deuxième fragment est contenu dans le premier (overlapping). Lors de la défragmentation, certains systèmes ne gèrent pas cette exception et cela entraîne un déni de service. Il existe des variantes de cette attaque : bonk, boink et newtear. Le déni de service Ping of Death exploite une mauvaise gestion de la défragmentation au niveau ICMP, en envoyant une quantité de données supérieure à la taille maximum d’un paquet IP. Ces différents dénis de services aboutissent à un crash de la machine cible.

Smurfing 

Cette attaque utilise le protocole ICMP. Quand un ping (message ICMP ECHO) est envoyé à une adresse de broadcast (par exemple 10.255.255.255), celui-ci est démultiplié et envoyé à chacune des machines du réseau. Le principe de l’attaque est de spoofer les paquets ICMP ECHO REQUEST envoyés en mettant comme adresse IP source celle de la cible. Le pirate envoie un flux continu de ping vers l’adresse de broadcast d’un réseau et toutes les machines répondent alors par un message ICMP ECHO REPLY en direction de la cible. Le flux est alors multiplié par le nombre d’hôte composant le réseau. Dans ce cas tout le réseau cible subit le déni de service, car l’énorme quantité de trafic générée par cette attaque entraîne une congestion du réseau.

Programmes disponibles sur Internet 

  • Ping ’O Death : il s’agit de saturer un routeur ou un serveur en envoyant un nombre important de requêtes ”ICMP REQUEST” dont les datagrammes dépassent la taille maximum autorisée. Des patches existent afin de se prémunir de ce type d’agression sous les systèmes MacOs, Windows NT/9x, Sun [Oracle] Solaris, Linux et Novell Netware.
  • Land - Blat : il s’agit d’envoyer un paquet forgé (spoofé) contenant le flag SYN sur un port donné (comme 113 ou 139 par exemple) et de définir la source comme étant l’adresse de la station cible. Il existe un certains nombre de patches pour ce ”bug” pour les systèmes UNIX et Windows.
  • Jolt : spécialement destinée aux systèmes Microsoft (NT, 9x et 2000), cette attaque permet de saturer le processeur de la station qui la subie. La fragmentation IP provoque, lorsque l’on envoie un grand nombre de fragments de paquets identiques (150/sec), une saturation totale du processeur durant toute la durée de l’attaque. Des pré-patches existent déjà pour tenter de contrer ce type d’attaque.
  • TearDrop - SynDrop : problème découvert dans l’ancien noyau du système Linux dans la partie concernant la fragmentation des paquets IP. Il s’agit d’un problème de reconstruction du paquet. Lorsque le système reconstitue le paquet, il exécute une boucle qui va permettre de stocker dans un nouveau ”buffer” tous les paquets déjà reçus. Il y a effectivement un contrôle de la taille du paquet mais uniquement si ce dernier est trop grand. S’il est trop petit cela peut provoquer un problème au niveau du noyau et planter le système (problème d’alignement des paquets). Ce problème a également été observé sur les systèmes Windows (NT/9x) et des patches sont dès à présent disponibles.
  • Ident Attack : ce problème dans le daemon identd permet aisément de déstabiliser une machine UNIX qui l’utilise. Un grand nombre de requêtes d’autorisation entraine une instabilité totale de la machine. Pour éviter cela, il faut installer une version plus récente du daemon identd ou alors utiliser le daemon pidentd-2.8a4 (ou ultérieur).
  • Bonk - Boink : même problème que le TearDrop mais légèrement modifié afin de ne pas être affecté par les patches fournis pour le TearDrop. Il existe de nouveaux patches mieux construits qui permettent également d’éviter ce nouveau type d’attaque.
  • Smurf : ce programme utilise la technique de l’”ICMP Flood” et l’amplifie de manière à créer un véritable désastre sur la (ou les) machines visées. En fait, il utilise la technique du ”Broadcast Ping” afin que le nombre de paquets ICMP envoyés à la station grandisse de manière exponentielle causant alors un crash presque inévitable. Il est difficile de se protéger de ce type d’attaque, il n’existe aucun patch mais des règles de filtrage correctes permettent de limiter son effet.
  • WinNuke : il s’agit encore d’un programme permettant de ”crasher” les systèmes Windows NT/95 par l’envoie de données de type ”OOB” (Out Of Band) lors d’une connexion avec un client Windows. NetBIOS semble être le service le plus vulnérable à ce type d’attaque. Apparemment, Windows ne sait pas comment réagir à la réception de ce type de paquet et il ”panique” . . . De nombreux patches existent contre ce type d’attaque et les versions postérieures de Windows (à partir de Windows 98/2000) sont dès à présent protégées.
  • SlowLoris : Un script en Perl ciblant les serveurs web.


Le Mot-Clé :denial of service,ddos attack,what is a ddos attack,dos and ddos,how to ddos attack,ddos as a service,ddos service,how to dos attack,what is denial of service attack,dos denial of service attacks,what is a denial of service attack,ddos,how to ddos,ddos and dos,dos ddos,what is a dos attack,what is dos attacks,ddos denial of service,paquets, ICMP, type d’attaque,Windows