
Je vous propose une analyse du CERT-UA (CERT National Ukrainien) sur APT28.
En mars-avril 2024, une cyberopération multi-étapes sophistiquée a visé des organismes gouvernementaux ukrainiens (organes exécutifs centraux). L’attaque est attribuée au groupe UAC-0001, connu internationalement sous les noms APT28 ou Fancy Bear, acteur de menace lié à des campagnes d’espionnage avancées.
Lors de l’analyse de cet incident, l’équipe du CERT-UA a identifié la présence de deux programmes malveillants écrits en C++ : un backdoor nommé BEARDSHELL et un outil espion appelé SLIMAGENT. BEARDSHELL agit comme une porte dérobée adaptative, capable de télécharger, déchiffrer et exécuter des scripts PowerShell à la demande de l’attaquant.
Ce qui m’a surpris c’est l’utilisation de l’API du service de stockage en ligne Icedrive pour son canal de commande et contrôle (C2) – chaque machine infectée se voit attribuer un répertoire dédié sur le cloud, dont le nom est dérivé de l’identifiant du système (nom d’hôte et GUID matériel, hachés via la fonction hash64_fnv1a). L’autre malware, SLIMAGENT, est axé sur la collecte furtive de données sensibles : il capture périodiquement des captures d’écran du système victime, chiffre ces images (en combinant AES et RSA) et les enregistre localement dans un répertoire temporaire, en leur donnant des noms qui les font passer pour des fichiers légitimes du bureau.
Malgré la détection de ces malware en 2024, le vecteur initial d’infection était resté inconnu. La situation s’est éclaircie en mai 2025 grâce à des informations fournies par la société ESET concernant la compromission d’une boîte mail gouvernementale (@gov.ua).
Les investigations conjointes de CERT-UA et du Centre de cyberdéfense de l’unité militaire А0334 ont alors permis de reconstituer toute la chaîne d’attaque. Il est apparu que les assaillants avaient recours à une attaque phishing ciblée via la messagerie chiffrée Signal : un document Office malveillant intitulé « Акт.doc » a été envoyé à la victime par ce canal. Ce fichier contenait une macro hostile qui, une fois activée, déployait une infrastructure d’infection en plusieurs stades, impliquant notamment le framework malveillant COVENANT et débouchant sur l’installation du backdoor BEARDSHELL sur le système ciblé.
La chaîne d’infection
La chaîne d’infection observée se déroule en plusieurs étapes :
- Ingénierie sociale (phishing) – L’attaquant envoie via l’application de messagerie Signal un document leurre nommé « Акт.doc » contenant une macro malveillante. D’après l’analyse de CERT-UA, le contenu du message et du document suggère que le malfaiteur disposait d’informations internes détaillées sur sa cible, ce qui a accru l’efficacité de l’ingénierie sociale.
- Exécution du macro et installation initiale – Si la victime active la macro du document, le code VBA malveillant s’exécute et crée sur la machine deux fichiers ainsi qu’une entrée spécifique dans le Registre Windows. Les fichiers déposés sont ctec.dll (une bibliothèque DLL stockée dans le dossier système Microsoft Protect du profil utilisateur) et windows.png (un fichier apparemment image, placé dans le répertoire local des applications de l’utilisateur). Parallèlement, le macro ajoute une nouvelle clé sous la section CLSID du Registre (une technique de détournement de composants COM) afin que la DLL malveillante soit automatiquement chargée lors du prochain lancement de l’explorateur Windows. Pour provoquer immédiatement ce chargement, le macro termine puis relance le processus explorer.exe sur la machine infectée.
- Charge utile Covenant en mémoire – Au redémarrage de l’explorer, la bibliothèque ctec.dll est chargée via le mécanisme COM piégé. Cette DLL malveillante se lance et déchiffre le shellcode embarqué dans le fichier windows.png, puis exécute ce shellcode en mémoire. Ce processus aboutit à instancier sur la machine un composant du framework COVENANT, chargé en mémoire et camouflé en programme légitime.
- Communication C2 et modules additionnels – Le composant Covenant ainsi déployé établit un canal de commande et contrôle chiffré vers l’infrastructure des attaquants en utilisant l’API du service cloud Koofr (le trafic réseau apparaît ainsi comme légitime). Ce composant récupère ensuite des modules malveillants supplémentaires : notamment un fichier PlaySndSrv.dll (DLL stockée dans un répertoire nommé « Packages » sur le disque) et un fichier audio sample-03.wav (déposé dans le dossier Musique de l’utilisateur).
- Stéganographie audio – Le module PlaySndSrv.dll est un chargeur qui extrait un code malveillant caché à l’intérieur de sample-03.wav par stéganographie (le code est dissimulé dans les données audio du fichier WAV). Une fois extrait, ce code est chargé et exécuté en mémoire de la machine victime.
- Déploiement du backdoor final – Le code malveillant issu de la stéganographie lance finalement la porte dérobée BEARDSHELL sur le système compromis. Ce backdoor offre à l’attaquant un contrôle complet à distance de la machine infectée (exécution de commandes arbitraires, exfiltration de données, etc.). Pour pérenniser sa présence, BEARDSHELL met en place des mécanismes de persistance supplémentaires : notamment la création d’une nouvelle clé de Registre et d’une tâche planifiée (via le Planificateur de tâches Windows) maquillée en service système multimédia légitime. Ces artifices garantissent le redémarrage automatique du malware même après un reboot ou une déconnexion de l’utilisateur.
Les charges utiles malveillantes
BEARDSHELL
BEARDSHELL est un backdoor développé en C++, utilisé par le groupe UAC-0001 pour maintenir un accès persistant sur les systèmes compromis. Une fois exécuté sur un hôte, il permet aux attaquants de charger et d’exécuter à distance des scripts PowerShell arbitraires et de renvoyer le résultat vers le serveur de contrôle.
Pour communiquer discrètement, BEARDSHELL s’appuie sur le service cloud Icedrive : il utilise l’API officielle de ce stockage en ligne comme canal C2. Concrètement, chaque machine infectée est associée à un dossier dédié dans l’espace Icedrive des attaquants – le nom de ce dossier est généré de manière déterministe en appliquant la fonction de hachage 64-bit FNV-1a sur le nom du PC et son identifiant unique (GUID).
Cette approche permet aux opérateurs de cibler précisément chaque machine compromise via le cloud, tout en rendant le trafic C2 difficile à distinguer d’un usage légitime de la plateforme Icedrive.
COVENANT
COVENANT est un framework open source de post-exploitation couramment utilisé par les red teams et certains acteurs malveillants. Dans cette campagne, les assaillants s’en sont servis comme charge utile intermédiaire pour établir leur emprise avant le déploiement final de BEARDSHELL.
Le composant Covenant observé (déployé en mémoire via le shellcode) se fait passer pour un processus légitime du système afin de ne pas éveiller les soupçons. Il communique avec le serveur de commande et contrôle en exploitant l’API du service cloud Koofr, ce qui lui permet de dissimuler ses communications dans du trafic réseau anodin (accès à un stockage cloud réputé). Après son installation en mémoire, le malware Covenant charge d’autres éléments de l’arsenal des attaquants, notamment le chargeur PlaySndSrv.dll et le fichier de données cachées sample-03.wav (voir Chaîne d’infection ci-dessus).
En utilisant la stéganographie dans un fichier audio et un chargeur dédié, les attaquants complexifient l’analyse et la détection de leur code malveillant. L’usage de Covenant en tant que cadre modulaire a ainsi permis à UAC-0001 de déployer de façon flexible ses charges utiles tout en restant sous le radar des défenses classiques.
(À noter : Un second malware dénommé SLIMAGENT a également été découvert sur les mêmes systèmes cibles. Écrit en C++ comme BEARDSHELL, il était dédié à l’exfiltration furtive d’informations via la capture et le chiffrement de captures d’écran. SLIMAGENT ne fait pas partie directe de la chaîne d’infection décrite, mais constitue un outil complémentaire qu’UAC-0001 a pu utiliser en parallèle pour l’espionnage visuel.)
Les mécanismes de persistance
Les attaquants de UAC-0001 ont mis en œuvre plusieurs mécanismes pour assurer la persistance de leur intrusion, c’est-à-dire le maintien de l’accès malveillant malgré un redémarrage ou des mesures de remédiation basiques :
- Détournement de COM (CLSID) : Le code macro du document initial crée une entrée malveillante dans le Registre Windows, sous la section des identifiants de classes COM (CLSID). Cette clé registre pointe vers la DLL malveillante ctec.dll et force son chargement automatique par le processus explorer.exe à chaque ouverture de session utilisateur (technique de COM hijacking). Ce mécanisme assure l’exécution du premier composant malveillant (loader Covenant) immédiatement après l’infection et de façon persistante.
- Tâche planifiée furtive : Le backdoor BEARDSHELL déploie en phase finale une persistance additionnelle en créant une tâche planifiée dans Windows. La tâche est configurée pour s’exécuter régulièrement ou au démarrage, et son nom imite celui d’un service système légitime lié au multimédia, afin de ne pas éveiller les soupçons (par exemple, en reprenant une dénomination proche d’un service audio de Windows). Couplée à une clé de Registre associée, cette tâche planifiée garantit le redémarrage automatique de BEARDSHELL à intervalles réguliers ou après un redémarrage de la machine.
Quelques indicateurs de compromission
Les éléments suivants ont été identifiés dans le cadre de ces attaques et peuvent servir d’indicateurs de compromission (IOC) pour détecter la présence de cette activité malveillante :
- Document leurre : fichier Word malveillant nommé « Акт.doc » contenant une macro (source de l’infection initiale, transmis via Signal).
- DLL malveillante : fichier ctec.dll (loader en C++), installé dans le répertoire %APPDATA%\Microsoft\Protect\ de la victime.
- Fichier de shellcode : fichier windows.png (faux fichier image contenant du code chiffré), créé dans le stockage local d’applications de l’utilisateur (%LOCALAPPDATA%).
- Module de chargement audio : fichier PlaySndSrv.dll (bibliothèque malveillante en C++), déployé dans un dossier nommé “Packages” sur la machine compromise.
- Fichier média camouflé : fichier sample-03.wav (fichier audio contenant du code caché par stéganographie), déposé dans le dossier Musique de l’utilisateur (%USERPROFILE%\Music\).
- Clé de Registre COM : entrée de Registre ajoutée sous HKCU\Software\Classes\CLSID\{…} pointant vers ctec.dll (permettant le chargement automatique via COM hijacking).
- Tâche planifiée suspecte : présence d’une tâche planifiée non reconnue, dont le nom imite un service Windows (ex : lié au son/multimédia), configurée pour exécuter un programme malveillant (persistance de BEARDSHELL).
- Services cloud utilisés : communication réseau vers les domaines légitimes app.koofr.net (API Koofr) et api.icedrive.net (API Icedrive). Ces flux peuvent indiquer un usage détourné de ces services cloud à des fins de C2.
- Hachages de fichiers : les empreintes MD5 et SHA-256 des composants malveillants (document, DLL, etc.) ont été publiées par CERT-UA. Par exemple, le malware Beardshell correspond à certaines des valeurs de hachage suivantes : MD5 5d938b4316421a2caf7e2e0121b36459 / SHA-256 225b7abe861375141f6cfebde4981f615cb2aa4d913faf85172666fa4b4b320b (voir la source CERT-UA pour la liste exhaustive des IOC).
Sources
CERT-UA : https://cert.gov.ua/article/6284080a