Megalodon: 5.561 repos de GitHub comprometidos en 6 horas

5.718 commits maliciosos inyectados en 5.561 repos de GitHub en 6 horas para robar secretos de CI/CD.

Qué pasa

La campaña Megalodon ejecutó un ataque de supply chain (ataque a la cadena de suministro — comprometer las herramientas de los desarrolladores en lugar del producto final) contra el ecosistema de GitHub a una escala sin precedentes. En 6 horas, 5.718 commits maliciosos llegaron a 5.561 repositorios distintos.

El vector: GitHub Actions (el sistema de CI/CD — Continuous Integration/Continuous Deployment, la automatización integrada en GitHub que compila, prueba y despliega código). Los atacantes inyectaron workflows maliciosos en `.github/workflows/` con payloads bash *codificados en base64* (ofuscados para evadir reglas de detección que buscan strings obvias). El objetivo: *exfiltrar* secretos del entorno de CI — `GITHUB_TOKEN`, credenciales cloud, API keys, tokens de registros de paquetes.

Para firmar los commits usaron cuentas desechables con identidades falsificadas: `build-bot`, `auto-ci`, `ci-bot`, `pipeline-bot`. Nombres diseñados para pasar desapercibidos en repositorios con automatización legítima activa.

Por qué importa

Los secretos de GitHub Actions son el objetivo más valioso de la cadena de desarrollo: `GITHUB_TOKEN` con permisos de escritura, credenciales AWS/GCP/Azure, claves SSH, tokens de npm/PyPI. Un workflow comprometido los *exfiltra en silencio* durante cada ejecución del pipeline, sin alertas visibles para el equipo.

La escala de 5.561 repos en 6 horas confirma automatización total. Probablemente un bot escaneando repositorios públicos o privados con workflows de CI existentes y enviando commits donde los permisos lo permiten — repos con branch protection desactivada o configuración laxa de colaboradores.

Este patrón no es nuevo, pero Megalodon lo industrializa. Si tus secretos de CI llegan a un atacante, el radio de daño va mucho más allá del repo: acceso a infraestructura cloud, capacidad de publicar paquetes maliciosos en tu nombre, pivote lateral a otros sistemas.

Qué hacer

- Audita `.github/workflows/` en todos tus repos: busca archivos no reconocidos o modificaciones recientes que no iniciaste tú
- Filtra el historial de commits por autores sospechosos: `build-bot`, `auto-ci`, `ci-bot`, `pipeline-bot`
- Rota inmediatamente todos los secretos de CI si encuentras commits no autorizados: `GITHUB_TOKEN`, credenciales cloud, API keys, tokens de registros
- Activa *branch protection* con revisión obligatoria de PRs para bloquear commits directos no autorizados en ramas principales
- Añade `CODEOWNERS` apuntando a `.github/workflows/` para requerir aprobación explícita en cualquier cambio de workflow
- Revisa el audit log de tu organización: `Settings → Security → Audit log`, filtrando por eventos `workflow` en el rango de fechas de la campaña

Este ataque confirma que los pipelines de CI/CD son el nuevo perímetro prioritario. Las credenciales cloud almacenadas como secretos de GitHub valen más que un shell en producción — y están al alcance de cualquiera que pueda hacer push a tu repo.