<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Youssef Khouidi</title>
    <description>The latest articles on Forem by Youssef Khouidi (@ucefkh).</description>
    <link>https://forem.com/ucefkh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F791078%2F7429c05d-25cf-4d14-88da-0d87125962a8.jpeg</url>
      <title>Forem: Youssef Khouidi</title>
      <link>https://forem.com/ucefkh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ucefkh"/>
    <language>en</language>
    <item>
      <title>NPM = Far West : Il est temps d'arrêter cette folie</title>
      <dc:creator>Youssef Khouidi</dc:creator>
      <pubDate>Mon, 01 Dec 2025 09:24:00 +0000</pubDate>
      <link>https://forem.com/ucefkh/npm-far-west-il-est-temps-darreter-cette-folie-4c46</link>
      <guid>https://forem.com/ucefkh/npm-far-west-il-est-temps-darreter-cette-folie-4c46</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpf48bq7hv509mpjs66ry.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpf48bq7hv509mpjs66ry.jpg" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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é.&lt;/p&gt;

&lt;h2&gt;
  
  
  On a déjà vécu ça
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  C'est embarrassant
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;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.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ce n'est pas seulement embarrassant—c'est honteux.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le problème est simple
&lt;/h2&gt;

&lt;p&gt;Actuellement, n'importe qui peut publier n'importe quoi sur npm. Un package peut :&lt;/p&gt;

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

&lt;p&gt;Et npm va joyeusement le servir à des millions de développeurs dans le monde entier. Sans poser de questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  La solution devrait aussi être simple
&lt;/h2&gt;

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

&lt;p&gt;Pas seulement des vérifications de CVE. Pas seulement des avertissements sur les dépendances obsolètes. &lt;strong&gt;Une vraie analyse de sécurité :&lt;/strong&gt;&lt;/p&gt;

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

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

&lt;h2&gt;
  
  
  J'en ai marre, alors je l'ai construit
&lt;/h2&gt;

&lt;p&gt;C'est pourquoi j'ai créé &lt;strong&gt;&lt;a href="https://github.com/01tek/npm-security-score" rel="noopener noreferrer"&gt;npm-security-score&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;C'est un système de notation de sécurité open source qui analyse les packages npm pour détecter les vraies menaces :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; npm-security-score
npm-security-score express
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vous obtenez un score de sécurité complet basé sur :&lt;/p&gt;

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

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

&lt;h2&gt;
  
  
  Nous devrions tous avoir honte
&lt;/h2&gt;

&lt;p&gt;À 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 &lt;strong&gt;implémenter réellement des standards de sécurité&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ça doit s'arrêter. Maintenant.
&lt;/h2&gt;

&lt;p&gt;Le Far West de npm doit prendre fin. Nous avons besoin de :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Scanning de sécurité automatisé pour chaque package&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scores de sécurité visibles sur npmjs.com&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Application des seuils de sécurité en CI/CD&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standards de sécurité pilotés par la communauté&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;J'en ai vraiment marre de toutes ces conneries. C'est pourquoi je mets ça en ligne :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forkez-le. Copiez-le. Contribuez. Faites ce qu'il faut. Faisons en sorte que ça arrive.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ayons des projets ultra-sécurisés à partir de maintenant. Le minimum doit être strict. Le standard doit être de classe mondiale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rejoignez le combat
&lt;/h2&gt;

&lt;p&gt;→ &lt;strong&gt;GitHub&lt;/strong&gt; : &lt;a href="https://github.com/01tek/npm-security-score" rel="noopener noreferrer"&gt;github.com/01tek/npm-security-score&lt;/a&gt;&lt;br&gt;&lt;br&gt;
→ &lt;strong&gt;Contribuez&lt;/strong&gt; : Aidez à construire le standard de sécurité que npm mérite&lt;br&gt;&lt;br&gt;
→ &lt;strong&gt;Passez le mot&lt;/strong&gt; : Partagez ceci avec tous les développeurs JavaScript que vous connaissez&lt;/p&gt;

&lt;p&gt;Le Far West a besoin de shérifs. Soyons-les.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Nous sommes en 2026. Nous avons l'IA. Nous avons des robots. Nous pouvons faire mieux que ça.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>npm</category>
      <category>javascript</category>
      <category>french</category>
      <category>security</category>
    </item>
    <item>
      <title>NPM = Wild Wild West: It's Time to Stop the Madness</title>
      <dc:creator>Youssef Khouidi</dc:creator>
      <pubDate>Sat, 29 Nov 2025 18:51:23 +0000</pubDate>
      <link>https://forem.com/ucefkh/npm-wild-wild-west-its-time-to-stop-the-madness-2p2p</link>
      <guid>https://forem.com/ucefkh/npm-wild-wild-west-its-time-to-stop-the-madness-2p2p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizommsd2tgt8kiqygsts.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizommsd2tgt8kiqygsts.jpg" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For decades, the JavaScript ecosystem has been a welcoming, innovative space where anyone can publish and share code. It's been beautiful. It's democratized software development. But it's also been a security nightmare.&lt;/p&gt;

