Prévues pour les tests les offres gratuites des fournisseurs de développement cloud peuvent avoir une face plus sombre. C'est ce que vient de trouver une équipe de l'unité 42 de Palo Alto Networks à travers un gang nommé Automated Libra, potentiellement localisé en Afrique du Sud. Au travers de ces offres, ils ont créé des centaines de milliers de comptes sur GitHub (partage de code), Heroku (PaaS) et Togglebox (VPS) pour faire du cryptominage.
Au plus fort de la campagne, baptisée PurpleUrchin, en novembre, ce groupe enregistrait entre trois et cinq comptes GitHub chaque minute à l'aide de processus automatisés de neutralisation des Captcha et abuser les workloads de la plateforme CI/CD Actions de GitHub pour du cryptominage. « Chacun des comptes GitHub a ensuite été impliqué dans une stratégie de « jouer et partir », où chaque compte utiliserait des ressources de calcul, mais les acteurs de la menace n'ont pas récolté leurs fonds », ont déclaré les chercheurs dans leur rapport. « Cela semble être une procédure opérationnelle standard pour PurpleUrchin, car il est prouvé qu'ils ont créé plus de 130 000 comptes sur divers fournisseurs de serveurs privés virtuels et de services cloud ».
Du freejacking et un scénario de play and run
Sur la méthode, les experts ont observé une combinaison d'abus d'offres d'essai (freejacking) et le scénario de play and run où les frais des comptes ne sont pas payés. Ce dernier est plus difficile à réaliser car la plupart des fournisseurs de services exigent que l'utilisateur enregistre une carte de crédit ou un mode de paiement valide avant de lui donner accès aux ressources informatiques payantes. Cependant, même si l'utilisation est suivie et comptabilisée à la minute, la facture est généralement émise après une période plus longue.
Cela donne aux attaquants une fenêtre de temps pour abuser de ces services. Automated Libra semble avoir utilisé les deux méthodes, suggérant qu'ils avaient accès à des cartes de crédit volées ou au moins à des cartes qui seraient acceptées par le système même si elles étaient ensuite signalées comme volées et verrouillées par les émetteurs. Cela montre l'importance de disposer de solides systèmes de paiement anti-fraude.
Des techniques CI/CD utilisées par les pirates
PurpleUrchin fonctionne depuis 2019, et même s'ils ont souvent abusé des fournisseurs de VPS, ils ont également étendu leur fonctionnement pour cibler les plateformes d'hébergement d'applications cloud. Heroku, par exemple, en fournit une qui prend en charge plusieurs langages de programmation, tandis que Togglebox propose à la fois des services serveurs privés virtuels et d'hébergement d'applications. Les deux prennent en charge le déploiement d'apps en tant que conteneurs à l'aide de Docker et de Kubernetes, et Automated Libra en a pleinement profité. « L'architecture d'infrastructure employée par les acteurs utilise des techniques CI/CD, dans lesquelles chaque composant logiciel individuel d'une opération est placé dans un conteneur », ont déclaré les chercheurs.
Ils ajoutent « ce conteneur fonctionne dans une architecture modulaire au sein de l'exploitation de minage plus large. Les architectures CI/CD fournissent des environnements opérationnels hautement modulaires, permettant à certains composants d'une opération d'échouer, d'être mis à jour ou même d'être résiliés et remplacés, sans affecter l'environnement plus large ». Tous les conteneurs ne sont pas utilisés pour du cryptominage. Certains le sont pour automatiser la création de comptes et les tâches de déploiement, d'autres pour automatiser la vente de la cryptomonnaie extraite sur différentes plateformes de marchés et d'échanges.
Des comptes Github créés à la chaîne
GitHub Actions automatise la création et le test de code logiciel avec un service gratuit pour les référentiels publics, des minutes offertes de temps d'exécution ainsi que de l'espace de stockage pour les référentiels privés. Les workflows GitHub Actions sont des processus automatisés définis dans des fichiers .yml à l'aide de la syntaxe YAML exécutés lorsque certains déclencheurs ou événements se produisent. Ils peuvent impliquer la réalisation de scripts Bash, la génération et la copie de fichiers, etc. Il s'agit essentiellement d'une série de tâches définies par l'utilisateur exécutées sur une machine virtuelle, généralement dans le but de compiler des applications à partir de code et de les tester.
Pour automatiser la création de comptes GitHub, les attaquants ont utilisé des conteneurs déployés sur Togglebox qui contenaient un navigateur basé sur Chromium appelé Iron;xdotool, un outil servant à générer des entrées clavier et souris. Et aussi la boîte à outils ImageMagick pour convertir, éditer et composer des images numériques. Tout d'abord, le processus automatisé a ouvert la page de création de compte GitHub Iron et a ouvert une session de bureau à distance VNC sur le navigateur. Xdotool s'est connecté sur ce dernier via VNC et a automatiquement rempli et soumis le formulaire. À ce stade, le processus de création de compte présente un Captcha que l'utilisateur doit résoudre. Le défi GitHub Captcha demande à l'utilisateur de sélectionner la galaxie spirale parmi plusieurs images avec des galaxies de formes différentes. Pour le transmettre, xdotool télécharge les images et les transmet à ImageMagick, qui est ensuite utilisé pour les convertir en images complémentaires rouges, vertes et bleues (RVB).
Cela les transforme essentiellement en taches de couleurs rouge, verte et bleue sur fond blanc. Ensuite, la commande d'identification ImageMagick est utilisée pour déterminer l'asymétrie du canal rouge, et l'image avec les valeurs les plus basses a été choisie comme galaxie spirale. Tout ce processus automatisé, que les chercheurs ont réussi à récupérer à partir d'un conteneur, a été conçu spécifiquement pour un défi Captcha et il est peu probable qu'il fonctionne avec d'autres. Les chercheurs n'ont pas testé l'efficacité de cette technique, mais ont déterminé que les attaquants avaient réussi à enregistrer plus de 20 000 comptes GitHub rien qu'en novembre.
Des conteneurs pour activer la fonction de cryptominage
Une fois le compte enregistré, l'étape suivante consistait à enregistrer un jeton d'accès personnel avec des autorisations de workflows, à paramétrer des clés SSH et à utiliser l'API GitHub pour configurer un référentiel et les autorisations correspondantes. Celui-ci a ensuite été mis à jour avec un workflow généré par un script PHP pour avoir des attributs aléatoires et être unique par rapport aux workflows déployés sur d'autres comptes. Une fois exécuté, le workflow a créé 64 tâches et a utilisé repository_dispatch sous l'événement github.event.client_payload.app pour exécuter des applications hébergées en externe. Initialement, celles-ci étaient employées pour valider des scripts Bash externes, mais les attaquants sont ensuite passés à l'exécution de conteneurs qui ont installé et lancé la fonctionnalité de cryptominage.
« Il est important de noter qu'Automated Libra conçoit son infrastructure pour tirer le meilleur parti des outils CD/CI », ont déclaré les chercheurs. « Cela devient plus facile à réaliser au fil du temps, car les fournisseurs de serveurs privés virtuels traditionnels diversifient leurs portefeuilles de services pour inclure des services liés au cloud. La disponibilité de ces services liés au cloud facilite la tâche des acteurs de la menace car ils n'ont pas à maintenir l'infrastructure pour déployer leurs applications. Dans la majorité des cas, il leur suffira de déployer un conteneur ».
Alors que ce groupe abuse des ressources informatiques des fournisseurs de services cloud eux-mêmes, les mêmes pratiques de développement modernes et services d'hébergement d'applications cloud sont de plus en plus utilisés pour mettre en place une infrastructure de commande et de contrôle par différents groupes pour une variété d'attaques. Avec pour conséquence de rendre les efforts d'attribution et de démantèlement très lourds et beaucoup plus difficiles.