Espionnage Cyber APT15 : Analyse des Campagnes et des TTP
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
APT15 est un groupe chinois de cyberespionnage parrainé par l’État, actif depuis 2010, ciblant principalement les agences gouvernementales, les missions diplomatiques et les organisations militaires. Les acteurs s’appuient sur le spear-phishing, l’exploitation d’applications accessibles au public et les portes dérobées personnalisées pour obtenir un accès initial et maintenir une présence à long terme. Leur arsenal comprend la stéganographie, le déguisement, la manipulation du registre et les canaux de C2 cryptés intégrés dans les en-têtes HTTP ou le trafic DNS. La campagne continue d’évoluer avec de nouveaux outils comme Graphican et le réseau de relais ORB3.
Investigation
L’enquête a cartographié plusieurs familles de logiciels malveillants (BS2005, TidePool, MirageFox, Graphican, etc.) et un ensemble complet de techniques ATT&CK couvrant l’accès initial, l’exécution, la persistance, l’escalade de privilèges, l’évasion de défense, l’accès aux informations d’identification, la découverte, la collecte, l’exfiltration et le commandement et contrôle. Les analystes ont extrait des indicateurs concrets incluant des domaines, des chemins de fichiers, des clés de registre et des lignes de commande à partir des données du cas. L’infrastructure du groupe utilise des domaines tels que goback.stranged.net and finance.globaleducat.com pour les opérations de C2.
Atténuation
Les mesures de défense recommandées incluent une analyse rigoureuse des pièces jointes par e-mail, une mise à jour rapide des correctifs de Microsoft Exchange, SharePoint et des périphériques VPN, ainsi qu’une surveillance des modifications suspectes du registre, des tâches planifiées anormales et les exécutions de charges utiles basées sur rundll32 ou COM. La surveillance réseau devrait se concentrer sur l’activité atypique des cookies HTTP et les requêtes DNS TXT alignées sur des schémas C2 connus. La liste blanche des applications et les analyses comportementales peuvent aider à bloquer l’utilisation de compresseurs renommés et des charges utiles PNG basées sur la stéganographie.
Réponse
Lorsque l’activité d’APT15 est détectée, isolez l’hôte affecté, capturez les données volatiles et tous les artefacts IOC associés, et bloquez les domaines C2 et les adresses IP identifiés. Effectuez une analyse judiciaire complète pour localiser les raccourcis persistants, les tâches planifiées et les modifications du registre, puis éradiquer les composants malveillants et réinitialisez les informations d’identification compromises. Informez les utilisateurs concernés et mettez à jour les règles de détection pour couvrir les lignes de commande, les chemins de fichiers et les indicateurs d’infrastructure observés.
« graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[« <b>Technique</b> – <b>T1566.001 Attaque par pièce jointe</b><br /><b>Description</b>: Envoyer des e-mails ciblés avec des pièces jointes malveillantes pour obtenir un accès initial. »] class node_initial technique node_valid[« <b>Technique</b> – <b>T1078 Comptes valides</b><br /><b>Description</b>: Utiliser des identifiants légitimes compromis pour accéder aux systèmes. »] class node_valid technique node_exploit[« <b>Technique</b> – <b>T1190 Exploitation d’application exposée au public</b><br /><b>Description</b>: Exploiter les vulnérabilités des services exposés à Internet pour obtenir un accès. »] class node_exploit technique node_cmd[« <b>Technique</b> – <b>T1059.003 Invite de commande Windows</b><br /><b>Description</b>: Exécuter des commandes via cmd.exe pour lancer du code malveillant. »] class node_cmd technique node_shortcut[« <b>Technique</b> – <b>T1547.009 Modification de raccourci</b><br /><b>Description</b>: Créer ou modifier des raccourcis LNK pour la persistance. »] class node_shortcut technique node_task[« <b>Technique</b> – <b>T1053 Tâche planifiée</b><br /><b>Description</b>: Utiliser des tâches planifiées pour exécuter des charges utiles à des moments définis. »] class node_task technique node_active[« <b>Technique</b> – <b>T1547.014 Configuration active</b><br /><b>Description</b>: Exploiter les clés de registre de la Configuration active pour la persistance. »] class node_active technique node_token[« <b>Technique</b> – <b>T1134.003 Manipulation de jeton d’accès</b><br /><b>Description</b>: S’attribuer des privilèges supérieurs en modifiant les jetons d’accès. »] class node_token technique node_steg[« <b>Technique</b> – <b>T1027.003 Stéganographie</b><br /><b>Description</b>: Cacher des données dans d’autres fichiers pour échapper à la détection. »] class node_steg technique node_masq[« <b>Technique</b> – <b>T1036 Mascarade</b><br /><b>Description</b>: Renommer des fichiers ou se déguiser en légitime pour éviter la détection. »] class node_masq technique node_icon[« <b>Technique</b> – <b>T1027.012 Introduction clandestine d’icône LNK</b><br /><b>Description</b>: Introduire du code malveillant dans des ressources d’icône LNK. »] class node_icon technique node_proxy[« <b>Technique</b> – <b>T1218 Exécution de proxy binaire système</b><br /><b>Description</b>: Abuser des binaires système de confiance pour exécuter du code malveillant. »] class node_proxy technique node_guard[« <b>Technique</b> – <b>T1480.001 Garde-fous d’exécution</b><br /><b>Description</b>: Vérifier les conditions de l’environnement avant exécution. »] class node_guard technique node_sandbox[« <b>Technique</b> – <b>T1497 Évasion de sandbox</b><br /><b>Description</b>: Détecter et éviter les environnements de sandbox d’analyse. »] class node_sandbox technique node_keylog[« <b>Technique</b> – <b>T1056.001 Keylogging</b><br /><b>Description</b>: Capturer les frappes pour obtenir des identifiants. »] class node_keylog technique node_dump[« <b>Technique</b> – <b>T1003 Dumping des identifiants système d’exploitation</b><br /><b>Description</b>: Extraire les hachages de mots de passe du système d’exploitation. »] class node_dump technique node_sysinfo[« <b>Technique</b> – <b>T1082 Découverte des informations système</b><br /><b>Description</b>: Rassembler des détails sur l’OS, le matériel, et le logiciel. »] class node_sysinfo technique node_inet[« <b>Technique</b> – <b>T1016.001 Découverte de connexion Internet</b><br /><b>Description</b>: Identifier les connexions réseau actives et les adresses IP. »] class node_inet technique node_stage[« <b>Technique</b> – <b>T1074.001 Données mises en scène</b><br /><b>Description</b>: Accumuler des données localement avant exfiltration. »] class node_stage technique node_archive[« <b>Technique</b> – <b>T1560.001 Archiver via un utilitaire</b><br /><b>Description</b>: Compresser les données en utilisant des utilitaires tels que zip. »] class node_archive technique node_email[« <b>Technique</b> – <b>T1114.002 Collecte d’e-mails à distance</b><br /><b>Description</b>: Accéder aux comptes emails pour collecter les messages. »] class node_email technique node_http[« <b>Technique</b> – <b>T1071.001 Protocoles Web HTTP</b><br /><b>Description</b>: Utiliser HTTP pour les communications de commande et contrôle. »] class node_http technique node_obfusc[« <b>Technique</b> – <b>T1001 Obfuscation de données</b><br /><b>Description</b>: Encoder ou chiffrer les données pour cacher leur contenu. »] class node_obfusc technique node_dead[« <b>Technique</b> – <b>T1102.001 Résolveur de drop mort</b><br /><b>Description</b>: Récupérer des commandes ou des données de lieux cachés. »] class node_dead technique node_encrypt[« <b>Technique</b> – <b>T1573.001 Canal chiffré</b><br /><b>Description</b>: Chiffrer le trafic C2 pour dissimuler les communications. »] class node_encrypt technique node_exfil[« <b>Technique</b> – <b>T1048.003 Exfiltration via un protocole non chiffré non C2</b><br /><b>Description</b>: Transférer des données en utilisant des protocoles non associés au C2 sans chiffrement. »] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil «
Flux d’Attaque
Détections
Exécution de Logiciel d’Archivage via Interpréteur de Commande et de Scripts (via process_creation)
Voir
Chaînes Powershell Suspectes (via powershell)
Voir
Chaînes Powershell Suspectes (via cmdline)
Voir
Binaire/Scripts Suspects dans Emplacement de Démarrage Automatique (via file_event)
Voir
Exécution Possible de XCOPY pour la Collection de Documents (via cmdline)
Voir
Extension de Fichier Suspecte Ajoutée aux Clés Run [ASEPs] (via registry_event)
Voir
IOCs (Emails) pour détecter : APT15 Cyber Espionnage : Analyse des Campagnes et TTPs
Voir
Détection de l’Exécution de Commandes et des Techniques de Persistance d’APT15 [Création de Processus Windows]
Voir
Détecter la Communication C2 d’APT15 via des En-têtes HTTP Spécifiques [Connexion Réseau Windows]
Voir
Exécution de Simulation
Prérequis : Le Contrôle Prévol des Télémetries et Baseline doit avoir réussi.
Récit & Commandes de l’Attaque :
- Préparation : L’adversaire a déjà compromis un compte utilisateur et est arrivé sur le point de terminaison.
- Mise en Scène des Données (T1059.003) : En utilisant exactement
xcopyla syntaxe observée dans l’activité historique d’APT15, l’attaquant copie les fichiers du bureau de la victime dans un dossier temporaire WMI caché, préservant les horodatages (/D:09-29-2021) pour se fondre dans l’activité légitime du système. - Exécution de Payload (T1218.002) : L’attaquant invoque ensuite
rundll32.exeavec un chemin à nom court (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll) pour exécuter un JavaScript malveillant qui établit une persistance. - Résultat : Les deux commandes génèrent des événements de création de processus distincts qui correspondent à la règle Sigma
selection1andselection2respectivement, déclenchant une alerte.
Script de Test de Régression :
# -------------------------------------------------
# Script de Simulation APT15 – déclenche la règle Sigma
# -------------------------------------------------
# 1. Créer des répertoires de mise en scène et des fichiers factices
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "données sensibles" -Encoding UTF8
# 2. Exécuter la commande xcopy exacte utilisée par APT15
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd
# 3. Déployer la DLL malveillante (simulée par la copie d'une DLL légitime)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force
# 4. Exécuter rundll32 avec le modèle d'argument exact d'APT15
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd
# -------------------------------------------------
# Fin de la simulation
# -------------------------------------------------
Commandes de Nettoyage :
# Supprimer les fichiers et répertoires de mise en scène
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue
# Supprimer le dossier et la DLL IEHelper fictifs
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue
# Optionnel : arrêter Sysmon (si seulement nécessaire pour le test)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u