DoS – Schémas des attaques et contre-mesures

L’indisponibilité d’un service est en informatique appelé denial of service (DoS), ou déni de service en français. Un déni de service apparait normalement quand il y a une surcharge des composants individuels de l’infrastructure informatique. Si cela est provoqué délibérément par un acteur extérieur, on parle alors d’attaque DoS - notamment lorsqu’une attaque inonde une cible URL avec un tel nombre de requêtes que le serveur ne peut pas traiter. Cela signifie que les périphériques réseau, les systèmes d’exploitation ainsi que les services des serveurs ne sont pas en mesure de répondre dans le temps imparti voire sont dans l’incapacité de traiter les requêtes. Une technique particulièrement efficace est lorsque le système est inondé de requêtes provenant de plusieurs ordinateurs : ceci est connu sous le nom d’attaque DDoS, ce qui diffère d’une attaque DoS est l’utilisation de très nombreux botnets (réseau de bots informatiques) au lieu d’un seul.

Qu’est-ce qu’un DDoS ?

Une forme courante de DoS est l’attaque par déni de service distribué ou DDoS (de l’anglais Distributred Denial of Service). Au lieu de simplement utiliser un ordinateur, les cyber-criminels inondent les systèmes de très nombreuses requêtes venant de plusieurs ordinateurs qui sont combinées ensemble pour former un gigantesque botnet. En utilisant ces réseaux, un plus grand trafic est ainsi généré plutôt qu’avec une simple attaque DoS. Les attaques DDoS ont des effets importants sur les systèmes touchés et l’espoir de localiser la source de l’attaque est assez faible. Les attaquants qui réalisent ces botnets, placent aussi des agents logiciels spécifiques sur les ordinateurs qui sont insuffisamment protégés. Ces ordinateurs peuvent ainsi être contrôlés sans que le propriétaire s’en aperçoive. Une « infection » de ce type peut survenir plusieurs mois avant que les attaques réelles de DDoS soient exécutées.

Le but des attaques DoS et DDoS

Le but de réaliser une surcharge de la bande passante est de rendre l’ordinateur inaccessible. Les attaques DoS et DDos ciblent directement les réseaux ainsi que leurs périphériques de connexion respectifs. Un routeur ne peut traiter qu’une certaine quantité de données à la fois, si cette capacité est dépassée en raison notamment d’une attaque, les services correspondants ne seront alors plus disponibles pour les autres utilisateurs. Une attaque classique DDoS pour surcharger la bande passante est l’attaque Smurf.

  • Attaque Smurf : La technique de l’attaque Smurf ou attaque par réflexion en français, est une technique de type DDoS qui profite de l’Internet Control Message Protocol (ICMP), qui permet l’échange des messages de contrôle et des rapports d’erreurs dans les réseaux informatiques. L’assaillant envoie alors des paquets d’ICMP modifiés Echo Request (Ping) à l’adresse de diffusion du réseau et utilise l’adresse IP de la cible comme adresse d‘expédition. La demande de diffusion est ensuite transmise du routeur à tous les périphériques connectés, ce qui entraine forcément l’envoie d’une réponse à l’adresse de l’expéditeur (Pong). Un réseau important avec de nombreux périphériques connectés à celui-ci peut donc nuire énormément à la bande passante ciblée.

Surcharge des ressources système

Une attaque DoS ou DDos cible les ressources d’un système et les assaillants exploitent le fait que le serveur Web peut seulement établir un nombre limité de connexions. Et si elles sont utilisées pour des demandes non valides, alors le serveur sera bloqué pour les utilisateurs. C’est ce que l’on nomme inondation (flooding en anglais). Certains exemples sont les Ping flood, SYN flodd, et UDP flood. 

  • Ping-Flood : Pour ce type d’attaque, les hackers envoient également des paquets ICMP modifiés Echo Request. Ces derniers sont généralement envoyés par des botnets à grande échelle. Les conséquences sont donc un ralentissement du système voire un blocage du système puisque ce dernier doit répondre à ce flux massif de requêtes.
  • SYN-Flood : Le SYN flood est une attaque qui vise à provoquer un déni de services et est destinée à rendre un réseau indisponible. Elle rentre dans le cadre d’un protocole TCP (Transmission Control Protocol) et le but est de submerger le serveur cible de requêtes SYN (Synchronized) en masse. En temps normal une connexion TCP est utilisée entre le serveur et un client, un échange de message doit avoir lieu et la connexion se déroule en trois temps : le SYN, le SYN-ACK et l’ACK. Le client qui veut se connecter avec le serveur doit auparavant envoyer un premier paquet de SYN au serveur. Ensuite pour répondre à cette requête, le serveur lui envoie un message SYN-ACK (/Synchronized Acknowledgment), et le client doit finalement envoyer une réponse ACK (Acknowledgment) afin de réaliser définitivement la connexion. Si la dernière étape n’est pas réalisée alors le système sera paralysé depuis le serveur puisqu’il ne dispose pas d’une confirmation finale de connexion et met ainsi du temps à libérer les ressources et génère un temps d’attente. Si un grand nombre de connexions semi-ouvertes sans message ACK apparaissent, alors il y a un risque de surcharge et les ressources du serveur peuvent être épuisées.
  • UDP-Flood : avec ce type d’attaque les hackers utilisent la connexion UDP (User Datagram Protocol). Contrairement avec la transmission TCP, les données peuvent être transférées via UDP sans avoir besoin d’une connexion établie. Concernant les attaques DoS et DDoS, les paquets UDP sont envoyés à des ports aléatoires sur le système ciblé. Le système essaie alors en vain de déterminer quelles applications sont en attente des données transférées, il en résulte un envoi à l’expéditeur de paquets ICMP avec le message « Destination inaccessible ». Si un système rencontre un grand nombre de requêtes de ce genre, cela provoque une surcharge des ressources et entraine une indisponibilité limité pour les utilisateurs.

