LizardStresser, un botnet avec le cerveau d’un lézard

Par :
Matthew Bing

jeu, 07/07/2016 - 15:14

LizardStresser est un botnet créé à l’origine par le tristement célèbre groupe DDoS Lizard Squad. La publication de son code source au début de 2015 a encouragé des pirates DDoS en herbe à mettre en place leurs propres botnets. L’équipe ASERT d’Arbor Networks a suivi l’activité de LizardStresser et observé deux tendances préoccupantes :

  1. Le nombre de sites distincts de commande et de contrôle (C&C) de LizardStresser n’a cessé d’augmenter depuis le début de 2016.
  2. Un groupe d’acteurs malveillants se cachant derrière LizardStresser s’attache à cibler des équipements de l’Internet des objets (IoT) au moyen de mots de passe par défaut qui sont communs à des catégories entières d’appareils.

En exploitant la bande passante cumulée disponible pour ces objets de l’IoT, un groupe d’acteurs malveillants a pu lancer des attaques atteignant 400 Gbit/s contre des sites de jeux à travers le monde, ainsi que des établissements financiers, des opérateurs de télécommunications et des organismes gouvernementaux au Brésil.

LizardStresser

LizardStresser est un botnet DDoS programmé en langage C et conçu pour fonctionner sur Linux. Le code se compose de deux parties, un client et un serveur. Le logiciel client est destiné à s’exécuter sur des machines Linux infectées qui se connectent à un serveur C&C inscrit dans le code. Le protocole employé est essentiellement une version allégée d’IRC (Internet Relay Chat). Les clients infectés se connectent au serveur et reçoivent les commandes ci-dessous.

  • Capacité de lancer une attaque DDoS suivant diverses méthodes :
    • HOLD – Maintenir ouvertes les connexions TCP.
    • JUNK – Envoyer une suite de caractères aléatoires sur un port TCP.
    • UDP – Envoyer une suite de caractères aléatoires sur un port UDP.
    • TCP – Envoyer de manière répétitive des paquets TCP avec les drapeaux spécifiés.
  • Mécanisme pour l’exécution arbitraire de commandes shell. Celui-ci permet de télécharger des versions mises à jour de LizardStresser avec de nouveaux C&C, ou bien un malware totalement différent.
  • Propagation par « force brute » sur telnet. Les clients se connectent à des adresses IP aléatoires et tentent d’ouvrir des sessions via telnet en utilisant une liste d’identifiants et de mots de passe inscrits dans le code. Les identifiants testés avec succès sont rapportés au C&C afin d’être incorporés par la suite dans le botnet.

LizardStresser est extrêmement simple à compiler et exécuter. Nous avons observé des échantillons compilés pour diverses architectures telles que x86, ARM et MIPS, c’est-à-dire les plates-formes les plus courantes pour les équipements IoT.

Tendances

ASERT a entrepris de surveiller les C&C de LizardStresser dès l’entrée en scène de cet outil. Depuis le début de l’année 2016, nous avons constaté une nette augmentation du nombre de C&C distincts, dépassant la centaine vers le mois de juin. Bien que ne sachant pas si nous avons identifié chaque échantillon de LizardStresser en circulation, Arbor Networks est idéalement placé pour mettre en corrélation la multiplication des C&C avec les attaques concrètes portant la signature réseau de LizardStresser, la télémétrie DDoS issue de la surveillance des C&C et les statistiques DDoS fournies par l’observatoire ATLAS.

Figure 1 – Nombre de C&C LizardStresser distincts en 2016

IoT

La capacité de « force brute » telnet de LizardStresser tente de se connecter à des adresses IP aléatoires en utilisant une liste d’identifiants et de mots de passe inscrits dans le code. La version publique de LizardStresser comporte les identifiants et mots de passe suivants :

char *usernames[] = {"root\0", "\0", "admin\0", "user\0", "login\0", "guest\0"};
char *passwords[] = {"root\0", "\0", "toor\0", "admin\0", "user\0", "guest\0",
 "login\0", "changeme\0", "1234\0", "12345\0", "123456\0", "default\0",
 "pass\0", "password\0"};

Figure 2 – Identifiants et mots de passe par défaut

De toute évidence, cette liste recense les plus faibles identifiants qui soient. Du point de vue d’un acteur malveillant, toutes les machines accessibles via cette liste par défaut sont très vraisemblablement déjà piratées. Dans le cas d’un malware DDoS, la valeur d’une victime réside dans la bande passante qu’elle offre pour générer du trafic d’attaque. Or, si une machine est déjà infectée, sa bande passante est probablement exploitée. L’acteur malveillant peut tenter d’évincer le malware concurrent mais cela demande du temps et des efforts.

