Dans l'écosystème JavaScript, l'installation de packages npm est devenue un geste aussi naturel que quotidien pour les développeurs. Pourtant, derrière cette simplicité se cache un risque souvent sous-estimé : celui d'installer des packages malveillants ou vulnérables. C'est précisément pour répondre à cette problématique que npq a été créé.
NPQ est un outil open-source développé par Liran Tal qui agit comme une couche de protection avant l'installation de packages npm. Son principe est simple mais efficace : il audite les packages avant leur installation, permettant ainsi aux développeurs de prendre des décisions éclairées sur la sécurité de leurs dépendances.
Contrairement à npm audit qui vérifie les vulnérabilités après installation, NPQ intervient en amont du processus, vous donnant la possibilité d'éviter complètement l'installation d'un package suspect.
L'utilisation est basique : soit vous utilisez npx npq install express ; soit vous l'installez dans votre projet ou globalement sur votre machine (conseillé) : npm install -g npq et utilisez npq au lieu de npm pour installer un paquet : npq install express
Si vous utilisez un autre gestionnaire de paquets que npm, utilisez la variable d'environnement NPQ_PKG_MGR (exemple : NPQ_PKG_MGR=pnpm).
Aussi, si vous oubliez d'utiliser npq, vous pouvez définir un alias pour exécuter npq lorsque vous lancez npm:
alias npm='npq-hero'
Ainsi, dès que vous installerez un paquet via npm install express, npq effectuera automatiquement ses vérifications avant de déléguer l'installation réelle à npm (ou autre gestionnaire).
Dans les faits, lorsque vous tentez d'installer un package avec NPQ, l'outil effectue une série de vérifications appelées "marshalls". Chaque marshall examine un aspect spécifique de la sécurité du package :
- Vulnérabilités connues : s'appuie sur la base de données Snyk (nécessite d'avoir le paquet
snykinstallé ainsi qu'une clé API à passer viaSNYK_TOKEN) - Popularité et ancienneté du paquet : le nombre de téléchargements et la date de publication
- Scripts d'installation : détection des preinstall / postinstall
- Typosquatting : noms similaires à des paquets populaires
- Provenance & signature : vérifie la source du paquet et sa signature
La documentation de NPQ présente tous ces marshalls.
Ces vérifications peuvent être désactivées une à une (ex : MARSHALL_DISABLE_SNYK=1).








