CrashStealer: Infostealer macOS Disfarçado como um Relatório de Erro
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
Detecções
Possível Manipulação de Strings Codificadas em Base64 [MacOS] (via linha de comando)
Ver
Assinatura Forçada de Código de Pacote de Aplicativo Modificado (via linha de comando)
Ver
Possível Tentativa Manual de Desbloqueio do Chaveiro (via linha de comando)
Ver
Validação de Credenciais do MacOS via Dscl Authonly (via linha de comando)
Ver
Exfiltração do CrashStealer via C2 Conhecido e Repositório do GitHub [Conexão de Rede do Windows]
Ver
Detecção de Atividade do CrashStealer no macOS [Criação de Processo Linux]
Ver
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 usandodsclpara 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."