Préambule
In August 2024, a novel macOS malware named "BANSHEE Stealer" emerged, catching the attention of the cybersecurity community. Reportedly developed by Russian threat actors, BANSHEE Stealer was introduced on an underground forum and is designed to function across both macOS x86_64 and ARM64 architectures.
Ce logiciel malveillant présente un risque grave pour les utilisateurs de macOS, en ciblant les informations vitales du système, les données du navigateur et les portefeuilles de crypto-monnaies.
Avec un prix d'abonnement mensuel élevé de 3 000 $, BANSHEE Stealer se distingue sur le marché, en particulier par rapport à des voleurs connus comme AgentTesla.
Alors que macOS devient de plus en plus une cible privilégiée pour les cybercriminels, BANSHEE Stealer souligne l'augmentation du nombre de logiciels malveillants spécifiques à macOS. Cette analyse explore les détails techniques de BANSHEE Stealer, dans le but d'aider la communauté à comprendre son impact et à rester informée des menaces émergentes.
Principaux points abordés dans cet article
- BANSHEE Stealer met en évidence le nombre croissant d'échantillons de logiciels malveillants pour macOS, le système d'exploitation devenant une cible plus attrayante pour les cybermenaces.
- Le prix mensuel de 3 000 dollars de BANSHEE Stealer est particulièrement élevé par rapport aux voleurs basés sur Windows.
- BANSHEE Stealer cible un large éventail de navigateurs, de portefeuilles de crypto-monnaies et environ 100 extensions de navigateur, ce qui en fait une menace très polyvalente et dangereuse.
Analyse des malwares
Le logiciel malveillant que nous avons analysé dans le cadre de cette étude contenait tous les symboles C++, ce qui est intéressant car nous pouvons deviner la structure du code du projet en connaissant les noms des fichiers du code source, comme le montre l'image ci-dessous. En examinant les fonctions d'initialisation des variables globales générées par le C++, nous pouvons trouver des valeurs définies automatiquement/manuellement par l'utilisateur au cours du processus de construction, comme l'adresse IP distante, la clé de cryptage, l'identifiant de construction, etc.
Le tableau suivant résume les noms des fichiers fuyant .cpp
par le biais des symboles dans le fichier binaire.
Nom du fichier | Description |
---|---|
Controller.cpp | Gère les tâches d'exécution essentielles, y compris les mesures anti-débogage, les contrôles linguistiques, la collecte de données et l'exfiltration. |
Browsers.cpp | Gère la collecte de données provenant de divers navigateurs web. |
System.cpp | Exécute des AppleScripts pour recueillir des informations sur le système et procéder à l'hameçonnage de mots de passe. |
Tools.cpp | Fournit des fonctions utilitaires pour le cryptage, la création de répertoires, la compression, etc. |
Wallets.cpp | Responsable de la collecte des données des portefeuilles de crypto-monnaies. |
Débogueur, détection des machines virtuelles et contrôles linguistiques
Le voleur de BANSHEE utilise des techniques de base pour échapper à la détection. Il détecte le débogage en utilisant l'API sysctl.
Pour la détection de la virtualisation, il exécute la commande system_profiler SPHardwareDataType | grep 'Model Identifier'
pour déterminer si la chaîne Virtual
apparaît dans l'identifiant du modèle de matériel, ce qui suggère une machine virtuelle. Ces méthodes sont relativement simples et peuvent être facilement contournées par les bacs à sable avancés et les analystes de logiciels malveillants.
En outre, il analyse la langue canonisée préférée de l'utilisateur renvoyée par l'API CFLocaleCopyPreferredLanguages et recherche la chaîne ru
. Cette tactique permet au logiciel malveillant d'éviter d'infecter des systèmes dont la langue principale est le russe.
Collecte d'informations sur le système
Mot de passe de l'utilisateur
Le logiciel malveillant crée une invite de mot de passe Osascript avec une boîte de dialogue indiquant que pour lancer l'application, vous devez mettre à jour les paramètres du système. Veuillez saisir votre mot de passe.
Lorsque l'utilisateur saisit le mot de passe, celui-ci est validé à l'aide de la commande dscl en exécutant dscl Local/Default -authonly <username> <password>
S'il est valide, le mot de passe sera écrit dans le fichier suivant /Users/<username>/password-entered
.
Ces informations d'identification peuvent être utilisées pour décrypter les données du trousseau stockées sur le système, ce qui permet d'accéder à tous les mots de passe enregistrés.
Collecte d'informations sur les fichiers, les logiciels et le matériel
La fonction System::collectSystemInfo
collecte des informations sur le système et les sérialise dans un objet JSON. Il exécute la commande system_profiler SPSoftware DataType SPHardwareDataType
, qui fournit des informations sur le logiciel et le matériel du système. Il obtient l'IP publique de la machine en la demandant à freeipapi.com
par le biais de la commande macOS cURL
intégrée.
Le fichier JSON sera enregistré sous <temporary_path>/system_info.json
Le voleur BANSHEE exécute des AppleScripts ; il est intéressant de noter qu'il écrit les AppleScripts dans le même fichier /tmp/tempAppleScript
.
Le premier script à exécuter commence par couper le son du système avec la commande osascript -e 'set volume with output muted'
. Il collecte ensuite divers fichiers du système, qui sont énumérés ci-dessous :
- Cookies Safari
- Base de données des notes
- Fichiers portant les extensions suivantes :
.txt
,.docx
,.rtf
,.doc
,.wallet
,.keys
, ou.key
à partir des dossiers Desktop et Documents.
Vider les mots de passe du trousseau
Il copie le trousseau de clés du système /Library/Keychains/login.keychain-db
vers <temporary_path>/Passwords
Collection de navigateurs
BANSHEE collecte actuellement des données provenant de 9 différents navigateurs, y compris l'historique de navigation, les cookies, les connexions, etc :
- Chrome
- Firefox
- Courageux
- Edge
- Vivaldi
- Yandex
- Opéra
- OperaGX
En ce qui concerne Safari, seuls les cookies sont collectés par le script AppleScript pour la version actuelle.
En outre, des données provenant d'environ 100 plugins de navigateur sont collectées sur la machine. Une liste de ces identifiants d'extension est fournie à la fin de l'article de blog.
Les fichiers collectés sont enregistrés sous <temporary_path>/Browsers
.
Collection de portefeuilles
- Exodus
- Electrum
- Coinomi
- Guarda
- Portefeuille Wasabi
- Atomique
- Grand livre
Les portefeuilles collectés sont stockés à l'adresse <temporary_path>/Wallets
.
Exfiltration
Une fois que le logiciel malveillant a fini de collecter les données, il commence par compresser le dossier temporaire à l'aide de la commande ditto
. Le fichier zip est ensuite crypté par XOR et encodé en base64, puis envoyé par une requête post à l'URL : http://45.142.122[.]92/send/
avec la commande cURL intégrée.
Détection des comportements
- Accès aux fichiers du portefeuille cryptographique par des binaires non signés ou non fiables
- Données d'identification du navigateur Web accédées par un processus non signé ou non fiable
- Osascript Payload Drop and Execute
- Hameçonnage potentiel d'informations d'identification via Osascript
Règle YARA
Elastic Security a créé des règles YARA pour identifier cette activité. Vous trouverez ci-dessous les règles de YARA permettant d'identifier le logiciel malveillant BANSHEE :
rule Macos_Infostealer_Banshee {
meta:
author = "Elastic Security"
creation_date = "2024-08-13"
last_modified = "2024-08-13"
os = "MacOS"
arch = "x86, arm64"
category_type = "Infostealer"
family = "Banshee"
threat_name = "Macos.Infostealer.Banshee"
license = "Elastic License v2"
strings:
$str_0 = "No debugging, VM, or Russian language detected." ascii fullword
$str_1 = "Remote IP: " ascii fullword
$str_2 = "Russian language detected!" ascii fullword
$str_3 = " is empty or does not exist, skipping." ascii fullword
$str_4 = "Data posted successfully" ascii fullword
$binary_0 = { 8B 55 BC 0F BE 08 31 D1 88 08 48 8B 45 D8 48 83 C0 01 48 89 45 D8 E9 }
$binary_1 = { 48 83 EC 60 48 89 7D C8 48 89 F8 48 89 45 D0 48 89 7D F8 48 89 75 F0 48 89 55 E8 C6 45 E7 00 }
condition:
all of ($str_*) or all of ($binary_*)
}
Conclusion
BANSHEE Stealer est un logiciel malveillant basé sur macOS qui peut collecter de nombreuses données à partir du système, des navigateurs, des portefeuilles de crypto-monnaies et de nombreuses extensions de navigateur. Malgré ses capacités potentiellement dangereuses, l'absence d'obscurcissement sophistiqué et la présence d'informations de débogage facilitent la dissection et la compréhension du logiciel malveillant par les analystes. Bien que la conception de BANSHEE Stealer ne soit pas excessivement complexe, le fait qu'il se concentre sur les systèmes macOS et l'ampleur des données qu'il recueille en font une menace importante qui requiert l'attention de la communauté de la cybersécurité.
Observables
Toutes les observables sont également disponibles au téléchargement en format ECS et STIX dans un paquet zip combiné.
Les observables suivants ont été examinés dans le cadre de cette recherche.
Observable | Type | Nom | Référence |
---|---|---|---|
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782 | SHA-256 | Voleur de BANSHEE | |
45.142.122[.]92 | ipv4-addr | Voleur de BANSHEE C2 |