veilletech.fr
20 oct. Feed du jour
#03 SÉCURITÉ Faille

GhostAction : une fausse police cache un voleur

Ouvrir un dossier ne devrait pas suffire à exécuter du code.

Après le blocage de son workflow malveillant par GitHub le 09/10, GhostAction change de méthode : hameçonnage d'un mainteneur via my-github[.]com (193.32.204.199), qui autorise une application OAuth aux droits repo, workflow et read:org, puis second étage dans 94 dépôts — un tasks.json VS Code lancé à l'ouverture du dossier et un faux fichier de police fa-solid-400.woff2 qui cache un voleur de secrets. Cette fois rien n'exige un runner GitHub : le code s'exécute sur la machine du développeur.

4 min de lectureintermédiairevidéo 1:19
Partager
Sommaire6 sections
  1. Ce qui se passe
  2. Premier volet : le faux écran de connexion
  3. Second volet : trois fichiers qui survivent au nettoyage
  4. La limite
  5. Que faire
  6. À retenir

Ce qui se passe

GhostAction, la campagne de chaîne d'approvisionnement qui poussait un faux workflow d'audit dans des dépôts GitHub pour en aspirer les secrets (fiche du 10 octobre), change de méthode. D'après OpenSourceMalware, GitHub empêche le workflow malveillant de s'exécuter depuis le 9 octobre, et les vagues des 10 et 12 octobre n'ont extrait aucun secret. Les attaquants ont alors ajouté deux choses : l'hameçonnage de mainteneurs, et un second étage qui n'a plus besoin de GitHub pour tourner.

Premier volet : le faux écran de connexion

Le domaine my-github[.]com, enregistré le 9 octobre 2026, pointe vers 193.32.204.199, la même adresse que le point d'exfiltration des secrets de la campagne. Il a servi à envoyer à un mainteneur un faux message d'alerte GitHub (expéditeur noreply@my-github[.]com, connexion suspecte depuis Moscou).

AttaquantGitHubFausse pageMainteneurAttaquantGitHubFausse pageMainteneurClique sur le lien de l'alerte1Relaie la connexion (proxyinverse)2Saisit mot de passe et code2FA3Rejoue ces identifiants4Lance le device flow (repo,workflow, read:org)5Valide la demande dans lasession de la victime6Jeton OAuth7Jeton envoyé à my-github.com:84438
Comment la page piégée obtient un jeton sans que la victime approuve quoi que ce soit

La page fait office de proxy inverse : elle capte le mot de passe et le code à deux facteurs, puis un script injecté déclenche seul le « device flow » OAuth de GitHub avec les droits repo, workflow et read:org. Il récupère les formulaires de /login/device, remplit le code et coche l'autorisation dans la session déjà ouverte : la victime ne tape rien et n'approuve rien consciemment. Le jeton obtenu permet de lister les dépôts et d'y écrire des fichiers sous .github/workflows/.

Second volet : trois fichiers qui survivent au nettoyage

Le dispositif s'inspire de campagnes nord-coréennes. Il pousse trois fichiers dans le dépôt :

Le voleur installe aussi une tâche cron toutes les cinq minutes qui exécute du code fourni par l'attaquant, et envoie ses prises en HTTP clair sur le port 8080. OpenSourceMalware compte 94 dépôts touchés, appartenant à 66 propriétaires ; 15 ont disparu, été renommés ou passés en privé, et 65 des 79 restants n'avaient pas reçu de commit depuis plus d'un an.

La limite

Le blocage de GitHub n'a pas prouvé qu'il avait provoqué ce changement : la société d'analyse dit seulement que l'opérateur est passé « à un endroit que les contrôles de GitHub n'atteignent pas ». Le domaine my-gitlab[.]com, enregistré dix-sept jours plus tôt, suit le même modèle de nom mais n'est relié ni par l'infrastructure ni par un artefact à GhostAction. L'opérateur est inconnu ; Jenn Gile (OpenSourceMalware) juge son travail peu expérimenté : le filtre des variables d'environnement rate la plupart des clés, et une seule adresse sert à tout, ce qui permet de retrouver les infections en la cherchant.

Que faire

  1. Chercher 193.32.204.199 et my-github[.]com dans vos journaux réseau et vos mails.

  2. Dans vos dépôts, vérifier .vscode/tasks.json, public/fonts/ et .github/workflows/ :

    Terminal
    git ls-files | grep -E 'fa-solid-400\.woff2$|\.vscode/tasks\.json$'
    git log --all --oneline -S'193.32.204.199'
  3. Si un dépôt est touché : révoquer l'accès GitHub et les jetons depuis une machine saine, changer les mots de passe, faire tourner chaque secret que les workflows atteignent, et prévenir ceux qui ont cloné le dépôt.

  4. Ne pas faire confiance à une alerte de connexion reçue par e-mail : ouvrir GitHub soi-même, et relire la liste des applications OAuth autorisées.

Source : The Hacker News, 19 octobre 2026, d'après l'analyse d'OpenSourceMalware. Source en anglais.