Mirai : peut-on se protéger du botnet le plus puissant du monde ?

Une analyse des différents vecteurs d’attaque de Mirai et des risques que représente encore le botnet le plus célèbre du monde.

Trois attaques massives effectuée avec le botnet Mirai ont secoué l’industrie informatique et mis à mal les paradigmes traditionnels de protection contre les attaques DDoS. Ces attaques confirment ce que les spécialistes annoncent depuis un certain temps déjà : l’Internet des objets(IoT) est un vecteur de menace réel. C’est un terrain idéal pour le développement d’outils de cyber-attaques puissants et sophistiqués.

Mirai possède dix vecteurs d’attaque prédéfinis, dont certains ont largement démontré leur efficacité en étant utilisés contre Dyn et KrebsOnSecurity.com. Parmi ceux-ci figurent des vecteurs d’attaque sophistiqués comme TCP STOMP, Water Torture ou applicatifs HTTP.  Le nombre de bots dans un botnet Mirai est tellement élevé qu’il peut générer des flux importants sans avoir recours à des techniques d’amplification. L’attaque sur OVH a montré une capacité volumique de plus de 1Tbps depuis plus de 100,000 point différents.  L’ampleur de ce botnet est telle qu’elle permet des attaques fondées sur des protocoles jusque-là jamais utilisés ou presque comme leviers pour des attaques comme le protocole GRE. Le protocole GRE ne permet pas d’amplification des attaques. Un certain volume est requis pour perturber unrouteur qui est supposé traiter des paquets GRE. De fait, avant Mirai le risque que représentait le protocole GRE était pour ainsi dire inexistant. Depuis Mirai, c’est un vecteur d’attaque devenu très concret. Les attaques à l’aide de Mirai mettent en évidence la difficulté des entreprises à distinguer le trafic GRE légitime et les requêtes DNS récursives.

Les chercheurs de Radware ont analysé le code Mirai pour décrypter son fonctionnement (infection de dispositifs, création du botnet, génération du trafic des attaques et contournement des contrôles de sécurité), évaluer les risques et identifier les mesures de sécurité permettant de contrer ces attaques. Cette connaissance fine des caractéristiques de chaque vecteurs a permis d’élaborer une stratégie de défense spécifique contre Mirai.

Pourquoi un botnet IoT est-il si séduisant ? 

Plusieurs raisons expliquent que les objets connectés soient des cibles de prédilection pour les hackers cherchant à constituer un botnet:

  • Tout d’abord, les mesures de protection de ces terminaux sont généralement faibles et insuffisantes.
  • Ensuite, il n’existe pas de réglementation ou de standard pour une utilisation sécurisée des objets connectés comparable à ce qui est en vigueur pour les appareils plus classiques comme les PC et les serveurs. Une telle réglementation devrait imposer des configurations par défaut sécurisées et l’adoption de bonnes pratiques, comme la modification immédiate des mots de passe par défaut, des restrictions de contrôle d’accès (la désactivation de l’accès à distance aux ports d’administration, par exemple). 
  • Enfin, le fait que les objets connectés tournent 24h/24 et 7j/7 permet de les utiliser à tout moment.

Les malwares courants procèdent généralement au moyen d’attaques zero-day et exploitent des failles connues pour prendre le contrôle des machines qu’ils ciblent. C’est une procédure longue et complexe. Les créateurs de Mirai s’épargnent cet effort en ciblant des objets connectés.

Mirai cible spécifiquement les systèmes de vidéosurveillance en circuit fermé, les routeurs et les enregistreurs numériques DVR, qu’il utilise pour créer un botnet qui servira ensuite à déclencher des attaques DDoS sophistiquées empruntant plusieurs vecteurs. Le code source du malware a été programmé en langage C et le code du serveur de commandement et de contrôle (C&C) en langage Go. Mirai recherche des cibles potentielles, et plus spécifiquement des dispositifs comportant les identifiants par défaut du constructeur. Ces valeurs sont codées en dur dans l’appareil par certains constructeurs. Le bot Mirai utilise un scan SYN cible sur le port Telnet très efficace pour identifier de nouvelles victimes. Après avoir identifié une victime potentielle, le bot exécute un brut-force avec les identifiants pré-codés dans le code Mirai. Après avoir forcé les identifiants du dispositif, l’adresse IP et les identifiants de la nouvelle victime sont envoyé a des services centralisés de chargement et le dispositif est infecté par le bot Mirai. Par la suite, la nouvelle victime cherche à son tour pour de nouvelles cibles. Une simple attaque par dictionnaire suffit à Mirai pour prendre le contrôle de ses cibles au moyen de leurs identifiants par défaut. 

