Botnet exploite la blockchain en cachant l’IP de son serveur: voici la nouvelle frontière des cybercriminels

Akamai a publié les résultats d’une recherche qui met en évidence comment l’utilisation de la technologie blockchain (en particulier celle de Bitcoin) peut permettre de masquer les adresses IP des serveurs de commande de sauvegarde et de contrôle d’un botnet.

Les botnets, véritables «armées» de milliers de systèmes infectés par des malwares spéciaux pour effectuer des actions de masse telles que des attaques DDos, des campagnes d’infection, etc., sont coordonnés par un serveur de commande et de contrôle (ou C2). Normalement, les actions des forces de l’ordre et des chercheurs en sécurité visant à éliminer un botnet se concentrent précisément sur l’identification du serveur C2 pour le saisir et l’éliminer ou pour l’exploiter de manière à éradiquer le malware sur les machines infectées.

Botnets avec serveurs de contrôle redondants: plus difficile à mettre hors service

Les opérateurs de botnet accordent donc une attention particulière au masquage des actions du serveur principal. En fait, dans un botnet, les machines infectées individuelles communiquent périodiquement avec le serveur C2 pour rechercher d’éventuelles commandes ou mises à jour de logiciels malveillants. Habituellement, les communications sont masquées d’une manière ou d’une autre, de sorte qu’il est difficile de retracer l’adresse IP du serveur C2. Dans tous les cas, les attaquants utilisent la possibilité d’utiliser des serveurs de sauvegarde, afin que le botnet puisse continuer à fonctionner même si le serveur principal est compromis. Dans ce cas, l’action de neutralisation est plus compliquée car il est également nécessaire d’identifier ce second serveur.

Dans la campagne d’infection spécifique étudiée par les chercheurs d’Akamai (campagne qui, sans donner trop de détails, vise à créer un botnet pour l’exploitation minière distribuée Monero) les opérateurs de botnet ont mis au point une méthode très particulière pour mettre l’adresse IP du serveur de sauvegarde à l’abri des «regards indiscrets»

Masquer l’adresse IP d’un serveur botnet dans deux transactions Bitcoin

Les chercheurs ont découvert cela lorsque, fin décembre 2020, ils ont identifié la présence d’une adresse de portefeuille Bitcoin dans les versions les plus récentes du logiciel malveillant utilisé pour propager l’infection. En plus de l’adresse du portefeuille, les chercheurs ont également trouvé une URL pointant vers une API de contrôle de la blockchain. Après quelques investigations, les chercheurs ont pu comprendre que ces deux éléments étaient impliqués dans le calcul d’une adresse IP, issue de transactions de portefeuille.

Afin de convertir les transactions Bitcoin en une adresse IP, les opérateurs de ce botnet ont conçu un script qui vérifie les transactions de portefeuille les plus récentes. Cela est possible en faisant une requête HTTP à une API d’explorateur de blockchain qui renvoie les deux dernières transactions de l’adresse de portefeuille souhaitée. Une fois connues les valeurs des deux dernières transactions, le mécanisme les convertit en adresse IP du serveur C2 de sauvegarde. Tout d’abord, une petite prémisse: une adresse IPv4 est un nombre de 32 bits organisé en quatre octets séparés par un point (XXX.XXX.XXX.XXX).

Le script prend la valeur en Satoshi (la plus petite unité indivisible de bitcoin) de la transaction la plus récente et la convertit d’abord en hexadécimal. La représentation hexadécimale est ensuite divisée en deux octets qui la composent et chacun d’eux est reconverti en totalité pour obtenir les deux derniers octets de l’adresse IP souhaitée. La même opération est effectuée avec la transaction précédant immédiatement la plus récente afin de récupérer les deux premiers octets. L’adresse IP résultant de ce mécanisme ingénieux agit comme un élément de sauvegarde dans l’infrastructure du botnet.

Le script conçu par les opérateurs de botnet s’exécute toutes les 30 minutes sur les machines infectées pour tester la connexion avec le serveur C2 principal. Ce n’est que si le serveur n’est pas joignable que le mécanisme de récupération IP de sauvegarde est déclenché afin de restaurer la connexion entre le nouveau serveur C2 et les systèmes « orphelins » du serveur C2 principal.

