MacOS.Gaslight

De CiberWiki

macOS.Gaslight es un backdoor y ladrón de información escrito en Rust que ataca sistemas macOS, atribuido con alta confianza a un actor vinculado a Corea del Norte. Fue descubierto por SentinelOne en junio de 2026 tras ser detectado por una actualización de XProtect de Apple, aunque en ese momento la mayoría de los motores antivirus no lo identificaban . Su principal innovación no es su capacidad de robo o control remoto, sino un payload de inyección de mensajes de 3.5 KB que contiene 38 mensajes falsos de sistema diseñados específicamente para confundir a las herramientas de análisis de malware asistidas por IA, haciendo que estas aborten, trinquen o rechacen el análisis del archivo . Esta técnica, denominada "inyección de mensajes" (prompt injection), ataca la percepción del analista automático en lugar del sandbox donde se ejecuta, lo que le ha valido el nombre de "Gaslight" .

El malware combina funcionalidades de backdoor y ladrón de información. Una vez activo, proporciona a los operadores una shell interactiva a través de la API de bots de Telegram, que permite ejecutar comandos arbitrarios, terminar procesos por PID, extraer archivos del sistema y detener la ejecución del implant . Para la recolección de datos, despliega un módulo Python de 6.6 KB que extrae credenciales de navegadores (Chrome, Brave, Firefox y Safari), historiales de comandos de terminal, lista de aplicaciones instaladas, procesos en ejecución, perfil de hardware y software, y una copia de la base de datos login.keychain de macOS . Los datos robados se comprimen en un archivo ZIP y se exfiltran a través del mismo canal de Telegram utilizando el mecanismo de adjuntos de archivos .

Técnicamente, el implant implementa múltiples capas de evasión y hardening: utiliza cifrado AES-GCM con un nonce único por mensaje y certificate pinning mediante la API SecTrustSetAnchorCertificatesOnly, lo que impide la interceptación por proxies corporativos . Respeta la configuración de proxy del sistema para operar en redes que enrutan el tráfico a través de proxy, e impide que el Mac entre en reposo mediante IOPMAssertionCreateWithName para mantener el bucle de sondeo activo . Para la persistencia, se instala como un LaunchAgent con la etiqueta com.apple.system.services.activity, elegida deliberadamente para parecer un proceso legítimo de Apple . El malware también incorpora una rutina de auto-redacción que sustituye el token del bot de Telegram en los logs de ejecución por un marcador de posición, impidiendo que los defensores recuperen esta credencial crítica . Aunque el método exacto de distribución no se ha confirmado, se sospecha que utiliza técnicas de phishing e ingeniería social . La evidencia de atribución proviene de la detección por XProtect bajo las firmas MACOS_BONZAI_COBUCH y AIRPIPE, previamente asociadas con actividad norcoreana, así como la presencia de campos de configuración para Linux y GitHub en el binario, sugiriendo una infraestructura multiplataforma más amplia .

Funcionamiento de macOS.Gaslight (técnico y extenso)

Cadena de ejecución y configuración operativa

macOS.Gaslight se ejecuta como un binario Mach-O ad hoc signed que, al iniciarse, lee una configuración operativa de 15 campos proporcionada en tiempo de ejecución mediante el framework serde de Rust . Esta configuración incluye parámetros críticos como telegram_token, tg_room_id (chat ID), aes_key, github_polling_interval, rutas de payload para Linux y macOS, nombres de persistencia, y flags como init_python_enable . Los campos para Linux y GitHub no se ejercitan en la muestra analizada, lo que sugiere que el esquema es parte de una infraestructura operativa más amplia .

Comunicación C2 a través de Telegram Bot API

El núcleo del canal C2 es un bucle de sondeo que consulta periódicamente la API de bots de Telegram (getUpdates) en busca de nuevas instrucciones . Este enfoque basado en polling (en lugar de conexión entrante) permite al malware operar detrás de firewalls y redes con NAT sin necesidad de configurar conexiones entrantes . El implant implementa un mecanismo de bloqueo de instancia única: si dos instancias con el mismo token de bot intentan sondear simultáneamente, Telegram responde con un error Conflict, lo que causa que la segunda copia termine, evitando duplicación de sesiones .

La capa de transporte está fuertemente protegida:

  • Cifrado AES-GCM: Implementado con la crate aes-gcm 0.10.3 de Rust, generando un nonce único por mensaje mediante CCRandomGenerateBytes .
  • Certificate pinning: Configura un ancla de confianza personalizada y llama a SecTrustSetAnchorCertificatesOnly, restringiendo la evaluación TLS a ese ancla específica. Esto bloquea la inspección mediante proxies corporativos con certificados CA intermedios .
  • Respeto de proxy del sistema: Lee la configuración activa mediante SCDynamicStoreCopyProxies y enruta el tráfico de su stack reqwest/hyper a través del proxy configurado, permitiendo operar en redes corporativas que fuerzan el tráfico saliente a través de proxy .

El token del bot de Telegram se auto-redacta en tiempo de ejecución: cuando el malware construye URLs de Telegram para logs o salidas, sustituye el token vivo por el marcador file/token:redacted, impidiendo que los defensores recuperen esta credencial crítica desde archivos de logs o análisis de memoria .

Shell interactiva y comandos

Una vez validado y activado, el operador obtiene una shell interactiva con seis comandos documentados :

Comando Función
help Muestra la ayuda de comandos
id Identifica el implant ante el operador
shell Ejecuta un comando shell mediante execvp, con posix_spawnp como alternativa
kill Termina un proceso por PID
upload Exfiltra un archivo mediante el mecanismo de adjuntos de Telegram (attach://)
stop Detiene la ejecución del implant

También se encontró evidencia de un séptimo comando, focus, cuya funcionalidad no pudo ser determinada . El malware crea una aserción de gestión de energía (IOPMAssertionCreateWithName) para evitar que el sistema entre en reposo, sosteniendo el bucle de sondeo durante períodos de inactividad .

Módulo de recolección Python con su propia cadena de suministro

El implant lleva un script Python de 6.6 KB codificado en Base64 que sirve como módulo de recolección de datos . Este script se despliega bajo demanda cuando la configuración init_python_enable está activada y:

  • Descarga un intérprete CPython autónomo: Un instalador Bash de 2 KB descarga cpython-3.10.18 desde astral-sh/python-build-standalone, un proyecto de código abierto. Esto permite ejecutar el stealer Python sin requerir que Python esté preinstalado en el sistema, reduciendo la huella estática del binario Rust y complicando la detección basada en firmas .

El módulo Python recolecta:

  • Datos de navegadores (Chrome, Brave, Firefox, Safari)
  • Historiales de comandos de terminal
  • Lista de aplicaciones instaladas
  • Instantánea de procesos en ejecución (ps aux)
  • Perfil completo de hardware y software (system_profiler)
  • Copia de la base de datos login.keychain-db

Los artefactos recolectados se archivan en temp/collected_data.zip y se suben al operador mediante el mecanismo de adjuntos de Telegram .

Persistencia y evasión de defensas

LaunchAgent disfrazado: El malware se instala como un LaunchAgent con la etiqueta com.apple.system.services.activity, un nombre elegido deliberadamente para mezclarse en el espacio de nombres de servicios legítimos de Apple . Esta configuración asegura que el malware se ejecute automáticamente después de cada reinicio .

Resolución dinámica de API: El malware resuelve funciones del sistema en tiempo de ejecución utilizando dlsym en lugar de referenciarlas directamente en la tabla de símbolos, lo que hace que el archivo sea más difícil de analizar con herramientas estáticas estándar .

Mensajes de error falsos (el "Gaslighting"): La característica más distintiva es un bloque de texto de aproximadamente 3.5 KB que contiene 38 mensajes de sistema fabricados . Estos mensajes incluyen advertencias de token caducado ("Token expiration handling"), errores de falta de memoria ("Worker node OOM"), fallos de conexión a Redis, advertencias de SQL injection, y otros . El propósito no es engañar a un analista humano, sino confundir a las herramientas de análisis de malware asistidas por IA mediante inyección de mensajes (prompt injection) . El formato incluye delimitadores Markdown y placeholders como {{DATA}} para imitar el scaffolding interno de las herramientas de triaje de IA. El objetivo es hacer que un agente LLM aborte, trunque o rechace el análisis del archivo . Aunque SentinelOne no demostró que esta técnica funcione contra las plataformas actuales, parece ser un intento experimental de evasión .

Impacto y consecuencias de macOS.Gaslight (técnico y extenso)

Robo de credenciales y compromiso de identidad

El impacto más inmediato de macOS.Gaslight es el robo generalizado de credenciales y datos sensibles del sistema infectado. Al extraer la base de datos login.keychain-db de macOS, el malware obtiene acceso a todas las contraseñas almacenadas, certificados, tokens de aplicaciones y otros secretos del usuario . Complementariamente, el robo de datos de navegadores (Chrome, Brave, Firefox, Safari) expone credenciales de sitios web, cookies de sesión y tarjetas de crédito guardadas . Esta combinación permite a los atacantes:

  • Acceder a cuentas corporativas y personales de la víctima (correo, redes sociales, servicios financieros)
  • Eludir la autenticación de dos factores basada en cookies de sesión activas
  • Realizar movimientos laterales hacia otros sistemas que utilicen las mismas credenciales
  • Exfiltrar documentos sensibles mediante el comando upload que permite extraer cualquier archivo del sistema

Evasión avanzada de defensas corporativas

El canal C2 basado en Telegram Bot API presenta desafíos significativos para la detección:

  • Tráfico mezclado con comunicaciones legítimas: Al utilizar api.telegram.org, el tráfico del malware se mezcla con el uso corporativo legítimo de Telegram, reduciendo la probabilidad de detección basada en listas negras de dominios .
  • Imposibilidad de inspección: El certificate pinning y el cifrado AES-GCM hacen que sea extremadamente difícil interceptar, inspeccionar o bloquear las comunicaciones C2 mediante proxies corporativos, incluso con inspección TLS habilitada .
  • Respeto de proxy: La capacidad de seguir la configuración de proxy del sistema permite al malware operar en entornos corporativos que fuerzan el tráfico a través de proxy .

Además, la auto-redacción del token de bot impide que los equipos de respuesta a incidentes recuperen esta credencial desde logs o análisis forense de memoria, eliminando una pista clave para rastrear la actividad del atacante o desactivar el canal C2 .

Impacto en la cadena de suministro de desarrollo de IA

El aspecto más innovador y preocupante de macOS.Gaslight es su ataque directo a las herramientas de análisis de malware asistidas por IA . Esta técnica tiene implicaciones sistémicas:

  • Erosión de confianza en herramientas de análisis automático: Si los equipos de seguridad dependen de herramientas LLM para el triaje de malware, un atacante puede manipular el resultado del análisis, haciendo que se descarte malware real o que se malinterprete su funcionalidad .
  • Inyección de mensajes en el pipeline de análisis: El malware demuestra que los archivos maliciosos pueden ser diseñados específicamente para explotar la arquitectura de los sistemas de análisis de IA . Esta técnica, documentada en MITRE ATLAS como AML.T0051 (Prompt Injection), puede aplicarse a cualquier agente de IA que procese contenido de artefactos potencialmente hostiles .
  • Necesidad de rediseño de flujos de trabajo: Los equipos de seguridad deben reconsiderar cómo integran IA en sus flujos de trabajo, asegurando que el contenido de las muestras nunca se trate como instrucciones confiables y que se mantenga una separación estricta entre datos de artefactos y las instrucciones del modelo .

Consecuencias para las organizaciones

Para las organizaciones, especialmente aquellas en los sectores objetivo de DPRK (criptomonedas, finanzas, blockchain, tecnología), las consecuencias incluyen:

  • Pérdida de propiedad intelectual: La capacidad de extraer archivos arbitrarios y credenciales de desarrolladores permite a los atacantes robar código fuente, claves de firma y secretos de CI/CD .
  • Compromiso de cuentas de servicio: El robo de login.keychain-db y credenciales de navegadores puede exponer cuentas de servicios en la nube, repositorios de código y sistemas de producción .
  • Riesgo reputacional y regulatorio: La exfiltración de datos sensibles puede llevar a violaciones de GDPR, CCPA u otras regulaciones, con sanciones financieras y daños reputacionales .
  • Impacto en la postura de seguridad: La coexistencia de campos de configuración para Linux y GitHub en el binario sugiere que macOS.Gaslight es parte de una infraestructura multiplataforma más amplia, lo que podría permitir a los atacantes moverse desde sistemas macOS comprometidos a entornos Linux y Windows .

Lecciones para defensores

El análisis de macOS.Gaslight ofrece varias lecciones técnicas para equipos de seguridad:

  • Monitoreo de tráfico a Telegram: Organizaciones que no utilizan Telegram corporativo deberían bloquear el tráfico a api.telegram.org y telegram.org en endpoints macOS . Para aquellas que sí lo usan, se requiere monitoreo de patrones anómalos.
  • Auditoría de LaunchAgents: Buscar la etiqueta com.apple.system.services.activity y otros LaunchAgents con nombres que imiten servicios legítimos de Apple .
  • Análisis de procesos Python: Monitorear la descarga de cpython-3.10.18 desde astral-sh/python-build-standalone, especialmente en entornos que no son de desarrollo .
  • Tratamiento de contenido de muestras como adversarial: Al construir o usar herramientas de análisis de malware asistidas por IA, garantizar que el contenido de las muestras se trate como entrada adversarial y nunca como instrucciones .

Origen y motivación de macOS.Gaslight (un solo párrafo)

macOS.Gaslight es un backdoor y ladrón de información escrito en Rust que ataca sistemas macOS, atribuido con alta confianza a un actor de amenazas vinculado a Corea del Norte (DPRK) según el análisis de SentinelOne . La atribución se basa en la detección por XProtect de Apple bajo las firmas MACOS_BONZAI_COBUCH y AIRPIPE, previamente asociadas con campañas norcoreanas , así como la presencia de un campo de configuración para Linux en el binario, lo que sugiere una infraestructura multiplataforma más amplia . La motivación principal del malware es el robo de credenciales y espionaje para beneficio económico del régimen norcoreano, combinando la exfiltración de datos sensibles (credenciales de navegadores, keychains de macOS, historiales de comandos) con control remoto persistente, con el objetivo de comprometer desarrolladores de software, profesionales del sector cripto y organizaciones tecnológicas para financiar los programas de armas y sostener la economía estatal .

Relación de acciones para mitigar el riesgo de esta actividad maliciosa.