SOC Prime Bias: Alto

14 Jul 2026 15:21 UTC

CrashStealer: Infostealer macOS Disfarçado como um Relatório de Erro

Author Photo
SOC Prime Team linkedin icon Seguir
CrashStealer: Infostealer macOS Disfarçado como um Relatório de Erro
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

CrashStealer é um infostealer nativo em C++ para macOS que se camufla como a estrutura de relatórios de falhas da Apple para coletar dados sensíveis do usuário. Ele tem como alvo credenciais de navegadores, carteiras de criptomoedas e informações do chaveiro, usando criptografia AES-GCM para armazenar dados roubados localmente. O malware é entregue através de um dropper assinado e notariado disfarçado como um instalador de software legítimo.

Investigação

O Jamf Threat Labs descobriu a ameaça após uma amostra suspeita de macOS aparecer no VirusTotal em maio de 2026. Sua investigação revelou uma cadeia de infecção sofisticada em múltiplos estágios envolvendo um dropper notariado chamado Werkbit Setup e um payload que usa assinatura ad-hoc para evitar detecção. Os analistas também observaram o malware fazendo perfis de ferramentas de segurança e coletando uma ampla gama de dados do usuário do host infectado.

Mitigação

As organizações devem monitorar lançamentos de aplicativos suspeitos a partir de caminhos ocultos, como /private/tmp/. Regras de detecção devem ser criadas para execução de comandos como dscl -authonly and xattr -cr quando aparecerem em contextos anormais. Bloquear domínios maliciosos conhecidos e vigiar por grandes arquivos ZIP criptografados com padrões de nomeação distintivos em ~/.cache/ também pode ajudar a interromper a exfiltração.

Resposta

Se o CrashStealer for detectado, isole imediatamente o endpoint macOS afetado para parar o roubo adicional de dados. Conduza uma análise forense do diretório ~/.cache/com.apple.crashreporter/ para avaliar o escopo das informações roubadas. Os investigadores também devem tratar as credenciais do usuário, especialmente os conteúdos do chaveiro e senhas armazenadas no navegador, como totalmente comprometidas.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Baseline deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pelo lógica de detecção. Exemplos abstratos ou não relacionados levarão a erros de diagnóstico.

  • Narrativa & Comandos do Ataque: O adversário procura implantar um infostealer baseado em macOS (CrashStealer). Para evitar a detecção inicial e preparar o ambiente, o atacante primeiro remove atributos estendidos de seu malware para evitar quarentena (xattr -cr). Em seguida, tenta validar credenciais de usuário local usando dscl para garantir que possui privilégios suficientes (dscl -authonly). Para garantir persistência e integração com o sistema, ele registra o serviço malicioso com os Serviços de Launch (lsregister -f). Finalmente, ele executa o payload em segundo plano para permanecer oculto da interface do usuário (open -g -n). Esta sequência é projetada para imitar gerenciamento legítimo do sistema enquanto realiza tarefas maliciosas.

  • Script de Teste de Regressão:

    #!/bin/bash
    # Script de Simulação de CrashStealer
    # Este script executa os padrões de comando específicos definidos na regra de detecção.
    
    echo "[+] Iniciando Simulação do CrashStealer..."
    
    # 1. Limpar atributos estendidos (T1027.005)
    echo "[+] Etapa 1: Limpando atributos estendidos..."
    xattr -cr /tmp/dummy_malware_file 2>/dev/null || echo "[!] xattr falhou (Esperado se o arquivo não existir)"
    
    # 2. Validar credenciais (T1556.002)
    echo "[+] Etapa 2: Validando credenciais via dscl..."
    dscl -authonly /Users/$(whoami) || echo "[!] dscl falhou (Requer contexto válido)"
    
    # 3. Registrar com Serviços de Launch (T1546.015)
    echo "[+] Etapa 3: Registrando serviço..."
    lsregister -f /tmp/dummy_app.app 2>/dev/null || echo "[!] lsregister falhou"
    
    # 4. Iniciar processo em segundo plano (T1056)
    echo "[+] Etapa 4: Iniciando processo em segundo plano..."
    open -g -n /Applications/Calculator.app 2>/dev/null || echo "[!] open falhou"
    
    echo "[+] Simulação Completa."
  • Comandos de Limpeza:

    # Remover qualquer arquivo dummy criado durante a simulação
    rm -f /tmp/dummy_malware_file
    rm -f /tmp/dummy_app.app
    echo "[+] Limpeza completa."