Campagne GlassWorm : diffusion de loaders cachés via des extensions VS Code
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un groupe d’extensions malveillantes Visual Studio Code liées à l’acteur de menace GlassWorm a été découvert sur le marché de VS Code et Open VSX. Déguisées en thèmes colorés sophistiqués, les extensions contenaient des chargeurs JavaScript obfusqués conçus pour récupérer des charges utiles secondaires. La campagne exploite la chaîne d’approvisionnement logicielle pour cibler les développeurs et voler des données sensibles dans des environnements compromis.
Investigation
Les chercheurs de Socket ont identifié deux extensions malveillantes confirmées et plusieurs identités à haut risque liées au cluster grâce à l’analyse de l’historique Git et à l’empreinte du code source. Des extensions comme Aurora Nocturne Night Theme et Cosmic Nebula Themes utilisaient des chargeurs en plusieurs étapes, un déchiffrement AES-256-CBC et des mémos de transaction blockchain Solana comme résolveurs dead-drop pour l’infrastructure de C2. Les chercheurs ont également observé le vol de marque et le partage d’artefacts de développement, y compris des commentaires en russe.
Atténuation
Les organisations devraient inventorier les extensions développeur installées dans VS Code et éditeurs similaires, avec une attention particulière aux packages obtenus sur le Visual Studio Marketplace et les registres Open VSX. Les révisions de sécurité devraient examiner les fichiers package.json, les points d’entrée exécutables et les capacités d’exécution réseau ou de processus inattendues dans les extensions de thème. L’application de permissions strictes sur les extensions et la surveillance de l’exécution de scripts non autorisés peuvent réduire davantage les risques liés à la chaîne d’approvisionnement.
Réponse
Lorsque des indicateurs tels que des processus cmd.exe inattendus lancés depuis VS Code ou la présence de temp_batch.cmd sont détectés, isolez immédiatement l’hôte concerné. Enquêtez sur les informations d’identification potentiellement compromises, les jetons de session et les portefeuilles de crypto-monnaie. Supprimez les extensions malveillantes identifiées et effectuez une révision complète de l’environnement développeur pour vérifier qu’aucune porte dérobée persistante ou charge utile supplémentaire ne subsiste.
Flux d’Attaque
Nous mettons encore à jour cette partie.
Détections
Emplacement suspect d’exécution de script/exécutable via [cmd.exe /C] (via ligne de commande)
Command and Control suspect par demande DNS de domaine de premier niveau (TLD) inhabituel (via dns)
IOCs (HashSha256) à détecter : Thèmes jolis, Chargeurs cachés : Extensions liées à GlassWorm couvrant VS Code Marketplace et Open VSX découvertes par Socket
IOCs (HashMd5) à détecter : Thèmes jolis, Chargeurs cachés : Extensions liées à GlassWorm couvrant VS Code Marketplace et Open VSX découvertes par Socket
Exécution de script malveillant de VS Code indiquant une potentielle compromission [Événement de fichier Windows]
Exécution de script malveillant depuis des extensions VS Code [Création de processus Windows]
Exécution de simulation
-
Narratif de l’attaque & Commandes : Un adversaire a réussi à compromettre le poste de travail d’un développeur en le dupant pour qu’il installe une extension de thème VS Code malveillante. Lors de l’activation, l’extension exécute un processus en arrière-plan qui récupère une charge utile malveillante depuis un serveur distant (Transfert d’outil d’entrée). Pour initier la prochaine étape de l’attaque – qui implique l’établissement d’une persistance et le téléchargement d’autres outils – l’extension écrit un petit script de commandes batch nommé
temp_batch.cmddans le%TEMP%répertoire de l’utilisateur. Ce script est conçu pour exécuter une série de commandes obfusquées afin d’éviter les antivirus traditionnels basés sur les signatures. -
Script de Test de Régression :
# Script de simulation : Dépôt de charge utile d'extension malveillante VS Code # Objectif : Créer le fichier spécifique 'temp_batch.cmd' dans %TEMP% pour déclencher la règle de détection. $tempPath = $env:TEMP $fileName = "temp_batch.cmd" $fullPath = Join-Path $tempPath $fileName Write-Host "[*] Simulation de l'activité d'une extension malveillante VS Code..." -ForegroundColor Cyan # Crée le fichier batch malveillant $scriptContent = @" @echo off echo Simulation de l'exécution de charge utile malveillante... powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command "Write-Host 'Commande Malveillante Exécutée'" "@ try { Set-Content -Path $fullPath -Value $scriptContent -ErrorAction Stop Write-Host "[+] SUCCÈS : Créé $fullPath" -ForegroundColor Green Write-Host "[!] Surveillez votre SIEM/EDR pour l'alerte de détection." -ForegroundColor Yellow } catch { Write-Host "[-] ÉCHEC : Impossible de créer le fichier. Erreur : $($_.Exception.Message)" -ForegroundColor Red } -
Commandes de Nettoyage :
# Script de nettoyage : Supprimer les artefacts créés pendant la simulation $tempPath = $env:TEMP $fileName = "temp_batch.cmd" $fullPath = Join-Path $tempPath $fileName if (Test-Path $fullPath) { Remove-Item -Path $fullPath -Force Write-Host "[+] Nettoyage Complet : $fullPath supprimé." -ForegroundColor Green } else { Write-Host "[-] Nettoyage Échoué : Fichier non trouvé." -ForegroundColor Red }