Le code source Mirai augure de nouveaux dangers

Le botnet Mirai est le siège d’attaques courantes, de type SYN et ACK, et introduit aussi de nouveaux vecteurs d’attaques DDoS, comme les attaques volumétriques GRE IP et Ethernet. Mirai met aussi en œuvre des mécanismes intelligents pour contourner les contrôles de sécurité connus et les méthodes d’atténuation qui pourraient l’empêcher d’atteindre la cible.

1. Attaque volumétrique GRE

GRE (Generic routing encapsulation) est un protocole de tunneling développé par Cisco. Les paquets de données sont encapsulés et ils empruntent le tunnel jusqu’au réseau de destination où les paquets sont désencapsulés. L’envoi de nombreux paquets GRE et de gros volumes de données encapsulées obligera la victime à consommer beaucoup de ressources pour désencapsuler les paquets jusqu’à épuisement. Cette capture d’écran montre l’envoi par le bot de paquets GRE et un paquet UDP encapsulé contenant 512 octets de données aléatoires. La charge, la structure, la taille et d’autres éléments sont typiques des attaques du botnet Mirai. De plus, le malware reconnaît les solutions de protection contre les attaques DDoS et ajuste l’attaque en conséquence.

2. Attaque volumétrique HTTP (Layer 7) flood

Des lots de requêtes HTTP GET ou POST apparemment légitimes sont envoyés lors d’une session à un serveur web cible. Ces requêtes visent à consommer des ressources excessives du serveur jusqu’à l’épuisement et le déni de service.  Les dispositifs de sécurité des réseaux peinent à distinguer le trafic HTTP légitime du trafic HTTP malveillant au point de générer de très nombreux faux-positifs. Les moteurs de détection basés sur le débit ne sont pas très efficaces pour détecter les attaques volumétriques HTTP flood, car le volume de trafic des attaques HTTP peut être en-deçà des seuils de détection. Il est donc nécessaire de programmer plusieurs paramètres de détection, basé sur le débit et à débit invariant. Les chaînes d’une attaque Mirai HTTP L7 sont chiffrées dans le code source. La clé de chiffrement nous a permis de déchiffrer et poursuivre l’examen du code. Mirai utilise des en-têtes courants et des valeurs « user agent » standard pour émuler le trafic légitime. Ce type d’attaque peut être bloqué au moyen d’une solution d’analyse du comportement réseau qui s’adapte automatiquement et distingue le trafic légitime des utilisateurs du trafic du botnet.

3. Attaque TCP STOMP

L’attaque volumétrique ACK flood classique, avec un biais. Comme la plupart des solutions de sécurité des réseaux sont capables de bloquer les botnets simples dès qu’ils envoient de gros volumes de paquets ACK, Mirai n’enclenche l’attaque ACK flood qu’après avoir obtenu un numéro de séquence légitime une fois la connexion TCP établie. En recevant un numéro de séquence, Mirai contourne plus facilement les solutions de sécurité réseau.

4. Attack DNS du supplice de la goutte d’eau (Water Torture)

L’attaquant envoie une requête DNS préparée à l’avance au serveur DNS du fournisseur de service. Cette requête DNS malveillante contient une chaîne aléatoire concaténée avant le nom de domaine de la victime (par exemple xxxyyyy.www.VictimDomain.com). Le serveur DNS essaiera en vain et à répétition d’obtenir une réponse du serveur de nom ayant autorité puis il enverra automatiquement la requête malveillante au serveur de nom suivant, etc. Ces envois de différentes chaînes fausses avec le nom de domaine des victimes solliciteront de façon intensive les processeurs du serveur DNS jusqu’à ce qu’il soit hors service.

Bonnes pratiques pour se prémunir de Mirai

Malgré la sophistication de Mirai, il est loin d’être vain de chercher à se protéger des attaques qu’il peut déclencher. Quelques bonnes pratiques peuvent permettre de s’en prémunir et la combinaison de plusieurs systèmes de défense, humains et informatiques favorisent une protection efficace :

  • Protection DDoS hybride (on-premise + cloud) : protection en temps réel, y compris contre les attaques volumétriques et contre le risque de saturation. 
  • Détection comportementale : identification précise des anomalies pour bloquer rapidement le trafic malveillant et autoriser le trafic légitime. 
  • Création de signature en temps réel : protection contre les menaces inconnues et les attaques 0-day. 
  • Protection de vos tunnels GRE : ou en demandant à vos fournisseurs de surveiller et sonder le trafic qui transite par eux. 
  • Plan d’intervention d’urgence en cas de cyber-attaque : et mobilisation en urgence d’une équipe d’experts dédiés.