GitHub ha implementado nuevos controles para NPM con el fin de mejorar la
seguridad de la cadena de suministro de software, permitiendo a los
mantenedores aprobar explícitamente una versión antes de que los paquetes
estén disponibles públicamente para su instalación.
Esta función, denominada publicación por etapas, ya está disponible para todos
en npm. Requiere que un mantenedor humano complete una autenticación de
dos factores (2FA) para aprobar un paquete antes de que se publique en
npmjs[.]com.
«En lugar de una publicación directa que pone inmediatamente una versión
del paquete a disposición de los usuarios, el archivo tarball precompilado
se carga en una cola de preparación donde un mantenedor debe aprobarlo
explícitamente antes de que se pueda instalar»,
explicó GitHub.
La filial propiedad de Microsoft afirmó que este cambio garantiza la «prueba
de presencia» para cada publicación, incluidas aquellas que provienen de
flujos de trabajo de CI/CD no interactivos y la publicación de confianza con
autenticación OpenID Connect (OIDC).
Antes de usar la
publicación por etapas, los responsables del paquete deben cumplir los siguientes requisitos:
- Tener permisos de publicación para el paquete.
-
El paquete ya debe existir en el registro de npm; es decir, no se
puede publicar un paquete nuevo en el área de preparación. - La autenticación de dos factores (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 la versión 11.15.0 o posterior de la CLI de npm. Para una
protección óptima, GitHub recomienda combinar la publicación por etapas con la
publicación segura mediante OIDC.
Una segunda actualización centrada en npm introduce tres nuevas
opciones de instalación, además de la opción --allow-git ya
existente:
-
--allow-file: Controla las instalaciones desde rutas de archivo
locales y archivos tar locales. -
--allow-remote: Controla las instalaciones desde URL remotas,
incluyendo archivos tar HTTPS. -
--allow-directory: Controla las instalaciones desde directorios
locales.
Según GitHub, estas opciones permiten a los desarrolladores aplicar el mismo
enfoque de lista de permitidos explícita a cualquier fuente de instalación que
no sea el registro.
Este desarrollo se produce en medio de un aumento masivo de ataques a la
cadena de suministro de software dirigidos a ecosistemas de código abierto en
los últimos meses. Un grupo ciberdelincuente conocido como TeamPCP se ha
dedicado a envenenar paquetes populares a una escala sin precedentes mediante
un ciclo de vulneraciones que se perpetúa a sí mismo.
Fuente:
THN

