[ARTICLE] Analyses des botnets IoT : Hajime, BrickerBot (juin 2017)

Dans une ère où les objets connectés baignent dans un océan de vulnérabilités, les machines des particuliers, qui constituaient habituellement le gros des troupes dans les réseaux de machines zombies, se voient complétées par de nombreux dispositifs IoT non protégés par les fabricants. La fin de l’année 2016, notamment, a été ponctuée par un déferlement considérable des attaques par déni de service d’ampleur jamais connues auparavant.

La nouveauté réside dans la composition de ces cyber-armées, qui se dressent derrière les attaques, constituées d’objets connectés piratés. Détournés de leur usage premier, les dispositifs embarqués exécutent des actions malveillantes dès réception d’ordre de leurs contrôleurs. La simplicité avec laquelle les malwares prennent le contrôle des objets connectés non sécurisés, plonge le monde des cybercriminels dans une bataille opposant différentes familles de vers qui s’érigent et s’arrachent les objets connectés dans le but de les enrôler dans leurs armées respectives.

En septembre 2016, les serveurs du site KrebsOnSecurity et ceux d’OVH se retrouvent submergés par un afflux massif de trafic. KrebsOnSecurity est mis hors ligne tandis qu’OVH subit quelques ralentissements. A l’origine de ces attaques se positionne un botnet de dispositifs IoT qui fait polémique et inquiète : Mirai. Un mois plus tard, les internautes sont dans l’incapacité d’accéder à de nombreux sites américains comme Reddit, GitHub, Twitter, Airbnb, etc. Mirai a encore frappé. Il s’en prend cette fois au serveur américain DynDNS, largement prisé par de nombreux géants d’Internet.

Le 30 septembre 2016, l’auteur du malware se présentant sous l’identité de “Anna-sempai” divulgue le code source de Mirai sur le site HackForum. Plusieurs variantes du ver émergent alors, et sont utilisées pour mettre à mal la disponibilité de plusieurs sites.
L’analyse du code de Mirai démontre que le ver se propage sur des dispositifs IoT non sécurisés, en scannant continuellement Internet à la recherche d’objets connectés protégés par des mots de passe par défaut mis en place par les constructeurs. Les périphériques vulnérables sont ensuite transformés en machine zombies. Enrôlés dans un large botnet, ils communiquent avec un serveur de commandes central communément appelé serveur de Command & Control (C&C) qui peut initier des attaques par déni de service entre autres.

L’attaque enregistrée le 20 septembre 2016 par le botnet Mirai, à l’encontre du site KrebsOnSecurity, a atteint un pic de 620Gb de trafic par seconde, avec 380 000 dispositifs IoT infectés. Ces nouveaux records jamais atteints auparavant, et l’envergure qu’ont pris ces attaques ont attiré l’attention de plusieurs chercheurs.
C’est ainsi que, dans l’optique de récupérer un échantillon du ver pour en disséquer le comportement, des chercheurs de chez Rapidity Networks ont mis en place un leurre informatique « honeypot » simulant le comportement d’objets connectés vulnérables.
Le 5 octobre 2016, un nœud dans ce leurre rapporte une activité semblable à celle de Mirai. L’étude de l’échantillon amènera à la découverte d’un ver bien plus sophistiqué et dont les objectifs restent toujours inconnus à ce jour.

A première vue, la similitude constatée entre cette nouvelle trouvaille et Mirai laisse croire qu’il n’en est qu’une nouvelle variante. Il s’avérera que le malware a commencé sa propagation quelques jours avant la divulgation du code source de Mirai et ne contient aucune ligne de code de ce dernier. Les chercheurs le baptiseront « Hajime », mot japonais signifiant « début », afin de garder le lien avec Mirai, traduction japonaise pour désigner « futur ». Le code source du ver ne contient alors aucune allusion au nom « Hajime ».

Qu’est-ce qu’Hajime ?

