Stealth Falcon est un groupe de menace, actif depuis 2012, qui cible les militants politiques et les journalistes au Moyen-Orient. Il a été suivi par Citizen Lab, un organisme sans but lucratif axé sur la sécurité et les droits de la personne, qui a publié une analyse au sujet d'une cyberattaque particulière en 2016. En janvier 2019, Reuters a publié un rapport d'enquête sur le Project Raven, une initiative qui aurait employé d'anciens agents de la NSA et visait les mêmes types de cibles que Stealth Falcon.

Sur la base de ces deux rapports faisant référence aux mêmes cibles et attaques, Claudio Guarnieri, technologue principal d'Amnesty International, a conclu que Stealth Falcon et Project Raven sont en fait le même groupe.

Figure 1 - Claudio Guarnieri a relié Stealth Falcon et Project Raven

Certaines informations techniques sur Stealth Falcon ont déjà été rendues publiques - notamment dans l'analyse déjà mentionnée par le Citizen Lab.

L'élément clé de l'attaque documenté dans le rapport du Citizen Lab était une porte dérobée basée sur PowerShell, livrée via un fichier joint à un courriel malveillant.

Maintenant, nous avons trouvé une backdoor non documentée que nous avons nommée Win32/StealthFalcon. Dans cet article, nous révélons des similitudes entre cette porte dérobée binaire et le script PowerShell avec les capacités de porte dérobée attribuées au groupe Stealth Falcon. Nous considérons que ces similitudes constituent une preuve solide que Win32/StealthFalcon a été créé par ce groupe.

La porte dérobée Win32/StealthFalcon, qui semble avoir été créée en 2015, permet à l'attaquant de contrôler l'ordinateur compromis à distance. Nous avons vu un petit nombre de cibles aux Émirats arabes unis, en Arabie saoudite, en Thaïlande et aux Pays-Bas; dans ce dernier cas, la cible était une mission diplomatique d'un pays du Moyen-Orient. La façon dont la porte dérobée a été distribuée et exécutée sur les systèmes cibles dépasse le cadre de la présente enquête; notre analyse porte sur ses capacités et sa communication C&C.

Communication C&C

Dans ses communications avec le serveur C&C, Win32/StealthFalcon utilise la composante Windows standard Background Intelligent Transfer Service (BITS), ce qui est une technique assez inhabituelle. Le BITS a été conçu pour transférer de grandes quantités de données sans consommer beaucoup de bande passante réseau, ce qu'il obtient en envoyant les données avec un débit limité afin de ne pas affecter les besoins en bande passante des autres applications. Il est couramment utilisé par les mises à jour, les messagers et d'autres applications conçues pour fonctionner en arrière-plan. Cela signifie que les tâches du BITS sont plus susceptibles d'être autorisées par les pare-feu de l'hôte.

Comparé à la communication traditionnelle via des fonctions API, le mécanisme BITS est exposé à travers une interface COM et donc plus difficile à détecter pour un produit de sécurité. De plus, cette conception est fiable et furtive. Le transfert reprend automatiquement après avoir été interrompu pour des raisons telles qu'une panne de réseau, une déconnexion de l'utilisateur ou un redémarrage du système, car le BITS ajuste la vitesse à laquelle les fichiers sont transférés en fonction de la bande passante disponible, l'utilisateur n'a aucune raison de soupçonner.

Win32/StealthFalcon peut commuter la communication entre deux serveurs C&C dont les adresses sont stockées dans une clé de registre, ainsi que d'autres valeurs de configuration, et peut être mise à jour par l'une des commandes backdoor. Dans le cas où la porte dérobée ne parvient pas à atteindre ses serveurs C&C, la porte dérobée se retire du système compromis après un nombre préconfiguré de tentatives ratées.

Capacités

Win32/StealthFalcon est un fichier DLL qui, après exécution, se programme comme une tâche s'exécutant sur chaque login utilisateur. Il ne prend en charge que les commandes de base, mais affiche une approche systématique de la collecte et de l'exfiltration des données, en utilisant d'autres outils malveillants et en mettant à jour sa configuration.

