SOC Prime Bias: Élevé

14 Jul 2026 15:21 UTC

CrashStealer : Un voleur d’informations macOS se faisant passer pour un rapporteur de plantage

Author Photo
SOC Prime Team linkedin icon Suivre
CrashStealer : Un voleur d’informations macOS se faisant passer pour un rapporteur de plantage
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

CrashStealer est un infostealer natif en C++ pour macOS qui se fait passer pour le cadre de rapport de crash d’Apple afin de collecter des données utilisateur sensibles. Il cible les identifiants de navigateur, les portefeuilles de cryptomonnaie et les informations du trousseau, tout en utilisant le chiffrement AES-GCM pour stocker localement les données volées. Le malware est livré via un installeur signé et notarié déguisé en logiciel légitime.

Enquête

Jamf Threat Labs a découvert la menace après qu’un échantillon suspect de macOS soit apparu sur VirusTotal en mai 2026. Leur enquête a révélé une chaîne d’infection sophistiquée en plusieurs étapes impliquant un installeur notarié appelé Werkbit Setup et une charge utile qui utilise la signature ad-hoc pour éviter la détection. Les analystes ont également observé que le malware profilait les outils de sécurité et recueillait un large éventail de données utilisateur de l’hôte infecté.

Atténuation

Les organisations devraient surveiller les lancements d’applications suspectes à partir de chemins cachés tels que /private/tmp/. Des règles de détection devraient être créées pour l’exécution de commandes comme dscl -authonly and xattr -cr lorsqu’elles apparaissent dans des contextes anormaux. Bloquer les domaines malveillants connus et surveiller les grandes archives ZIP chiffrées avec des modèles de nommage distinctifs dans ~/.cache/ peut également aider à perturber l’exfiltration.

Réponse

Si CrashStealer est détecté, isolez immédiatement le point de terminaison macOS affecté pour arrêter tout vol de données supplémentaires. Effectuez une analyse médico-légale du répertoire ~/.cache/com.apple.crashreporter/ pour évaluer l’étendue des informations volées. Les enquêteurs devraient également considérer les identifiants de l’utilisateur, en particulier le contenu du trousseau et les mots de passe stockés dans le navigateur, comme totalement compromis.

Flux d’attaque

Exécution de simulation

Prérequis : Le contrôle préliminaire de télémétrie et de référence doit avoir réussi.

Rationale : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Les exemples abstraits ou non liés entraîneront un diagnostic erroné.

  • Récit d’attaque & Commandes : L’adversaire cherche à déployer un infostealer basé sur macOS (CrashStealer). Pour éviter la détection initiale et préparer l’environnement, l’attaquant retire d’abord les attributs étendus de son malware pour éviter la mise en quarantaine (xattr -cr). Il tente ensuite de valider les identifiants utilisateur locaux en utilisant dscl pour s’assurer qu’il dispose de privilèges suffisants (dscl -authonly). Pour assurer la persistance et l’intégration système, il enregistre le service malveillant avec les services de lancement (lsregister -f). Enfin, il exécute la charge utile en arrière-plan pour rester caché de l’interface utilisateur (open -g -n). Cette séquence est conçue pour imiter la gestion légitime du système tout en réalisant des tâches malveillantes.

  • Script de test de régression :

    #!/bin/bash
    # Script de simulation CrashStealer
    # Ce script exécute les modèles de commandes spécifiques définis dans la règle de détection.
    
    echo "[+] Démarrage de la simulation CrashStealer..."
    
    # 1. Effacement des attributs étendus (T1027.005)
    echo "[+] Étape 1 : Effacement des attributs étendus..."
    xattr -cr /tmp/dummy_malware_file 2>/dev/null || echo "[!] xattr a échoué (prévu si le fichier n'existe pas)"
    
    # 2. Validation des identifiants (T1556.002)
    echo "[+] Étape 2 : Validation des identifiants via dscl..."
    dscl -authonly /Users/$(whoami) || echo "[!] dscl a échoué (nécessite un contexte valide)"
    
    # 3. Enregistrement avec les services de lancement (T1546.015)
    echo "[+] Étape 3 : Enregistrement du service..."
    lsregister -f /tmp/dummy_app.app 2>/dev/null || echo "[!] lsregister a échoué"
    
    # 4. Lancement du processus en arrière-plan (T1056)
    echo "[+] Étape 4 : Lancement du processus en arrière-plan..."
    open -g -n /Applications/Calculator.app 2>/dev/null || echo "[!] open a échoué"
    
    echo "[+] Simulation terminée."
  • Commandes de nettoyage :

    # Supprimer les fichiers fictifs créés pendant la simulation
    rm -f /tmp/dummy_malware_file
    rm -f /tmp/dummy_app.app
    echo "[+] Nettoyage terminé."