Sur GitHub, méfiance avec les étoiles ?
Des chercheurs ont entrepris une forme d'analyse à grande échelle du phénomène des fausses étoiles sur GitHub. Ils en ont dégagé quelques caractéristiques.
Les étoiles, peu fiables pour mesurer la popularité des projets sur GitHub ?
La littérature à ce sujet est abondante. On y trouve, entre autres, des études ayant démontré :
- Que l'indicateur est peu corrélé au nombre de téléchargements (université technique de Brunswick)
- Qu'il ne prédit pas l'importance d'un projet dans un écosystème (Complexity Science Hub de Vienne)
- Qu'il ne dit rien de la durée de vie des projets (université de Pékin)
En parallèle, on a connaissance d'un "marché noir des étoiles", comme il en existe pour les likes. Une pratique qui peut permettre de booster artificiellement des dépôts dans une logique de growth hacking ou de développement de carrière (fraude au CV)... mais aussi de diffusion de spam voire de malwares.
Des chercheurs issus principalement de Carnegie-Mellon ont entrepris de caractériser à grande échelle l'ampleur de cette pratique. En s'appuyant sur des travaux existants en matière de minage de dépôts logiciels et de détection de fraude sur les réseaux sociaux, ils ont conçu StarScout, un outil algorithmique destiné à détecter les comportements anormaux de starring (attribution d'étoiles). Ils l'ont fait travailler sur GHArchive, base volumineuse d'événements GitHub englobant quelque 60 millions d'utilisateurs, 310 millions de repos et 610 millions d'étoiles (période : 2019-2024).
CopyCatch, des faux likes aux fausses étoiles
StarScout détecte deux signatures possiblement associées aux "fausses étoiles". D'une part, celles issues de comptes qui deviennent inactifs peu après avoir attribué une étoile à un dépôt. De l'autre, celles provenant de clusters de n comptes ayant agi ensemble de manière répétée pour "étoiler" un autre cluster de m dépôts dans une certaine fenêtre de temps.
La première signature (dite "low activity") détecte plus précisément les comptes qui n'ont attribué qu'une étoile et qui, le même jour, n'ont réalisé au maximum qu'une autre opération sur le même dépôt. Pour éviter les faux positifs, StarScout n'inclut que les dépôts auxquels sont associées au moins 50 étoiles suspectes (c'est souvent la quantité minimale vendue).
La deuxième signature consiste en une réimplémentation de CopyCatch, un algo mis en oeuvre chez Facebook pour repérer les faux likes. On l'applique aux repos comptant plus de 50 étoiles.
Pour éviter la détection, de faux comptes peuvent éventuellement "étoiler" des dépôts véritablement populaires. Face, entre autres, à cette pratique, les chercheurs ont intégré une étape de post-traitement. Elle vise à ne conserver que les dépôts présentant des pics anormaux de fausses étoiles représentant une part non négligeable du total d'étoiles obtenues. Pour cela, on détecte les dépôts respectant deux critères. D'un côté, avoir, sur au moins un mois donné, récolté plus de 100 étoiles dont plus de la moitié de fausses. De l'autre, avoir, au global, plus de 10 % de fausses étoiles. Ils sont alors considérés comme des dépôts sujets à des campagnes d'attribution de "fake stars".
Un phénomène qui s'est développé en 2024
À l'issue d'une analyse en deux temps, les chercheurs ont détecté 15 835 de ces repos, pour un volume de 3,1 millions de fausses étoiles émanant de quelque 278 000 comptes.
Parmi leurs constats sur cet échantillon :
- Les attributions de fausses étoiles ont commencé à croître en 2022 (souvent pas plus de 10 dépôts par mois concernés auparavant) et ont explosé en 2024 (jusqu'à 3216 dépôts touchés en juillet 2024)
- Un petit nombre de comptes peut avoir de l'influence sur un grand nombre de dépôts (les 3216 repos de juillet 2024 représentaient, ce mois-là, 15,84 % des repos actifs à plus de 50 étoiles ; les fake stars émanaient de 30 779 comptes, soit 1,88 % des utilisateurs actifs)
- Peu de ces dépôts sont publiés dans des registres type npm et PyPi (on peut donc supposer que les campagnes qui touchent ces registres sont distinctes de celles qui touchent GitHub)
La plupart des "dépôts à fausses étoiles" ont une durée de vie très courte (plus de trois quarts enregistrent des événements pendant moins de 3 jours). La majorité semblent liés à des versions piratées de logiciels, à des cheats de jeu vidéo et à des bots crypto. En tout cas si on en croit leur nom (GHArchive ne stocke pas leur contenu, GitHub parvient à les supprimer assez rapidement et des bases comme World of Code ou Software Heritage permettent d'en récupérer moins de 1 %).
Souvent, les comptes distribuant de fausses étoiles n'appartiennent pas à une organisation. Et ne mentionnent pas, sur leur profil, d'affiliation ou de site. Mais l'écart avec le "compte GitHub moyen" n'est pas significatif, jugent les chercheurs. Pour les distinguer, on préférera examiner leur comportement. La majorité (60 %) ont des patterns d'activité qualifiés de "simples".
Les fausses étoiles, un coup de boost... à court terme
Certains dépôts sujets à des campagnes d'attribution de fausses étoiles n'ont pas pour autant été supprimés. L'occasion d'évaluer dans quelle mesure ces fake stars aident à en obtenir de vraies. Des modèles de régression ont été employés à cet effet. Avec des limites, reconnaissent les chercheurs. En particulier, l'impossibilité d'appliquer le test de causalité au sens de Granger, faute de séries temporelles suffisamment longues.
Le résultat ? Une augmentation de 1 % du nombre de "vraies étoiles" sur un mois m est corrélée à une augmentation de 0,36 % à m+1 et m+2, puis 0,15 % à m+3 et 0,11 % à m+x. Avec de "fausses étoiles", l'effet est trois à quatre fois moins important... et il est même rapidement négatif : 0,08 % à m+2, 0,04 % à m+3... puis - 0,05 % par après.
Illustration principale
Sur le même thème
Voir tous les articles Open source