Le botnet se sert d’un logiciel écrit de zéro pour infecter les serveurs et les intégrer dans un réseau peer-to-peer, ont rapporté mercredi des chercheurs de la société de sécurité Guardicore Labs. Les botnets P2P répartissent leur administration entre de nombreux nœuds infectés plutôt que de compter sur un serveur de contrôle pour envoyer des commandes et recevoir des données volées. En l'absence de serveur centralisé, les botnets sont généralement plus difficiles à repérer et plus difficiles à stopper.
« Ce qui était intrigant dans cette campagne, c'est qu'à première vue, il n'y avait aucun serveur de commande et de contrôle (C&C) apparent auquel on était connecté », a écrit le chercheur de Guardicore Labs, Ophir Harpaz. « C'est peu de temps après le début de la recherche que nous avons compris qu'il n'existait pas de C&C ».
Le botnet, que les chercheurs de Guardicore Labs ont nommé FritzFrog, possède une pléthore d'autres fonctionnalités avancées, notamment:
- Des charges utiles en mémoire qui ne touchent jamais les disques des serveurs infectés.
- Au moins 20 versions des binaires du logiciel depuis janvier.
- Un seul objectif sur l'infection des serveurs Secure Shell, ou SSH, que les administrateurs réseau utilisent pour gérer les machines.
- La capacité de disposer des portes dérobées sur les serveurs infectés.
- Une liste de combinaisons d'identifiants de connexion utilisée pour identifier les mots de passe de connexion faibles qui sont plus « étendus » que ceux des botnets précédemment vus.
Pris ensemble, les attributs indiquent un opérateur supérieur à la moyenne qui a investi des ressources considérables pour créer un botnet efficace, difficile à détecter et résilient aux suppressions. La nouvelle base de code, combinée à des versions en évolution rapide et des charges utiles qui ne s'exécutent qu'en mémoire, rend difficile la détection des logiciels malveillants par les antivirus et les autres systèmes de protection des terminaux.
La conception peer-to-peer rend difficile pour les chercheurs ou les forces de l'ordre d'arrêter l'opération. Le moyen typique de retrait est de prendre le contrôle du serveur de commande et de contrôle. Avec des serveurs infectés par FritzFrog exerçant un contrôle décentralisé les uns sur les autres, cette mesure traditionnelle ne fonctionne pas. Le passage au peer-to-peer rend également impossible de passer au crible les serveurs de contrôle et les domaines pour trouver des indices sur les attaquants.
En somme, contrairement aux autres botnets P2P, FritzFrog combine un ensemble de propriétés qui le rend unique : il est sans fichier, car il assemble et exécute des charges utiles en mémoire. Il est plus agressif dans ses tentatives de force brute, mais reste efficace en répartissant les cibles uniformément dans le réseau. Enfin, le protocole P2P de FritzFrog est propriétaire et ne repose sur aucune implémentation existante. Le malware, qui est écrit en Golang, est complètement volatil et ne laisse aucune trace sur le disque. Il crée une porte dérobée sous la forme d'une clé publique SSH, permettant aux attaquants d'accéder en continu aux machines victimes. Depuis le début de la campagne, les chercheurs ont identifié 20 versions différentes de l'exécutable du malware.
Une fois installée, la charge malveillante peut exécuter 30 commandes, y compris celles qui exécutent des scripts et téléchargent des bases de données, des journaux ou des fichiers. Pour contourner les pare-feu et la protection des points de terminaison, les attaquants acheminent des commandes via SSH vers un client netcat sur la machine infectée. Netcat se connecte ensuite à un « serveur malveillant » (la mention de ce serveur suggère que la structure peer-to-peer de FritzFrog n'est peut-être pas absolue. Ou il est possible que le « serveur malveillant » soit hébergé sur l'une des machines infectées, et non sur un serveur dédié. Les chercheurs de Guardicore Labs n'ont pas donné plus de précision)
Avant le redémarrage des machines infectées, FritzFrog installe une clé de chiffrement publique dans le fichier «authorized_keys» du serveur. Le certificat agit comme une porte dérobée en cas de modification du mot de passe faible.
Pour intercepter le réseau FritzFrog, Guardicore Labs a développé un programme client en Golang, qui effectue le processus d'échange de clés avec le malware et est capable d'envoyer des commandes et de recevoir leurs sorties. Ce programme, baptisé Frogger, lui a permis d'étudier la nature et l'étendue du réseau. En utilisant Frogger, les chercheurs ont également pu rejoindre le réseau en « injectant » leurs nœuds et en participant au trafic P2P en cours.
Ils ont découvert que FritzFrog avait lancé des attaques par force brute sur des millions d'adresses IP, parmi lesquelles des bureaux gouvernementaux, des établissements d'enseignement, des centres médicaux, des banques et de nombreuses entreprises de télécommunications. Il a réussi à percer plus de 500 serveurs SSH, y compris ceux d'établissements d'enseignement supérieur connus aux États-Unis et en Europe, et une société ferroviaire.
Le rapport contient un lien vers des indicateurs de compromission et un programme capable de détecter les machines infectées.
Script de détection de FritzFrog de Guardicore à lancer sur des serveurs SSH
Source : rapport