A première vue, tout comme Mirai, Hajime est un ver visant les objets connectés non sécurisés, ce qui englobe des enregistreurs vidéo, des caméras de surveillance, ou encore des routeurs disposant d’une interface Telnet avec des identifiants de fabricants par défaut.
Les deux malwares se rejoignent dans leurs phases de découverte : visant des dispositifs IoT vulnérables, ils procèdent à un scan réseau sur de larges plages d’adresses IPv4 à la recherche du port TCP 23 ouvert, le port et protocole utilisé pour le service Telnet. Une fois le service découvert, des combinaisons d’identifiants par défaut sont utilisées pour s’y connecter. Les listes d’identifiants sont codées en dur dans le code source des deux vers.
Une différence, même si minime à ce stade, commence d’ores et déjà à se creuser entre les deux malwares : pour effectuer l’attaque par brute-force, Mirai opère de manière aléatoire tandis que Hajime tente les combinaisons de manière séquentielle en fonction de la bannière du service Telnet présentée. Il ajoute également à sa liste de brute-force deux combinaisons « root/5up » et « Admin/5up » propres aux routeurs Atheros, élargissant ainsi son champ d’attaque.

Une fois l’authentification réussie, la phase de découverte prend fin pour laisser place à l’infection, phase où se distinguera Hajime. Une fois sur le système cible fraîchement infecté, Hajime effectue des vérifications sur l’architecture du processeur en inspectant l’en-tête d’un binaire (/bin/echo), et en fonction de l’architecture, un premier programme de taille réduite est chargé et exécuté sur la machine.

Ce premier programme (downloader) dont le code source a été écrit spécifiquement pour la plateforme, a pour but de se connecter au nœud attaquant d’où il téléchargera un second programme de taille plus conséquente à exécuter.
Ce second programme aura pour but de rejoindre le réseau décentralisé peer-to-peer où il téléchargera et lancera des payloads spécifiques au processeur. Ces payloads ou modules sont principalement constitués de sa configuration et de son programme de scanning.

Achevant de la sorte son cycle de vie, le dispositif nouvellement enrôlé au botnet procédera à son tour à la phase de scan, via le programme de scanning récupéré, à la recherche de nouveaux objets connectés non protégés. Hajime utilise le protocole BitTorrent DHT pour la découverte des pairs. Dès la découverte du bon nœud, le protocole (uTP) est utilisé pour l’échange des données et notamment pour récupérer la dernière version des fichiers de configuration et des modules.

Jusqu’à aujourdhui, l’inspection du code de Hajime ne montre aucun module d’attaque prévu pour du déni de service. Bien au contraire, il semble sécuriser les dispositifs en corrigeant les vulnérabilités souvent exploitées par Mirai et ses dérivés en bloquant l’accès aux ports 23, 7547, 5555 et 5358.

Hajime anti-dote de Mirai?

Surnommé le « Dark-Knight » par certains ou « Vigilante » par d’autres, nombreux sont ceux qui voient en ce nouveau ver un neutraliseur de Mirai. Mais la question sur les objectifs de Hajime reste sans réponse. Car s’il semble sécuriser des objets connectés vulnérables par la fermeture de certains ports, il se laisse également des portes dérobées pour son propre usage, comme l’ouverture du port TCP 4636 qu’il utilise pour télécharger le second programme du malware.
Il est à noter que lorsque le cycle de vie du ver s’achève, le dispositif infecté se transforme en bot qui se met à son tour à la recherche de nouvelles cibles à attaquer. La croissance importante du botnet Hajime et la propagation rapide du ver qui a réussi à détourner plus de 300 000 dispositifs selon Karspersky, inquiètent les chercheurs, bien que jusqu’à ce jour aucune attaque menée par le botnet n’a été constatée.

Hajime œuvre de Script-kiddies ou experts ?

Le rapport publié par RapidityNetworks porte une analyse sur les programmes utilisés, dans le but d’identifier le niveau d’expertise de son auteur et identifier la menace, si existante. L’analyse des binaires récupérés met en exergue la présence d’une erreur ne pouvant être commise se par un compilateur. C’est ce qui permettra de déduire que le code source a été écrit en langage assembleur pour chaque plateforme que le malware est capable d’infecter, à savoir : ARMv5, ARMv7, MIPS little-Endian et Intel x86-64.
Combinés à la sophistication du réseau P2P établi, toutes les communications dans le réseau P2P sont chiffrées et signées avec RC4 et des clés privées/publiques. Ces constats permettent de confirmer le niveau d’expertise de la potentielle organisation dissimulée derrière le ver, qui a dû consacrer un temps considérable à son développement.

Quels sont les intentions de l’auteur ?

