Descubren Attor: una plataforma de espionaje que utiliza fingerprinting de dispositivos GSM | WeLiveSecurity

Descubren Attor: una plataforma de espionaje que utiliza fingerprinting de dispositivos GSM

Investigadores de ESET descubren plataforma de ciberespionaje utilizada en ataques dirigidos contra usuarios preocupados por la privacidad en misiones diplomáticas e instituciones gubernamentales

Investigadores de ESET descubren plataforma de ciberespionaje utilizada en ataques dirigidos contra usuarios preocupados por la privacidad en misiones diplomáticas e instituciones gubernamentales

Los investigadores de ESET han descubierto una nueva plataforma de espionaje que presenta una arquitectura compleja, una serie de medidas para dificultar su detección y el análisis, y dos características sobresalientes. La primera es su plugin GSM que utiliza el protocolo de comando AT, y la segunda es la utilización de Tor para sus comunicaciones de red. Los investigadores de ESET llamaron a la plataforma de ciberespionaje: Attor.

Objetivos de Attor

La operación de ciberespionaje de Attor es altamente dirigida: logramos rastrear el accionar de Attor, al menos, hasta el año 2013; sin embargo, solo identificamos unas pocas docenas de víctimas. A pesar de eso, pudimos aprender más sobre las víctimas a las cuales está dirigida a través del análisis de los componentes del malware.

Por ejemplo, para poder informar sobre las actividades de la víctima, Attor monitorea los procesos activos para tomar capturas de pantalla de las aplicaciones seleccionadas. Esto solo es realizado en ciertas aplicaciones: aquellas con substrings específicas en el nombre del proceso o en el título de la ventana.

Además de los servicios estándar, como son los navegadores web populares, las aplicaciones de mensajería instantánea y los servicios de correo electrónico, la lista de aplicaciones específicas contiene varios servicios rusos, como se detalla en la Tabla 1.

Table 1. Domains misused in the campaign
Process name/window title substringContext
ОДНОКЛАССНИКИ (transl. Classmates)Russian social network (Odnoklassniki)
AGENTVKONTAKTERussian social network (VKontakte)
WEBMONEYOnline payment system used in Russia (WebMoney)
MAIL.YANDEX, ЯНДЕКС.ПОЧТА (transl. Yandex.Mail), MAIL.RU, POCHTA (transl. Mail), MAGENTRussian email services (Mail.ru, Yandex.Mail)
ПРИГЛАШЕНИЕ ДРУЖИТЬ (transl. Friend request)Russian text
ВАМ СООБЩЕНИЕ (transl. Message for you)Russian text
MULTIFONRussian VoIP service
QIP, INFIUMRussian IM application (QIP)
RAMBLERRussian search engine (Rambler)

La lista incluye las dos redes sociales más populares en Rusia (Odnoklassniki, VKontakte) y un servicio de VoIP proporcionado por un operador de telecomunicaciones ruso (Multifon). Nuestra conclusión es que Attor se dirige específicamente a los hablantes rusos, lo que se ve respaldado por el hecho de que la mayoría de los objetivos se encuentran en Rusia, como se ve en la Figura 1. Otros objetivos se encuentran en Europa del Este e incluyen misiones diplomáticas, además de instituciones gubernamentales.

Figura 1. Países afectados por Attor

Además de su orientación geográfica y por idioma, los creadores de Attor parecen estar interesados ​​específicamente en los usuarios preocupados por su privacidad.

Attor está configurado para realizar capturas de pantalla de las utilidades de firma digital/cifrado, del servicio VPN HMA, de servicios de correo electrónico como Hushmail y The Bat!, los cuales ofrecen cifrado de extremo a extremo, y de la utilidad de cifrado de disco TrueCrypt.

El uso de TrueCrypt por parte de la víctima es seguido de cerca en otra parte de Attor. Monitorea los dispositivos de disco rígido conectados a la computadora comprometida y busca la presencia de TrueCrypt. En caso de detectar esta utilidad, determina qué versión es enviando IOCTL al controlador TrueCrypt (0x222004 (TC_IOCTL_GET_DRIVER_VERSION) y 0x72018 (TC_IOCTL_LEGACY_GET_DRIVER_VERSION)). Dado que estos son códigos de control específicos de TrueCrypt y no códigos estándar, los autores del malware deberán comprender el código open source del instalador de TrueCrypt. No hemos visto antes el uso de esta técnica ni la hemos visto documentada en otro malware.

Figura 2. El plugin Device monitor envía al driver de TrueCrypt códigos de control no estándar específicos de TrueCrypt para determinar qué versión de la utilidad es.

