En fin de semaine dernière, un ver informatique baptisé Miasma a compromis 73 dépôts GitHub de Microsoft en moins de deux minutes. L'attaque s'est appuyée sur des identifiants de contributeur volés pour récupérer des données dès l'ouverture d'un dépôt infecté.

73 dépôts GitHub de Microsoft piratés : ouvrir un projet IA suffit à compromettre votre PC ©Shutterstock
73 dépôts GitHub de Microsoft piratés : ouvrir un projet IA suffit à compromettre votre PC ©Shutterstock

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.

BitdefenderBitdefender
8.4/10

Offre partenaire

La solution tout-en-un pour protéger votre entreprise

Votre petite entreprise a de grandes ambitions. Protégez-là contre les pirates. Et développez sereinement votre activité !

Offre partenaire

Ouvrir un dépôt dans son IDE pour déclencher le vol d'identifiants

L'attaquant a accédé au dépôt Azure/durabletask avec des identifiants de contributeur compromis. Aucune ligne de code existante n'a été modifiée. Cinq fichiers de configuration ont été ajoutés, chacun ciblant un outil de développement populaire : Claude Code, Gemini CLI, Cursor, VS Code et le script de test npm.

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, héritier du ver Mini Shai-Hulud

Miasma n'est pas vraiment nouveau. Les chercheurs le rattachent à Mini Shai-Hulud, un ver rendu public par le groupe TeamPCP en mai dernier. Le même compte de contributeur avait déjà servi lors d'une attaque sur le package PyPI d'Azure/durabletask. Les identifiants volés lors de cet épisode n'avaient apparemment jamais été révoqués. Début juin, une première vague avait atteint 32 paquets npm sous le namespace @redhat-cloud-services avant que les dépôts Microsoft ne soient touchés à leur tour.

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.