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.
L'article présente un outil qui vérifie la sécurité d'un paquet npm avant de l'installer : NPQ. Cet outil fonctionne avec les autres gestionnaires de paquet (via une variable d'environnement)
L’article souligne l’importance d’une gestion rigoureuse des versions npm pour sécuriser ses projets JavaScript, surtout après des attaques comme celles sur chalk et debug. Il recommande d’utiliser des versions exactes pour les dépendances critiques (ex: "react": "18.2.0") plutôt que des ranges permissifs (^, ~, >=), et d’always commiter les lock files (package-lock.json ou yarn.lock) pour éviter les incohérences entre environnements. Une méthodologie sécurisée inclut : des audits réguliers (npm audit), des mises à jour contrôlées (via npm-check-updates), des tests complets après chaque modification, et l’intégration de vérifications automatiques dans le CI/CD. L’objectif est de minimiser les risques liés à la supply chain en privilégiant la sécurité à la commodité, notamment pour les packages critiques en production. Une checklist pratique résume les bonnes pratiques : versions exactes, lock files versionnés, audits automatiques, monitoring continu et backups des versions stables. La sécurité devient ainsi un investissement clé pour la stabilité des projets.
Tout est dans le titre
En résumé, le fichier "manifest.json" des packages npm est généré à la main... ce qui permet plusieurs attaques détaillées par l'auteur, un ancien de npm
Tout est dans le titre
L'auteur présente Open Source Vulnerability Detector aka osv-detector qui permet de détecter les vulnérabilités des dépendances de tous types de projet (utilisation de npm, de composer, etc.) Il a même créé une image docker pour l'utilisation dans une CI
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre... et ça reste valable en ce début d'année 2021 :-)
Tout est dans le titre
Tout est dans le titre
L'auteur parle des packages NPM et explique pourquoi cette recommandation