C’est ici qu’interviennent les équipements IoT. Ceux-ci constituent des robots DDoS parfaits pour diverses raisons.

  • Ils fonctionnent généralement avec une version embarquée ou allégée du système d’exploitation bien connu Linux. Le malware peut être facilement compilé pour l’architecture cible, principalement ARM, MIPS ou x86.
  • S’ils sont accessibles par Internet, il est probable que cet accès soit total, sans limitation ni filtrage de bande passante.
  • La version allégée du système d’exploitation et la puissance limitée de traitement de la plupart des équipements IoT laissent moins de place aux fonctions de sécurité, notamment en matière d’audit, et la majorité des infections passent inaperçues de leur propriétaire.
  • Afin de gagner du temps dans leur conception, les fabricants d’équipements IoT réutilisent parfois des éléments matériels et logiciels dans différentes catégories d’appareils, qui ont ainsi en commun les mots de passe par défaut servant à leur gestion initiale.

C’est ce dernier point, la réutilisation des mots de passe par défaut entre différents types d’appareils, qui intéresse particulièrement les acteurs malveillants. Une simple recompilation de LizardStresser pour utiliser ces mots de passe par défaut bien connus mais sous-employés (du moins par les auteurs des attaques) leur donne accès à toute une nouvelle population de victimes potentielles.

Attaques contres des sites brésiliens et de jeux

ASERT a surveillé deux C&C LizardStresser dont nous pensons qu’ils sont exploités par le même groupe d’acteurs malveillants. Bien que ceux-ci paraissent communiquer entre eux en anglais, leurs principales cibles se trouvent au Brésil ou sont des sites de jeux à travers le monde :

  • Deux grandes banques brésiliennes
  • Deux opérateurs de télécommunications brésiliens
  • Deux organismes gouvernementaux brésiliens
  • Trois grands sites de jeux basés aux Etats-Unis

Dans un cas, nous avons pu observer les commandes d’attaque émises par un C&C LizardStresser et les mettre en corrélation avec des informations approfondies sur l’attaque. Celle-ci a culminé à plus de 400 Gbit/s, provenant de plusieurs milliers d’adresses sources. Le trafic d’attaque proprement dit correspondait exactement à ce que produit le générateur aléatoire de LizardStresser, à savoir une suite de lettres majuscules. L’aspect intéressant est que l’adresse source des paquets d’attaque ne paraissait pas falsifiée – c’est-à-dire qu’ils provenaient bien de l’adresse indiquée à l’intérieur – et qu’aucun protocole d’amplification UDP, tel que NTP ou SNMP, n’était employé.

Figure 3 – Charge malveillante de LizardStresser

Les acteurs malveillants ont semblé changer rapidement de tactique, d’une minute à l’autre, alternant entre des attaques de type flood HOLD, UDP et TCP avec divers drapeaux, probablement dans le but de produire un maximum d’impact. Les volets UDP de l’attaque se caractérisaient en outre par leur provenance de ports UDP hauts à destination du port UDP/443, avec une taille de paquet d’environ 1400 octets.

Les sources proprement dites de l’attaque se situent en très grande majorité au Vietnam, suivi du Brésil, les autres victimes se répartissant dans tout le reste du monde. Après l’envoi d’une requête HTTP « GET / » sur le port TCP 80 à chacune des adresses sources, une tendance se dégage : près de 90 % des hôtes ayant répondu l’ont fait avec le titre HTML « NETSurveillance WEB ».

Une recherche plus approfondie révèle que l’interface NETSurveillance WEB paraît être du code générique utilisé par des webcams accessibles via Internet. Un mot de passe par défaut pour l’utilisateur « root » est disponible en ligne et telnet est activé par défaut. Nous pensons que les acteurs malveillants ont personnalisé le code « force brute » de LizardStresser afin d’exploiter ce mot de passe par défaut, rendu public mais sous-employé pour les équipements IoT reposant sur le code NETSurveillance.

La version publiée de LizardStresser génère des adresses IP au hasard pour une attaque de force brute mais il est possible que cet acteur malveillant ait modifié le code de façon à privilégier certaines zones géographiques. Une autre possibilité est que le Vietnam et le Brésil soient les principaux utilisateurs des équipements IoT utilisant le code NETSurveillance.

Conclusion

LizardStresser devient le botnet à la mode sur les équipements IoT, compte tenu de la facilité pour les acteurs malveillants de détourner la scrutation telnet en y apportant de légères modifications. Une recherche minimal des mots de passe par défaut dans ces appareils leur permet de recruter un groupe exclusif de victimes dans leurs botnets. Arbor Networks a observé des C&C LizardStresser émettant des commandes d’attaque vers des équipements IoT, ainsi qu’une attaque DDoS résultante dépassant 400 Gbit/s sans réflexion/amplification, ce qui constitue un fait notable.

A propos de l'auteur

Matthew Bing
Analyste Arbor