DDoS amplifiée via Memcached exposé, ou quand un problème en cache un autre
Avez vous déjà entendu parler de GitHub ? L’une des victimes les plus populaires de l’attaque par déni de service. Celle-ci a pour but de rendre votre serveur indisponible. De nos jours, on estime qu’il existe près de 100 000 serveurs permettant de réaliser ce type d’attaque.
La semaine dernière, le web a connu sa plus grande attaque par déni de service : DDoS amplifiée via Memcached exposé. La plus populaire des victimes étant GitHub, dont les logs affichent une montée en charge équivalant à 1.3Tbps (1300 Gbps).
Cette attaque utilise la technique d’usurpation d’IP en forgeant des paquets dont l’IP de provenance a été modifiée afin de correspondre à celle de la victime.
Elle est également combinée à une amplification de requête liée au fonctionnement de Memcached qui, par une simple requête de quelques bytes, est capable d’en renvoyer 50 000 fois plus en tant que réponse lorsque le cache est rempli.
En effet, Memcached est un système de cache qui permet d’améliorer la vitesse de réponse des sites web en stockant en cache le contenu des bases de données. Afin de permettre l’usurpation d’IP, les attaquants ont utilisé le protocole UDP.
Protégez votre site avec le scanner HTTPCS
Etude menée par HTTPCS
HTTPCS a mené une étude afin de déterminer :
- 1- Une estimation du nombre de serveurs Memcached impactés.
- 2- Les différents contenus utilisés pour remplir le cache.
MÉTHODOLOGIE :
- 1- Récupération d’IP de serveurs Memcached via Shodan.
- 2- Extraction des clés et valeurs contenues dans le cache.
- 3- Analyse détaillée du contenu des caches.
Les résultats sur plus de 5000 serveurs Memcached sont les suivants :
34% contiennent une note de rançon d’un montant de 50 XMR (~15 000€).
10% contiennent la description complète de Nginx (disponible ici :https://nginx.org/en/).
Ceci rappelle l’exploit posté sur Exploit-DB le 05/03 utilisant, lui, le contenu de la page Google.
2% contiennent des suites de caractères aléatoires (abcdefghij…, aaaaaaaaa…).
On estime qu’il existe près de 100 000 serveurs Memcached exposés sur le web et permettant de réaliser ce type d’attaque.
Après la mise en évidence de l’attaque, des conseils pour s’en prémunir ont été fournis par les hébergeurs, et notamment limiter l’écoute de l’UDP au localhost.
Memcached a également patché le logiciel afin que l’UDP n’écoute plus qu’en localhost par défaut.
(https://github.com/Memcachedd/Memcachedd/wiki/ReleaseNotes156).
Mais la sécurité de Memcached ne se limite pas à cette attaque. En effet, durant l’étude, nous avons mis en évidence que les caches peuvent être non seulement corrompus et utilisés comme vecteur de DDOS amplifié, mais également compromis lorsqu’ils contiennent des informations sensibles (ce qui est loin d’être rare).
Les recommandations d’HTTPCS
Il ne faut pas exposer votre serveur Memcached au public, ni l’UDP, ni le TCP. Car ce n’est probablement pas nécessaire et, s’il y a besoin de partager le cache avec différents serveurs, ceci doit se faire au sein d’un infrastructure qui elle, n’est pas exposée, et non directement via internet.
Et, sans attendre un correctif de l’éditeur ou des conseils des hébergeurs, deux simples règles IPTABLES permettent de limiter l’exposition et, ainsi, de se prémunir contre ce type d’attaques.
A la suite de cette étude sur l’attaque DDoS amplifiée via Memcached exposé, HTTPCS rappelle que le scanner HTTPCS est capable d’auditer les serveurs Memcached.