
GitHub a neutralisé 73 dépôts répartis sur quatre organisations de Microsoft : Azure, Azure-Samples, Microsoft et MicrosoftDocs. Le mécanisme de désactivation automatique a tout neutralisé en 105 secondes. Un message apparaît expliquant que l’accès a été désactivé pour violation des conditions d’utilisation.
Quand un développeur clone le dépôt et l’ouvre dans l’un de ces outils, les fichiers de configuration exécutent automatiquement un script obfusqué de 4,3 Mo. Ce dernier collecte les jetons d’authentification et mots de passe stockés localement pour des dizaines de services cloud et d’outils développeurs. Cela inclut AWS, Azure, GCP, Kubernetes, npm et GitHub. Une fois collectés, les identifiants permettent ensuite de propager le ver dans d’autres dépôts accessibles depuis les comptes compromis.
Le commit malveillant était en outre antidaté à 2020 et portait un flag [skip ci]. Cette instruction désactive les vérifications automatiques des pipelines CI/CD. Ces chaînes testent et déploient le code de façon continue. Le commit passait ainsi sans déclencher les alertes de sécurité habituelles.

Miasma n’exploite aucune faille précise dans GitHub ou npm et c’est précisément ce qui le rend difficile à détecter. Il abuse du modèle de confiance de ces plateformes. Un commit signé avec un compte valide est traité comme une mise à jour légitime, même si ce compte est entre les mains d’un attaquant. Comme l’ont relevé les chercheurs de FalconFeeds.io, une fois le compte et la clé de signature compromis, chaque push malveillant ressemble à de la maintenance ordinaire.
La mise hors ligne d’Azure/functions-action a provoqué des interruptions en cascade. Cet outil est une brique d’automatisation officielle de Microsoft : il permet aux équipes de livrer du code directement sur Azure Functions, le service cloud qui fait tourner des programmes sans avoir à gérer de serveurs. Dès sa suspension, toutes les chaînes de déploiement qui en dépendaient se sont figées.
Trois actions sont requises. La première consiste à régénérer tous les jetons d’authentification des comptes concernés. Un jeton, c’est l’équivalent d’un mot de passe automatique qui permet à un outil d’accéder à vos ressources cloud sans intervention manuelle. S’il a été volé, le remplacer le rend d’emblée inutilisable par l’attaquant. Ensuite, il est nécessaire de vérifier que le ver n’a pas créé de dépôts publics non autorisés dans les organisations GitHub affectées. C’est précisément dans ce type de dépôts qu’il stocke les identifiants volés. Enfin, il est conseillé d’épingler les GitHub Actions à un identifiant de commit précis plutôt qu’à un tag. Un tag comme « @v1 » peut être modifié et un attaquant qui contrôle le dépôt peut le faire pointer vers du code malveillant sans que rien ne change en apparence. Un identifiant de commit, lui, est figé et désigne toujours exactement la même version du code.
via clubic