AlertaCiberNews

Noticias de ciber seguridad

AlertaCiberNews

Noticias de ciber seguridad

Noticias

GitHub refuerza la seguridad en npm 12: scripts de instalación deshabilitados y fin de los GATs

Introducción

GitHub ha anunciado importantes cambios en la gestión de la seguridad del ecosistema npm con el lanzamiento de la versión 12. Entre las novedades más relevantes se encuentra la desactivación por defecto de los scripts de instalación, así como la retirada de los Granular Access Tokens (GATs), empleados hasta ahora para sortear la autenticación de dos factores (2FA). Estas medidas suponen un endurecimiento significativo en la protección de la cadena de suministro de software, un área cada vez más amenazada por ataques sofisticados y supply chain attacks.

Contexto del Incidente o Vulnerabilidad

npm, el gestor de paquetes por excelencia para el entorno Node.js, es utilizado por millones de desarrolladores y empresas para la distribución y gestión de dependencias JavaScript. Sin embargo, su popularidad lo convierte en un objetivo prioritario para actores maliciosos, especialmente mediante la explotación de scripts automáticos que pueden ejecutarse durante la instalación de paquetes (lifecycle scripts), y la gestión laxa de tokens de acceso.

Los incidentes recientes, como la proliferación de paquetes maliciosos y la exfiltración de credenciales a través de scripts postinstall, han acelerado la necesidad de establecer controles más estrictos. El abuso de GATs para eludir la 2FA también ha sido motivo de preocupación, ya que estos tokens ofrecían permisos granulares pero podían ser explotados para obtener acceso no autorizado a cuentas y recursos.

Detalles Técnicos

La versión 12 de npm introduce cambios claves desde el punto de vista técnico:

– Desactivación por defecto de los install scripts: A partir de npm 12, la opción `allowScripts` pasa a estar deshabilitada (“off”) por defecto. Esto significa que los scripts definidos en las etapas preinstall, install y postinstall ya no se ejecutarán automáticamente durante la instalación de paquetes. Esta modificación afecta a todos los proyectos y flujos de trabajo que dependían de estos scripts para la configuración o despliegue automatizado.
– Opt-in explícito: Los usuarios que requieran la ejecución de scripts deberán habilitar manualmente la opción `–allow-scripts` al instalar paquetes, minimizando así la superficie de ataque.
– Deprecación de Granular Access Tokens: Los GATs, diseñados para permitir permisos segmentados y específicos en entornos donde se requiere un control más fino sobre el acceso, quedan obsoletos. GitHub recomienda migrar a Personal Access Tokens (PATs) y reforzar las políticas de uso de 2FA.
– Vectores de ataque y TTPs: En términos de MITRE ATT&CK, estos cambios impactan directamente en técnicas como la ejecución de código no autorizado durante el ciclo de vida de la instalación (T1059 – Command and Scripting Interpreter) y la elevación de privilegios mediante la manipulación de credenciales y tokens (T1528 – Steal Application Access Token).
– IoC relevantes: Paquetes con scripts sospechosos, tokens utilizados desde ubicaciones geográficas atípicas y logs de acceso anómalos a recursos npm son algunos de los indicadores clave a monitorizar.

Impacto y Riesgos

El endurecimiento de las políticas en npm 12 tiene un impacto directo en la reducción de la superficie de ataque, limitando la capacidad de los atacantes para inyectar código malicioso a través de scripts automáticos. Según estudios de Snyk y Sonatype, cerca del 15% de los incidentes de seguridad en npm están relacionados con el abuso de lifecycle scripts. Además, la desactivación de GATs elimina un vector de ataque frecuente para el bypass de 2FA, una medida alineada con las recomendaciones de la NIS2 y el GDPR respecto a la protección de identidades y accesos.

Sin embargo, estas restricciones también pueden afectar a flujos de trabajo legítimos, especialmente en proyectos legacy o en entornos de integración continua (CI/CD) donde la automatización dependía de estos scripts.

Medidas de Mitigación y Recomendaciones

– Actualizar a npm 12 lo antes posible para beneficiarse de las nuevas políticas de seguridad.
– Revisar todos los paquetes y dependencias que requieran scripts de instalación, evaluando la necesidad real de habilitarlos manualmente.
– Migrar de GATs a PATs, asegurando la activación de 2FA en todas las cuentas y proyectos.
– Implementar controles de monitorización para detectar intentos de ejecución de scripts no autorizados y accesos anómalos mediante tokens.
– Revisar y ajustar los pipelines de CI/CD para evitar interrupciones por la nueva política de allowScripts.

Opinión de Expertos

Especialistas en ciberseguridad como Scott Helme y Tanya Janca han valorado positivamente la decisión de GitHub, destacando que “la ejecución automática de scripts era una de las puertas traseras más peligrosas en la cadena de suministro de Node.js”. Asimismo, desde OWASP han recordado que el control estricto de tokens y la autenticación robusta son pilares en la protección contra movimientos laterales y escaladas de privilegios.

Implicaciones para Empresas y Usuarios

Para los CISOs y responsables de seguridad, este cambio requiere una revisión urgente de políticas internas, procedimientos de desarrollo y gestión de dependencias. Los analistas SOC deberán ajustar sus reglas de detección para identificar cualquier intento de evasión de las nuevas restricciones. Los pentesters y auditores encontrarán un entorno más protegido frente a ataques automatizados, aunque también un mayor reto para la validación de configuraciones seguras.

Conclusiones

La evolución de npm hacia un modelo más seguro con la versión 12 responde a la creciente sofisticación de las amenazas en entornos de desarrollo. La desactivación por defecto de scripts de instalación y la retirada de GATs refuerzan la cadena de suministro de software, alineando la plataforma con las mejores prácticas y normativas internacionales. No obstante, el éxito de estas medidas dependerá de la capacidad de adaptación de las empresas y la concienciación de los desarrolladores para evitar riesgos residuales.

(Fuente: feeds.feedburner.com)