Tactiques du groupe APT41 contre les émulés de ransomware dans AttackIQ Ransom Tales
Detection stack
- AIDR
- Alert
- ETL
- Query
RÉSUMÉ
L’article décrit le cinquième volume de la série Ransom Tales d’AttackIQ, qui recrée les tactiques, techniques et procédures de trois familles de rançongiciels notoires – REvil, DarkSide et BlackMatter – dans un environnement de laboratoire contrôlé. Chaque émulation couvre les phases d’exécution, de persistance, de découverte, d’évasion de la défense et d’impact, permettant aux défenseurs de s’exercer et de valider les workflows de détection et de réponse. Les scénarios de Ransom Tales résonnent avec les leçons de la campagne de cyber-espionnage APT41 tout en chroniquant les compromis de la chaîne d’approvisionnement et l’essor des écosystèmes Ransomware-As-a-Service pour les équipes bleues modernes et les analystes.
Analyse de l’attaque APT41
L’équipe de recherche sur les adversaires d’AttackIQ a analysé des rapports de renseignement sur les menaces publiques, des échantillons de logiciels malveillants et des télémétries pour construire des graphiques d’attaques réalistes pour chaque famille de rançongiciels, de la même manière que les analystes ont reconstruit l’activité du groupe APT41. Ils ont cartographié les étapes observées aux techniques de MITRE ATT&CK et conçu des flux d’exécution qui récupèrent des charges utiles, établissent la persistance, énumèrent les hôtes et cryptent les données. Ils ont également modélisé comment le groupe APT41 a lancé une opération de cyber-espionnage contre une entreprise américaine pour illustrer les pratiques commerciales partagées.
Atténuation
Les recommandations d’atténuation insistent sur un accès strict au moindre privilège, la désactivation des services inutiles et la mise à jour rapide de l’infrastructure, y compris les vulnérabilités Atlassian Confluence, Apache Struts et GoAhead RCE, ainsi que les failles Log4j telles que CVE-2021-44228, CVE-2022-26134, CVE-2017-9805 et CVE-2017-17562. Les équipes doivent restreindre l’accès au bureau à distance, surveiller les changements de registre et de tâches, et valider les sauvegardes.
Réponse
Lorsque l’activité est détectée, les intervenants doivent isoler les systèmes affectés, capturer la mémoire volatile, collecter les ruches de registre et préserver les sources de journaux pour examen. Ils doivent examiner les copies d’ombre, les tâches planifiées et les clés de registre pour des preuves des techniques utilisées par le groupe APT41, puis restaurer les données à partir des sauvegardes. Les équipes doivent rechercher les mouvements latéraux, informer les parties prenantes et enrichir les incidents avec le renseignement sur les menaces.
mermaid graph TB %% Class Definitions classDef action fill:#99ccff classDef builtin fill:#cccccc %% Nodes – Attack Stages node_initial_access[« <b>Accès initial</b> – <b>T1190 Exploitation d’application exposée à internet</b><br />Techniques : CVE-2021-4428 (Log4j), CVE-2022-26134 (Confluence), CVE-2017-9805 (Struts), CVE-2017-17562 (GoAhead) »] class node_initial_access action node_execution[« <b>Exécution</b> – <b>T1127.001 Exécution par proxy d’utilitaires de développeur de confiance</b><br />Outil : msbuild.exe exécute une charge utile XML malveillante »] class node_execution action node_persistence[« <b>Persistance & Escalade de privilèges</b> – <b>T1053 Tâche/Job planifié</b><br />Création d’une tâche planifiée SYSTEM pour lancer msbuild de manière répétée »] class node_persistence action node_defev1[« <b>Évasion de la défense</b> – <b>T1574.002 Chargement latéral de DLL</b><br />Exécutable signé VipreAV (vetysafe.exe) abusé pour charger sbamres.dll malveillant »] class node_defev1 action node_credential[« <b>Accès aux informations d’identification</b> – <b>T1003.006 Extraction d’informations d’identification OS DCSync</b><br />Récolte des hachages de mots de passe des administrateurs de domaine via DCSync »] class node_credential action node_discovery[« <b>Découverte</b> – <b>T1046 Découverte de services réseau</b> & <b>T1082 Découverte des informations système</b><br />Numérisation des services internes et collecte des informations sur les hôtes »] class node_discovery action node_c2[« <b>Commande et contrôle</b> – <b>T1102 Service web</b><br />Trafic web bidirectionnel utilisé pour exfiltrer les documents politiques »] class node_c2 action node_defev2[« <b>Évasion de la défense</b> – <b>T1027 Fichiers ou informations obscurcis</b><br />L’utilitaire Imjpuexc cache le code et effectue une résolution dynamique des API »] class node_defev2 action node_exfil[« <b>Exfiltration</b> – <b>T1048 Exfiltration sur protocole alternatif</b><br />Données transférées via le même canal web en utilisant un protocole alternatif »] class node_exfil action %% Nodes – Tools tool_msbuild[« <b>Outil</b> – <b>Nom</b>: msbuild.exe<br /><b>Description</b>: Moteur de construction Microsoft utilisé pour compiler et exécuter XML »] class tool_msbuild builtin tool_vetysafe[« <b>Outil</b> – <b>Nom</b>: vetysafe.exe (VipreAV)<br /><b>Description</b>: Exécutable AV signé exploité pour le chargement latéral de DLL »] class tool_vetysafe builtin tool_scheduledtask[« <b>Outil</b> – <b>Nom</b>: schtasks.exe<br /><b>Description</b>: Utilitaire Windows pour créer des tâches planifiées »] class tool_scheduledtask builtin tool_imjpuexc[« <b>Outil</b> – <b>Nom</b>: Imjpuexc<br /><b>Description</b>: Utilitaire qui obscurcit les charges utiles et résout les API à l’exécution »] class tool_imjpuexc builtin %% Connections – Attack Flow node_initial_access u002du002d>|exploite| node_execution node_execution u002du002d>|utilise| tool_msbuild node_execution u002du002d>|crée| node_persistence node_persistence u002du002d>|utilise| tool_scheduledtask node_persistence u002du002d>|mène à| node_defev1 node_defev1 u002du002d>|utilise| tool_vetysafe node_defev1 u002du002d>|active| node_credential node_credential u002du002d>|fournit des données pour| node_discovery node_discovery u002du002d>|soutient| node_c2 node_c2 u002du002d>|communique via| tool_imjpuexc node_defev2 u002du002d>|soutient| node_c2 node_c2 u002du002d>|exfiltre| node_exfil
Flux d’attaque
Détections
Attaque APT41 DCSync pour la récolte d’identifiants [Connexion réseau Windows]
Voir
Persistance APT41 via MSBuild et tâches planifiées [Création de processus Windows]
Voir
COIs (DestinationIP) à détecter : Campagne de cyber-espionnage APT41 cible des institutions politiques américaines
Voir
COIs (HashSha1) à détecter : Campagne de cyber-espionnage APT41 cible des institutions politiques américaines
Voir
COIs (HashSha256) à détecter : Campagne de cyber-espionnage APT41 cible des institutions politiques américaines
Voir
COIs (HashMd5) à détecter : Campagne de cyber-espionnage APT41 cible des institutions politiques américaines
Voir
Simulations
Exécution de la simulation
Prérequis : La vérification préalable de télémétrie et de base doit avoir réussi.
Justification : Cette section détaille l’exécution précise de la technique adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif & Commandes d’attaque :
L’adversaire, imitant APT41, compile d’abord un backdoor C# malveillant en utilisantmsbuild.exepour contourner la liste blanche d’applications. La charge utile compilée est ensuite mise en place sous forme de tâche planifiée en utilisantschtasks.exepour obtenir la persistance. Les deux binaires sont exécutés à partir de localisations non standard pour émuler un comportement réaliste des attaquants tout en correspondant à la condition nom d’image de la règle. -
Script de test de régression :
-
# Test de persistance à la manière APT41 – PowerShell # ------------------------------------------------- # 1. Préparer la charge utile C# malveillante $source = @" using System; using System.Diagnostics; public class Backdoor { public static void Main() { Process.Start(new ProcessStartInfo { FileName = "cmd.exe", Arguments = "/c echo Compromis > C:Temppwned.txt", CreateNoWindow = true, UseShellExecute = false }); } } "@ $srcPath = "$env:TEMPbackdoor.cs" $projPath = "$env:TEMPbackdoor.csproj" $dllPath = "$env:TEMPbackdoor.dll" $srcPath | Out-File -Encoding ASCII -Force $projContent = @" <Project Sdk=`"Microsoft.NET.Sdk`"> <PropertyGroup> <TargetFramework>net48</TargetFramework> <OutputType>Library</OutputType> </PropertyGroup> </Project> "@ $projPath | Out-File -Encoding ASCII -Force # 2. Compiler la DLL malveillante avec msbuild (chemin non standard) $msbuildPath = "$env:ProgramFilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMSBuild.exe" & $msbuildPath $projPath /p:OutDir=$env:TEMP /t:Build /p:Configuration=Release # 3. Créer une tâche planifiée pour exécuter la DLL via powershell $taskName = "SystemUpdater" $taskCmd = "powershell -ExecutionPolicy Bypass -File `"$dllPath`"" $schPath = "$env:SystemRootSystem32schtasks.exe" & $schPath /Create /SC ONLOGON /TN $taskName /TR $taskCmd /RL HIGHEST /F # 4. Déclencher la tâche immédiatement & $schPath /Run /TN $taskName -
Commandes de nettoyage :
# Supprimer la tâche planifiée $schPath = "$env:SystemRootSystem32schtasks.exe" & $schPath /Delete /TN "SystemUpdater" /F # Supprimer les fichiers de la charge utile Remove-Item -Path "$env:TEMPbackdoor.cs","$env:TEMPbackdoor.csproj","$env:TEMPbackdoor.dll" -Force