UDP + serveur memcached exposé = attaque DDos massive !
Depuis fin février, les attaques utilisant memcached comme vecteur d’amplification se sont multipliées. Le service de mémoire cache distribué, très utilisé, peut en effet multiplier jusqu’à 51 200 fois la taille du paquet envoyé au serveur cible. Avec près de 90 000 serveurs memcached connectés à Internet, non protégés et port UDP ouvert, on comprend que ce vecteur soit devenu, en quelques jours, très prisé des attaquants.
Le 28 février dernier, Github subit une attaque DDoS. Rien de nouveau sous le soleil, le célèbre site est fréquemment la cible de campagnes malveillantes. Mais cette fois- ci, l’infrastructure d’Akamai, sur laquelle est venue se réfugier Github, doit encaisser une attaque atteignant un pic à 1,3 Tbps, supérieure à celui enregistré lors de l’attaque de DynDNS en octobre 2016, alors considérée comme la plus importante enregistrée à ce jour. Autre fait notable à propos de cette attaque, celle- ci ne s’appuie pas sur un botnet d’objets connectés ou de type Mirai. Il s’agit là d’une attaque par amplification exploitant une faille du service memcached, joliment affublée par Cloudflare de l’appellation « memcrashed » . Le 1er mars, c’est au tour du patron d’OVH, Octave Klaba, de rapporter sur Twitter avoir absorbé une attaque similaire avec, là encore, un pic à 1,3 Tbps. Memcached est un système de mémoire cache distribuée, qualifiée par OVH de « service de base de données à clé- valeur en mémoire à stockage non persistant » , mettant en cache des données – contenu statique et résultats de requête – afin de réduire le nombre de fois qu’une source de données externes doit être lue. De fait, memcached est fréquemment utilisé pour améliorer les performances des sites web, d’autant qu’il est opensource. On le retrouve ainsi chez YouTube, Reddit, Facebook ou encore Twitter. Par défaut, il est connecté sur le port TCP 11211 mais aussi UDP 11211. « Pour les très grandes installations où le nombre de clients est suffisamment élevé pour que le nombre de connexions TCP provoque des difficultés d’échelle, il existe également une interface basée sur UDP » , écrivent les développeurs de memcached. Et c’est l’avantage – mais aussi l’inconvénient – d’User Datagram Protocol, « c’est l’un des meilleurs protocoles à utiliser pour l’amplification ! » , signale Cloudflare. « Il n’y a absolument aucune vérification, et les données seront livrées au client, à une vitesse fulgurante ! De plus, la requête peut être minuscule et la réponse énorme. »
Amplification : x 51 200
Additionnons maintenant ce facteur à un grand nombre de serveurs memcached non protégés par une authentification et
connectés à Internet, au nombre de 88 000, selon Shodan, principalement aux États- Unis, en Chine et en France. On obtient alors la possibilité de réaliser des attaques par déni de service distribué de grande ampleur en employant des techniques d’usurpation d’adresses IP classiques. Plus concrètement, un attaquant utilise un serveur usurpant l’IP de sa victime et envoie sur le port UDP 11211 d’un nombre x de serveurs memcached non protégés une requête falsifiée. Les serveurs memcached envoient alors leur réponse à la requête vers la cible, la noyant sous les données. L’amplification utilisant « memcrashed » fait son petit effet : Cloudflare explique que pour un paquet de requête de 15 octets, la réponse du serveur est comprise entre 134 et 750 Ko. Soit un vecteur d’amplification pouvant attendre 51 200. « Le meilleur facteur d’amplification qu’on ait jamais vu » , souligne Xavier Daspre, Enterprise Security Architect chez Akamai. Jusqu’alors peu connu dans le petit monde des DDoS, l’utilisation de memcached comme protocole d’amplification a connu un boom de popularité fin février, à en croire l’observatoire DDoSMon mis en place par la société de sécurité informatique chinoise Qihoo 360 ( https:// ddosmon. net/ memcached_ amplification_ attack). Si son utilisation semble se tasser au moment où nous écrivons ses lignes ( grâce au « killswitch » ? lire l’encadré). Mais mieux vaut ne pas crier victoire trop tôt, les chercheurs ne dénombrent qu’environ 6 000 adresses IP uniques liées à des serveurs memcached vulnérables utilisés pour des attaques, quand Shodan, rappelons- le, en recense 88 000. Sur son blog, OVH indique que « si un petit nombre de services Memcached ouverts a rapidement été corrigé, ils sont encore très nombreux à demeurer utilisables pour commettre des attaques […] Il semblerait que la menace de Memcached soit partie pour durer dans le temps. Même si les protections mises en place par les hébergeurs ont drastiquement réduit la taille des attaques, la majorité est à présent inférieure à 100 Gbps, la correction de la configuration par les utilisateurs reste la clef » .
La sécurité, l’affaire de tous
Notons que, avant sa version 1.5.6, dernière en date, memcached autorisait par défaut les connections TCP et UDP. Les développeurs de memcached expliquent eux- mêmes dans leur documentation technique que le service ne fait « pas beaucoup, voire aucun, effort pour assurer sa défense contre les connexions internet aléatoires. Vous ne devez donc pas exposer directement memcached à Internet, ni à d’autres utilisateurs non autorisés » . Mais pour peu que le serveur soit accessible, et non abrité derrière un firewall, n’importe qui peut y envoyer des données. Il est donc nécessaire de le sécuriser. Si une connexion UDP n’est pas indispensable ( 99 % des utilisateurs n’en ont pas besoin, selon OVH), il ne reste plus qu’à désactiver l’écoute du protocole grâce à la commande – U 0. Il est également conseillé de couper le serveur d’Internet en limitant l’adresse d’écoute à 127.0.0.1, ou en forçant l’écoute sur une IP privée si d’autres machines doivent pouvoir s’y connecter. En outre, « la parade la plus simple, c’est de positionner un firewall classique devant son serveur » , ajoute Xavier Daspre. Les hébergeurs ont également mis en place des mesures de leur côté, le géant roubaisien annonçant par exemple que, plutôt que de bloquer le port UDP 11211 – ce qui risque d’avoir quelques fâcheuses conséquences pour les services l’utilisant –, il a placé « sous mitigation permanente » les adresses IP recevant un très grand nombre de requêtes Memcached par seconde et donc identifiées comme contribuant à des attaques DDoS. Digital Ocean, AWS et Linode ont également procédé à des mesures similaires. Ce qui ne doit pas pour autant empêcher les utilisateurs et administrateurs système de sécuriser leurs serveurs : « La vulnérabilité, même si tout le monde a été mis en garde, reste ouverte » , avertit l’Enterprise Security Architect d’Akamai. ❍