GitHub fait face à un problème croissant de fausses étoiles, qui gonflent artificiellement la popularité de certains dépôts, trompant ainsi les développeurs. Une étude menée par les universités Carnegie Mellon et de Caroline du Nord a révélé que ces campagnes de fausses étoiles, souvent payantes, sont utilisées pour promouvoir des projets malveillants, comme des logiciels de phishing ou des malwares, qui compromettent la sécurité des systèmes. En 2024, près de 16 % des dépôts populaires étaient impliqués dans ces campagnes. L'outil StarScout a détecté plus de 4,5 millions de fausses étoiles sur 15 835 dépôts entre 2019 et 2024. Ces fausses étoiles nuisent à l'écosystème de GitHub en détournant l'attention des projets authentiques et en exposant les utilisateurs à des risques de sécurité. Il est recommandé de vérifier l’activité d’un dépôt au-delà de son nombre d’étoiles et de recourir à des mesures de réputation pour évaluer la sécurité des logiciels. GitHub doit renforcer la modération et mettre en place des systèmes pour détecter et éliminer ces campagnes trompeuses.
GitHub, la plateforme incontournable pour le développement de logiciels libres, offre des fonctionnalités similaires à celles des médias sociaux pour évaluer la qualité des dépôts. Parmi ces outils, le nombre d'étoiles est le critère de popularité le plus couramment utilisé. Cependant, ce signal peut être artificiellement manipulé, ce qui en réduit la fiabilité pour la prise de décision et représente un risque de sécurité pour tous les utilisateurs de GitHub. Les chercheurs ont développé StarScout, un outil évolutif capable de détecter les comportements anormaux liés aux étoiles (tels que l'activité minimale et les comportements synchronisés) en analysant les métadonnées de GitHub. L'analyse des données collectées via StarScout révèle que :
- les activités associées aux fausses étoiles ont considérablement augmenté depuis 2024 ;
- les profils des utilisateurs impliqués dans ces pratiques ne diffèrent pas beaucoup de ceux des utilisateurs moyens de GitHub, mais leurs modèles d'activité sont souvent très anormaux ;
- la majorité des fausses étoiles sont utilisées pour promouvoir des dépôts de logiciels malveillants de courte durée, se faisant passer pour des outils de piratage, des tricheurs de jeux ou des bots de crypto-monnaie ;
- bien que certains dépôts obtiennent des fausses étoiles pour accélérer leur croissance, cet effet de promotion est temporaire (moins de deux mois) et devient nuisible à long terme.
Cette étude a des implications importantes pour les modérateurs de plateformes, les praticiens du logiciel libre et les chercheurs en sécurité de la chaîne d'approvisionnement. « Plus un indicateur social quantitatif est utilisé pour la prise de décision sociale, plus il sera soumis aux pressions de la corruption et plus il sera apte à déformer et à corrompre les processus sociaux qu'il est censé surveiller », Donald T. Campbell.
Le nombre d'étoiles sur GitHub est l'indicateur le plus couramment utilisé pour évaluer, sélectionner et adopter des projets open source dans les chaînes d'approvisionnement en logiciels. Toutefois, il ne représente qu'un signal de popularité, qui est souvent mal corrélé à l'utilisation réelle ou à l'importance du projet. De plus, ces étoiles peuvent être artificiellement gonflées, comme d'autres signaux de popularité sur les réseaux sociaux. Par exemple, une recherche en ligne pour « acheter des étoiles GitHub » révèle de nombreux fournisseurs qui proposent ces étoiles à des prix variant de 0,10 à 2,00 dollars chacune, avec des délais de livraison rapides.
Les dépôts peuvent acheter ces étoiles à des fins telles que la croissance artificielle, le spamming, la fraude au CV ou la propagation de logiciels malveillants. Ces fausses étoiles altèrent la valeur du nombre d'étoiles en tant que signal fiable pour les parties prenantes, et peuvent également représenter une menace pour la sécurité de tous les utilisateurs de GitHub.
Cependant, la majorité des études antérieures sur les fausses étoiles proviennent de sources non académiques et se limitent à l'analyse de quelques dépôts, sans fournir une mesure systématique et longitudinale de cette menace, notamment en ce qui concerne la sécurité des chaînes d'approvisionnement en logiciels. Face à l'augmentation des attaques contre ces chaînes d'approvisionnement, il est crucial de mieux comprendre les fausses étoiles et les activités frauduleuses qui les entourent pour concevoir des contre-mesures efficaces.
Les défis liés à la mesure globale des fausses étoiles sont multiples : elles peuvent être falsifiées de diverses manières (par des robots, des utilisateurs crowdsourcés, des plateformes d'échange d'étoiles) et les acteurs malveillants adaptent constamment leurs comportements pour échapper à la détection. De plus, la quantité de données de GitHub et les limitations des API compliquent l'analyse à grande échelle, tandis que la suppression des dépôts et utilisateurs par GitHub rend difficile la mesure des activités frauduleuses après coup.
Pour surmonter ces obstacles, les chercheurs ont développé StarScout, un outil évolutif qui analyse l'ensemble de GHArchive, une base de données répliquée de Google BigQuery contenant tous les événements GitHub. StarScout détecte les fausses étoiles en identifiant deux comportements anormaux : la faible activité et le verrouillage synchronisé des étoiles.
Un exemple de dépôt de logiciels malveillants détecté par StarScout, signalé à GitHub et supprimé depuis. Il comptait 111 étoiles, dont on soupçonne au moins 109 d'être fausses. Le fichier README (en haut à gauche) suggère une application blockchain, mais s'il est exécuté, son code (en bas) vole des cryptomonnaies à l'aide d'un appel spawn() caché à un script d'exécution de fichier à distance fortement obfusqué (avec le nom d'un paquetage JavaScript apparemment légitime). Un fil de discussion (en haut à droite), vraisemblablement créé par une victime, met en garde contre un logiciel malveillant caché à l'intérieur.
Une liste non exhaustive de vendeurs des étoiles sur GitHub
En appliquant StarScout à toutes les données d'événements GitHub de juillet 2019 à octobre 2024, identifiant plus d'un million de fausses étoiles et 15 835 dépôts avec des campagnes de fausses étoiles. À l'aide de cet ensemble de données, nous menons une étude de mesure qui répond aux questions de recherche suivantes :
Quelle est la prévalence des fausses étoiles sur GitHub ?
Résultats : Dans l'ensemble, les fausses étoiles ont une prévalence et un impact limités sur GitHub avant 2024. Cependant, l'année 2024 voit une augmentation de deux ordres de grandeur des campagnes de fausses étoiles. Dans le pic de juillet 2024, StarScout détecte des campagnes de fakestar pour 15,84 % des dépôts avec ≥50 étoiles au cours de ce mois. Seuls 64 dépôts ont publié des paquets dans npm/PyPI, avec des preuves limitées d'adoption.
Notons que techniquement parlant, les résultats de détection de StarScout sont seulement les fausses étoiles présumées et les campagnes de fausses étoiles présumées, parmi lesquelles il peut toujours y avoir des faux positifs il peut encore y avoir des faux positifs. Toutefois, pour faciliter la lecture du présent document, ils seront simplement appelés « fausses étoiles » et « campagnes de fausses étoiles » dans la suite.
Quelles sont les caractéristiques des dépôts GitHub avec de fausses campagnes d'étoiles ?
Résultats : Les preuves dont nous disposons suggèrent que la majorité des dépôts avec des campagnes de fausses étoiles sont des dépôts de logiciels malveillants d'hameçonnage de courte durée qui se déguisent en logiciels de piratage, en tricheurs de jeux ou en robots de crypto...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.