Arquitectura de la plataforma

Attor está compuesto por un dispatcher y plugins cargables, los cuales se implementan como bibliotecas de enlaces dinámicos (DLL). El primer paso de un compromiso consiste en droppear todos estos componentes en el disco y cargar la DLL del dispatcher.

El dispatcher es el núcleo de toda la plataforma: funciona como unidad de administración y sincronización para los plugins adicionales. En cada inicio del sistema, se auto inyecta en casi todos los procesos en ejecución y carga todos los plugins disponibles dentro de cada uno de estos procesos. Como excepción, Attor evita la inyección en algunos procesos relacionados con el sistema y con productos de seguridad.

Todos los plugins dependen del dispatcher para implementar funcionalidades básicas. En lugar de llamar directamente a las funciones de la API de Windows, los plugins utilizan una referencia a una función auxiliar (un dispatcher de funciones) implementado por la DLL del dispatcher. Cuando los plugins son cargados se les pasa una referencia al dispatcher de funciones. Debido a que los plugins se inyectan en el mismo proceso que el dispatcher, comparten el mismo espacio de direcciones y, por lo tanto, son capaces de llamar a esta función directamente.

Las llamadas al dispatcher de funciones toman como argumentos el tipo de función y su identificador numérico. Este diseño hace que sea más difícil analizar componentes individuales de Attor sin tener acceso al dispatcher, ya que traduce el identificador especificado a una función significativa que luego es ejecutada.

La Figura 3 ilustra una parte de un plugin llamando al dispatcher de funciones en varias ocasiones. En el desensamblado a la derecha, hemos reemplazado los identificadores numéricos (que recuperamos tras realizar ingeniería inversa al dispatcher) con nombres descriptivos. En nuestro whitepaper encontrará un análisis completo de la interfaz del dispatcher.

Figura 3. Los plugins adicionales utilizan funciones implementadas en el módulo principal mediante llamadas al dispatcher de funciones (denominado aquí como helperFnc).

Además, el dispatcher es el único componente de la plataforma que tiene acceso a los datos de configuración. Los plugins de Attor recuperan sus datos de configuración del dispatcher a través de la interfaz, como se describió anteriormente.

Plugins

Los plugins de Attor son enviados a la computadora comprometida como archivos DLL cifrados asimétricamente con RSA. Los plugins solo son recuperados de manera completa en la memoria, utilizando la clave pública RSA embebida en el dispatcher. Como resultado, es difícil obtener los plugins de Attor y descifrarlos sin acceso al dispatcher.

Pudimos recuperar ocho de los plugins de Attor, algunos en varias versiones (ver Tabla 2). Asumiendo que la numeración de los plugins es continua y que los operadores de Attor probablemente utilicen diferentes conjuntos de plugins por cada víctima, sospechamos incluso que hay más plugins que aún no se han descubierto.

Table 2. The analyzed plugins and their versions
Plugin IDAnalyzed versionsFunctionality
0x010x0EDevice monitor
0x02(no version), 0x0CScreengrabber
0x03(no version), 0x08, 0x09, 0x0B, 0x0CAudio recorder
0x050x0AFile uploader
0x060x0ACommand dispatcher/SOCKS proxy
0x070x02, 0x04, 0x09, 0x0AKey/clipboard logger
0x0D0x03Tor client
0x100x01Installer/watchdog

Los plugins son responsables de la persistencia de la plataforma (plugin Instalador/Watchdog), de recopilar información confidencial (Device monitor, Capturador de pantalla, Grabadora de audio, Registrador de clave/portapapeles) y de la comunicación a través de la red con el servidor C&C (Cargador de archivos, Dispatcher de comandos/SOCKS proxy, Cliente Tor).

Attor tiene incorporados mecanismos para añadir nuevos plugins, para actualizarse y para exfiltrar automáticamente los datos recopilados y los archivos de registro. Estos mecanismos se ilustran en la Figura 4.

En las siguientes secciones nos enfocamos en los plugins responsables de dos características que se destacan y que le dieron su nombre a Attor: la realización de fingerprinting GSM mediante comandos AT y la elaboración de una comunicación de red mediante Tor.

Figura 4. Arquitectura de Attor. Tenga en cuenta que si bien ID 0x06 representa un solo plugin, dividimos la funcionalidad en dos partes para mayor claridad.

Comunicación de red

Los plugins de espionaje de Attor recopilan datos sensibles (como una lista de documentos presentes en el disco) que finalmente son exfiltrados a un servidor remoto, pero estos plugins no se comunican por sí mismos a través de la red.

