Malware criptojacking evasivo dirigido a macOS fue descubierto en aplicaciones pirateadas

En los últimos meses, Jamf Threat Labs ha estado siguiendo a una familia de malware que ha reaparecido y ha estado operando sin ser detectada, a pesar de que era conocida una iteración anterior por la comunidad de seguridad. En este artículo examinaremos este malware y la visión que ofrece de la actual carrera armamentística entre los autores de malware y los investigadores de seguridad, además de destacar la necesidad de mejorar la seguridad de los dispositivos Apple para garantizar su uso seguro y eficaz en entornos de producción.

Abril 24 2023 por

Jamf Laboratorios de amenazas

Escrito por Matt Benyo

Investigado por Matt Benyo, Ferdous Saljooki y Jaron Bradley

Durante el monitoreo rutinario de nuestras detecciones de amenazas que circulan libremente, encontramos una alerta que indicaba el uso de XMRig, una herramienta de minería criptográfica de línea de comandos. Aunque XMRig se utiliza habitualmente con fines legítimos, su diseño adaptable y de código abierto también lo ha convertido en una opción popular para los actores maliciosos. Este caso concreto nos interesó porque se ejecutó bajo la apariencia del software de edición de video desarrollado por Apple, Final Cut Pro. Investigaciones posteriores revelaron que esta versión maliciosa de Final Cut Pro contenía una modificación no autorizada por Apple que ejecutaba XMRig en segundo plano. En el momento de nuestro descubrimiento, esta muestra en particular no había sido detectada como maliciosa por ningún proveedor de seguridad en VirusTotal. Desde enero de 2023, un puñado de proveedores ha detectado el malware. Sin embargo, muchas de las aplicaciones maliciosas siguen sin ser identificadas por la mayoría de los proveedores.

El adware ha sido tradicionalmente el tipo de malware macOS más extendido, pero el criptojacking, un esquema de minería de criptomonedas sigiloso y a gran escala, es cada vez más frecuente. Dado que la minería de criptomonedas requiere una cantidad significativa de energía de procesamiento, es probable que los continuos avances en los procesadores ARM de Apple hagan que los dispositivos macOS sean objetivos aún más atractivos para el criptojacking. Aunque el criptojacking en sí no es un concepto nuevo, esta variante en particular emplea algunas tácticas novedosas.

Este malware utiliza el Proyecto Internet Invisible (i2p) para comunicarse. La i2p es una capa de red privada que anonimiza el tráfico, por lo que es una alternativa menos perceptible que Tor. Este malware utiliza i2p para descargar componentes maliciosos y enviar moneda minada a la cartera del atacante.

Al buscar otros ejemplos de malware que utilizan el enrutamiento i2p, descubrimos que las técnicas de esta muestra eran similares a las reportadas por Trend Micro en febrero de 2022. A pesar de las similitudes, seguían existiendo discrepancias y preguntas sin respuesta, como por qué esta muestra en especial no fue detectada por todos los proveedores de VirusTotal, a pesar de que la familia de malware ya había sido documentada.

En su informe, Trend Micro especulaba con que la muestra Mach-O podría haber llegado en un paquete DMG para Adobe Photoshop CC 2019. Sin embargo, no pudieron encontrar el propio DMG. Dado que veíamos que se producía una situación muy similar con Final Cut Pro, también queríamos identificar de dónde procedía este malware.

En un intento de localizar el origen del malware, recurrimos a un mirror de Pirate Bay y buscamos torrents de Final Cut Pro. Descargamos el torrent más reciente con el mayor número de seeders y comprobamos el hash del ejecutable de la aplicación. Coincidía con el hash del Final Cut Pro infectado que habíamos descubierto circulando libremente. Ya teníamos nuestra respuesta.

Hemos observado que el torrent fue subido por un usuario con un largo historial de subir torrents de software pirateado para macOS, muchos de los cuales se encontraban entre las versiones más compartidas de sus títulos respectivos:

Tras un análisis exhaustivo de los DMG cargados en los torrents, descubrimos que el usuario cargador del software era la fuente del malware que encontramos y también confirmamos que era la fuente de las muestras de las que se había informado anteriormente. Además, descubrimos que prácticamente cada una de las docenas de subidas que comenzaron en 2019 estaba comprometida con una carga maliciosa para minar criptomonedas subrepticiamente.

Este descubrimiento constituyó una inusitada oportunidad para rastrear la evolución de una familia de malware. Lo que empezó como un esquema rudimentario y llamativo había iterado a través de tres etapas distintas de evolución hasta convertirse en algo con creativas técnicas de evasión. Por lo que sabemos, solo se ha informado de muestras de la primera generación de esta familia de malware.

Nuestros hallazgos fueron aún más significativos por la capacidad de rastrear la cronología de cuándo las muestras entraron en circulación en la comunidad de torrents, cuándo empezaron a enviarse a VirusTotal y cuándo los proveedores empezaron a detectar con éxito las distintas fases de este malware. Esto nos proporcionó información valiosa sobre la progresión del malware y su evolución, y nos permitió comprender mejor las tácticas y técnicas utilizadas por quienes respaldaban ese malware.

La vida, vamos... encuentra un camino

Como ya hemos mencionado, nuestra muestra de Final Cut eludía la detección de AV, mientras que las muestras de las que habíamos informado anteriormente se detectaban de forma generalizada. Al haber encontrado la fuente directa de este malware, nos pudimos permitir el lujo de comparar directamente las muestras. Observamos claros puntos de delimitación en los que las muestras empezaban a utilizar nuevas técnicas sutiles de evasión. Muchas de estas técnicas no estaban presentes en las muestras de primera generación de las que se informó anteriormente.

Entonces, ¿qué cambió?

Las muestras de primera generación utilizaban la API AuthorizationExecuteWithPrivileges para obtener privilegios elevados, necesarios para instalar el Launch Daemon en busca de persistencia. Sin embargo, este proceso implicaba un aviso de contraseña visible que indicaba que la aplicación necesitaba hacer cambios. Las muestras posteriores de la primera generación cambiaron a un Agente de Lanzamiento para usuarios, que no requeriría ese aviso visible. Sin embargo, las muestras de segunda generación que empezaron a aparecer en Pirate Bay en abril de 2021 no tenían métodos de persistencia tradicionales, como Daemons de lanzamiento o Agentes de lanzamiento, que se hayan observado. En su lugar, el malware parece confiar en que el usuario ejecute el paquete de aplicaciones para comenzar el proceso de minería.

Las variantes posteriores del malware enmascaran sus componentes maliciosos i2p dentro del ejecutable de la aplicación utilizando codificación base64. Comparamos el Final Cut Pro pirata de tercera generación con una copia auténtica y observamos que era significativamente mayor, con un peso de 11.9 MB contra los 3.7 MB normales. Esto se debe a la presencia de dos grandes blobs codificados en base64 y comandos shell dentro del ejecutable de la aplicación.

Solo oprime Play

Cuando el usuario hace doble clic en el icono de Final Cut Pro, se ejecuta el ejecutable troyanizado, que inicia las llamadas al shell para orquestar la configuración del malware. Dentro del mismo ejecutable hay dos grandes blobs base64 que se descodifican mediante llamadas al shell. La descodificación de ambos blobs da como resultado dos archivos tar correspondientes. Uno contiene una copia de trabajo de Final Cut Pro. El otro blob codificado en base64 se descodifica en un ejecutable personalizado causante de administrar el tráfico i2p cifrado. Una vez descodificados y desarchivados los datos incrustados de base64, los componentes resultantes se escriben en el directorio /private/tmp/ como archivos ocultos. Tras ejecutar el i2p ejecutable, el script de instalación utiliza curl sobre i2p para conectarse al servidor web del autor malicioso y descargar los componentes de la línea de comandos XMRig que realizan la minería encubierta. La versión de Final Cut Pro que se ejecuta y se presenta al usuario se llama desde este directorio y finalmente se elimina del disco.

  1. El usuario descarga y hace doble clic en el paquete de aplicaciones
  2. Se ejecuta el ejecutable troyanizado
  3. El ejecutable de Final Cut Pro codificado en base64 es extraído
  4. El ejecutable i2p codificado en base64 es extraído y camuflado como mdworker_shared al ejecutarse
  5. El ejecutable del Minero se extrae del servidor de comando y control
  6. La minería comienza disfrazada de proceso mdworker_local

Luz de gas

Toda esta rápida puesta en escena al lanzar el paquete de aplicaciones es administrada por la serie de llamadas al shell incrustadas en el binario malicioso. Observamos tres iteraciones diferentes de este bucle de configuración del shell. La iteración anterior era menos complicada y existía en un formato bastante legible cuando se volcaba mediante la utilidad strings:

En las iteraciones posteriores, el script se ha convertido en una sola línea de gran tamaño. Este script más largo también se encarga de crear los ajustes del archivo de configuración para el minero:

El bucle bash de este malware tiene una función distintiva que fue iterada, pero que apareció por primera vez en muestras de 2019. A pesar de nuestra condena de las acciones de los autores de malware, es difícil no sentirse intrigado por el uso inteligente de los siguientes comandos:

(APID=$$;(while true; do sleep 3;(pgrep -x 'Activity Monitor' > /dev/null) && break;done;); [ \"$I2PD_PID\" != \"\" ] && kill -9 \"$I2PD_PID\" > /dev/null 2>&1; [ \"$PIDW\" != \"\" ] && kill \"$PIDW\" > /dev/null 2>&1; [ \"$PID\" != \"\" ] && kill \"$PID\" > /dev/null 2>&1; pkill \"._${r_nme}\"; pkill \"._${r_i2}\"; kill \"$APID\" > /dev/null 2>&1;); exit) & echo $! > \"/tmp/i2pd/._pid\");

El script ejecuta un bucle continuo que comprueba la lista de procesos en ejecución cada 3 segundos, buscando el Monitor de Actividad. Si encuentra el Monitor de Actividad, termina inmediatamente todos sus procesos maliciosos. Como resultado, si la víctima se da cuenta de que su CPU se está calentando más de lo normal mientras minaba criptomonedas para el atacante sin saberlo, y abre el Monitor de Actividad para confirmar sus sospechas, el malware detiene su actividad y se oculta hasta la próxima vez que la víctima inicie la aplicación.

En la tercera y última generación del script, encontramos una técnica engañosa más común en el malware para Linux. El script utiliza el comando incorporado de bash exec con el indicador -a para lanzar procesos maliciosos. El indicador -a permite establecer un nombre personalizado para el proceso, que aparece en la salida de comandos como ps aux. Para mezclarse con los demás procesos en ejecución, el autor del malware eligió establecer los nombres de los procesos en las rutas de mdworker_local y mdworker_shared, que son los nombres de procesos de servicio legítimos relacionados con la característica Spotlight. Esto hace que sea más difícil detectar los procesos maliciosos y es otra técnica de evasión empleada por el malware. ¡Aquí no hay nada que ver!

Ventura sube el nivel

Como hemos descrito anteriormente, las iteraciones posteriores de este malware dejaron de depender de launchd para su persistencia y, en su lugar, dependían de que el usuario lanzara el software pirateado para iniciar el minero. Este enfoque permite al malware robar tiempo de CPU durante la sesión activa y proporciona un alto grado de ocultación. Sin embargo, el éxito de esta estrategia depende de la ejecución habitual del software por parte de la víctima.

En macOS Ventura, Apple ha introducido mejoras de seguridad que plantean un nuevo desafío a este enfoque. Las comprobaciones de codificación más estrictas de Ventura verifican que todas las apps notarizadas estén correctamente firmadas y no hayan sido modificadas por procesos no autorizados, incluso después del primer lanzamiento. Esto supone una mejora respecto a las versiones anteriores de macOS, en las que Gatekeeper validaba solamente las aplicaciones durante su lanzamiento inicial y consideraba el archivo como de confianza una vez que se lanzaba con éxito.

En este caso, los principales clientes de torrents en macOS (a saber, Transmission y uTorrent) no aplican ningún atributo de cuarentena, por lo que eluden las comprobaciones de validación en un sistema macOS Monterey. Sin embargo, a pesar de la ausencia de atributos de cuarentena en macOS Ventura, la versión modificada de Final Cut Pro no se ejecutó y recibimos un mensaje de error. Esto se debió a que el malware dejó intacta la firma del código original, pero modificó la aplicación, invalidando así la firma y fallando la política de seguridad del sistema. Las comprobaciones continuas de Ventura dificultan eludir esta validación, a diferencia de las versiones anteriores, en las que era posible eludirla evitando o eliminando el atributo de cuarentena.

Por otra parte, macOS Ventura notno impidió la ejecución del minero. Cuando el usuario recibe el mensaje de error, el malware ya se ha instalado. Impidió que se iniciara la versión modificada de Final Cut Pro, lo que podría levantar sospechas en el usuario, así como reducir en gran medida la probabilidad de que el usuario la iniciara posteriormente.

Una cosa más...

Antes de declarar a esta familia de malware DOA con las actualizaciones de seguridad de Ventura, hay que señalar que este mensaje de error solo se veía en las versiones pirateadas de Logic Pro y Final Cut Pro (ambos son títulos de Apple). En el momento de escribir esto, el Photoshop pirateado subido por wtfisthat34698409672 sigue lanzando con éxito tanto los componentes maliciosos como los que funcionan en la última versión de macOS Ventura 13.2 y anteriores. Esto parece deberse a una pequeña diferencia en cómo se llama al ejecutable de la copia de trabajo de Photoshop en comparación con cómo se lanzan los ejecutables de Final Cut y Logic Pro. Es probable que puedan volver a funcionar con pequeños ajustes por parte del autor del malware.

Epílogo: El peligro de las aplicaciones pirateadas

El software pirata distribuido a través de redes peer-to-peer es un mecanismo ideal de distribución de malware por múltiples razones:

1. Hasta macOS Ventura, la cuarentena de archivos era una pieza clave en la estrategia contra el malware macOS. La aplicación del atributo de cuarentena a los archivos descargados ha sido históricamente un asunto "optativo" y los principales clientes de torrents optan voluntariamente por no aplicar el atributo de cuarentena a los archivos que descargan, eliminando así uno de los mayores obstáculos de seguridad para los autores de malware.

2. Para cualquier obstáculo restante, el autor del malware tiene un colaborador involuntario en el usuario que ha descargado la aplicación pirateada. El usuario tiene muchas posibilidades de ser engatusado para que deshabilite manualmente otras características de seguridad, como Gatekeeper. Toma por ejemplo este texto del README.txt :

Si tienes problemas con la imagen (molestos mensajes de que la imagen/aplicación está dañada simulando que no puedes abrir nada) ejecuta en el Terminal: sudo spctl --master-disable

(Nota: este comando se utiliza para deshabilitar por completo la funcionalidad de Gatekeeper. Ten en cuenta que no hay instrucciones para volver a activarlo).

3. También existe un componente psicológico. El usuario sabe que está haciendo algo ilegal, y no es de extrañar que la seguridad integrada de Apple le impida ejecutar software pirata de Apple. Además, si finalmente el usuario sospecha que puede haber ejecutado inadvertidamente malware en su computadora del trabajo, es mucho menos probable que explique qué acciones tuvieron lugar a alguien de los departamentos de Seguridad o IT.

Jamf Protect informa específicamente si Gatekeeper ha sido deshabilitado en algún endpoint.

Jamf Protect Threat Prevention detecta y bloquea todas las versiones conocidas de esta familia de malware.

Las muestras de malware descubiertas se compartieron con Apple. A partir de la versión 2166, también se han actualizado las firmas de XProtect para defenderse de esta amenaza.

IoC

Binarios universales

c19e78df3b3462064b9d78bc138674a7e8df28c7

7628d90cfd311bfd4997729a232ca77a6d443619

62ed66c1835ef5558ce713467f837efde508d5e4

69fd812cf3760dc3dff5d41972cc635de9a0844d

53fd50b23372a73e74e7cdc370f51ac560a1130f

c56046c322316233d23db034670496756a6942fe

d510b4c602404767f9ef75f5a48017d2b3743c4c

bce251548798f159e99e71e68b65bbb4a9607296

6ee76d296abf8da0f98d23f545ba4aa7c69e8211

cea42a9b59cfa262453b508ea21d96f87bb793da

e99f8ec210b26270894f16fe9c43f1203c13fb32

bebe1ad82d595434c6ef529cb4f75f4937a04e5f

c10079ed5885c64c0da6302bc91adf5b293aef4c

140790186d0c60a604c5dd9f9d2c8dbc500da1c9

2defaf34319b6255db45c8bebf55d5095a41bed8

d86695fb9e56e03253503781f42f1069a5cc10d1

f6348b7b79e48b5d2c13b8aa560c795d7a2c21d8

278290e9b2517fa208bb019a0dc53a5a78995d84

cf685bb0fe5e078ea28a25a7cf8774b168787db4

96667da937efd370197fd94cc9a80b4fb3e8c153

2b28169bdaee62eaaec708a9fa245b1c1e6c0e29

325a470ec2ee3319f996723496689d052f3c3b47

a605e20250e66726a58699a2ae4f7264c8c2e4e2

3ab040271882eb6c3a028498c7469450610ef7b8

8ed83d6593bb0c7404f4571c91a4a80022088922

687ec2b7d79ed6f953c7f519044b7117d12bdafa

53bea5f857571d73b7b4a1f6db1edd340d453bca

68f4979c04b4753a9f275f29c00d4b260f4c2ec0

97fbb98f1ecbb2533204eca2967cf4117e388f22

8907721154fc4079f9fc68e58c0ca742ffc1c9af

89f2bb7f96317837514bbae70d47ac1e00626ac1

5e4792e459f1107cf83ce3293141f9ba3026b015

95f71894eec20f9727ff1311ad078de38ae4e774

2ae591a3e14d77a9bc077fe61712c6b77f71fc11

DMG

b5dd15e765ed5839a7d2c16c50e6cf3334c4b894

3a714063188b24f0392c163d7910be00216a5f04

a72b548ca570d8c74ed4c465716c4e37328f9bc1

f35bddfbb82ae1b137cbd454bc18f2b859cc5882

c5b34662f22f35f3995144b24015309bbe318cd9

7da20852d79f7443b88449e8ed18e092c2aaa3bb

699da2b8d35f344121d93a74adf89349d3c8d922

11e4f795551e6db0fe9a9c52eec35f134b089478

7312b319b84be6bde845b10ea61619c33473f784

5aae6e00b3ab0b32a8c75a2952674d7665b3f705

6b987ffc3fd6a2bcfb931426be4118cd943737da

c64c21d2e08cb8a28e31c4d883a1e75fd1c7851b

0e73071ceb9d2481361777b33b8443ec0acb0793

ebd417f4ab9e7bb6deaacab9de1611df67908317

8e4dff96e1740764d60fbff8cfae8c673f1a7a3f

828fb69b80e60de6f6206fd63b496cc0923082f4

11ee7a59ecd287628ff251b435777f6d4429e40c

05b7e1864b7b570a339c8072830cdd9bcbf21d1a

eb3a1808bd24026314bec69caadbc882f1976982

cc9afb9efea37aee31cd74fb064de4b732fb84b3

c8d230830d0912236c48c31ad11b93707088ce9f

0cc8e03a08baa73379ac6c55cbb18fa78b87923d

4f0ba59e2ee80ff854bca33944f825d4c8cfe23e

163d9ce53deadd54ad50d7d0120b5db550724689

33d79b8ee94f7bd0a542863cd5a8926d8e0263d9

048a93a696f1bf0bdf6f6e3506d65d21a4a9f681

d4d1c97c5803162e452c79811d61e1487c9cfe62

9e387d79fd6412715a5a4bca02b7e27a08299c4b

dfcf0b6af4593f32060176768164702f45cb556b

e857a9c520402ccc6abe3244c1e93ac9e2a6ac3d

e857a9c520402ccc6abe3244c1e93ac9e2a6ac3d

5eb0e95aa6cc68ec05103561b02d38d4f69e4980

c222fe1be761f05c665c40c14781e40f97460569

c3d062bc3fa3b4ecfc68e69a7dc26d9e0ac56538

901a08aa9996fa95e4a844c24eb7b81da0b52923

9e04ca30e6ae20e8d2bbf2772a93145bd4b5b8c6

90835a1173e9ed414e8240d0e14acb13f73f642f

be30f974111ad50312f654db9e040c6ab99d054c

b48927641b53e363d7183fe7faaaa7be8b01cec9

PKG

cedd8f8ae61dc47130c34b39d9795083cc90ac1f

Scripts Bash

fbdf0af70f95d3c87cf8bcacc2d6673d9ccd4620

8701f8b0aeb2c66298eb1b4297d98664f8c1f1b9

5b304a1da9f56e8ffdfb68940fdd0bc2887d2eb9

ecffd9553c67478a55f7303f6cadf356101f9216

80f2682d60303ea9098444a35cb35e697ae18187

638ef84a29c747419027c306833d6420d351b244

Suscribirse al Blog de Jamf

Haz que las tendencias del mercado, las actualizaciones de Apple y las noticias de Jamf se envíen directamente a tu bandeja de entrada.

Para saber más sobre cómo recopilamos, usamos, compartimos, transferimos y almacenamos su información, consulte nuestra Política de privacidad.