Beyond Takedown: Measuring Malicious Go Module Persistence in the Wild
Cet article révèle une attaque de la chaîne d'approvisionnement Go à grande échelle où des adversaires reconditionnent des modules légitimes avec des logiciels malveillants obfusqués, démontrant que le fait de se fier uniquement aux recherches GitHub ne permet pas de détecter l'ampleur réelle du compromis car plus de 99 % des artefacts malveillants supprimés restent récupérables via les proxys Go.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
Imaginez le monde du développement logiciel comme une immense bibliothèque animée où les programmeurs empruntent des « modules » (des blocs de code pré-écrits) pour construire leurs propres applications. Dans le langage de programmation Go, cette bibliothèque possède un bibliothécaire très strict : le Go Proxy.
Voici l'histoire d'un récent casse dans cette bibliothèque, racontée simplement.
Le Casse : « Le Faux Club de Lecture »
Des attaquants ont décidé de voler dans la bibliothèque, mais ils n'ont pas enfoncé les portes. À la place, ils ont joué un jeu d'impersonnalisation.
- La Mise en Place : Ils ont trouvé des livres légitimes et populaires (des modules de code légitimes) que tout le monde respectait.
- La Falsification : Ils ont créé de fausses copies de ces livres sous leurs propres noms. À l'intérieur de ces faux livres, ils ont caché un piège minuscule et invisible.
- Le Piège : Dans le monde de Go, quand vous « importez » (empruntez) un livre, la bibliothèque exécute automatiquement quelques tâches de configuration. Les attaquants ont caché une instruction malveillante à l'intérieur de ces tâches de configuration. C'était comme un livre qui, dès que vous l'ouvriez, murmurait secrètement une commande à votre ordinateur pour télécharger et exécuter un virus.
- Le Buzz : Pour que leurs faux livres paraissent réels, les attaquants ont utilisé une « armée de bots » pour leur donner des milliers d'« étoiles » (mentions j'aime) sur GitHub, trompant ainsi les développeurs en leur faisant croire : « Oh, celui-ci doit être populaire et sûr. »
L'Enquête : Deux Façons de Regarder
Les chercheurs (Minjae Bae et Carter Yagemann) voulaient voir à quel point ce problème était important. Ils ont utilisé deux lampes de poche différentes pour chercher les voleurs.
Lampe de poche 1 : La recherche GitHub (La vue de « l'Étagère »)
Ils ont cherché manuellement sur le site d'hébergement principal (GitHub), en cherchant des modèles suspects et en suivant les connexions d'« étoiles » entre les comptes.
- Ce qu'ils ont trouvé : Ils ont trouvé 2 113 dépôts frauduleux.
- Le Problème : Cette lampe de poche ne fonctionne que si le faux livre est encore posé sur l'étagère. Si le personnel de la bibliothèque retire le livre, ou si le voleur ne l'a jamais posé sur l'étagère principale, cette lampe de poche ne voit rien.
Lampe de poche 2 : Le Scan du Proxy (La vue de la « Circulation »)
Ils ont construit un scanner spécial appelé GOAST (un robot qui lit le code sans l'exécuter) pour scanner le Go Proxy. C'est le système de sauvegarde de la bibliothèque. Il conserve une copie parfaite et immuable de chaque livre qui a déjà été emprunté, même si le livre original est supprimé de l'étagère.
- Ce qu'ils ont trouvé : Ils ont trouvé 2 289 versions malveillantes.
- La Surprise : La lampe de poche du Proxy a trouvé 83 % de livres malveillants en plus que la lampe de poche GitHub. Beaucoup de ces faux livres n'étaient même pas sur l'étagère principale, ou avaient déjà été retirés, mais le Proxy les possédait toujours.
La Grande Découverte : « Supprimer » ne signifie pas « Réparer »
C'est la partie la plus importante de l'histoire.
Habituellement, lorsqu'une équipe de sécurité trouve un mauvais livre, elle demande à la bibliothèque de le supprimer. Ils suppriment le dépôt sur GitHub. Ils pensent : « Super, la menace est écartée. »
Les chercheurs ont prouvé que c'est faux.
Parce que le Go Proxy conserve une copie permanente et immuable de chaque module, supprimer la source sur GitHub ne supprime pas le virus de l'écosystème.
- Les chercheurs ont découvert que même après que les dépôts des attaquants ont été supprimés ou suspendus (les rendant « invisibles » sur GitHub), 99,4 % de ces modules malveillants étaient toujours disponibles et téléchargeables via le Go Proxy.
- C'est comme si le personnel de la bibliothèque jetait un faux livre à la poubelle, mais que le drone de livraison automatisé de la bibliothèque (le Proxy) possède toujours une copie parfaite dans son entrepôt et continue de la livrer aux clients qui la demandent.
Le Résultat
Les chercheurs ont informé le personnel de la bibliothèque (GitHub et Google) du problème.
- GitHub a supprimé 684 dépôts malveillants.
- Google (l'équipe du Proxy) a nettoyé 1 377 versions de modules malveillants de son stockage permanent.
La Leçon
On ne peut pas résoudre un problème de chaîne d'approvisionnement logicielle simplement en nettoyant la couche d'« hébergement » (GitHub). Si la couche de « distribution » (le Proxy) conserve le mauvais code, la menace perdure. Pour vraiment résoudre le problème, il faut nettoyer à la fois l'étagère et l'entrepôt.
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.