Status publishing in npm: approbation avec 2FA qui arrête la publication automatique et protège la chaîne d'approvisionnement

Auteur: Publié 4 min de lectura 213 lecture

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

GitHub a activé un nouvel outil npm appelé commencé à publier qui nécessite l'approbation manuelle d'un responsable (par double défi facteur) avant qu'une version publiée soit visible et téléchargeable à partir de npmjs.com. Dans la pratique, le tarball pré-construit n'est plus rendu public à la fois : il s'élève jusqu'à une queue d'arrêt et exige qu'une personne ayant accès à la publication et 2FA confirme sa sortie. Cette modification petite mais significative vise à ajouter essai de présence humaine pour chaque publication, y compris pour les dispositifs générés par CI / CD.

Le mécanisme modifie le modèle traditionnel dans lequel un pipeline pourrait publier automatiquement une version dès qu'il s'est terminé : maintenant le pipeline peut télécharger le paquet avec la commande « npm stage publish » (disponible à partir de npm CLI 11.15.0), mais la version ne sera pas installée avant qu'un responsable dépasse le défi 2FA. Cela atténue les scénarios dans lesquels des identifiants ou des flux de travail mal configurés permettent la publication automatisée d'appareils malveillants, car il nécessite une interaction humaine authentifiée avant la poussée finale.

Status publishing in npm: approbation avec 2FA qui arrête la publication automatique et protège la chaîne d'approvisionnement
Image générée avec IA.

Il est important de comprendre ses limites: ne peut être appliqué à de nouveaux paquets qui n'existent pas encore dans le registre, exige que le compte du responsable ait activé 2FA et que les équipes mettent à jour leur client npm à 11.15.0 ou plus. En outre, le contrôle ne fait que soulever la difficulté des attaques automatisées; il n'empêche pas un attaquant qui dépasse la 2FA du mainteneur (par phishing ou l'accès aux jetons) de publier un code malveillant. C'est pourquoi GitHub recommande de combiner l'édition publication fiable en utilisant OIDC qui réduit la dépendance à l'égard des jetons à long terme dans l'IC et améliore la traçabilité de l'identité du pipeline.

En parallèle, npm a ajouté trois drapeaux pour contrôler les origines de l'installation sans enregistrement: Dossier, --remise d'alcool et --répertoire d'autorisation à côté de l'actuel --Allow-git. Ces options permettent une stratégie de liste plus stricte autorisée pour les installations à partir de fichiers locaux, d'URL distantes ou de répertoires : des commandes utiles pour éviter les injections malveillantes de tarballs ou l'installation accidentelle d'unités source non vérifiées à partir de scripts ou de tests locaux.

Status publishing in npm: approbation avec 2FA qui arrête la publication automatique et protège la chaîne d'approvisionnement
Image générée avec IA.

Pour l'équipement et l'entretien, la recommandation pratique immédiate est claire : active 2FA dans tous les comptes avec permis de publication, met à jour le npm CLI à 11.15.0 +, et permet la publication définie pour les paquets critiques. Au niveau de l'organisation, il adopte l'OIDC pour vos coureurs CI / CD et élimine les jetons à long terme; limite les jetons survivants; enregistre et alerte les activités de publication inhabituelles; et utilise des signatures ou des mécanismes de vérification supplémentaires pour les artefacts si possible. Compléter ceci avec l'analyse de la composition du logiciel (SCA), les examens de changement obligatoires et la génération de SBOM pour chaque construction.

N'oubliez pas de renforcer les politiques d'installation dans les environnements de développement et de production : envisagez par défaut de refuser les installations à partir d'URL ou de fichiers et n'autorisez explicitement que ce qui est nécessaire à travers de nouveaux drapeaux, et informez les développeurs des risques d'installation de paquets à partir de sources externes. Ces mesures réduisent la zone par laquelle les campagnes massives d'empoisonnement - comme celles récemment attribuées à des groupes qui manipulent des paquets populaires - parviennent à se répandre.

L'édition par étapes n'est pas une panacée, mais elle représente une avancée précieuse dans la défense de l'écosystème open source : elle introduit un point de contrôle humain qui complique les attaques automatisées et améliore la traçabilité des publications. Pour plus d'informations sur les pratiques de sécurité de la chaîne d'approvisionnement logicielle et les recommandations complémentaires, voir la documentation officielle npm à https: / / docs.npmjs.com / la sécurité de la chaîne d'approvisionnement, comme le projet OWASP https: / / owasp.org / www-project-Supply-chain-security /. Il est également utile de suivre le blog de GitHub pour des mises à jour et des guides pratiques dans ce domaine: https: / / github.blog /.

Couverture

Autres

Plus de nouvelles sur le même sujet.