GitHub Fortalece npm con Publicación por Etapas y Controles Granulares de Instalación
GitHub ha introducido la publicación por etapas para npm, requiriendo la aprobación del mantenedor mediante autenticación de dos factores antes de que los paquetes estén disponibles públicamente. Esta actualización tiene como objetivo reforzar la seguridad de la cadena de suministro de software, asegurando la prueba de presencia para cada publicación. Adicionalmente, nuevas banderas de origen de instalación proporcionan a los desarrolladores un control más granular sobre las instalaciones de paquetes.

### Publicación por Etapas Ahora Disponible Generalmente
GitHub ha implementado la publicación por etapas, una nueva función de seguridad para npm diseñada para mejorar la seguridad de la cadena de suministro de software. Esta función otorga a los mantenedores la capacidad de aprobar explícitamente una versión antes de que los paquetes estén disponibles públicamente para su instalación.
La publicación por etapas ya está disponible generalmente en npm. Exige que un mantenedor humano supere un desafío de autenticación de dos factores (2FA) para aprobar un paquete antes de que se envíe a npmjs[.]com.
"En lugar de una publicación directa que inmediatamente pone una versión de paquete a disposición de los consumidores, el tarball precompilado se carga en una cola de etapas donde un mantenedor debe aprobarlo explícitamente antes de que sea instalable", dijo GitHub.
La subsidiaria propiedad de Microsoft declaró que este cambio asegura la "prueba de presencia" para cada publicación, incluidas aquellas que se originan en flujos de trabajo CI/CD no interactivos y publicaciones confiables con autenticación OpenID Connect (OIDC).
### Prerrequisitos para la Publicación por Etapas
Antes de aprovechar la publicación por etapas, los mantenedores de paquetes deben cumplir los siguientes criterios:
* Tener acceso de publicación al paquete.
* El paquete ya debe existir en el registro de npm; los paquetes completamente nuevos no pueden ser puestos en etapa.
* La 2FA debe estar habilitada para la cuenta.
Los desarrolladores pueden usar el comando `npm stage publish` desde el directorio raíz del paquete para enviarlo a un área de preparación. Para usar este comando, es esencial actualizar a npm CLI 11.15.0 o una versión más reciente. Para una protección óptima, GitHub recomienda combinar la publicación por etapas con la publicación confiable utilizando OIDC.
### Banderas Granulares de Origen de Instalación
Una segunda actualización centrada en npm introduce tres nuevas banderas de origen de instalación junto con la bandera existente `-allow-git`:
* `--allow-file`: Controla las instalaciones desde rutas de archivos locales y tarballs locales.
* `--allow-remote`: Controla las instalaciones desde URLs remotas, incluyendo tarballs https.
* `--allow-directory`: Controla las instalaciones desde directorios locales.
Estas banderas permiten a los desarrolladores "aplicar el mismo enfoque de lista blanca explícita a cada fuente de instalación que no sea del registro", según GitHub.
### Abordando Ataques a la Cadena de Suministro
Este desarrollo llega en medio de un aumento en los ataques a la cadena de suministro de software dirigidos a los ecosistemas de código abierto. La actividad reciente, incluyendo los compromisos de TeamPCP, subraya la necesidad de medidas de seguridad mejoradas dentro del ecosistema npm.