Connexion
Abonnez-vous

Malware, scams… l’évaluation des projets sur GitHub minée par les fausses étoiles

Malware, scams… l’évaluation des projets sur GitHub minée par les fausses étoiles

Des chercheurs des universités américaines de Carniegie Mellon et de Caroline du Nord et de l'entreprise de sécurité Socket se sont penchés sur le système d'étoiles permettant l'évaluation des projets publiés sur GitHub. Selon eux, de nombreux projets sont boostés par de « fausses étoiles ». Ils ont détecté plus de 3,1 millions d'étoiles suspectes grâce à leur outil StarScout disponible sur... GitHub.

Le 02 janvier à 17h42

Dans un article mis en ligne sur la plateforme de prépublication scientifique arXiv, la doctorante Hao He de l'université Carniegie Mellon et ses collègues expliquent avoir recensé plus de 4,5 millions de fausses étoiles attribuées à des projets GitHub. Comme ils l'indiquent, cette création massive de fausses étoiles est particulièrement problématique alors que « le nombre d'étoiles est le signal de popularité le plus utilisé » par les développeurs pour sélectionner un projet sur la plateforme. Le problème avait notamment été soulevé par l'entreprise de sécurité informatique Check Point en juillet dernier.

Mais ici, pour identifier ces fausses étoiles, les chercheurs ont développé un outil qu'ils ont appelé StarScout et qui permet de détecter les « comportements anormaux » autour de l'attribution d'étoiles. Les sources de StarScout sont accessibles sur la plateforme (en licence libre Apache 2.0).

Les chercheurs expliquent que « la majorité des fausses étoiles sont utilisées pour promouvoir des dépôts de logiciels malveillants éphémères se faisant passer pour des logiciels de piratage, de triches pour des jeux ou des bots de crypto-monnaie ».

Dans leur étude, les chercheurs montrent que l'activité liée aux fausses étoiles a rapidement augmenté en 2024 :

0,10 dollar l'étoile

Les auteurs de l'article ont aussi fait une liste d'exemples de services qui proposent de générer des fausses étoiles. Par exemple, Baddhi propose de mettre une étoile sur votre projet pour 0,10 dollar (avec un minimum de 100) mais elle arrivera au bout d'un peu moins d'une semaine alors qu'un autre service comme FollowDeh vend une étoile pour 0,12 dollar en promettant qu'elle sera générée à l'instant du paiement.

3,1 millions de fausses étoiles détectées

Tel que décrit par les chercheurs, StarScout étudie le comportement des comptes qui notent les projets sur GitHub selon deux « signatures ». La première a vocation à détecter les comptes qui n’ont qu’une activité très ponctuelle après leur création. La seconde s’attache quant à elle à identifier des croisements entre des grappes de comptes ayant procédé à des actions similaires sur un même ensemble de projets, dans un laps de temps donné. « Ces deux signatures sont difficiles à éviter pour des comptes contrôlés par des marchands d’étoiles », estiment les auteurs, selon qui les délais de livraison promis par les vendeurs (voir tableau ci-dessus) ne pourraient être tenus sans créer ou mobiliser de nombreux comptes utilisateurs en peu de temps.

Au total, dans les cinq ans de données traitées, les chercheurs ont identifié 4,53 millions d'étoiles suspectées d'être « fausses » dans 22 915 dépôts et créées par 1,32 million de comptes. Après une analyse plus fine, StarScout a identifié « 15 835 dépôts contenant des campagnes de fausses étoiles (correspondant à 3,1 millions de fausses étoiles provenant de 278 000 comptes) », expliquent-ils.

Dans leur conclusion, les chercheurs tirent la sonnette d'alarme sur « un problème croissant » : « les campagnes de fausses étoiles apparemment coordonnées sont devenues environ 100 fois plus courantes en 2024 qu'en 2023, faussant davantage la fiabilité déjà douteuse d'un signal de popularité ».

« Mais le plus alarmant », ajoutent-ils, « c'est que les fausses étoiles sont manifestement associées à des risques de sécurité accrus ».

Par contre, ils mettent en avant que leur outil montre que la détection de ces fausses étoiles peut être efficacement faites « grâce aux informations publiques » auxquelles ils ont eu accès sur la plateforme.

Commentaires (9)

votre avatar
Les étoiles ne servent à rien et devraient être supprimées. Ces indicateurs de popularité ne font qu'appeler aux mauvaises choses…
votre avatar
Les étoiles servent au départ à bookmarker un projet, c'est tout, et ça il faut le garder. Il faut juste arrêter d'afficher le nombre d'étoiles d'un projet (comme si les sites web affichaient le nombre de personnes qui ont le site dans leurs bookmarks...)
votre avatar
Un indicateur pertinent pourrait facilement être construit sur la base de la régularité /diversité des comits + des questions / réponses liées au dépôt non ? En tout cas, pour le peu que j'utilise cette plate-forme, si personne ne pose de questions ou n'y répond, je n'utilise pas le code. À minima, je cherche à comprendre le code, mais il faut avouer que bien des fois, on regarde vite fait...
votre avatar
C’est ce que fait à peu près NPM : les dépôts peuvent être triés selon leur activité (nombre de commits dans l’année), commit le plus récent, nombre de téléchargements…
votre avatar
Même si la problématique n'est pas la même, il n'est pas non plus possible de faire confiance au nombre de fork ou de follow/watcher d'un projet ou d'un utilisateur.
Je vois fréquemment des comptes forker ou suivre des dépôts en masse.
votre avatar
Oui, le fork ne veut rien dire. Sur un de mes rares projets qui a reçu un peu d'activité, j'ai du avoir une dizaine de fork dont 1 réellement actif pour faire une proposition.
votre avatar
Tout système de ranking basé sur un nombre influençable par les utilisateurs est sujet à tromperie. La guerre des étoiles, ça ne date pas d'hier.

- Les fermes à faux avis/fausses notations.
- Les fermes à followers
- Les fermes à retweet/boost/repost

Perso je considère tous ces indicateurs comme truqués par conception, et donc faux.

Dans le cas de GitHub, la première chose que je vérifie c'est surtout les derniers commit sur le repo (de quand date le précédent, la fréquence, leur nature). Et après, les issues/PR. Si elles sont désactivées, déjà c'est mauvais signe (ou alors le bugtracker est externe). Si les issues pourrissent ou sont fermées sans rien dire alors que le projet est actif, ça pue encore plus.
votre avatar
votre avatar
Pas vraiment, not a bug signifie qu'il y a bien eu une qualification, et les issues ont une conversation.

Malware, scams… l’évaluation des projets sur GitHub minée par les fausses étoiles

  • 0,10 dollar l'étoile

  • 3,1 millions de fausses étoiles détectées

Fermer