Solo dos de los componentes de Attor se comunican con su servidor de C&C: el cargador de archivos y el dispatcher de comandos.

Los archivos recopilados por los “plugins de espionaje” (Device monitor, Capturador de pantalla, Grabadora de audio y Registrador de clave/portapapeles) se cargan automáticamente en el servidor de C&C mediante el plugin Cargador de archivos. Estos complementos usan una Carpeta de carga dedicada como carpeta central para almacenar los datos recopilados, y otros complementos la usan para almacenar archivos de registro.

El plugin Dispatcher de comandos descarga comandos y herramientas adicionales del servidor C&C y los interpreta. Nuevamente, utiliza carpetas dedicadas para almacenar sus datos –lo más destacado son plugins recién descargados y actualizaciones de la plataforma, y ​​datos de registro cifrados que contienen el estado/resultados de los comandos ejecutados.

El dispatcher de Attor monitorea las carpetas compartidas y carga cualquier plugin nuevo así como las actualizaciones enviadas a la computadora comprometida.

Esto significa que ni el dispatcher de Attor ni los plugins de espionaje se comunican con el servidor de C&C; solo utilizan carpetas compartidas localmente para almacenar los datos que son exfiltrados y para leer instrucciones adicionales del servidor.

Tanto el Cargador de archivos como el Dispatcher de comandos utilizan la misma infraestructura para llegar al servidor remoto: la comunicación de la red en sí está dispersa en cuatro componentes diferentes de Attor, cada uno implementando una capa diferente.

Attor utiliza Tor: Protocolo del servicio de Onion, con una dirección onion para el servidor de C&C. Para comunicarse con el servidor C&C, cualquier plugin debe establecer primero una conexión con el plugin de Cliente Tor (escuchando en la no predeterminada 127.0.0.1:8045) que es responsable de resolver el dominio onion, elegir un circuito y cifrar los datos en capas. El plugin de Cliente Tor está basado en el Cliente Tor y está personalizado para el diseño de este malware (tor.exe con interacción adicional con el dispatcher de Attor).

El plugin de Cliente Tor debe comunicarse con el dispatcher, el cual implementa las funciones criptográficas. Además, se comunica con el plugin de proxy SOCKS (escuchando en 127.0.0.1:5153) que retransmite las comunicaciones entre el Cliente Tor y el servidor remoto.

Tanto el Cargador de archivos como el Dispatcher de comandos usan FTP; los archivos son cargados/descargados de un servidor FTP que está protegido por credenciales hardcodeadas en la configuración:

  • Servidor C&C: idayqh3zhj5j243t[.]onion
  • Nombre de usuario: do
  • Contraseña: [Redacted]

Los plugins inician sesión en el servidor FTP y copian los datos recopilados o descargan comandos de un directorio específico de la víctima.

En total, la infraestructura para la comunicación con el C&C abarca cuatro componentes de Attor: el dispatcher proporciona funciones de cifrado y tres plugins que implementan el protocolo FTP, la funcionalidad Tor y la comunicación de red actual, como se puede apreciar en la Figura 5. Este mecanismo hace que sea imposible analizar la comunicación de red a menos que todas las piezas del rompecabezas hayan sido recopiladas.

Figura 5. Cuatro componentes de Attor cooperan para permitir la comunicación con el servidor de C&C

Es importante tener en cuenta que Attor utiliza varios trucos adicionales para ocultar sus comunicaciones al usuario y a los productos de seguridad:

Primero, el servidor C&C es un servicio Tor que busca el anonimato y la imposibilidad de ser rastreado.

En segundo lugar, todos los plugins relacionados con la comunicación de la red se activan solamente si se ejecutan dentro del proceso de un navegador web o una aplicación de mensajería instantánea u otras aplicaciones de red (esto es determinado mediante la comparación del nombre del proceso con una lista hardcodeada). Este truco oculta la comunicación de red relacionada con la exfiltración en un flujo de comunicaciones legítimas realizadas por esa aplicación y, por lo tanto, reduce el riesgo de levantar cualquier sospecha.

Fingerprinting GSM

El plugin más curioso del arsenal de Attor recopila información relacionada a dispositivos de módem/teléfono conectados y a unidades de almacenamiento conectadas, y sobre los archivos presentes en estas unidades. Es responsable de la recopilación de metadatos, no de los archivos en sí, por lo que lo consideramos un plugin utilizado para realizar fingerprinting de dispositivos y, por lo tanto, es probable que se utilice como base para el robo de datos adicionales.

Si bien la funcionalidad de Attor para realizar fingerprinting a unidades de almacenamiento es bastante estándar, su fingerprinting de dispositivos GSM es única.

