Megalodon GitHub Attack Targets 5,561 Repos with Malicious CI/CD Workflows
Mis à jour :
Campagne Megalodon : Une menace massive sur les workflows CI/CD
La campagne automatisée “Megalodon” a compromis plus de 5 500 dépôts GitHub en l’espace de six heures. Utilisant des comptes jetables et des identités usurpées, les attaquants ont injecté des workflows GitHub Actions malveillants visant à exfiltrer des secrets et des identifiants sensibles depuis les pipelines CI/CD.
Points clés
- Mode opératoire : Injection de commits malveillants contenant des payloads Bash encodés en Base64.
- Amplitude : 5 718 commits poussés vers 5 561 dépôts GitHub distincts.
- Cible : Récupération massive de secrets (AWS, Google Cloud, Azure, Kubernetes, SSH, clés API, tokens GitHub/GitLab).
- Tactiques : Utilisation de deux variantes (SysDiag pour une exécution à chaque push/PR et Optimize-Build via
workflow_dispatchpour une exécution ciblée). - Contexte élargi : Cette attaque s’inscrit dans une tendance plus large de compromissions de la chaîne d’approvisionnement logicielle, incluant les activités du groupe “TeamPCP” et le ver “Mini Shai-Hulud”.
Vulnérabilités exploitées
- Abus de configuration CI/CD : Exploitation de la confiance accordée aux workflows automatisés.
- Compromission des accès : Utilisation de PATs (Personal Access Tokens) compromis ou de clés de déploiement pour injecter du code.
- Absence de cloisonnement : Accès trop permissif des pipelines aux secrets de production et clés de cloud (IMDSv2, tokens OIDC).
Recommandations
- Sécurisation des accès : Révoquer et renouveler les tokens d’accès (PATs) et les secrets CI/CD compromis.
- Adoption de “Trusted Publishing” : Privilégier les méthodes de publication sécurisées (notamment sur npm) pour réduire la dépendance aux tokens à longue durée de vie contournant le 2FA.
- Audit des workflows : Examiner régulièrement les fichiers
.github/workflowspour détecter des modifications suspectes ou l’ajout de payloads encodés. - Principe du moindre privilège : Restreindre strictement les permissions accordées aux tokens GitHub (GITHUB_TOKEN) et aux rôles IAM utilisés par les runners CI/CD.
- Surveillance : Surveiller les journaux d’exécution des workflows pour détecter des appels inattendus vers des serveurs C2 (ex: l’IP identifiée 216.126.225.129).
