Memcrashed : déni de service distribué et amplifié

le

Bearstech | Dernière mise à jour : 2018-03-13

Dans sa configuration par défaut, Memcached peut être exploité pour relayer une attaque par déni de service sur le protocole UDP, avec un facteur d'amplification record.

Memcrashed

Memcached est une solution libre de cache distribuée, largement déployée, visant à améliorer la réactivité et l'affichage des applications web. Particulièrement utile sur les sites à fort trafic, il fait usage de la mémoire vive de la machine pour le chargement de certains éléments de pages web. Par défaut, Memcached écoute en INADDR_ANY (sur toutes les interfaces locales) et a le support UDP activé, ce qui le rend de fait vulnérable.

Publié tout récemment, un script exploite cette vulnérabilité de Memcached, permettant la réalisation de dénis de services distribués et réfléchis sur une cible tierce. Le facteur d'amplification rarement vu jusque là permet avec une connexion relativement modeste de paralyser des cibles importantes (sites à fort trafic, serveurs DNS...). Ce sont les chercheurs de Cloudflare, d'Arbor Network et de Qihoo 360 qui ont signalé une recrudescendescence de l'exploitation de cette vulnérabilité depuis maintenant un peu plus d'une semaine. L'exploit utilise l'API du moteur de recherche Shodan pour détecter les serveurs vulnérables. Le weekend dernier, on en dénombrait plus de 100 000.

Si le mécanisme de l'attaque lui même est bien connu, c'est cette fois son efficacité qui inquiète. Fonctionnant sur le protocole UDP, il permet de spoofer l'adresse IP d'origine, garantissant ainsi un relatif anonymat à l'attaquant. Ceci est du au fait que le protocole UDP, contrairement à TCP, n'est pas un protocole nécessitant l'établissement d'une communication comprenant une séquence de négociation, aucun contrôle n'est effectué et les données sont acheminées de manière très performante. Ainsi l'attaquant peut définir une adresse source fantaisiste et dissimuler plus aisément sa véritable adresse IP et profiter de performances optimales, garantissant ainsi l'efficacité de son attaque.

Les attaques sur le protocole UDP complexifient également les stratégies de défense classiques de mitigation. Les paquets UDP spoofés sont envoyés massivement sur un ou plusieurs serveurs vulnérables, qui amplifieront leur taille d'origine, pour enfin cibler la victime finale avec les réponses légitimes produites. Dans le cadre d'un déni de service par paquets UDP fragmentés, l'attaquant cherchera à envoyer de plus gros paquets UDP mais en les fragmentant pour les envoyer en grand nombre et ainsi occuper plus encore de bande passante sur sa cible. Pire, en essayant de réassembler les paquets fragmentés, la cible peut voir ses propres ressources exploitées à leur maximum, et ceci peut même conduire à son redémarrage.

Spoofing

Le proof of concept Memcrashed consiste lui en l'envoi de paquets UDP spoofés sur le port 11211 des serveurs où une configuration vulnérable de Memcached est disponible afin de distribuer l'attaque. Les requêtes UDP de l'attaquant se transforment ainsi en réponses "légitimes" qui sont acheminées vers la cible. Cloudflare explique qu'une requête de 15 octets se transforme en une réponse de 750kB soit une amplification de x51200.

Pour se prémunir, il est conseillé d'ajouter une règle de firewall pour bloquer le port 11211 ou en limiter l'accès. Si vous n'avez pas besoin du protocole UDP, vous pouvez le désactiver avec l'option -U 0 du service.

Pour éviter cette faille vous pouvez opter, comme nous le faisons chez Bearstech, pour un déploiement de Memcached sans interface publique. Nos clients peuvent tout de même profiter du support UDP qui est activé, en toute sécurité. Depuis notre réseau, il est impossible de "spoofer" une IP source ne nous appartenant pas.

Enfin, Bearstech a fait le choix de Debian GNU/Linux qui installe Memcached en écoute sur 127.0.0.1 par défaut et propose donc une installation sécurisée.

Service Audit Sécurité memcached

Bearstech vous propose ses services Audit Sécurité memcached

Découvrir ce service

Partager cet article

Flux RSS

flux rss

Partager cet article :