GitHub anuncia cambios de seguridad en npm para combatir ataques a la cadena de suministro

GitHub ha anunciado que npm v12, cuya publicación está prevista para el próximo mes, introducirá varios cambios centrados en la seguridad para bloquear ataques a la cadena de suministro que abusan de comportamientos desencadenados por el comando 'npm install'. 'npm install' es el comando utilizado para descargar e instalar las dependencias de un proyecto y ejecutar cualquier script relacionado con la instalación definido por los paquetes. Los desarrolladores lo ejecutan después de clonar un proyecto, al obtener actualizaciones o durante compilaciones CI/CD, y los atacantes lo atacan debido al potencial de ejecución automatizada de código durante la instalación del paquete.

El tema principal del anuncio es que la ejecución de código y las fuentes de dependencias que no provienen del registro, que actualmente se activan automáticamente durante npm install, ahora requerirán aprobación explícita en lugar de ser confiables por defecto.

Cambios específicos

  • A partir de la versión 12, npm install no ejecutará scripts preinstall, install o postinstall de las dependencias a menos que hayan sido explícitamente aprobados. Esto también aplica a las compilaciones de módulos nativos activadas a través de node-gyp, y a los scripts prepare de dependencias Git, locales y enlazadas.
  • npm install ya no obtendrá dependencias de repositorios Git, ya sean directas o transitivas, a menos que se permita explícitamente. GitHub afirma que esto elimina una ruta de ejecución de código donde un archivo .npmrc de una dependencia Git podría alterar qué ejecutable Git se utiliza, incluso cuando los scripts de instalación están deshabilitados.
  • Las dependencias instaladas desde URLs remotas, como tarballs HTTPS, ya no se resolverán a menos que se permita explícitamente. Esto aplica tanto a dependencias directas como transitivas.

Estos cambios pueden reducir significativamente los ataques a la cadena de suministro al eliminar la ejecución automática de scripts de instalación de dependencias, la resolución automática de dependencias basadas en Git y la resolución automática de dependencias de URLs remotas. Los nuevos valores predeterminados podrían haber interrumpido varias técnicas de ataque utilizadas en ataques recientes a la cadena de suministro, incluyendo campañas de scripts preinstall/postinstall maliciosos dirigidas a eslint-config-prettier, los paquetes Picasso de Toptal, docenas de paquetes npm robacredenciales, así como el abuso de dependencias Git documentado en ataques Shai-Hulud.

Los proyectos que dependan de alguno de estos comportamientos para flujos de trabajo legítimos deberán optar explícitamente antes de actualizar a npm v12. GitHub recomienda que los desarrolladores se preparen actualizando a npm 11.16.0 o superior, que muestra advertencias sobre todas las acciones que dejarán de funcionar en la versión 12. Esto permite a los desarrolladores que ejecutan sus rutinas de instalación normales revisar estas advertencias e identificar dependencias o flujos de trabajo que requerirán aprobación explícita antes de actualizar. Después de actualizar a la versión 12, solo los scripts y fuentes de dependencias explícitamente aprobados continuarán funcionando automáticamente. Se ha abierto una discusión comunitaria para que los desarrolladores compartan sus sugerencias sobre los próximos cambios.

image
image
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *