CrashStealer: Ladrón de Información en macOS que se Hace Pasar por un Reportador de Errores
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
CrashStealer es un infostealer nativo de C++ para macOS que se hace pasar por el marco de informes de fallos de Apple para recopilar datos sensibles del usuario. Apunta a credenciales de navegador, billeteras de criptomonedas e información de llavero, mientras utiliza cifrado AES-GCM para almacenar datos robados localmente. El malware se entrega a través de un dropper firmado y notarizado disfrazado como un instalador de software legítimo.
Investigación
Jamf Threat Labs descubrió la amenaza después de que una muestra sospechosa de macOS apareciera en VirusTotal en mayo de 2026. Su investigación reveló una sofisticada cadena de infección de múltiples etapas que involucra un dropper notarizado llamado Werkbit Setup y una carga útil que utiliza firma ad-hoc para evitar la detección. Los analistas también observaron cómo el malware perfilaba herramientas de seguridad y recopilaba una amplia gama de datos del usuario del host infectado.
Mitigación
Las organizaciones deben monitorizar lanzamientos de aplicaciones sospechosos desde rutas ocultas como /private/tmp/. Deben crearse reglas de detección para la ejecución de comandos como dscl -authonly and xattr -cr cuando aparecen en contextos anormales. Bloquear dominios maliciosos conocidos y observar grandes archivos ZIP cifrados con patrones de nomenclatura distintivos en ~/.cache/ también puede ayudar a interrumpir la exfiltración.
Respuesta
Si se detecta CrashStealer, aísle inmediatamente el punto final de macOS afectado para detener el robo adicional de datos. Realice un análisis forense del directorio ~/.cache/com.apple.crashreporter/ para evaluar el alcance de la información robada. Los investigadores también deben tratar las credenciales del usuario, especialmente el contenido del llavero y las contraseñas almacenadas en el navegador, como completamente comprometidos.
Flujo de Ataque
Detecciones
Posible Manipulación de Cadenas Codificadas en Base64 [MacOS] (vía línea de comandos)
Ver
Firma Forzada de Código de Paquete de Aplicación Modificado (vía línea de comandos)
Ver
Posible Intento de Desbloqueo Manual del Llavero (vía línea de comandos)
Ver
Validación de Credenciales de macOS mediante Dscl Authonly (vía línea de comandos)
Ver
Exfiltración de CrashStealer a través de C2 Conocido y Repositorio de GitHub [Conexión de Red de Windows]
Ver
Detección de Actividad de CrashStealer en macOS [Creación de Procesos de Linux]
Ver
Ejecución de Simulación
Requisito Previo: El Chequeo Previo de Telemetría y Línea Base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.
-
Narrativa de Ataque y Comandos: El adversario busca desplegar un infostealer basado en macOS (CrashStealer). Para evadir la detección inicial y preparar el entorno, el atacante primero elimina los atributos extendidos de su malware para evitar la cuarentena (
xattr -cr). Luego intentan validar credenciales de usuario local usandodsclpara garantizar que tienen privilegios suficientes (dscl -authonly). Para asegurar la persistencia y la integración en el sistema, registran el servicio malicioso con los Servicios de Lanzamiento (lsregister -f). Finalmente, ejecutan la carga útil en segundo plano para permanecer ocultos de la interfaz de usuario (open -g -n). Esta secuencia está diseñada para imitar la gestión legítima del sistema mientras realizan tareas maliciosas. -
Script de Prueba de Regresión:
#!/bin/bash # Script de Simulación de CrashStealer # Este script ejecuta los patrones de comando específicos definidos en la regla de detección. echo "[+] Comenzando Simulación de CrashStealer..." # 1. Limpiar atributos extendidos (T1027.005) echo "[+] Paso 1: Limpiando atributos extendidos..." xattr -cr /tmp/dummy_malware_file 2>/dev/null || echo "[!] xattr falló (Esperado si el archivo no existe)" # 2. Validar credenciales (T1556.002) echo "[+] Paso 2: Validando credenciales mediante dscl..." dscl -authonly /Users/$(whoami) || echo "[!] dscl falló (Requiere contexto válido)" # 3. Registrar con Servicios de Lanzamiento (T1546.015) echo "[+] Paso 3: Registrando servicio..." lsregister -f /tmp/dummy_app.app 2>/dev/null || echo "[!] lsregister falló" # 4. Ejecutar proceso en segundo plano (T1056) echo "[+] Paso 4: Lanzando proceso en segundo plano..." open -g -n /Applications/Calculator.app 2>/dev/null || echo "[!] open falló" echo "[+] Simulación Completa." -
Comandos de Limpieza:
# Eliminar cualquier archivo ficticio creado durante la simulación rm -f /tmp/dummy_malware_file rm -f /tmp/dummy_app.app echo "[+] Limpieza completa."