Command name Functionality
K Uninstall itself
CFG Update configuration data
RC Execute the specified application
DL Write downloaded data to file
CF Prepare a file for exfiltration
CFW Exfiltrate and delete files
CFWD Not implemented/no operation

Tableau 1 - Commandes de la backdoor

Par exemple, la capacité clé de la porte dérobée, le téléchargement et l'exécution de fichiers, est réalisée par le biais de contrôles réguliers des bibliothèques nommées win*.dll ou std*.dll dans le répertoire à partir duquel le logiciel malveillant est exécuté, et le chargement de ces bibliothèques.

De plus, Win32/StealthFalcon collecte les fichiers et les prépare pour l'exfiltration en stockant une copie chiffrée avec un préfixe codé en dur dans un dossier temporaire. Il vérifie ensuite régulièrement la présence de ces fichiers et les exfiltre automatiquement. Une fois que les fichiers ont été exfiltrés avec succès, le coffre-fort antilogiciel malveillant supprime tous les fichiers journaux et les fichiers collectés - avant de supprimer les fichiers, il les réécrit avec des données aléatoires - pour empêcher toute analyse légale et la récupération des données supprimées.

Les valeurs de configuration sont stockées dans la clé de registre HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Shell Extensions. Toutes les valeurs sont préfixées par le nom de fichier du logiciel malveillant (sans extension).

Value name suffix Content
-FontDisposition Randomly generated, 4-byte victim ID
-MRUData RC4-encrypted C&C domain
-MRUList RC4-encrypted C&C domain
-IconPosition Flag determining which of the C&C domains should be used
-IconDisposition Number of seconds to sleep after each iteration of contacting the C&C server
-PopupPosition Counter of failed attempts to reach the C&C servers

Tableau 2 - Données de configuration stockées dans le registre

Astuce possiblement utilisées pour échapper à la détection

Une fonction intéressante est une fonction qui est exécutée avant le démarrage de toute charge utile malveillante, et qui semble redondante. Il fait référence à plus de 300 importations, mais ne les utilise pas du tout. Au lieu de cela, il revient toujours et continue avec la charge utile par la suite, sans vérification de l'état qui pourrait suggérer qu'il s'agit d'une astuce anti-émulation.

Figure 2 - Une fonction référençant des centaines d'importations inutilisées, éventuellement ajoutée pour éviter la détection du logiciel malveillant

Nous ne connaissons pas l'intention précise derrière cette fonction. Nous soupçonnons néanmoins qu'il s'agit soit d'une tentative d'échapper à la détection, soit de restes d'un cadre plus large utilisé par les auteurs du logiciel malveillant.

Liens avec Stealth Falcon

Win32/StealthFalcon et la porte dérobée PowerShell décrite dans l'analyse de Citizen Lab partagent le même serveur C&C : l'adresse windowsearchcache[.]com a été utilisée en tant que « Stage Two C2 Server Domain » (Domaine du serveur C2 de niveau 2)  dans la porte dérobée analysée par le Citizen Lab, ainsi que dans une des versions de Win32/StealthFalcon.

Les deux portes dérobées présentent d'importantes similitudes de code - bien qu'elles soient écrites dans des langages différents, la logique sous-jacente est préservée. Les deux utilisent des identificateurs codés en dur (très probablement l'ID de la campagne ou l'ID de la cible). Dans les deux cas, toutes les communications réseau de l'hôte compromis sont préfixées par ces identificateurs et chiffrées avec RC4 à l'aide d'une clé codée en dur.

Pour leur communication avec le serveur C&C, ils utilisent tous les deux le HTTPS, mais définissent des indicateurs spécifiques pour que la connexion ignore le certificat du serveur.

Conclusion

Nous avons découvert et analysé une porte dérobée avec une technique peu commune pour la communication C&C - utilisant des BITS Windows - et quelques techniques avancées pour empêcher la détection et l'analyse, et pour assurer la persistance et compliquer l'analyse légale. Les similitudes du code et de l'infrastructure avec un logiciel malveillant précédemment connu et associé à Stealth Falcon nous amènent à la conclusion que la porte dérobée Win32/StealthFalcon est également l'œuvre de ce groupe de menaces.

