Contexte de l'attaque
Le rapport publié en octobre 2026 décrit une campagne menée par le groupe nommé GhostAction. L’opération cible la chaîne d'approvisionnement des projets open‑source hébergés sur GitHub, où 94 dépôts ont été infectés. L’objectif principal est la collecte d’identifiants d’accès, notamment des mots de passe et des tokens d’API, afin de permettre des accès non autorisés à des environnements de production. La diffusion massive sur plusieurs dépôts indique une automatisation du processus d’injection, typique des acteurs cherchant à maximiser le volume de victimes avec un effort minimal.
Mécanisme du malware déguisé en police
Le vecteur utilisé repose sur un fichier de police (font) modifié pour contenir du code exécutable. Ce type de camouflage exploite la confiance accordée aux ressources graphiques dans les projets front‑end. Lorsqu’un développeur intègre la police dans son application, le fichier est chargé par le runtime du navigateur ou par le moteur de rendu du système d’exploitation. Le code malveillant, intégré dans les tables de glyphes, est alors déclenché, exécutant un credential stealer capable d’extraire les fichiers de configuration, les variables d’environnement et les cookies de session. La technique ne nécessite aucune permission supplémentaire, car le chargement de polices est autorisé par défaut dans la plupart des environnements de développement.
Architecture du voleur d’identifiants
Le composant de collecte suit une architecture en trois étapes. Premièrement, il identifie les fichiers contenant des chaînes sensibles (par exemple .env, config.json, settings.xml) grâce à des expressions régulières simples. Deuxièmement, il chiffre les données avec une clé symétrique générée à la volée, souvent AES‑128, afin d’éviter la détection par les scanners de code statique. Troisièmement, le payload ouvre une connexion HTTPS vers un serveur de commande et contrôle (C2) contrôlé par GhostAction, où les informations sont stockées pour une exploitation ultérieure. Cette chaîne de traitement repose sur des bibliothèques standard du langage de programmation du projet cible, ce qui rend la détection par des outils de linting difficile.
Impact et limites de la compromission
La compromission de 94 dépôts représente un risque de propagation à l’échelle du réseau de dépendances. Chaque projet qui réutilise la police infectée expose potentiellement les développeurs et les systèmes de production à la fuite d’identifiants. Cependant, la portée effective dépend de deux facteurs mesurables : le nombre de projets qui intègrent réellement la police et la présence de mécanismes de validation des dépendances (ex. SCA, signatures de paquets). Le rapport souligne que, à ce jour, aucune compromission directe de services en production n’a été confirmée, ce qui suggère que la campagne est encore en phase de collecte. La limitation principale réside dans la dépendance à l’exécution du code de police ; les environnements qui désactivent le chargement de polices externes ou qui utilisent des CSP strictes bloquent le déclenchement du payload.