Ataque Megalodon a GitHub: 5.561 repositorios comprometidos
Ataque Megalodon a GitHub: investigadores de SafeDep documentaron esta semana el incidente de cadena de suministro más grande del año. Además, la campaña automatizada inyectó 5.718 commits maliciosos en 5.561 repositorios públicos, manipulando workflows de CI para exfiltrar secretos, credenciales en la nube y tokens OIDC a un servidor de mando y control.
Cómo funciona el ataque Megalodon a GitHub
La campaña aprovecha la confianza implícita
que muchos proyectos depositan en las GitHub Actions. En la práctica, los
atacantes modifican archivos de workflow
(.github/workflows/*.yml) para que, en cada ejecución, el runner
envíe variables de entorno y secretos al exterior. Asimismo, como la
modificación se mezcla con commits legítimos generados de forma masiva, el
cambio pasa desapercibido en revisiones rápidas.
Por otro lado, la superficie de impacto es notable: secretos de despliegue, claves de proveedores cloud, tokens OIDC para federación de identidad y credenciales de paquetes privados. En consecuencia, cualquier organización que tuviera workflows clonados desde un repositorio afectado podría haber expuesto su pipeline sin saberlo.
Una semana marcada por la cadena de suministro
Aun así, el ataque Megalodon a GitHub no apareció aislado. Asimismo, el mismo día se publicó un análisis sobre GitHub Actions Cache Poisoning, que describe cómo envenenar la caché compartida entre ejecuciones para escalar privilegios. De hecho, días antes, GitHub confirmó la brecha de otros 3.800 repositorios vía una extensión maliciosa de VSCode, y el paquete node-ipc de npm volvió a ser comprometido para robar credenciales mediante registros DNS TXT.
En conclusión, la cadena de suministro de software ya no se protege solo en producción. Se protege en el commit, en el runner y en el registro de paquetes. Para profundizar, explora más artículos sobre ciberseguridad en nuestro blog.
Cómo defenderse del ataque Megalodon a GitHub
Por lo tanto, frente al ataque Megalodon a GitHub y campañas similares, conviene aplicar las siguientes acciones inmediatas:
- Auditar workflows recientes en busca de pasos
curl,wgetobash -cque envíen datos fuera del runner. - Rotar secretos almacenados en Actions Secrets si el repositorio recibió commits no atribuibles a tu equipo.
- Restringir permisos del
GITHUB_TOKENal mínimo necesario y desactivarwritepor defecto. - Fijar versiones de las acciones de terceros por SHA,
nunca por etiqueta móvil como
@main. - Habilitar branch protection y revisión obligatoria de
cambios en
.github/workflows/.
Finalmente, la defensa contra esta clase de ataques no se compra: se diseña. Por ello, tratar el pipeline como un activo crítico, con su propio modelo de amenazas, deja de ser opcional.
Recuerda que estaremos publicando constantemente en nuestro blog más contenido sobre tecnología.
Puedes encontrarnos en Facebook y LinkedIn para más contenido relacionado con seguridad en internet y muchos temas más.
Fuentes: SafeDep — Investigación Megalodon, GitHub Actions Cache Poisoning, BleepingComputer — Brecha VSCode.