Ce dépôt GitHub propose une collection de bonnes pratiques pour sécuriser l'utilisation du gestionnaire de paquets npm, face aux risques croissants d'attaques par la chaîne d'approvisionnement. Il met l'accent sur des mesures comme la désactivation des scripts post-installation, l'installation avec délai pour éviter les dépendances vulnérables, et l'utilisation d'outils comme npq ou Socket Firewall pour renforcer la sécurité lors des installations. Une section est dédiée à la prévention des attaques par confusion de dépendances, un vecteur d'attaque récurrent exploitant les lacunes des gestionnaires de paquets.
Le guide couvre également des pratiques pour le développement local sécurisé, comme éviter les secrets en clair dans les fichiers .env, et des recommandations pour les mainteneurs de paquets npm, incluant l'activation de la double authentification (2FA) et l'utilisation de l'authentification OIDC pour les publications. Il aborde aussi la vérification de la santé des paquets via des bases de données comme celle de Snyk et la méfiance envers le registre officiel npmjs.org.
Enfin, il propose des solutions pour différents gestionnaires de paquets (npm, pnpm, Bun, Yarn) et inclut des outils automatisés comme Snyk, Dependabot ou Renovate pour gérer les mises à jour de dépendances de manière sécurisée.
PMG (Package Manager Guard) est un outil de sécurité open-source qui protège les développeurs contre les attaques de la chaîne d'approvisionnement via des paquets malveillants. Il agit comme une couche intermédiaire de sécurité autour des gestionnaires de paquets standards (npm, pip, etc.) en analysant les paquets pour détecter les logiciels malveillants avant leur installation, en les exécutant dans un bac à sable pour empêcher les modifications du système, et en auditant chaque événement d'installation. Facile à installer et à configurer, PMG fonctionne en arrière-plan et bloque immédiatement les paquets malveillants détectés. Il offre des fonctionnalités telles que la protection contre les paquets malveillants, le bac à sable, l'analyse des dépendances et la journalisation des événements.