webleads-tracker

Introduction

L’attaque dite smurf (en référence au nom du premier exploit codé en C qui a permis de réaliser cette attaque) est une attaque réseau dont l’objectif est d’entrainer un DoS (Denial of Service).

Si elle est encore applicable dans les réseaux d’aujourd’hui, il est relativement facile de prémunir ce type d’attaque. Le déni de service engendré par une attaque smurf est basé sur une saturation de la bande passante de la machine cible, la rendant ainsi injoignable depuis le réseau.

I.Principe de fonctionnement

1.Généralité

La smurf combine trois notions simples : le broadcast, le protocole ICMP et le spoofing. Il est donc très important de bien appréhender ces principes pour comprendre son fonctionnement.

Le broadcast est un mot quelque peu barbare employé de deux façons : pour désigner une adresse, ou pour désigner un envoi sur le réseau. On parlera ainsi d’adresse de broadcast (IP ou MAC) et d’envoi (de paquet ou de trame) en broadcast.

Lorsqu’on envoie une donnée en broadcast elle sera destinée à tous les hôtes d’un sous-réseau. Pour cela, il suffit de spécifier l’adresse de broadcast comme adresse de destination. Au niveau de la couche 3 du model OSI, l’adresse de broadcast désigne la dernière adresse IP du réseau (ou sous-réseau), tandis qu’au niveau de la couche 2 l’adresse mac de broadcast à une valeur fixe qui est FF :FF :FF :FF :FF :FF.

Pour résumer le broadcast c’est un peu comme un magasin qui souhaite distribuer une publicité pour son enseigne à tout le quartier (réseau ou sous-réseau). Pour cela, il va demander à un employé de le distribuer à tout le monde sans donner d’adresse précise (adresse de broadcast).

Le protocole ICMP, également connu sous le nom de Ping est un protocole très utilisé pour détecter les problèmes de connectivité. Dans le cadre de l’attaque smurf ce sont les ICMP type 8 et type 0 qui seront utilisé. Le fonctionnement de ces deux types est extrêmement simple. On envoi un ICMP type 8 (echo-request) à notre destinataire qui nous répondra un ICMP type 0 (echo-reply).

Le spoofing quand lui pourrait être traduit par le fait d’usurper quelque chose, plus précisément une identité. Dans le cadre d’une attaque smurf, il faudra usurper l’identité de la machine cible. Pour cela il suffira de spoofer (usurper) son adresse ip, c’est-à-dire modifier l’adresse IP source des paquets envoyés par l’attaquant par celle de la machine cible. Ainsi, les destinataires auront l’impression que c’est la cible qui leur transmet ces paquets.

2.Smurf local

Rien ne vaut un schéma pour bien comprendre :

 

Attaque Smurf et contre-mesure

En premier lieu, l’attaquant envoie une requête ICMP type 8 (echo-request) à destination du broadcast en spoofant l’adresse IP de la machine cible.

Le switch retransmet ensuite la requête à tous les hôtes du réseau.

Requête ICMP type 8 :

  • Adresse IP source : IP cible
  • Adresse IP destination : Broadcast

 

Attaque Smurf et contre-mesure

Tous les hôtes du réseau ont reçu un ICMP type 8, ils vont donc y répondre avec un ICMP type 0. Or l’adresse source étant celle de la cible, c’est à elle qu’ils vont répondre, lui saturant ainsi sa bande passante.

Sur un réseau de 30 hôtes à chaque requête ICMP type 8 de l’attaquant la machine cible recevra 30 ICMP type 0. C’est pour cela que l’attaque smurf est également appelée attaque par réflexion.

3.Smurf amplifié

Maintenant, imaginons une entreprise avec plusieurs succursales. Dans chaque succursale, il y a plusieurs VLAN et chacune est reliée en VPN aux autres. Un employé souhaite faire un DoS sur un serveur interne de l’entreprise, voir tenter un DoS sur un serveur Web grâce à la connexion internet de l’entreprise. Il peut utiliser la méthode vue précédemment. C’est-à-dire broadcaster des echo-request dans son VLAN. Il amplifiera ainsi l’attaque par le nombre de personne dans son Vlan.