Siempre que un módem o un dispositivo telefónico se conecta a un puerto COM, Device monitor utiliza comandos AT para comunicarse con el dispositivo, a través del puerto serie asociado.

Los comandos AT, también conocidos como conjunto de comandos Hayes, fueron desarrollados originalmente en la década de 1980 para ordenar un módem para que marque, cuelgue o cambie la configuración de la conexión. El conjunto de comandos se amplió posteriormente para admitir funcionalidades adicionales, tanto estandarizadas como específicas del fabricante.

En un paper publicado recientemente, se descubrió que los comandos todavía están en uso en la mayoría de los teléfonos inteligentes modernos. Esos investigadores pudieron bypassear los mecanismos de seguridad y comunicarse con teléfonos inteligentes usando comandos AT a través de su interfaz USB. Miles de comandos fueron recuperados y testeados, incluidos aquellos para enviar mensajes SMS, emular eventos táctiles en pantalla o filtrar información sensible. Esa investigación ilustró que los viejos comandos AT representan un riesgo grave cuando se utilizan de forma incorrecta.

Sin embargo, en cuanto al plugin de Attor, solo podemos especular acerca de por qué se utilizan los comandos AT. Hemos detectado una versión en 64 bits de este plugin en 2019 y podemos confirmar que todavía es parte de la versión más nueva de Attor (que vimos por primera vez en 2018). Por otro lado, parece poco probable que esté dirigido a dispositivos smartphones. El plugin ignora los dispositivos conectados a través de un puerto USB y solo contacta a aquellos conectados a través de un puerto serie (más precisamente, dispositivos cuyos nombres descriptivos coinciden con “COM *”).

Una explicación más probable del principal motivo del plugin es que apunta a módems y teléfonos más antiguos. Alternativamente, puede que haya sido utilizado para comunicarse con algunos dispositivos específicos (utilizados por la víctima u organización objetivo) que están conectados al puerto COM o al puerto USB mediante un adaptador de USB a serie. En este escenario, es posible que los atacantes hayan aprendido sobre el uso de estos dispositivos por parte de la víctima utilizando algunas otras técnicas de reconocimiento.

En cualquier caso, el plugin recupera la siguiente información de los dispositivos conectados utilizando los comandos AT enumerados en la Tabla 3:

  • Información básica sobre el teléfono móvil o el módem GSM/GPRS: nombre del fabricante, número de modelo, número IMEI y versión del software
  • Información básica sobre el suscriptor: MSISDN y número IMSI
Table 3. The commands of the AT protocol used by the Device monitor plugin
AT commandFunctionality
ATSignals start of communication (AT for attention).
AT+MODE=2Prepares the phone for an extended AT+ command set.
AT+CGSNRequests IMEI number (International Mobile Equipment Identity), which is a unique number to identify a device.
AT+CGMMRequests information about the model of the device (model number).
AT+CGMIRequests name of the device manufacturer.
AT+CGMRRequests the version of the software loaded on the device.
AT+CNUMRequests MSISDN (Mobile Station International Subscriber Directory Number), which is the mapping of the telephone number to the subscriber identity module in a mobile or cellular phone.
AT+CIMIRequests IMSI (International Mobile Subscriber Identity), which is a unique number identifying a GSM subscriber. This number has two parts. The initial part is comprised of six digits in the North American standard and five digits in the European standard. It identifies the GSM network operator in a specific country with whom the subscriber holds an account. The second part is allocated by the network operator to identify the subscriber uniquely.

Tenga en cuenta que existen muchos más comandos AT (específicos del fabricante) que este plugin no utiliza. Es posible que los operadores de malware usen los comandos enumerados para hacer fingerprint de los dispositivos conectados y luego hagan uso de otro plugin con comandos más específicos para extraer información del dispositivo.

Conclusión

Attor es una plataforma de espionaje utilizada para ataques altamente dirigidos contra usuarios de un alto perfil en Europa del Este y usuarios de habla rusa preocupados por la seguridad.

El malware, que ha pasado desapercibido desde 2013, tiene una arquitectura de plugin cargable que se puede utilizar para personalizar la funcionalidad a víctimas específicas. Incluye un plugin inusual para realizar fingerprinting GSM que utiliza el conjunto de comandos AT raramente utilizado e incorpora Tor con el objetivo de mantener el anonimato y la imposibilidad de rastreo.

Nuestra investigación proporciona una visión profunda del malware y sugiere que vale la pena seguir rastreando las operaciones del grupo que lo respalda.

Los nombres de detección de ESET y otros indicadores de compromiso para estas campañas se pueden encontrar en el whitepaper: AT commands, TOR-based communications: Meet Attor, a fantasy creature and also a spy platform.

