Une campagne signalée, articulée autour de jetons GitHub volés et du voleur WFX, met environ 66 000 dépôts en danger, selon la couverture de Cybernews. Les attaquants auraient utilisé des jetons d'accès volés pour implanter des fichiers de workflow malveillants, transformant un pipeline de développement en moyen de collecter des secrets. Les informations disponibles sont brèves, c'est pourquoi cet article s'en tient à ce qui a été déclaré et se concentre sur les mesures pratiques que les développeurs peuvent prendre dès maintenant.

Comment des jetons volés ont permis l'attaque par workflow GitHub

Selon le rapport, la campagne a utilisé des jetons volés pour ajouter des workflows « WFX stealer » à environ 66 000 dépôts GitHub. Un jeton est un identifiant qui permet à une personne ou à une application d'agir sur un compte sans saisir de mot de passe. Si un attaquant détient un jeton valide disposant de suffisamment de permissions, GitHub considère ses actions comme légitimes.

C'est ce qui fait des workflows une cible attrayante. Les workflows GitHub Actions sont des fichiers stockés dans un dépôt qui s'exécutent automatiquement, souvent avec accès aux secrets qu'un projet utilise pour compiler, tester et déployer du code. Un workflow malveillant n'a pas besoin d'exploiter une faille logicielle. Il suffit qu'il soit commité par quelqu'un que GitHub croit autorisé, puis il s'exécute à l'intérieur du pipeline.

Le résumé source ne détaille pas comment les jetons ont été initialement volés, et nous n'allons pas spéculer. Ce qui importe pour les lecteurs, c'est le schéma : le pipeline lui-même devient le mécanisme de livraison, et les identifiants qui le déverrouillent sont le véritable enjeu.

Ce que le voleur WFX peut exposer depuis les comptes de développeurs

Le rapport décrit les workflows comme volant des secrets, et l'angle suggéré note que les pipelines CI/CD peuvent devenir une voie vers les secrets des développeurs et leurs comptes personnels. Concrètement, un voleur exécuté dans un pipeline peut être en position d'atteindre tout ce que ce pipeline peut atteindre. Voici des exemples typiques de tels éléments :

  • Clés API et identifiants cloud stockés comme secrets de dépôt
  • Jetons de déploiement et identifiants de registres de paquets
  • Autres jetons GitHub accessibles au workflow

Les données exactes collectées par le voleur WFX n'ont pas été confirmées dans les informations dont nous disposons, considérez donc la liste ci-dessus comme des catégories de risques communes aux secrets de pipeline, et non comme des conclusions vérifiées sur cette campagne. La préoccupation plus large est qu'un jeton volé peut mener à d'autres jetons volés. Les secrets récoltés dans un dépôt peuvent déverrouiller d'autres services, ce qui explique comment la compromission d'un dépôt peut s'étendre aux comptes personnels et organisationnels.

Cela s'inscrit dans un thème plus large que nous avons déjà couvert : des systèmes censés inspirer confiance se retournent contre leurs utilisateurs. Notre analyse de une faille zero-click Pixel et des attaques ScreenConnect contre des MSP partageait ce même fil inconfortable et montre à quel point l'outil de confiance est souvent le point faible.

Comment vérifier si vos dépôts ont été affectés

Nous ne pouvons pas vous dire si un dépôt spécifique figure sur la liste des dépôts affectés, et les informations disponibles n'en publient pas. Vous pouvez néanmoins rechercher vous-même des signes d'altération :

  1. Examinez les fichiers de workflow. Ouvrez le dossier .github/workflows de chaque dépôt et recherchez des fichiers que vous ne reconnaissez pas, ou des modifications que vous n'avez pas faites.
  2. Vérifiez l'historique des commits et des pull requests. Recherchez des commits ou des branches récents touchant aux workflows, en particulier provenant de comptes inconnus ou à des heures inhabituelles.
  3. Inspectez les journaux d'exécution des Actions. Des exécutions inattendues, de nouveaux déclencheurs ou des étapes effectuant des requêtes réseau sortantes méritent un examen plus attentif.
  4. Examinez votre journal de sécurité et vos applications autorisées. Dans les paramètres GitHub, vérifiez quels jetons d'accès personnels, applications OAuth et GitHub Apps ont accès, et supprimez tout ce que vous n'utilisez pas.
  5. Supposez une exposition si vous trouvez quoi que ce soit. Traitez chaque secret que ce workflow pouvait lire comme compromis et remplacez-le.

Renforcer GitHub : jetons, MFA et Actions tierces

Aucune de ces étapes n'est exotique, mais ensemble elles réduisent ce qu'un jeton volé peut faire.

Faites tourner et réduisez les jetons. Révoquez les anciens jetons d'accès personnels et émettez-en de nouveaux avec la portée la plus étroite et l'expiration la plus courte qui fonctionnent. Les jetons à granularité fine limités à des dépôts spécifiques sont plus sûrs que les jetons étendus.

Activez l'authentification multifacteur. La MFA protège la connexion à votre compte, mais il faut garder à l'esprit qu'un jeton volé peut contourner entièrement l'étape de connexion. C'est pourquoi l'hygiène des jetons compte tout autant.

Limitez les permissions des workflows. Définissez le jeton de workflow par défaut en lecture seule et n'accordez l'accès en écriture que là où une tâche en a réellement besoin. Exigez une revue avant que les modifications des fichiers de workflow soient fusionnées, par exemple via la protection de branche et les code owners.

Vérifiez les Actions tierces. Épinglez les Actions à un commit spécifique plutôt qu'à un tag mobile, et privilégiez celles de mainteneurs de confiance. Gardez les secrets hors des tâches qui n'en ont pas besoin.

Ce que cela signifie pour vous

Si vous maintenez ne serait-ce qu'un petit projet sur GitHub, vos fichiers de workflow font partie de votre surface d'attaque. Un jeton volé peut permettre à quelqu'un d'ajouter un workflow qui lit discrètement vos secrets, et vous pourriez ne jamais voir d'alerte. Les développeurs individuels, les mainteneurs open source et les entreprises avec des déploiements automatisés sont tous concernés.

La bonne nouvelle, c'est que les défenses sont sous votre contrôle et coûtent peu de temps. Cela s'inscrit aussi dans un schéma récurrent où les attaquants s'en prennent aux comptes et aux outils auxquels les gens font déjà confiance. Notre couverture de Incransom revendiquant une attaque contre TrRAC Inc. est un type d'incident différent, mais elle souligne à quelle vitesse un accès volé peut se transformer en dommages réels.

Points clés à retenir

  • Faites tourner vos jetons GitHub dès aujourd'hui et supprimez ceux que vous n'utilisez plus.
  • Activez la MFA sur chaque compte ayant accès aux dépôts.
  • Auditez vos fichiers .github/workflows pour détecter des modifications que vous n'avez pas faites.
  • Définissez les permissions des workflows en lecture seule par défaut et épinglez les Actions tierces.
  • Si vous trouvez quelque chose de suspect, remplacez chaque secret auquel ce workflow pouvait accéder.

Les rapports sur les jetons GitHub volés et le voleur WFX évoluent encore, et les détails peuvent changer. N'attendez pas la confirmation pour mettre de l'ordre dans votre propre configuration : faites tourner les jetons, activez la MFA et auditez vos workflows dès aujourd'hui.