Exploitation des failles de sécurité et erreurs de logiciels

Si un hacker trouve des failles de sécurité dans un programme ou un système, il peut donc planifier des attaques DoS ou DDoS de telle sorte que les messages d’erreurs entrainent une panne complète du système. Les attaques Ping of Death (ou Ping de la mort) et Land (local area network denial) font parties de cette catégorie d’attaque.

  • Ping of Death : Ce modèle d’attaque a pour objectif de provoquer un arrêt du système. Les hackers profitent en effet de l’exécution des erreurs du protocole internet (IP). Les paquets IP sont généralement envoyés par fragments plus petits que la taille maximale de 64 Ko. Ainsi le programme qui reçoit les paquets les réassemble et se bloque ou tombe en panne. Cela peut conduire aussi à un Buffer Overflow, qui peut ainsi endommager fortement un programme en écrivant plus de données qu’il ne peut contenir, dans le but ensuite d’écraser des parties du code de l’application et ainsi de rentrer des données nécessaire pour exploiter la panne du programme. 
  • Attaque Land : Pour ce type d’attaque, le hacker envoie un paquet SYN en lien avec le TCP à trois temps (voir ci-dessus). Le paquet SYN a la même cible et adresse d’envoi que le serveur correspondant qui doit être attaqué. Le serveur répond alors à la requête en envoyant lui-même une réponse sous la forme d’un paquet SYN/ACK. Ceci peut donc être interprété comme une nouvelle demande de connexion qui doit ainsi à nouveau être répondu avec un paquet SYN /ACK. La conséquence est donc une surcharge de capacité car le système tente en vain de répondre constamment aux requêtes, ce qui finalement paralyse le système.

Contre-mesures

Plusieurs mesures de sécurité ont étés mises au point afin de contrer les surcharges des systèmes des attaques DoS et DDoS. Par exemple, une des solutions peut être d’identifier des adresses IP critiques et de combler les failles de sécurité. En sus, il est nécessaire de fournir suffisamment de ressources matérielles et logiciels pour pouvoir compenser des attaques mineures.

  • IP-Blacklist : Blacklister permet d’identifier les adresses IP critiques et de rejeter les paquets de données. Cette mesure de sécurité peut être exécutée manuellement et automatiquement grâce à des blacklists dynamiques via le pare-feu.
  • Filtrage : Pour filtrer les paquets de donnés anormaux, il est possible de définir des limites des volumes de données dans une période spécifique. Toutefois, il faut faire attention aux proxys, en effet de nombreux clients sont enregistrés avec la même adresse IP sur le serveur et peuvent ainsi être potentiellement bloqués.
  • Cookies SYN : Les cookies SYN se concentrent sur les failles de sécurité lors d’une connexion TCP. Si ces mesures de sécurité sont générées, l’information concernant le paquet SYN ne sera plus enregistré sur le serveur, mais envoie un Crypto-cookie au client. L’attaque SYN a bien lieu mais ne surcharge pas la mémoire du système ciblé.
  • Load-Balancer: Une mesure efficace contre la surcharge est de répartir les charges sur plusieurs systèmes, ce qui est faisable grâce au Load Balancer. Ainsi la capacité matérielle disponible est repartie sur plusieurs machines physiques. A un certain niveau, cela peut être une parade contre les attaques Dos et DDoS.