&lt;h2&gt;
  
  
  We've Been Here Before
&lt;/h2&gt;

&lt;p&gt;Remember the jQuery plugin days? The WordPress extension chaos? CSS hacks with base64-encoded JavaScript exploits that would infect your entire website? That was supposed to be decades ago. Ancient history. The bad old days.&lt;/p&gt;

&lt;p&gt;But here we are, almost in 2026, watching &lt;strong&gt;Shai-Hulud get its second comeback with trivial backdoors&lt;/strong&gt;. (And yes, I hate the Dune movies anyway.)&lt;/p&gt;

&lt;h2&gt;
  
  
  This Is Embarrassing
&lt;/h2&gt;

&lt;p&gt;We live in an age of AI. We have talking robots, walking robots, self-driving cars. We're building the future. And yet, we're still publishing npm packages that haven't been scanned for external network calls or obvious exploits. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's like offering free food from an unknown source and saying "everyone can use this!" with no tracking, no checking, nothing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't just embarrassing—it's shameful.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Is Simple
&lt;/h2&gt;

&lt;p&gt;Right now, anyone can publish anything to npm. A package can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make external network calls during installation&lt;/li&gt;
&lt;li&gt;Run arbitrary code in lifecycle scripts&lt;/li&gt;
&lt;li&gt;Include obfuscated malware&lt;/li&gt;
&lt;li&gt;Exfiltrate data from your CI/CD pipeline&lt;/li&gt;
&lt;li&gt;Compromise your entire supply chain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And npm will happily serve it to millions of developers worldwide. No questions asked.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution Should Be Simple Too
&lt;/h2&gt;

&lt;p&gt;We need a &lt;strong&gt;security score system&lt;/strong&gt;—a clear flag displayed on every npm package that shows the result of an in-depth security scan.&lt;/p&gt;

&lt;p&gt;Not just CVE checks. Not just outdated dependency warnings. &lt;strong&gt;Real security analysis:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does this package make network calls during install?&lt;/li&gt;
&lt;li&gt;Are there suspicious lifecycle scripts?&lt;/li&gt;
&lt;li&gt;Is the code obfuscated?&lt;/li&gt;
&lt;li&gt;Does the maintainer use 2FA?&lt;/li&gt;
&lt;li&gt;Has this package or its dependencies been involved in security incidents?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every package should have a &lt;strong&gt;0-100 security score&lt;/strong&gt; that developers can see at a glance and CI/CD pipelines can enforce.&lt;/p&gt;

&lt;h2&gt;
  
  
  I'm Fed Up, So I Built It
&lt;/h2&gt;

&lt;p&gt;That's why I created &lt;strong&gt;&lt;a href="https://github.com/01tek/npm-security-score" rel="noopener noreferrer"&gt;npm-security-score&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's an open-source security scoring system that analyzes npm packages for real threats:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; npm-security-score
npm-security-score express
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a comprehensive security score based on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lifecycle script analysis (-30 points for suspicious preinstall/postinstall)&lt;/li&gt;
&lt;li&gt;External network calls (-20 points)&lt;/li&gt;
&lt;li&gt;Maintainer security practices (-15 points)&lt;/li&gt;
&lt;li&gt;Code obfuscation detection (-10 points)&lt;/li&gt;
&lt;li&gt;Historical security advisories (-15 points)&lt;/li&gt;
&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scores of 90-100? Safe. Below 70? Review required. Below 50? Block it in your CI/CD.&lt;/p&gt;

&lt;h2&gt;
  
  
  We Should All Be Ashamed
&lt;/h2&gt;

&lt;p&gt;In this age of AI and advanced technology, we're still dealing with preventable supply chain attacks. We have the tools. We have the knowledge. We just need to &lt;strong&gt;actually implement security standards&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Has to Stop. Now.
&lt;/h2&gt;

&lt;p&gt;The wild west of npm needs to end. We need:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Automated security scanning for every package&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visible security scores on npmjs.com&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CI/CD enforcement of security thresholds&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Community-driven security standards&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'm really fed up with all this bullshit. That's why I'm putting this out there:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fork it. Copy it. Contribute. Do whatever it takes. Let's make this happen.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's have top-notch secure projects from now on. The minimum should be strict. The standard should be world-class.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Fight
&lt;/h2&gt;

&lt;p&gt;→ &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/01tek/npm-security-score" rel="noopener noreferrer"&gt;github.com/01tek/npm-security-score&lt;/a&gt;&lt;br&gt;&lt;br&gt;
→ &lt;strong&gt;Contribute&lt;/strong&gt;: Help build the security standard npm deserves&lt;br&gt;&lt;br&gt;
→ &lt;strong&gt;Spread the word&lt;/strong&gt;: Share this with every JavaScript developer you know&lt;/p&gt;

&lt;p&gt;The Wild West needs sheriffs. Let's be them.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;It's 2026. We have AI. We have robots. We can do better than this.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>supplychainsecurity</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>npm</category>
    </item>
  </channel>
</rss>
