Contexte de la campagne

Le groupe nord‑coréen Jade Sleet (également connu sous les alias PUKCHONG, Slow Pisces, TraderTraitor et UNC4899) a été relié à la compromission d’un prestataire de services informatiques basé en Inde. La campagne, révélée par SentinelOne, s’inscrit dans la continuité des attaques de 2026 contre KelpDAO, où les mêmes backdoors FLATROOF et ROOFDECK avaient déjà été identifiées. L’objectif principal reste la cible des développeurs et des ingénieurs DevOps, afin d’accéder aux pipelines CI/CD et aux dépôts de code source.

Mécanisme de livraison et infrastructure

Les attaquants utilisent des recrutements fictifs sous forme de dépôts GitHub contenant des projets d’infrastructure (« gtn-candidate-repo », « terraform-candidate-repo », etc.). Chaque dépôt inclut un fichier de verrouillage Terraform (.terraform.lock.hcl) qui référence un domaine malveillant, par exemple registry.hashicorp-aws[.]com. Lorsqu’un développeur exécute terraform init, le client télécharge des modules contrôlés par l’attaquant, installant ainsi les charges utiles sur la machine.

.terraform.lock.hcl
provider "aws" {
  source  = "registry.hashicorp-aws.com/…"
}

Le premier indicateur de compromission a été détecté le 18 mars 2026 sur le MacBook Apple Silicon d’un ingénieur DevOps. Les implants sont restés inactifs jusqu’au 29 mars, moment où le processus Cursor a déclenché le beaconing. Une version mise à jour de ROOFDECK a été observée le 20 avril 2026, supprimant les symboles et les informations de débogage afin d’échapper aux analyses statiques.

Analyse des backdoors FLATROOF et ROOFDECK

FLATROOF est un backdoor écrit en Rust qui utilise Telegram comme canal C2. Il permet l’exécution de commandes, le téléchargement et l’envoi de fichiers, ainsi que le vol de données via un module Python capable d’extraire les historiques de navigateurs (Chrome, Brave, Firefox, Safari), les historiques de terminal, la liste des applications installées, le profil matériel/logiciel, les processus actifs et le fichier login.keychain-db. Cette capacité d’exfiltration ciblée montre une connaissance approfondie des API macOS et des formats de données utilisateurs.

ROOFDECK repose sur le protocole Nostr pour un C2 décentralisé. Chaque commande est signée avec la clé privée de l’opérateur et vérifiée à l’aide d’une clé publique embarquée, garantissant l’intégrité avant exécution. Le malware implémente des fonctions de reconnaissance système, de manipulation de fichiers, d’accès shell distant, de mouvement latéral et de persistance via des Launch Agents. Le code sépare les gestionnaires de commandes, une technique observée dans d’autres outils nord‑coréens comme LightlessCan.

Implications pour la sécurité des développeurs

Cette chaîne d’attaque place le poste de travail du développeur au centre du périmètre de défense. Le téléchargement automatisé de modules Terraform depuis des dépôts non vérifiés crée une porte d’entrée directe vers les environnements de production. La combinaison de C2 centralisé (Telegram) et décentralisé (Nostr) rend la détection réseau plus complexe. Les organisations doivent renforcer la validation des dépendances Terraform, appliquer le principe du moindre privilège sur les machines de développement et surveiller les activités de lancement de processus inhabituelles, notamment les appels à Cursor ou à des scripts d’initialisation non autorisés.