Aucune information n’a pu identifier l’auteur du ver jusqu’à ce jour. Le mystère plane toujours autour de celui qui se déclare « white-hat ». Depuis la publication du rapport de RapidityNetworks, l’auteur a adopté le nom « Hajime » donné par les chercheurs, et l’a incorporé lors de l’infection. Toutes les 10 minutes, les machines infectées affichent un message signé “Hajime Author” sur la console.
Des corrections ont également été apportées au code du programme, après la publication du rapport de Rapidity Networks qui pointait certaines erreurs. Les auteurs de Hajime semblent donc à l’affût des analyses publiées sur leur ver pour en améliorer la conception et l’implémentation. L’idée que des chercheurs en sécurité aident à parfaire le code du malware peut être effrayante.

Botnet offensif ?

Le risque d’une attaque massive lancée par le botnet Hajime n’est pas tout à fait improbable. Plusieurs éléments peuvent étayer cette hypothèse.

Furtivité

Dans un souci de discrétion, le ver tente d’être le plus furtif possible sur le dispositif infecté. Des efforts sont mis en œuvre pour dissimuler les processus exécutés et cacher les fichiers téléchargés sur le disque.
Cependant, le message signé par l’auteur sur la console des machines infectées a commencé à s’afficher à la suite de la publication du rapport de RapidityNetworks, annulant ainsi les efforts de furtivité mis en œuvre lors de la phase d’infection. C’est ce qui amènera à se demander si le ver avait pour intention première de se montrer au grand jour ou si l’auteur a changé de mode opératoire à la suite de sa détection.

Réseau pair-à-pair distribué

Le choix de la mise en place d’un botnet pair-à-pair décentralisé n’est pas anodin et distingue Hajime de ses compères. Les zombies d’un botnet communiquent souvent avec un serveur de Command&Control qui leur envoie les instructions à exécuter.
Les attaques par DDoS lancées par des botnets ayant une telle architecture peuvent être neutralisées par la mise hors ligne du serveur C&C, dont l’IP est codée en dur dans le cas de Mirai.
Pour Hajime il serait difficile de procéder de la sorte. En raison de la nature pair-à-pair distribué du botnet, chaque nœud du réseau peut adopter le comportement de client et de serveur à la fois, il n’existe donc pas une adresse de C&C unique.
Dès réception d’une nouvelle instruction, les modules sont poussés simultanément dans les nœuds du réseau. Waylon Grange, un chercheur de Symantec cite «This is typically considered a more robust design as it makes takedowns more difficult.».

Code modulaire et ajouts de nouvelles fonctionnalités

De plus, la modularité dont bénéficie le code de Hajime permet à son auteur d’ajouter de nouveaux modules d’attaques à sa guise. Depuis la publication du premier rapport en octobre 2016, deux autres modules d’attaques se sont ajoutés au code du ver Hajime. Au-delà du déploiement via des attaques par brute-force ciblant le service Telnet, le ver exploite désormais des vulnérabilités dans le protocole TR-069 utilisé pour la gestion de la communication entre un équipement terminal du réseau local du client et un serveur d’auto-configuration appartenant à l’opérateur. Utilisé par les FAI (Fournisseurs d’Accès Internet) pour contrôler les modems à distance, ce protocole utilise les ports TCP 7547 ou TCP 5555 et est vulnérable, dans sa fonctionnalité New NTP Server, à une faille permettant d’exécuter des commandes à distance. Hajime exploite cette vulnérabilité pour enrôler de nouvelles machines dans son réseau.
Le second module d’attaque vise les câbles modems Arris dont les mises à jour logicielles sont gérées uniquement par les FAI. L’attaque exploite une bibliothèque non documentée et utilisée dans ces câbles modems. Faisant office de backdoor, elle donne un accès privilégié sur le dispositif. Cette vulnérabilité publiée en 2009 n’a jamais été corrigée par le constructeur.

Hajime se démarque globalement par la sophistication de son déploiement, la flexibilité de son code, ainsi que par sa furtivité. Capable de se déployer rapidement sur différentes architectures de processeurs, il peut efficacement doter ses bots de nouvelles fonctionnalités à la volée. L’ajout de deux nouveaux modules d’infection démontre que son code est toujours maintenu et amélioré, et qu’il tend même à englober plus de dispositifs dans son botnet.
La combinaison de ces facteurs pousse à croire que la version actuelle du ver, comme son nom l’indique ironiquement, ne peut être que le début. Pendant sa phase de propagation, le malware chercherait d’abord à se déployer sur le maximum d’objets connectés, élargissant ainsi son botnet, avant de procéder au déploiement de nouveaux modules destinés à lancer des attaques massives ou faire de la surveillance.

