Dans ICMacOS : D’un Voleur d’Informations à un RAT Persistant
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
ICMacOS, également connu sous le nom d’Icarus macOS, est un nouveau Malware-as-a-Service (MaaS) pour macOS récemment identifié, qui a évolué d’un voleur d’identifiants en un cheval de Troie d’accès à distance (RAT) persistant. Il cible des informations de grande valeur, notamment les identifiants de navigateurs, les portefeuilles de cryptomonnaies et les secrets de développeur tels que les clés SSH et les configurations cloud. Le malware utilise l’ingénierie sociale basée sur ClickFix pour sa diffusion et les WebSockets pour le commandement et contrôle en temps réel.
Enquête
L’unité de recherche sur les menaces de SOCRadar (STRU) a identifié ICMacOS par analyse des télémetries et surveillance des forums clandestins. Les chercheurs ont retracé la chaîne d’infection depuis les scripts Bash initiaux jusqu’au déploiement de binaires Mach-O et de charges utiles auxiliaires basées sur Python. L’enquête a documenté la progression de la version 1, axée sur le vol de données, à la version 2 avec des fonctionnalités RAT, tout en cartographiant l’infrastructure C2 via l’analyse WebSocket.
Atténuation
Les organisations devraient appliquer des contrôles stricts autour de l’exécution des commandes terminales et surveiller les modifications suspectes des LaunchAgents. Il est recommandé de durcir les systèmes macOS avec le chiffrement de disque et les politiques MDM qui restreignent les LaunchAgents non autorisés. Les équipes de sécurité doivent également surveiller les connexions WebSocket sortantes inhabituelles et les accès non autorisés aux services Keychain comme indicateurs potentiels de compromission.
Réponse
Lorsque l’activité ICMacOS est détectée, isolez l’hôte macOS affecté du réseau pour arrêter l’exfiltration de données et la communication C2 supplémentaire. Effectuez un examen médico-légal complet du répertoire /tmp, des LaunchAgents et de l’activité de l’utilisateur dans Keychain. Faites tourner les identifiants potentiellement compromis, y compris les clés SSH, les jetons de fournisseurs cloud tels qu’AWS et les identifiants Kubernetes, ainsi que les mots de passe enregistrés dans le navigateur.
Flux d’attaque
Nous mettons encore à jour cette partie.
Détections
Tentative de communication IP Lookup Domain possible (via dns)
Bootstrap Launchctl depuis un chemin non standard (via process_creation)
Modification suspecte des permissions de fichier dans le dossier Tmp de macOS (via cmdline)
Tentative possible de déverrouillage manuel de Keychain (via cmdline)
Tentative de découverte de mots de passe de navigateur MacOS possible (via cmdline)
Tentative d’exécution suspecte de Curl [MacOS] (via cmdline)
Une archive a été créée dans le dossier temporaire de MacOS (via file_event)
IOCs (HashSha256) à détecter : À l’intérieur d’ICMacOS : d’un voleur de données à un RAT persistant
Détection d’accès à distance malveillant à la configuration et récupération de charge utile [Webserver]
Détection de l’utilisation d’AppleScript et de la récupération de mots de passe Keychain dans les infections macOS ICMacOS [Création de processus Windows]
Détection d’une activité cachée et agrégation non autorisée de données par ICMacOS [Événement de fichier Linux]
Détection d’ICMacOS Stealer via l’obfuscation du terminal et l’énumération des processus [Création de processus Linux]
Exécution de la simulation
-
Narration de l’attaque & Commandes : Un adversaire a obtenu un accès initial à une station de travail macOS et déploie le stealer ICMacOS. Pour échapper à la détection de l’utilisateur et minimiser la fenêtre d’observation manuelle, le malware exécute un script via
zsh. Le script utilise d’abordbasename $0pour déterminer son nom de fichier afin de mieux dissimuler sa présence dans le système de fichiers. Immédiatement après avoir lancé sa charge utile malveillante (simulée par une énumération deprocessus ICMACOS), le script tente de planter la fenêtre du terminal de l'utilisateur en utilisantprocesses), the script attempts to crash the user’s terminal window usingkillall Terminalpour forcer l’utilisateur à quitter la session active et masquer l’historique des commandes. -
Script de test de régression :
#!/bin/zsh # Script de simulation pour la validation de détection de ICMacOS Stealer echo "[+] Début de la simulation de ICMacOS Stealer..." # 1. Déclencher selection_basename_killall via 'basename $0' echo "[+] Exécution du modèle d'obfuscation : basename $0" /bin/zsh -c "echo $(basename $0)" # 2. Déclencher selection_basename_killall via 'killall Terminal' echo "[+] Exécution du modèle de dissimulation : killall Terminal" # Remarque : Nous utilisons un sous-shell pour s'assurer que le script de simulation lui-même ne meurt pas instantanément si exécuté dans un terminal réel, mais pour l'objectif de la règle, nous voulons que la commande soit exécutée. /bin/zsh -c "killall Terminal" 2>/dev/null || echo "[!] échec de killall (Terminal non en cours d'exécution ou permission refusée)" # 3. Déclencher selection_pgrep via 'pgrep ICMACOS' echo "[+] Exécution du modèle d'énumération : pgrep ICMACOS" /bin/zsh -c "pgrep ICMACOS" echo "[+] Commandes de simulation envoyées." -
Commandes de nettoyage :
# Aucuns fichiers persistants n'ont été créés par le script de simulation. # Si des fichiers temporaires ont été utilisés, ils devraient être supprimés ici. rm -f /tmp/icmacos_sim_test