En avril, l’équipe de recherche de Phylum a révélé la prolifération de paquets de spam sur npm associés au protocole Tea. Ce protocole décentralisé promet de récompenser les développeurs de logiciels en cryptomonnaie pour leurs contributions open-source. Fin juillet, dans son rapport trimestriel, Phylum estimait qu'environ un paquet sur quatre publié sur npm au deuxième trimestre était associé à Tea, dont la quasi-totalité servait à gonfler artificiellement la contribution d'un développeur de logiciel. Grâce à de nouvelles recherches menées dans une perspective nouvelle, Phylum assure pouvoir désormais affirmer que le volume de ces paquets est probablement plus important que ses estimations initiales.Le protocole Tea
L'un des principes fondamentaux du Protocole Tea est que les logiciels libres doivent être reconnus pour leur impact réel, et pas seulement pour leur visibilité ou leur utilité immédiate. Ce principe s'applique à l'ensemble des logiciels, qu'il s'agisse des interfaces utilisateur élégantes ou des bibliothèques souvent invisibles qui rendent tout cela possible. Il est essentiel pour le protocole de déterminer avec précision la valeur des logiciels libres, afin de remplir sa mission qui consiste à récompenser équitablement ses mainteneurs, et il s'appuie sur l'oracle Proof of Contribution (preuve de contribution).
Contrairement aux mécanismes onchain traditionnels qui reposent sur la puissance de calcul ou les enjeux financiers, Proof of Contribution évalue l'impact des contributions logicielles au sein de l'open-source en utilisant le teaRank, une métrique basée sur le réseau qui reflète la quantité et la qualité des dépendants d'un projet. Le score s'adapte au fil du temps, encourage les nouveaux projets à défier les projets établis et garantit que la reconnaissance s'étend à l'ensemble de la pile open-source, de la glibc aux dernières bibliothèques javascript UI.
Pourquoi une nouvelle approche est-elle nécessaire ?
L'écosystème Open Source qui sous-tend tous les logiciels peut être représenté comme une tour de briques où les couches inférieures sont (souvent) oubliées depuis longtemps, mais toujours maintenues par des ingénieurs dévoués, et sur lesquelles le reste de la pile s'appuie. Seuls les projets situés au sommet de la tour sont généralement connus et bénéficient d'un parrainage. Cette sélection biaisée fait que les briques essentielles qui soutiennent la tour n'attirent aucun don, tandis que les favoris reçoivent plus que ce dont ils ont besoin. Les modèles de financement existants permettent aux consommateurs de projets de proposer des paiements aux développeurs pour qu'ils créent des fonctionnalités spécifiques, ce qui ne rémunère les projets que pour les actions qu'ils entreprennent, pas nécessairement dans leur meilleur intérêt. Et une fois de plus, ils ne récompensent que les favoris.
tea change la donne. Inspiré par PageRank, l'oracle modélise les logiciels libres comme un graphe orienté, où chaque nœud représente un projet et chaque arête une relation de dépendance. Ces données sur les dépendances sont glanées auprès des gestionnaires de paquets individuels et consolidées en une seule vue du graphe des logiciels libres. Avec teaRank, les contributeurs, les utilisateurs et le protocole disposent d'une note de 1 à 100 pour quantifier l'impact d'un paquet individuel par rapport à d'autres au sein du logiciel libre.
Un principe déjà détourné
Le protocole Tea incite de manière perverse les développeurs de logiciels à exagérer leur contribution au développement de logiciels libres. À l'aide d'un PageRank modifié appelé teaRank, les développeurs de logiciels sont récompensés en fonction de leur « preuve de contribution ». Comme les premiers spammeurs SEO qui ont compris comment jouer avec le PageRank à leur avantage, l'histoire se répète et quelques développeurs de logiciels ont pollué les dépôts de logiciels libres avec des quantités absurdes de paquets sans valeur.
C'est npm, le plus grand écosystème open-source, qui a le plus souffert de cette pollution de la part de divers acteurs. Ces paquets de spam se caractérisent notamment par des noms absurdes de paquets, des paquets nommés avec des combinaisons aléatoires de mots d'une liste, des listes invraisemblables de paquets dépendants, un nombre douteux de paquets dépendants et, dans ce marasme de dépendances transitives, l'omniprésent fichier tea.yaml qui identifie en fin de compte le propriétaire du code.
Lorsque Phylum a commencé à enquêter sur cette situation en février, le spécialiste de cybersécurité indique avoir nous avons été «...
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.