DEV Community

Youssef Khouidi
Youssef Khouidi

Posted on

NPM = Far West : Il est temps d'arrêter cette folie

Depuis des décennies, l'écosystème JavaScript a été un espace accueillant et innovant où n'importe qui peut publier et partager du code. C'est magnifique. Cela a démocratisé le développement logiciel. Mais c'est aussi un cauchemar en matière de sécurité.

On a déjà vécu ça

Vous vous souvenez de l'époque des plugins jQuery ? Du chaos des extensions WordPress ? Des hacks CSS avec du JavaScript encodé en base64 qui infectaient l'intégralité de votre site web ? C'était censé être il y a des décennies. De l'histoire ancienne. Le mauvais vieux temps.

Et pourtant, nous voici presque en 2026, à regarder Shai-Hulud faire son deuxième comeback avec des backdoors triviales. (Et oui, je déteste les films Dune de toute façon.)

C'est embarrassant

Nous vivons à l'ère de l'IA. Nous avons des robots qui parlent, qui marchent, des voitures autonomes. Nous construisons le futur. Et pourtant, nous publions encore des packages npm qui n'ont pas été scannés pour détecter les appels réseau externes ou les exploits évidents.

C'est comme offrir de la nourriture gratuite provenant d'une source inconnue en disant "tout le monde peut l'utiliser !" sans aucun contrôle, aucune vérification, rien.

Ce n'est pas seulement embarrassant—c'est honteux.

Le problème est simple

Actuellement, n'importe qui peut publier n'importe quoi sur npm. Un package peut :

  • Effectuer des appels réseau externes pendant l'installation
  • Exécuter du code arbitraire dans les scripts de cycle de vie
  • Inclure des malwares obfusqués
  • Exfiltrer des données depuis votre pipeline CI/CD
  • Compromettre toute votre chaîne d'approvisionnement logicielle

Et npm va joyeusement le servir à des millions de développeurs dans le monde entier. Sans poser de questions.

La solution devrait aussi être simple

Nous avons besoin d'un système de score de sécurité—un indicateur clair affiché sur chaque package npm qui montre le résultat d'une analyse de sécurité approfondie.

Pas seulement des vérifications de CVE. Pas seulement des avertissements sur les dépendances obsolètes. Une vraie analyse de sécurité :

  • Ce package effectue-t-il des appels réseau pendant l'installation ?
  • Y a-t-il des scripts de cycle de vie suspects ?
  • Le code est-il obfusqué ?
  • Le mainteneur utilise-t-il l'authentification à deux facteurs ?
  • Ce package ou ses dépendances ont-ils été impliqués dans des incidents de sécurité ?

Chaque package devrait avoir un score de sécurité de 0 à 100 que les développeurs peuvent voir en un coup d'œil et que les pipelines CI/CD peuvent imposer.

J'en ai marre, alors je l'ai construit

C'est pourquoi j'ai créé npm-security-score.

C'est un système de notation de sécurité open source qui analyse les packages npm pour détecter les vraies menaces :

npm install -g npm-security-score
npm-security-score express
Enter fullscreen mode Exit fullscreen mode

Vous obtenez un score de sécurité complet basé sur :

  • Analyse des scripts de cycle de vie (-30 points pour preinstall/postinstall suspects)
  • Appels réseau externes (-20 points)
  • Pratiques de sécurité du mainteneur (-15 points)
  • Détection d'obfuscation de code (-10 points)
  • Historique des avis de sécurité (-15 points)
  • Et plus encore

Scores de 90-100 ? Sûr. En dessous de 70 ? Vérification requise. En dessous de 50 ? Bloquez-le dans votre CI/CD.

Nous devrions tous avoir honte

À l'ère de l'IA et des technologies avancées, nous faisons toujours face à des attaques de chaîne d'approvisionnement évitables. Nous avons les outils. Nous avons les connaissances. Nous devons juste implémenter réellement des standards de sécurité.

Ça doit s'arrêter. Maintenant.

Le Far West de npm doit prendre fin. Nous avons besoin de :

  1. Scanning de sécurité automatisé pour chaque package
  2. Scores de sécurité visibles sur npmjs.com
  3. Application des seuils de sécurité en CI/CD
  4. Standards de sécurité pilotés par la communauté

J'en ai vraiment marre de toutes ces conneries. C'est pourquoi je mets ça en ligne :

Forkez-le. Copiez-le. Contribuez. Faites ce qu'il faut. Faisons en sorte que ça arrive.

Ayons des projets ultra-sécurisés à partir de maintenant. Le minimum doit être strict. Le standard doit être de classe mondiale.

Rejoignez le combat

GitHub : github.com/01tek/npm-security-score

Contribuez : Aidez à construire le standard de sécurité que npm mérite

Passez le mot : Partagez ceci avec tous les développeurs JavaScript que vous connaissez

Le Far West a besoin de shérifs. Soyons-les.


Nous sommes en 2026. Nous avons l'IA. Nous avons des robots. Nous pouvons faire mieux que ça.

Top comments (0)