Agradecimientos a Anton Cherepanov, Peter Košinár y Zoltán Rusnák por su trabajo en esta investigación.

Técnicas de MITRE ATT&CK

TacticIDNameDescription
ExecutionT1106Execution through APIAttor’s dispatcher uses CreateProcessW API for execution.
T1129Execution through Module LoadAttor’s dispatcher executes additional plugins by loading the respective DLLs.
T1085Rundll32Plugin 0x10 schedules rundll32.exe to load the dispatcher.
T1053Scheduled TaskPlugin 0x10 schedules rundll32.exe to be executed on each boot/logon, and subsequently to load the dispatcher.
T1035Service ExecutionAttor’s dispatcher can be executed as a service.
PersistenceT1037Logon ScriptsAttor’s dispatcher can establish persistence via adding a Registry key with a logon script: HKEY_CURRENT_USER\Environment"UserInitMprLogonScript".
T1050New ServiceAttor’s dispatcher can establish persistence by registering a new service. HKEY_LOCAL_MACHINE\SYSTEM\*ControlSet*\Control\SafeBoot\Minimal registry keys are updated to execute the service even in Safe mode and Safe mode with networking.
T1053Scheduled TaskPlugin 0x10 schedules a new task that loads the dispatcher on boot/logon.
Defense EvasionT1140Deobfuscate/Decode Files or InformationStrings are encrypted with a XOR cipher, using a hardcoded key.
Configuration data, log files and plugins are encrypted using a hybrid encryption scheme – Blowfish-OFB combined with RSA.
T1107File DeletionThe collected files and log files are deleted after exfiltration by plugin 0x05.
T1158Hidden Files and DirectoriesThe attributes of log files and directories are set to HIDDEN/SYSTEM/ARCHIVE (or combination of those).
T1036MasqueradingAttor’s dispatcher disguises itself as a legitimate task (i.e., the task name and description appear legitimate).
T1112Modify RegistryAttor’s dispatcher can modify the Run registry key.
T1055Process InjectionAttor’s dispatcher injects itself into running processes, to gain higher privileges and to evade detection. It avoids specific system and Symantec processes.
T1108Redundant AccessBoth 32-bit and 64-bit versions of Attor’s dispatcher are executed; also they are injected into almost all processes.
There is a watchdog component, implemented in the dispatcher or as a separate plugin, that reinstalls Attor if it has been removed.
T1099TimestompThe time of last access to files and registry keys is manipulated after they have been created/modified.
T1497Virtualization/Sandbox EvasionAttor can detect whether it is executed in some virtualized or emulated environments. If detected, it terminates itself immediately.
Credential AccessT1056Input CaptureUser credentials can be collected by plugin 0x07 via capturing keystrokes.
DiscoveryT1083File and Directory DiscoveryPlugin 0x01 enumerates files with specific extensions on all hard disk drives and stores file information in encrypted log files.
T1120Peripheral Device DiscoveryPlugin 0x01 collects information about inserted storage devices, modems and phone devices.
T1082System Information DiscoveryAttor monitors the free disk space on the system.
CollectionT1123Audio CapturePlugin 0x03 is capable of recording audio using available input sound devices.
T1119Automated CollectionAttor automatically collects data about the compromised system.
T115Clipboard DataPlugin 0x07 collects data stored in the Windows clipboard by using the OpenClipboard and GetClipboardData APIs.
T1074Data StagedCollected data is staged in a central upload directory prior to exfiltration.
T1056Input CapturePlugin 0x07 captures keystrokes pressed within the window of the process where Attor is injected.
T1113Screen CapturePlugin 0x02 captures screenshots of target applications.
Command and ControlT1043Commonly Used PortAttor uses port 21 for C&C communication.
T1188Multi-hop ProxyAttor uses Tor for C&C communication.
T1079Multilayer EncryptionAttor sends encrypted traffic using Tor, which itself uses multiple layers of encryption.
T1105Remote File CopyAttor can download additional plugins, updates and other files.
T1071Standard Application Layer ProtocolFTP protocol is used for C&C communication.
T1032Standard Cryptographic ProtocolA combination of Blowfish-OFB and RSA is used for data encryption.
ExfiltrationT1020Automated ExfiltrationExfiltration of the collected data and log files is done automatically by plugin 0x05.
T1022Data EncryptedAttor encrypts data with a combination of Blowfish and RSA ciphers before sending it to the C&C server.
T1041Exfiltration Over Command and Control ChannelAttor exfiltrates data over the C&C channel.

Discusión