Los investigadores de seguridad advierten que un ataque masivo a la cadena de suministro denominado "Megalodon" ha inyectado malware en más de 5.500 repositorios de GitHub a través de confirmaciones automatizadas. El ataque abusó de los flujos de trabajo de GitHub Actions para colocar cargas útiles sigilosas en el entorno de integración continua, apuntando a información confidencial como credenciales, secretos de CI, claves y tokens.

Según un informe de la firma de seguridad SafeDep, la Operación Meg se basó en flujos de trabajo maliciosos de GitHub Actions que se inyectaron por lotes en los repositorios de destino con confirmaciones automatizadas falsas, creando una ola concentrada de ataques en solo seis horas. SafeDep dijo que los atacantes enviaron más de 5.700 confirmaciones maliciosas a los repositorios afectados durante un período de seis horas el 18 de mayo, lo que finalmente afectó a 5.561 repositorios independientes.
En el ataque se utilizaron al menos dos cargas útiles diferentes. Uno de ellos agregará un nuevo flujo de trabajo en el almacén para que se active automáticamente cada vez que se realice una solicitud push o pull, continuando así ejecutando código malicioso durante el proceso de desarrollo y compilación. El otro reemplaza las condiciones de activación del flujo de trabajo existente y lo transforma en una "puerta trasera de suspensión", que reserva un canal de activación remoto para los atacantes sin afectar el proceso diario.
Una vez que el entorno de destino está infectado, el flujo de trabajo malicioso intentará robar variables de entorno de CI, credenciales de AWS, tokens de acceso a GCP, credenciales de Azure, claves privadas SSH, configuraciones de Docker y Kubernetes, varias claves API, cadenas de conexión de bases de datos, así como docenas de diferentes tipos de información confidencial, como tokens de GitHub Actions y tokens de GitLab CI/CD. Una vez que se filtre esta información, podría usarse para comprometer aún más la infraestructura de la nube, las bases de código y los entornos de producción.
Según SafeDep, "Megalodon" fue descubierto mientras analizaba la plataforma de chatbot y chatbot de código abierto Tiledesk. Los investigadores notaron que el proyecto lanzó sucesivamente versiones maliciosas manipuladas de paquetes NPM entre el 19 y el 21 de mayo, exponiendo así una operación de intrusión de almacén a mayor escala detrás de esto. La cuenta de NPM relacionada con el ataque se llama eljohnny y la dirección de correo electrónico de la cuenta es [email protected]. Ha lanzado una versión limpia 2.18.5 y una versión contaminada.
SafeDep señaló que el atacante no controló directamente la cuenta NPM en sí, sino que comenzó comprometiendo su correspondiente repositorio de GitHub. Después de que el código fuente fue "envenenado", el mantenedor, sin saberlo, liberó paquetes maliciosos del código infectado, lo que también destacó el riesgo típico de que "la fuente ascendente sea manipulada silenciosamente" en ataques a la cadena de suministro.
Al rastrear la fuente del ataque, SafeDep descubrió que el envío malicioso que desencadenó la cadena de infección también ocurrió el 18 de mayo, y el autor del envío fue identificado como "build-bot". Después de rastrear el buzón relevante, los investigadores encontraron que se realizaron un total de 2878 envíos a través de este buzón ese día, y otros 2841 envíos se realizaron a través de otro buzón relacionado. El mismo día se completaron un total de 5718 envíos maliciosos.
En términos de medios técnicos, el atacante eligió el tipo de flujo de trabajo "workflow_dispatch" en GitHub Actions para activar la puerta trasera. Este método de activación se puede llamar a través de la API de GitHub, y el token de GitHub robado se puede usar para activar de forma remota la puerta trasera inactiva en cualquier momento posterior. Más importante aún, este tipo de disparador está exento de las "reglas anti-recursivas" de GitHub y no está restringido al evitar que "los eventos desencadenados por tokens generen nuevos flujos de trabajo nuevamente", lo que brinda a los atacantes un mayor espacio de operación.
Mientras se exponía el incidente del "Megalodon", el nivel del ecosistema también intentaba hacer frente a amenazas similares. NPM anunció recientemente que ha invalidado todos los tokens de acceso detallados que evitan la autenticación de dos factores y tienen permisos de escritura para evitar ataques a la cadena de suministro similares a "Mini Shai-Hulud". La empresa de seguridad Ox Security cree que esta medida ayuda a reducir el riesgo de secuestro de cuentas, pero en realidad no elimina el riesgo subyacente.
Ox Security advierte que mientras las plataformas permitan cargar y distribuir código arbitrario sin una revisión rigurosa, seguirá apareciendo código malicioso propagado a través de repositorios comprometidos. La empresa señaló que los ataques a la cadena de suministro están entrando en una nueva era. El ataque anterior de TeamPCP a GitHub fue sólo el comienzo. En el futuro, se producirán oleadas de ataques dirigidos a la comunidad de desarrolladores como un "tsunami".
Además de este incidente, también han surgido otros casos recientes relacionados con la seguridad de la cadena de suministro, incluido el uso de ataques TanStack para robar código y datos de Grafana, y múltiples operaciones de envenenamiento a gran escala dirigidas a paquetes NPM. Estos incidentes sucesivos demuestran que las vulnerabilidades de la cadena de suministro de software y la falta de visibilidad siguen siendo problemas importantes que enfrenta toda la industria.