6 points par GN⁺ 2024-08-09 | 1 commentaires | Partager sur WhatsApp

Le problème des paquets spam à grande échelle sur npm

  • L’équipe de recherche de Phylum a découvert une forte hausse des paquets spam liés au protocole Tea sur npm
  • Le protocole Tea est un système qui récompense les contributions open source en cryptomonnaie, ce qui pousse les développeurs à exagérer leurs contributions
  • Au deuxième trimestre 2024, environ 25 % des paquets publiés sur npm seraient des paquets spam liés au protocole Tea

Bref résumé

  • Le protocole Tea utilise un algorithme qui incite les développeurs à exagérer leurs contributions
  • npm subit une grave pollution à cause de ces paquets spam
  • Les caractéristiques de ces paquets spam sont des noms de paquets générés aléatoirement, des listes de dépendances suspectes et un fichier tea.yaml

Un nouveau point de vue

  • Depuis le début de l’année 2024, le nombre de paquets publiés sur npm a fortement augmenté
  • Le 8 avril 2024, plus de 48 000 paquets ont été publiés en une seule journée
  • Pendant le T2, entre 21,25 % et 25,5 % des paquets npm publiés seraient des paquets spam
  • Si l’on restreint l’analyse aux nouveaux paquets, la proportion de spam monte entre 68,66 % et 74,67 %

Y a-t-il une menace ?

  • À ce jour, rien ne prouve que ces paquets spam contiennent des attaques malveillantes
  • Cependant, ce spam pollue l’écosystème open source et peut fausser les données d’entraînement des modèles d’IA
  • Il crée aussi un environnement dans lequel de vrais paquets malveillants peuvent se dissimuler

Penser du point de vue de l’adversaire

  • En prenant le paquet sournoise comme exemple, le site web de npm indique qu’il dépend de axios, alors qu’en réalité il dépend de paquets spam
  • Il s’agit d’un effet secondaire de la manière dont npm traite les dépendances et les affiche aux utilisateurs
  • À cause des dépendances transitives, des paquets non voulus ou inattendus peuvent être inclus côté développeur

Conclusion

  • La pollution de l’écosystème des logiciels open source est un problème pour tout le monde
  • Le projet Tea Protocol prend des mesures pour résoudre ce problème
  • npm supprime également certains paquets spam, mais n’arrive pas à suivre le rythme des nouvelles publications
  • Le problème ne se limite pas à npm : des paquets spam similaires ont aussi été trouvés sur Rubygems
  • Phylum étudie activement ce domaine et cherchera de nouvelles méthodes pour détecter ce spam à mesure que ces acteurs adapteront leurs tactiques

Le résumé de GN⁺

  • Le système de récompense du protocole Tea pousse les développeurs à exagérer leurs contributions
  • L’intention du projet en faveur de la durabilité de l’open source était peut-être bonne, mais il semble avoir sous-estimé les effets secondaires et les cas d’abus qui en découlent. Une conception rigoureuse du mode de mesure des contributions et du système de récompense, ainsi qu’une surveillance continue, semblent nécessaires
  • Cet afflux massif de paquets spam dépasse la simple question de la sécurité de paquets individuels et peut menacer la fiabilité et la santé de l’ensemble de l’écosystème open source. Une approche et une coopération à l’échelle de l’écosystème semblent nécessaires pour une solution de fond
  • Le fait que cela puisse introduire des biais si ces données sont utilisées pour l’entraînement de modèles d’IA est particulièrement préoccupant. Il semble urgent d’établir des lignes directrices pour la gestion et la validation de la qualité des données
  • La possibilité d’installer des paquets inattendus via les dépendances transitives est suffisante pour alerter les développeurs. Cela montre qu’au-delà du besoin d’outils automatisés de gestion des dépendances, la vigilance et la revue manuelle des développeurs restent essentielles dans le choix des paquets
  • À plus long terme, il pourrait être nécessaire d’explorer des alternatives plus transparentes et vérifiables, comme des registres de paquets ou des systèmes de réputation fondés sur la blockchain

1 commentaires

 
GN⁺ 2024-08-09
Avis Hacker News
  • Le mode de gestion des dépendances des paquets par npm pose problème

    • S'il y a simplement une clé dans package.json, cela est considéré comme une dépendance, sans rapport avec le paquet réel
    • Cela rend l'écosystème des dépendances plus vulnérable
  • Il faut supprimer tous les paquets qui utilisent tea.yaml

    • Le protocole Tea encourage des comportements malveillants
    • Il endommage le système
  • Les comptes de spam doivent être bloqués et supprimés définitivement

    • Par exemple, il existe un compte avec 1 781 paquets dénués de sens
    • La procédure de signalement est compliquée et fastidieuse
  • Les modèles d'IA risquent d'être biaisés à cause des paquets de spam

    • Le principe de "garbage in, garbage out" s'applique
  • Le modèle d'incitation du protocole Tea est problématique

    • Il pousse les développeurs à publier du spam sur npm
    • Il endommage l'écosystème
  • Résumé :

    • Un plan de financement du développement OSS basé sur la cryptomonnaie encourage le spam
    • Il est facile de tromper sur les dépendances via package.json
  • L'objectif du protocole Tea est de renforcer l'économie du logiciel open source

    • Cependant, son modèle d'incitation est mal conçu et encourage le spam
    • L'"effet cobra" et la "loi de Goodhart" s'appliquent
  • Il existe des cas où des projets populaires sont copiés puis publiés sur npm avec des noms latins aléatoires

    • Des centaines de signalements de spam ont été envoyés
  • Il y a déjà eu des projets similaires à Tea

    • Ils versaient chaque mois une petite quantité de bitcoins jusqu'à l'échec du projet et l'épuisement des fonds
  • Les gestionnaires de paquets disposent d'un système de notation

    • Il est peu probable que les paquets de spam aient un impact sur l'IA
    • Les entreprises dignes de confiance n'utilisent pas de paquets de spam