El ecosistema de código abierto continúa enfrentándose a amenazas organizadas y adaptativas en la cadena de suministro, que se propagan a través de credenciales comprometidas y scripts de ciclo de vida de paquetes maliciosos. Un ejemplo reciente de esto es la campaña Shai-Hulud, la cual se ha caracterizado por su enfoque coordinado y en varias oleadas, dirigiéndose específicamente a la cadena de suministro de JavaScript.
Las campañas Shai-Hulud han evolucionado desde compromisos oportunistas hasta ataques diseñados y dirigidos. La primera ola de esta campaña se centró en el abuso de cuentas de mantenedores comprometidas, inyectando scripts maliciosos en los paquetes para introducir código malicioso, exfiltrar secretos y reproducirse. Esto demuestra cómo un solo punto de entrada puede afectar rápidamente a múltiples dependencias.
La segunda ola, conocida como Shai-Hulud 2.0, intensificó la amenaza al actualizar su capacidad de auto-replicarse y propagarse a través de credenciales comprometidas, lo que permitió la exposición cruzada de credenciales entre diferentes víctimas. Además, esta ola introdujo comandos y control a través de la registración de runners auto-alojados, recolectando una gama más amplia de secretos y funciones destructivas. En esta fase, se puso un énfasis particular en los entornos de CI, cambiando su comportamiento al detectar que se estaba ejecutando en este contexto y utilizando técnicas de escalada de privilegios dirigidas a ciertos agentes de construcción.
A lo largo de las diferentes oleadas, ha quedado claro que las campañas Shai-Hulud no solo buscan brechas aisladas, sino que apuntan a las fronteras de confianza en los flujos de trabajo de los mantenedores y en las pipelines de publicación de CI. Algunas características definitorias observadas incluyen la obtención inicial de accesos mediante credenciales comprometidas, la ejecución de scripts maliciosos en el momento de la instalación, la focalización en nombres de paquetes de confianza y un ciclo de iteración rápida y estructurada que demuestra una mentalidad organizada.
A medida que la amenaza evoluciona, las organizaciones deben prepararse de manera proactiva para endurecer sus modelos de publicación y flujos de credenciales, en lugar de adaptar las mitigaciones solo a un único variante de ataque.
Frente a estos desafíos, los responsables de npm están acelerando su hoja de ruta de seguridad para responder al paisaje de amenazas en constante evolución. Entre las acciones futuras se incluye la incorporación de herramientas para facilitar la migración de múltiples paquetes hacia una publicación confiable, ampliar el soporte para proveedores OIDC y establecer un nuevo modelo de publicación escalonada.
Para los usuarios y mantenedores de GitHub y npm, es esencial seguir prácticas recomendadas que incluyen habilitar la autenticación multifactor resistente al phishing y auditar el acceso para aplicaciones OAuth no utilizadas. Los mantenedores deben implementar protecciones en las ramas de sus repositorios y utilizar la publicación confiable en lugar de depender únicamente de tokens.
La comunidad, y especialmente los previos a cualquier ataque, deben estar atentos y reforzar sus sistemas para mitigar el impacto de este tipo de malware que puede propagarse y causar daño a largo plazo.
vía: GitHub Security

