- Actualités
- >cybersécurité
15 000 dépôts de modules Go sur GitHub vulnérables aux attaques de repojacking
- par Kenan
- , Publié le 5 décembre 2023
- , à23 h 35 min
De nouvelles recherches ont révélé que plus de 15 000 dépôts de modules Go sur GitHub sont vulnérables à une attaque appelée « repojacking ».
« Plus de 9 000 dépôts sont vulnérables au repojacking en raison de changements de nom d’utilisateur sur GitHub », a déclaré Jacob Baines, directeur de la technologie chez VulnCheck, dans un rapport partagé avec The Hacker News. « Plus de 6 000 dépôts étaient vulnérables au repojacking en raison de la suppression de comptes.
Collectivement, ces dépôts représentent pas moins de 800 000 versions du module Go.
Le repojacking, portmanteau de « repository » et « hijacking », est une technique d’attaque qui permet à un acteur malveillant de profiter des changements et suppressions de noms d’utilisateur pour créer un dépôt avec le même nom et le nom d’utilisateur préexistant afin de mettre en place des attaques de la chaîne d’approvisionnement des logiciels open-source.
Au début du mois de juin, la société de sécurité Aqua a révélé que des millions de dépôts de logiciels sur GitHub étaient probablement vulnérables à cette menace, et a exhorté les organisations qui changent de nom à s’assurer qu’elles sont toujours propriétaires de leur ancien nom afin d’éviter de tels abus.
Les modules écrits dans le langage de programmation Go sont particulièrement vulnérables au repojacking car, contrairement à d’autres solutions de gestion de paquets comme npm ou PyPI, ils sont décentralisés du fait qu’ils sont publiés sur des plateformes de contrôle de version comme GitHub ou Bitbucket.
« N’importe qui peut alors demander au miroir de modules Go et à pkg.go.dev de mettre en cache les détails du module », a déclaré M. Baines. « Un attaquant peut enregistrer le nouveau nom d’utilisateur inutilisé, dupliquer le dépôt de modules et publier un nouveau module sur proxy.golang.org et go.pkg.dev. »
Pour empêcher les développeurs de télécharger des paquets potentiellement dangereux, GitHub a mis en place une contre-mesure appelée « popular repository namespace retirement » qui bloque les tentatives de création de dépôts avec les noms d’espaces de noms retirés qui ont été clonés plus de 100 fois avant que les comptes des propriétaires ne soient renommés ou supprimés. Mais VulnCheck a noté que cette protection n’est pas utile lorsqu’il s’agit de modules Go, car ils sont mis en cache par le miroir de modules, ce qui évite d’avoir à interagir avec un référentiel ou à le cloner. En d’autres termes, il pourrait y avoir des modules populaires basés sur Go qui ont été clonés moins de 100 fois, ce qui constitue une sorte de contournement.
« Malheureusement, l’atténuation de tous ces repojackings est quelque chose que Go ou GitHub devront prendre en charge », a déclaré M. Baines. « Un tiers ne peut raisonnablement pas enregistrer 15 000 comptes GitHub. En attendant, il est important que les développeurs Go soient conscients des modules qu’ils utilisent et de l’état du dépôt d’où proviennent ces modules ».
La divulgation intervient également alors que Lasso Security a déclaré avoir découvert 1 681 jetons API exposés sur Hugging Face et GitHub, y compris ceux associés à Google, Meta, Microsoft et VMware, qui pourraient être potentiellement exploités pour mettre en scène des attaques de chaîne d’approvisionnement, d’empoisonnement des données d’entraînement et de vol de modèles.