🔍 Contexte
Publié le 25 octobre 2026 par Wiz Research, cet article documente la campagne Gheist, active depuis le 15 septembre 2026, qui abuse de tokens GitHub volés pour exfiltrer des secrets de dépôts à grande échelle.
⚙️ Mécanisme d’attaque
Pour chaque dépôt accessible via un token compromis, l’outil :
- Crée une branche nommée
ci-sync-suivi de 6 caractères aléatoires - Commit un fichier
.github/workflows/sync-check.ymlavec le messageci: sync config - Le workflow déclenché encode les secrets en base32 pour contourner le masquage natif de GitHub
- Télécharge les logs via l’API GitHub puis supprime l’exécution en quelques secondes
- Utilise le user agent
gheistpour ses requêtes API
L’exfiltration transite exclusivement par l’API GitHub, sans domaine C2 ni connexion sortante détectable.
📊 Ampleur
- Plus de 13 500 branches plantées dans plus de 850 comptes compromis
- Cibles allant de projets personnels à des dépôts privés d’organisations enterprise
- Environ ⅔ des comptes impliqués ne sont plus disponibles sur GitHub (réponse en cours)
🔄 Évolution des outils
Deux variantes ont été observées :
- Tool A : suffixe hexadécimal, payload simple
- Tool B : suffixe base36, ajout de
timeout-minutes: 6, matrice d’environnements, séparateur de parsing, et depuis le 19 octobre 2026 un second jobsync-hostciblant les self-hosted runners pour :- Recherche de 31 formats de tokens (Anthropic, Hugging Face, Groq, NVIDIA, etc.)
- Accès au socket Docker pour monter le filesystem hôte
- Récupération des credentials AWS/GCP/Azure via metadata
- Exfiltration des tokens Kubernetes et GitLab runner
🏢 Activité post-compromission observée
Dans des environnements enterprise, des credentials cloud issus des mêmes organisations ont été utilisés pour énumérer AWS Secrets Manager dans les heures suivant l’exploitation.
🔗 Chevauchements avec d’autres campagnes
- Lure repositories (distribution de malware) : 391 comptes, 1 461 dépôts renommés en leurres logiciels crackés
- Cryptomining : 25 comptes Gheist créant des dépôts “Windows RDP Runner”
- PolinRider : malware lié à la RPDC cachant du JavaScript dans des fichiers de build
- Megalodon : 57 comptes victimes des deux campagnes
- Sources de credentials : logs d’infostealers et compromissions supply chain (ex: compromission de Trivy en mars)
🛡️ Contrôles GitHub
Depuis le 28 juillet 2026, GitHub bloque les exécutions suspectes dans les dépôts publics (statut action_required). Ce contrôle est inefficace sur les dépôts privés et GitHub Enterprise Server, où des exécutions complètes ont été confirmées.
📄 Type d’article
Publication de recherche CTI à visée technique, documentant une campagne active avec IoCs, TTPs et indicateurs de détection pour les équipes de sécurité.
🧠 TTPs et IOCs détectés
Acteurs de menace
- Gheist (unknown) —
- PolinRider (state-sponsored) —
- Megalodon (unknown) —
TTP
- T1552.001 — Unsecured Credentials: Credentials In Files (Credential Access)
- T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
- T1078 — Valid Accounts (Initial Access)
- T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
- T1537 — Transfer Data to Cloud Account (Exfiltration)
- T1613 — Container and Resource Discovery (Discovery)
- T1552.007 — Unsecured Credentials: Container API (Credential Access)
- T1070.003 — Indicator Removal: Clear Command History (Defense Evasion)
- T1530 — Data from Cloud Storage (Collection)
- T1526 — Cloud Service Discovery (Discovery)
IOC
- IPv4 :
193.32.204.199— AbuseIPDB · VT · ThreatFox - SHA1 :
f3da2b8b357dcda02fd455d314be2a95007516a6— VT · MalwareBazaar - SHA1 :
d09535857a741bbb976bdc084a9a0217131333291— VT · MalwareBazaar - SHA1 :
1dc5af9cce950aad1eb1546ecce8565b117540c4— VT · MalwareBazaar - SHA1 :
c665b778b2d822453293003e7ca0bbb2cb08e39d— VT · MalwareBazaar - Fichiers :
sync-check.yml - Fichiers :
.gdmp_pat - Fichiers :
.gdmp_patg - Fichiers :
.gdmp_sweep - Fichiers :
vite.config.js - Fichiers :
api.js - Chemins :
.github/workflows/sync-check.yml
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 25 octobre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- Gheist (tool)
- PolinRider (other)
- Megalodon (other)
- GhostAction (tool)
🟢 Indice de vérification factuelle : 88/100 (haute)
- ✅ wiz.io — source reconnue (liste interne) (20pts)
- ✅ 11110 chars — texte complet (fulltext extrait) (15pts)
- ✅ 12 IOCs dont des hashes (15pts)
- ✅ 1/1 IOC(s) confirmé(s) (AbuseIPDB, ThreatFox, VirusTotal) (8pts)
- ✅ 10 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ✅ acteur(s) identifié(s) : Gheist, PolinRider, Megalodon (5pts)
- ⬜ pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
193.32.204.199(ip) → AbuseIPDB (100% confiance, 5941 signalements) + VT (20/92 détections)
🔗 Source originale : https://www.wiz.io/blog/gheist-attempted-scaled-abuse-of-stolen-github-tokens-stumbles