GitHub renforce npm avec la publication par étapes et des contrôles d'installation granulaires
GitHub a introduit la publication par étapes pour npm, exigeant l'approbation du mainteneur via l'authentification à deux facteurs avant que les paquets ne soient publiquement disponibles. Cette mise à jour vise à renforcer la sécurité de la chaîne d'approvisionnement logicielle en garantissant une preuve de présence pour chaque publication. De plus, de nouveaux indicateurs de source d'installation offrent aux développeurs un contrôle plus granulaire sur les installations de paquets.

### Publication par étapes maintenant disponible en général
GitHub a déployé la publication par étapes, une nouvelle fonctionnalité de sécurité pour npm conçue pour améliorer la sécurité de la chaîne d'approvisionnement logicielle. Cette fonctionnalité permet aux mainteneurs d'approuver explicitement une version avant que les paquets ne soient rendus publiquement disponibles pour l'installation.
La publication par étapes est maintenant disponible en général sur npm. Elle impose qu'un mainteneur humain réussisse un défi d'authentification à deux facteurs (2FA) pour approuver un paquet avant qu'il ne soit envoyé sur npmjs[.]com.
« Au lieu d'une publication directe qui rend immédiatement une version de paquet disponible pour les consommateurs, le tarball précompilé est téléchargé dans une file d'attente de staging où un mainteneur doit l'approuver explicitement avant qu'il ne devienne installable », a déclaré GitHub.
La filiale détenue par Microsoft a déclaré que ce changement garantit une « preuve de présence » pour chaque publication, y compris celles provenant de flux CI/CD non interactifs et de publications fiables avec authentification OpenID Connect (OIDC).
### Prérequis pour la publication par étapes
Avant de tirer parti de la publication par étapes, les mainteneurs de paquets doivent remplir les critères suivants :
* Avoir un accès de publication au paquet.
* Le paquet doit déjà exister sur le registre npm ; les paquets entièrement nouveaux ne peuvent pas être mis en attente.
* La 2FA doit être activée pour le compte.
Les développeurs peuvent utiliser la commande `npm stage publish` depuis le répertoire racine du paquet pour le soumettre à une zone de staging. Pour utiliser cette commande, il est essentiel de mettre à jour vers npm CLI 11.15.0 ou une version plus récente. Pour une protection optimale, GitHub recommande d'associer la publication par étapes à la publication fiable à l'aide d'OIDC.
### Indicateurs de source d'installation granulaires
Une deuxième mise à jour axée sur npm introduit trois nouveaux indicateurs de source d'installation aux côtés de l'indicateur existant `-allow-git` :
* `--allow-file` : Contrôle les installations à partir de chemins de fichiers locaux et de tarballs locaux.
* `--allow-remote` : Contrôle les installations à partir d'URL distantes, y compris les tarballs https.
* `--allow-directory` : Contrôle les installations à partir de répertoires locaux.
Ces indicateurs permettent aux développeurs « d'appliquer la même approche d'autorisation explicite à chaque source d'installation non-registre », selon GitHub.
### Lutte contre les attaques de la chaîne d'approvisionnement
Ce développement intervient dans un contexte de multiplication des attaques de la chaîne d'approvisionnement logicielle ciblant les écosystèmes open-source. L'activité récente, y compris les compromissions de TeamPCP, souligne la nécessité de mesures de sécurité renforcées au sein de l'écosystème npm.