npm v12 durcit les scripts de sécurité améliorés par défaut qui pourraient briser votre construction si vous n'autorisez pas chaque script

Auteur: Publié 4 min de lectura 294 lecture

Les images de cet article ont été générées par intelligence artificielle. Notre méthode de publication

GitHub et l'équipe npm ont décidé de resserrer le comportement par défaut de l'installateur de paquets : dans npm v12 Les scripts d'installation seront désactivés par défaut et la résolution des unités des dépôts Git ou URL distants doit être limitée sauf autorisation expresse du développeur. La mesure vise à fermer l'une des voies les plus exploitées dans les attaques à la chaîne d'approvisionnement: l'exécution automatique du code pendant « npm install » au moyen de crochets de cycle de vie (pré-installation, installation, post-installation et préparation).

Le changement répond à un risque réel et commun : un paquet engagé à n'importe quel point de la chaîne de transition peut exécuter le code sur la machine de développement ou dans un coureur CI. De nombreux projets, bibliothèques et outils dépendent de scripts qui s'exécutent automatiquement lors de l'installation des dépendances, et cette confiance par défaut est ce que les attaquants ont utilisé pour insérer des portes arrière ou exécuter des charges utiles malveillantes dans des environnements de développement et de déploiement.

npm v12 durcit les scripts de sécurité améliorés par défaut qui pourraient briser votre construction si vous n'autorisez pas chaque script
Image générée avec IA.

Les implications pratiques sont doubles. D'une part, amélioration de la sécurité en exigeant l'approbation explicite de l'exécution des scripts et la résolution des sources non enregistrées; d'autre part, il peut rupture des flux de construction et de développement qui dépendent aujourd'hui de compilations natives automatiques (node-gyp), préparer des scripts à partir de références Git, ou des paquets installés à partir de tarballs distants. Les équipements et projets utilisant des unités avec compilation native ou des références directes aux dépôts devront être adaptés.

GitHub recommande déjà de se préparer en mettant à jour npm 11.16.0 ou plus, en exécutant une installation normale et en examinant les avertissements que npm affiche. L'outil offre un flux d'approbation avec npm approuvé, qui permet d'examiner, d'approuver les scripts de confiance et de compromettre les changements au paquet. json de sorte que seuls les approuvés continuent à courir après avoir atteint npm v12. C'est l'occasion de vérifier consciemment quels paquets ont vraiment besoin d'exécuter du code localement.

En tant que mesures pratiques pour réduire l'impact et améliorer la sécurité de votre chaîne d'approvisionnement, considérez ce qui suit : tester les changements dans une branche isolée et dans les coureurs CI avant de migrer; mettre à jour les images ou les conteneurs CI pour inclure la nouvelle version de npm; éviter les dépendances Git ou distantes sans justification et, si nécessaire, les autoriser explicitement; prioriser l'utilisation des fichiers verrous et des versions fixes; et traiter avec soin les paquets qui font compilation native (node-gyp), car npm peut bloquer les reconstructions implicites.

npm v12 durcit les scripts de sécurité améliorés par défaut qui pourraient briser votre construction si vous n'autorisez pas chaque script
Image générée avec IA.

En outre, il intègre des contrôles complémentaires: il permet l'analyse des dépendances et des alertes (par exemple, Dependabot ou Snyk) pour détecter les changements suspects, il nécessite une vérification humaine pour les demandes de tirage pertinentes, il permet 2FA et les politiques de publication dans le registre npm pour les responsables, et il conserve des preuves d'origine avec SBOM et signatures si possible. La documentation sur les bonnes pratiques de GitHub en matière de sécurité de la chaîne d'approvisionnement est un bon point de départ: https: / / docs.github.com / fr / code-security / supply-chain-security.

Pour comprendre exactement quels scripts et comportements seront affectés, il est approprié de lire la documentation npm officielle sur les scripts et les hameçons du cycle de vie; cela aide à identifier dans votre arbre de dépendances où les scripts sont exécutés et ceux que vous devez approuver explicitement: https: / / docs.npmjs.com / cli / v12 / using-npm / scripts. Régler la fenêtre de pré-lancement pour vérifier et réduire la surface d'attaque : scripts par défaut moins fiables = moins de risque d'exécution non autorisé.

En bref, npm v12 représente une avancée significative dans la protection de la chaîne d'approvisionnement JavaScript en convertissant une extension de confiance tacite en un permis explicite. Les équipes qui prennent ces mesures avec une planification, des essais et un contrôle supplémentaires réduiront leur exposition aux attaques de la chaîne logistique tout en évitant les interruptions inattendues de leurs processus de construction et de déploiement.

Couverture

Autres

Plus de nouvelles sur le même sujet.