Une technique avec des points faibles, mais dangereuse et inquiétante

Il est probable que les opérateurs du botnet, pour masquer leurs traces et les éventuels éléments qui renvoient à leur identité, utilisent un portefeuille public (et non directement contrôlé) faisant partie d’un service de coinjoin / tumbling (techniques pour épaissir la barrière de l’anonymat , également utilisé à des fins de blanchiment d’argent) où de nombreuses autres transactions convergent. Cependant, cette particularité peut représenter le point faible de la technique. Puisque le mécanisme tire parti des deux dernières transactions d’un portefeuille auquel n’importe qui peut envoyer des fonds, il devient possible de «perturber» la récupération de l’adresse IP en envoyant des transactions afin de générer des adresses IP invalides.

Il suffit d’envoyer un seul satoshi au portefeuille pour que le système génère une adresse IP modifiée et donc invalide, qui sera reconnue comme une tentative de résolution d’un nom de domaine invalide, coupant ainsi les jambes à chaque tentative de récupération de la charge utile de l’infection. L’action perturbatrice pourrait être facilement neutralisée par les opérateurs en envoyant deux nouvelles transactions «correctes», qui permettent de générer l’adresse IP correcte du serveur C2 de secours, mais dans ce cas l’opération devient économiquement désavantageuse pour les opérateurs. Voyons pourquoi.

Akamai souligne que, sans tenir compte des frais, le coût d’une transaction «d’interruption» satoshi est d’environ 0,0004 $ (compte tenu de la valeur de BTC au moment où la recherche a été menée). En d’autres termes, investir 1 dollar peut générer environ 2500 transactions «d’interruption». L’adresse IP actuelle qu’Akamai a pu identifier et qui était montrée dans l’image ci-dessus, 209.141.45.27, nécessite comme nous l’avons vu deux transactions spécifiques de 6957 satoshi et 36305 satoshi, pour une valeur combinée d’environ 16,50 dollars. Cela signifie que pour chaque dollar dépensé pour générer des transactions d’interruption, les opérateurs de botnet devraient dépenser plus de 41 000 (16,50 x 2 500) pour pouvoir neutraliser les pannes. Ce sont des prix qui varient évidemment au fur et à mesure que la valeur du bitcoin change et en fonction de l’IP à coder, mais les coûts seront toujours asymétriques et en faveur de l’action d’interruption et de perturbation.

Mais il y a plus: la connaissance de cette technique (à condition, bien sûr, qu’elle ne soit pas modifiée en quelque sorte) peut permettre d’encoder, en deux transactions à envoyer au portefeuille, l’adresse IP d’un nouveau serveur C2 contrôlé depuis «coupons» à des fins de mise hors service du botnet. De cette manière, les machines infectées appartenant au botnet répondraient au nouveau serveur grâce auquel il deviendrait possible d’éradiquer l’infection.

Dans le cas particulier de cette infection, cependant, l’action de neutralisation du botnet peut être réalisée de manière plus simple. Le mécanisme de récupération IP de sauvegarde que nous avons vu ci-dessus est déclenché uniquement si le serveur C2 principal n’est pas accessible ou s’il renvoie un code d’état HTTP autre que 200 ou 405. Pour éviter de déclencher le système de récupération du serveur C2 pour la sauvegarde, il suffit que, simultanément avec l’action possible pour désactiver le serveur principal, une réponse de code HTTP 200 est disponible pour toutes les demandes de connexion entrantes. Cela désactive le mécanisme de récupération IP de sauvegarde.

Indépendamment des faiblesses que les chercheurs d’Akamai ont pu identifier dans cette campagne spécifique, ce qui est préoccupant, c’est le fait que les principes sous-jacents de la technique peuvent avoir des implications assez graves dans la lutte contre les botnets, ce qui rend leur neutralisation plus difficile et compliquée. La particularité de cette technique est la possibilité de récupérer les informations et paramètres nécessaires à partir d’une origine décentralisée et non censurée, qui sont les caractéristiques fondamentales d’une blockchain. Partant de cette base et en perfectionnant certains aspects, il serait possible de mettre en place un mécanisme capable de masquer plus efficacement les adresses IP des serveurs C2, gênant significativement toute action d’identification, de saisie de domaines et de prise de contrôle de six serveurs.

.

Exit mobile version