Comment Mirai utilise le protocole STOMP pour lancer des attaques DDoS

1
190

Dans une récente analyse de Mirai, le malware qui a récemment fait tomber KrebsOnSecurity, l’hébergeur OVH et le service américain Dyn DNS, les différents vecteurs d’attaque du botnet ont été décrites. Parmi ceux-ci, les flux STOMP (Simple Text Oriented Messaging Protocol) se démarquent, dans une large mesure parce que ce protocole n’est pas souvent observé dans les assauts DDoS.

Tribune par Bertrand de Labrouhe (Area Vice President Southern EMEA & Mediterranean) chez Imperva – Voici donc en détail comment Mirai utilise des flux de paquets STOMP parasites afin de paralyser les sites web ciblés.

Qu’est-ce que STOMP

STOMP est un simple protocole à base de texte, opérant au niveau de la couche applicative. Il s’agit d’une alternative à d’autres protocoles de messagerie ouverte, tels que AMQP (Advanced Message Queuing Protocol).

STOMP permet aux logiciels clients de communiquer avec d’autres intermédiaires de messageries, des modules de programme qui traduisent les échanges entre différents protocoles. C’est un moyen pour les applications de s’interfacer avec des programmes développés dans d’autres langages. A l’instar de HTTP, STOMP fonctionne sur TCP à l’aide des commandes suivantes :

  • CONNECT
  • COMMIT
  • SEND
  • ABORT
  • SUBSCRIBE
  • ACK
  • UNSUBSCRIBE
  • NACK
  • BEGIN
  • DISCONNECT

Une requête STOMP type est une « trame » composée d’un certain nombre de lignes. La première contient une commande, suivie d’en-têtes sous la forme <clé> : <valeur> (à raison d’une par ligne). Ensuite vient le contenu proprement dit, terminé par un caractère « null ».

Les serveurs utilisent un format similaire d’en-têtes et de contenu pour répondre au logiciel client via une trame MESSAGE, RECEIPT ou ERROR.

Comment Mirai lance une attaque TCP STOMP

Revenons à présent à Mirai. Pour lancer du trafic DDoS, le malware se sert d’un flux « TCP STOMP », une variante de l’attaque plus répandue « ACK flood ».

Le processus peut se décomposer en différentes étapes :

  1. Un botnet utilise STOMP pour ouvrir une connexion TCP authentifiée (handshake) avec une application ciblée.
  2. Après l’authentification, des données factices se faisant passer pour une requête STOMP TCP sont envoyées à la cible.
  3. L’afflux de fausses requêtes STOMP aboutit à une saturation du réseau.

4. Si la cible est programmée pour analyser les requêtes STOMP, l’attaque peut également épuiser les ressources du serveur. Même si le système écarte les paquets parasites, il doit néanmoins mobiliser des ressources pour déterminer si le message est infecté.

L’aspect intéressant est que les attaques récentes présentent certaines similitudes avec l’assaut TCP POST flood sur lequel nous avons lancé une alerte il y a plusieurs mois. Les deux types d’attaque tentent de cibler un point faible dans l’architecture des systèmes de neutralisation hybrides.

Dans ces installations, les assauts sur la couche réseau sont filtrés hors site, tandis que les attaques applicatives sont neutralisées sur site. Cela crée un goulet d’étranglement que les instances applicatives peuvent exploiter pour bloquer les connexions réseau (voir l’explication plus en détail ici).

Chaque requête d’attaque STOMP est configurée par défaut à 768 octets dans le code source de Mirai. Avec un botnet regroupant plus de 100 000 machines « zombies », il n’est pas difficile pour une attaque d’atteindre une intensité telle qu’elle peut facilement saturer la liaison montante d’un réseau d’entreprise à 5 ou 10 Gbit/s en rafale.

Cependant, une attaque utilisant moins de machines est capable de paralyser un réseau plus petit, d’autant que la taille par défaut des requêtes peut être aisément modifiée pour en augmenter l’impact.

Neutralisation des attaques DDoS STOMP

La neutralisation d’une attaque TCP STOMP nécessite une solution à même :

  1. d’identifier les requêtes malveillantes
  2. de les filtrer avant qu’elles ne puissent traverser votre réseau.

L’identification des requêtes est généralement une tâche simple. La plupart des applications ne s’attendent pas à recevoir des requêtes STOMP, par conséquent leur système de neutralisation peut éliminer la totalité du trafic indésirable sans distinction. Même lorsque ce n’est pas le cas, la taille prédéfinie des charges STOMP les rend faciles à repérer et à filtrer.

Cependant, la vraie question à se poser est la suivante : « Où vont exactement les requêtes écartées ? » Une solution matérielle qui termine le trafic TCP sur site permet aux requêtes STOMP malveillantes de traverser le réseau. Cela risque de surcharger votre réseau voire de le rendre indisponible, c’est-à- dire précisément ce qu’espèrent les auteurs de l’attaque.

Un service cloud, par contre, termine les connexions TCP à la périphérie. Cela signifie que toute attaque de ce type est bloquée à l’extérieur de votre réseau et ne sature pas votre liaison montante.

Dans les faits, les assauts STOMP sont rares. Cependant, à mesure que le malware Mirai se répand, il est probable que nous en observerons davantage dans un proche avenir. Leur existence même souligne l’intérêt d’un filtrage hors site.

Les commentaires sont fermés.