Maintenant que se passera-il si il émet en plus des broadcast ICMP dans son Vlan des requêtes à destination du broadcast du VLAN voisin ? La requête sera broadcaster dans le Vlan voisin en plus du Vlan d’origine. Maintenant, imaginons qu’il broadcast à destination de tous les Vlan de toutes les succursales de l’entreprise en passant par le VPN. Les réponses seront multipliées par le nombre d’employés de l’entreprise ! De plus si l’attaque est à destination du Web il pourra combiner la connexion internet de chaque succursale pour mener son attaque. Non seulement il saturera toutes les connexions de l’entreprise vers l’extérieur, mais en plus il sera à peut prêt certain de rendre indisponible la cible.

La smurf est une attaque toute simple et extrêmement basique, mais dévastatrice tant pour les réseaux qui en sont victime, que pour ceux utilisés pour l’amplifier si aucune contre-mesure n’est prise. Nous allons faire le tour des différentes possibilités mises à notre disposition pour nous en prémunir.

Attaque-Smurf-et-contre-mesure-3

2.Contre-mesures

1.Bloquer le protocole ICMP

La première des solutions qui vienne à l’esprit est de bloquer le protocole ICMP. C’est une solution efficace, mais très radicale. Le protocole ICMP peut être très utile dans beaucoup de cas et le désactiver n’est peut-être pas la meilleure solution.

2.Désactiver le service Directed Broadcast

Sur les routeurs Cisco le service Directed Broadcast autorise un routeur à propager un message ayant pour adresse de destination l’adresse de broadcast d’un autre sous-réseau. Nous avons vu que ce type d’envoi pouvait être utilisé dans le cadre d’une attaque smurf.

3.Mise en place d’ACL

Il est conseillé de mettre en place une ACL sur votre routeur pour n’autoriser que le trafic en provenance de votre réseau à sortir. Ainsi si une personne interne à votre réseau tente de faire sortir du trafic avec une ip spoofée il sera bloqué. Exemple d’ACL :

Access-list 100 permit IP {votre réseau} {votre masque de réseau} any
Access-list 100 deny IP any any

 

4.Mettre en place des VACL

Sur les switch multicouche il est possible de mettre en place des VACL (Vlan ACL), grâce auxquelles il sera possible de filtrer le trafic au sein de chaque Vlan.

Si les switch sont compatibles avec cette technologie, il est possible de mettre une VACL pour bloquer le trafic ICMP à destination du broadcast. Ainsi, toute tentative d’attaque smurf sera immédiatement bloquée par le switch.

4.Etablir des règles de pare-feux sur les clients

Il est possible d’établir une règle de pare-feu sur les clients du réseau (comme le pare-feu Windows ou iptable sous Linux) les empêchant de répondre aux echo-request à destination du broadcast.

Ainsi, aucun poste client du réseau ne risque de servir d’amplificateur pour une attaque smurf.

5.Limiter le trafic ICMP

Jusqu’ici les contre-mesures servaient principalement à empêcher qu’un réseau soit utilisé pour mener une attaque smurf. Cependant, il est aussi possible d’être la cible de ce type d’attaque, et vue son efficacité il est préférable de s’en prémunir.

Il est pour cela possible de limiter le trafic identifié par une ACL. En l’occurrence le trafic ICMP.

La première étape est de créer une ACL autorisant le trafic ICMP :

Access-list 100 permit icmp any {votre réseau} {votre sous-réseau} echo-reply
Access-list 100 permit icmp any (votre réseau) (votre sous-réseau) echo

 

Ensuite il faut réguler le trafic traité par cette ACL :

Rate-limit input access-group 100 256000 8000 8000 conform action transmit exceed action drop

On indique ainsi que le trafic ICMP ne doit pas dépasser les 256 kb/s avec un taux en rafale de 8000 bits. Une fois dépassée cette limite tous les paquets seront supprimés.

6.Mettre de la QoS

La QoS (Quality of Service) permet de réguler le trafic en cas de congestion via un système de priorité. Or la machine ciblée par l’attaque smurf voit sa bande passante devenir complètement saturé empêchant ainsi le trafic légitime de l’atteindre.

Il est ainsi possible de mettre en place de la QoS et une gestion du queuing rendant le trafic légitime prioritaire sur le trafic ICMP. Ainsi lors d’une attaque smurf le trafic ICMP ne sera pas entièrement redirigé vers la cible au profit du trafic légitime qui sera prioritaire.

Les attaques smurf sont dévastatrices, mais relativement facile à contrer, il faut donc absolument s’en prémunir.