Indicateurs de compromission (IoCs)

Nom de détection d’ESET

Win32/StealthFalcon

SHA-1

31B54AEBDAF5FBC73A66AC41CCB35943CC9B7F72
50973A3FC57D70C7911F7A952356188B9939E56B
244EB62B9AC30934098CA4204447440D6FC4E259
5C8F83CC4FF57E7C67925DF4D9DAABE5D0CC07E2

Clés RC4

258A4A9D139823F55D7B9DA1825D101107FBF88634A870DE9800580DAD556BA3
2519DB0FFEC604D6C9A655CF56B98EDCE10405DE36810BC3DCF125CDE30BA5A2
3EDB6EA77CD0987668B360365D5F39FDCF6B366D0DEAC9ECE5ADC6FFD20227F6
8DFFDE77A39F3AF46D0CE0B84A189DB25A2A0FEFD71A0CD0054D8E0D60AB08DE

Note: Malware derives a second RC4 key by XORing each byte of the hardcoded key with 0x3D.

Host-based indicators

Noms de fichier du logiciel malveillant

ImageIndexer.dll
WindowsBackup.dll
WindowsSearchCache.dll
JavaUserUpdater.dll

Schéma des nom du fichier journal 

%TEMP%\dsc*
%TEMP%\sld*
%TEMP%\plx*

Clés de registre/valeurs

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions
X-MRUList
X-MRUData
X-FontDisposition
X-IconDisposition
X-IconPosition
X-PopupPosition
X est le nom de fichier du logiciel malveillant (sans extension).

Indicateurs de réseau

Noms des tâches BITS

WindowsImages-
WindowsBackup-
WindowsSearchCache-
ElectricWeb

Serveurs C&C

footballtimes[.]info
vegetableportfolio[.]com
windowsearchcache[.]com
electricalweb[.]org
upnpdiscover[.]org

Techniques MITRE ATT&CK

Tactic ID Name Description
Execution T1059 Command-Line Interface Malware uses cmd.exe to execute some commands.
T1106 Execution through API Malware uses CreateProcessW API for execution.
T1085 Rundll32 Malware uses rundll32.exe to load the backdoor DLL.
T1053 Scheduled Task Malware schedules rundll32.exe to be executed on each login, and subsequently to load the backdoor DLL.
Persistence T1053 Scheduled Task Malware establishes persistence by scheduling a task that loads the backdoor on each user login.
Defense Evasion T1197 BITS Jobs Malware uses BITS file transfer mechanism for network communication, in an attempt to avoid detection.
T1140 Deobfuscate/Decode Files or Information Strings are encrypted with a custom XOR cipher.
#rowspan# #rowspan# Configuration data and log files are encrypted with RC4, using a hardcoded key.
T1107 File Deletion Malware overwrites files with random data, and deletes them after exfiltration.
T1036 Masquerading Malware attempts to disguise itself by using seemingly-legitimate file names.
T1112 Modify Registry Malware stores its configuration in a registry key.
T1027 Obfuscated Files or Information Strings are encrypted with a custom XOR cipher.
#rowspan# #rowspan# Configuration data and log files are encrypted with RC4, using a hardcoded key.
Discovery T1063 Security Software Discovery Malware terminates itself if McAfee Agent binary (cmdagent.exe) is detected.
Collection T1074 Data Staged Malware stores collected data in a temporary folder in files named with a hardcoded prefix.
T1005 Data from Local System Malware has a command to collect/steal a file from the compromised system.
Command and Control T1008 Fallback Channels Malware is able to communicate with two C&C servers; it also supports switching to a different C&C server using a backdoor command.
T1105 Remote File Copy Malware uses BITS Jobs for C&C communication.
T1005 Standard Cryptographic Protocol Malware encrypts C&C communication using RC4 with a hardcoded key.
Exfiltration T1020 Automated Exfiltration Malware automatically exfiltrates files in a temporary folder in files named with a hardcoded prefix.
T1022 Data Encrypted Malware encrypts the collected data using RC4 with a hardcoded key, prior to exfiltration.
T1041 Exfiltration Over Command and Control Channel Malware exfiltrates data over the C&C channel.