Ayer, investigadores de ESET notaron que Eltima, fabricante del reproductor Elmedia Player, estaba distribuyendo una versión de su aplicación que estaba troyanizada con el malware OSX/Proton, la cual estaba disponible para descarga desde el sitio oficial.
ESET contactó a Eltima de inmediato y la compañía fue muy receptiva; mantuvimos una comunicación excelente a lo largo de la investigación del incidente.
Esta es la línea de tiempo de lo ocurrido:
19/10/2017: Se confirma que hay un paquete troyanizado
19/10/2017, 11:35 GMT-3: Se informa a Eltima por correo electrónico
19/10/2017, 15:25 GMT-3: Eltima reconoce el problema e inicia esfuerzos para remediarlo
19/10/2017, 16:10 GMT-3: Eltima confirma que limpió su infraestructura y ya está ofreciendo la aplicación legítima nuevamente
Nota: Todavía estamos investigando, así que esta información es preliminar e iremos actualizando el artículo a medida que hagamos nuevos hallazgos.
¿Cómo saber si fui afectado?
Todas las personas que hayan descargado el software Elmedia Player recientemente deben verificar si su sistema está comprometido, buscando rastros de cualquiera de estos archivos o directorios:
- /tmp/Updater.app/
- /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist
- /Library/.rand/
- /Library/.rand/updateragent.app/
Si alguno de ellos está presente en el equipo, significa que se ejecutó la versión troyanizada de Elmedia Player y que OSX/Proton probablemente está activo.
Si descargaste este software el 19 de octubre antes de las 16:15 horas (GMT-3) y lo ejecutaste, probablemente te infectaste. Pero, hasta donde sabemos, solo la versión descargada desde el sitio oficial contiene la aplicación alterada; el mecanismo de actualización integrado no parece haber sido afectado.
¿Qué hace esta amenaza en el sistema comprometido?
OSX/Proton es un backdoor con amplias capacidades de robo de datos. Además de lograr persistencia en el sistema, puede robar lo siguiente:
- Detalles del sistema operativo: número de serie del hardware (IOPlatformSerialNumber), nombre completo del usuario actual, nombre del host, estado de la funcionalidad System Integrity Protection (csrutil status), información del gateway (route -n get default | awk '/gateway/ { print $2 }'), hora y zona horaria actual.
- Información de navegador que obtiene desde Chrome, Safari, Opera y Firefox: historial, cookies, marcadores, credenciales, etc.
- Billeteras de criptomonedas:
- Electrum: ~/.electrum/wallets
- Bitcoin Core: ~/Library/Application Support/Bitcoin/wallet.dat
- Armory: ~/Library/Application Support/Armory
- Información privada de SSH (todo el contenido .ssh)
- Información del keychain de macOS usando una versión modificada de chainbreaker
- Configuración de la VPN Tunnelblick (~/Library/Application Support/Tunnelblick/Configurations)
- Información de GnuPG (~/.gnupg)
- Información de 1Password (~/Library/Application Support/1Password 4 y ~/Library/Application Support/1Password 3.9)
- Lista de todas las aplicaciones instaladas
¿Cómo limpiar mi sistema?
Como sucede siempre que la infección ocurre en una cuenta de administrador, una reintalación completa del sistema operativo es la única forma de librarse de este malware. Quienes se vean afectados deberán asumir que toda la información listada en la sección anterior fue comprometida y está en manos del atacante, por lo que deberán tomar las medidas necesarias para invalidarla.
Ataques a la cadena de suministro otra vez en macOS
El año pasado, el cliente de BitTorrent para macOS Transmission fue explotado dos veces para propagar malware: primero fue el ransomware OSX/KeRanger y luego el ladrón de contraseñas OSX/Keydnap. Este año, la aplicación Handbrake, un popular transcoder multiplataforma, fue reemplazada en el servidor original por una versión que incluía al malware OSX/Proton.
Ayer, ESET descubrió que Elmedia Player era el nuevo integrante de la lista de software popular entre usuarios de macOS que se estaba usando para propagar a OSX/Proton. Este reproductor había alcanzado el millón de usuarios en agosto:
Análisis técnico
OSX/Proton es un RAT que se comercializa como un kit en foros underground. Ya Sixgill lo había documentado brevemente y luego había sido analizado en profundidad por Thomas Reed de MalwareBytes, Amit Serper de CyberReason y Patrick Wardle de Objective-See.
En este nuevo caso del software troyanizado de Eltima, el atacante construyó un empaquetador (wrapper) firmado alrededor de la versión legítima de Elmedia Player y de Proton. De hecho, observamos lo que parece ser el reempaquetado y la firma en tiempo real de los empaquetadores, todo con el mismo ID de desarrollador de Apple válido.
Eltima y ESET están trabajando con Apple para invalidar la ID de desarrollador utilizada para firmar la aplicación maliciosa; Apple revocó el certificado. Mira el historial de muestras actualmente conocidas a continuación (las marcas de tiempo están todas en la zona horaria EDT):
Aplicación limpia:
Timestamp | ID de desarrollador | SHA-1 |
---|---|---|
Timestamp=Jul 24, 2017, 4:56:24 AM | Authority=Developer ID Application: ELTIMA LLC (N7U4HGP254) | 0603353852e174fc0337642e3957c7423f182a8c |
Aplicación troyanizada:
Timestamp | ID de desarrollador | SHA-1 (archivo dmg) |
---|---|---|
Timestamp=Oct 19, 2017, 8:00:05 AM | Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) | e9dcdae1406ab1132dc9d507fd63503e5c4d41d9 |
Timestamp=Oct 19, 2017, 12:22:24 PM | Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) | 8cfa551d15320f0157ece3bdf30b1c62765a93a5 |
Timestamp=Oct 19, 2017, 2:00:38 PM | Authority=Developer ID Application: Clifton Grimm (9H35WM5TA5) | 0400b35d703d872adc64aa7ef914a260903998ca |
Primero, el wrapper ejecuta al verdadero Elmedia Player, almacenado en la carpeta Resources de la aplicación:
Finalmente extrae y ejecuta a OSX/Proton:
Como hemos visto en casos anteriores, OSX/Proton muestra una ventana falsa de autorización para obtener los privilegios de root:
Persistencia
OSX/Proton se asegura la persistencia añadiendo un agente encargado de ejecutarlo en todos los usuarios del sistema cuando el administrador ingresa sus contraseñas. Además, crea los siguientes archivos:
- /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist
- /Library/.rand/updateragent.app
$ plutil -p /Library/LaunchAgents/com.Eltima.UpdaterAgent.plist
{
"ProgramArguments" => [
0 => "/Library/.rand/updateragent.app/Contents/MacOS/updateragent"
]
"KeepAlive" => 1
"RunAtLoad" => 1
"Label" => "com.Eltima.UpdaterAgent"
}
Comandos del backdoor
Como mencionamos anteriormente, OSX/Proton es un backdoor con muchas capacidades para robar información. El componente que observamos interpreta los siguientes comandos:
archive |
Archivar usando zip |
---|---|
copy |
Copar archivo localmente |
create |
Crear directorio o archivo localmente |
delete |
Borrar archivo localmente |
download |
Descargar archivo desde una URL |
file_search |
Buscar archivos (ejecuta find / -iname \"%@\" 2> /dev/null) |
force_update |
Auto-actualización con validación de firma digital |
phonehome |
|
remote_execute |
Ejecutar el archivo binario dentro de un archivo .zip o un comando de shell dado |
tunnel |
Crear túnel SSH usando el puerto 22 o 5900 |
upload |
Cargar archivo al servidor de C&C |
Servidor de C&C
Proton usa un dominio de C&C que imita al dominio legítimo de Eltima, lo mismo que ocurrió en el caso de Handbrake:
Dominio legítimo | Dominio del C2 de Proton | |
---|---|---|
Eltima | eltima.com | eltima[.]in |
Handbrake | handbrake.fr | handbrakestore[.]com |
handbrake[.]cc |
IOCs
La URL que distribuía la aplicación troyanizada al momento de nuestro hallazgo era: hxxps://mac[.]eltima[.]com/download/elmediaplayer.dmg
Servidores de C&C:
eltima[.]in / 5.196.42.123 (dominio registrado el 15/10/2017).
Hashes
Ruta | SHA-1 | Detección de ESET | Descripción |
---|---|---|---|
Elmedia Player.app/Contents/Resources/.pl.zip | 9E5378165BB20E9A7F74A7FCC73B528F7B231A75 |
Múltiples amenazas | Archivo ZIP con el malware Proton y scripts en Python |
10A09C09FD5DD76202E308718A357ABC7DE291B5 |
Múltiples amenazas | Archivo ZIP con el malware Proton y scripts en Python | |
Elmedia Player.app/Contents/MacOS/Elmedia Player | C9472D791C076A10DCE5FF0D3AB6E7706524B741 |
OSX/Proton.D | Launcher (o empaquetador) |
795B8BCADCAAF56DAC7CFDDF44F97A32AAAA4987 |
OSX/Proton.D | Launcher (o empaquetador)) | |
30D77908AC9D37C4C14D32EA3E0B8DF4C7E75464 |
OSX/Proton.D | Launcher (o empaquetador) | |
Updater.app/Contents/MacOS/Updater | 3EF34E2581937BABD2B7CE63AB1D92CD9440181A |
OSX/Proton.C | Malware Proton, sin firma |
EF5A11A1BB5B2423554309688AA7947F4AFA5388 |
OSX/Proton.C | Malware Proton, sin firma |
Un reconocimiento especial a Michal Malik, Anton Cherepanov, Marc-Étienne M. Léveillé, Thomas Dupuy y Alexis Dorais-Joncas por su trabajo en esta investigación.