El ecosistema de código abierto enfrenta amenazas organizadas y adaptativas en la cadena de suministro, propagándose a través de credenciales comprometidas y scripts maliciosos. Un ejemplo es la campaña Shai-Hulud, que se caracteriza por su enfoque coordinado en la cadena de suministro de JavaScript.
Estas campañas han evolucionado, pasando de compromisos oportunistas a ataques planificados. La primera ola se centró en el abuso de cuentas de mantenedores comprometidas, inyectando scripts para introducir código malicioso y exfiltrar secretos. Esto demuestra cómo una brecha puede afectar rápidamente a múltiples dependencias.
La segunda ola, llamada Shai-Hulud 2.0, intensificó la amenaza al mejorar su capacidad de auto-replicarse y propagarse mediante credenciales comprometidas, lo que facilitó la exposición cruzada entre diferentes víctimas. Además, introdujo comandos y control a través de runners auto-alojados, recolectando una gama más amplia de secretos y funciones destructivas. Se enfocó en entornos de CI, ajustando su comportamiento para escalar privilegios en ciertos agentes de construcción.
A lo largo de estas oleadas, se observa que Shai-Hulud no busca brechas aisladas, sino que apunta a las fronteras de confianza en los flujos de trabajo de los mantenedores y en las pipelines de publicación de CI. La obtención inicial de accesos mediante credenciales comprometidas, la ejecución de scripts maliciosos en la instalación y la focalización en nombres de paquetes confiables son características definitorias de una mentalidad organizada.
Las organizaciones deben prepararse proactivamente para endurecer sus modelos de publicación y flujos de credenciales. Ante estos desafíos, los responsables de npm aceleran su hoja de ruta de seguridad, incorporando herramientas para facilitar la migración hacia una publicación confiable, ampliando el soporte para proveedores OIDC y estableciendo un nuevo modelo de publicación escalonada.
Para usuarios y mantenedores de GitHub y npm, es crucial seguir prácticas recomendadas como habilitar autenticación multifactor y auditar el acceso para aplicaciones OAuth no utilizadas. Los mantenedores deben proteger las ramas de sus repositorios y optar por la publicación confiable en lugar de depender solo de tokens.
La comunidad debe estar alerta y reforzar sus sistemas para mitigar el impacto de este tipo de malware, que puede propagarse y causar daño a largo plazo.