Vers bienveillants ?

Hajime n’est pas le seul ver dans sa catégorie à se qualifier d’éthique, Brickerbot, une autre famille de malwares découverte dans le honeypot de Radware, semble exploiter le même vecteur d’attaque que Mirai et Hajime mais dans le but d’éliminer les objets connectés vulnérables exposés sur Internet. En les rendant inopérants de manière permanente, il réduit le risque que le périphérique devienne une arme d’attaque exploitée par d’autres vers.
Ce type d’attaque dite Déni de Service Permanent (PDoS) ou phlashing vise à endommager le système de manière à forcer une réinstallation ou un remplacement du matériel. Selon les chercheurs l’appellation « BrickerBot » découlerait ainsi du fait de “briquer” les bots infectés.
En avril 2017, l’auteur qui se présente sous le pseudonyme de « Janit0r » publie un message sur Hacks Forum pour démentir la divulgation du code de BrickerBot, et mentionne que son code n’exploite pas de vulnérabilités n’ayant aucun correctif connu.

Qui est Janit0r ?

Convaincus qu’il existe d’autres manières d’opérer contre Mirai que de détruire les objets connectés, des chercheurs de la firme Bleeping Computer ont appelé l’auteur Janit0r à se manifester. Celui-ci répondra par un courriel exprimant son mécontentement vis-à-vis du manque de sécurité des dispositifs connectés, qui a eu pour conséquence d’accroître significativement le nombre d’attaques DDoS menées par des botnets IoT en 2016.
L’auteur est même étonné par le nombre d’objets connectés vulnérables facilement infectés par BrickerBot, nombre qui atteint les 2 millions, surlignant ainsi la quantité sidérante d’objets connectés fournis par les constructeurs avec une sécurité quasi-inexistante.

Il explique également que contrairement à ce qu’affirme le rapport de Radware, BrickerBot n’a pas pour but premier de “briquer” les dispositifs vulnérables. Ce comportement est adopté uniquement en plan B, le plan A étant de sécuriser le dispositif. Cependant, Radware constate qu’au cœur de son honeypot le ver passe directement au plan B et détruit le périphérique IoT.
Tant que les constructeurs ferment les yeux sur la sécurité de leurs produits et que des standards de sécurité pour les objets connectés ne sont pas établis et respectés, l’auteur de BrickerBot n’envisage pas d’arrêter ses attaques, qu’il considère comme une chimiothérapie détruisant les cellules d’un cancer affectant Internet depuis la fin de l’année 2016 et qui ne cesse de se développer.

Conclusion

Bien que considérés par leurs auteurs comme étant bienveillants, Hajime et BrickerBot demeurent auprès de Mirai dans la catégorie des logiciels malveillants.
Que ce soit pour la destruction d’une caméra ou d’un système d’enregistrement vidéo vulnérables à la manière de BrickerBot, ou encore pour limiter leur surface d’attaque comme le revendique Hajime, juridiquement les deux vers n’ont aucune légitimité à infecter des périphériques sans consentement de leurs propriétaires.
Si dans le cas de BrickerBot, l’objectif du ver est connu, les raisons qui se cachent derrière le déploiement du botnet Hajime restent un mystère à élucider. La métaphore portée par le nom “début” de Hajime représente-elle une nouvelle ère où les « white-hat » prennent de l’avance par rapport aux « black-hat » ou au contraire les prémices de futures attaques de grande envergure ?

Affectionnés par les attaquants pour leur manque de sécurité, les objets connectés sont devenus la nouvelle arène des cybercriminels. Les professionnels et particuliers détenant ces objets se doivent de fermer SSH, Telnet et autres services non utilisés ainsi que de changer les mots de passe par défaut.
Mais la responsabilité des périphériques IoT vulnérables incombe surtout aux constructeurs qui ne se conforment pas aux standards de sécurité et livrent des objets offrant une grande surface d’attaque. De fortes mesures doivent être appliquées pour contrôler ces nouvelles armes qui menacent désormais Internet.