Puedes leer nuestro Informe Técnico Completo sobre SPE/miniFlame Aquí (en inglés).
En mayo de 2012, una investigación de Kaspersky Lab reveló un nuevo malware gubernamental de ciberespionaje que llamamos “Flame”. Nuestra investigación también identificó características exclusivas de los módulos de Flame. Guiándonos por estas características, descubrimos que, en 2009, la primera variante del gusano Stuxnet incluía un módulo que se creó en base a la plataforma Flame. Esto confirmó que había algún tipo de colaboración entre los grupos que desarrollaron las plataformas Flame y Tilded (Stuxnet/Duqu).
Un análisis más profundo que se realizó en junio de 2012 hizo que se descubriera otro malware financiado por un gobierno, que llamamos “Gauss”. Gauss usaba una estructura modular similar a la de Flame, con un código base y un sistema parecido para comunicarse con los servidores de comando y control (C&C), entre muchas otras similitudes.
También publicamos nuestro análisis de los servidores de Comando y Control de Flame junto a Symantec, ITU-IMPACT y CERT-Bund/BSI . El análisis reveló que el código puede comprender varios protocolos de comunicación para comunicarse con diferentes “clientes”, o malware:
- OldProtocol
- OldProtocolE
- SignupProtocol
- RedProtocol (mencionado, pero no implementado)
Un vistazo más de cerca a estos administradores de protocolo reveló que existen cuatro tipos de clientes (“malware”) diferentes, llamados SP, SPE, FL e IP :
Siguiendo la lógica del código, podemos confirmar que el malware Flame es un tipo de cliente “FL”. Por supuesto, esto significa que existían por lo menos otras tres herramientas de ciberespionaje o cibersabotaje creadas por los mismos autores: SP, SPE e IP.
Te presento a SPE, el miniFlame
Se descubrió al malware SPE durante esta investigación, iniciada por la Unión Internacional de Telecomunicaciones y ejecutada por Kaspersky Lab.
Después de analizar los servidores C&C de Flame, nos sorprendió descubrir que este nuevo módulo usaba OldProtocolE para realizar sus conexiones, que también se utiliza en el misterioso malware SPE. Por lo tanto, llegamos a la conclusión de que el complemento Flame en realidad era un malware único e independiente: y era el que se conocía como “SPE” en el C2 de Flame.
Todo comenzó a principios de julio de 2012, cuando descubrimos un módulo de Flame más pequeño y bastante interesante. El módulo tenía muchas similitudes con Flame, lo que nos hizo pensar que era una versión antigua de este malware (todas las variantes de Flame que se conocen son 2.x). Los meses siguientes, no sólo estudiamos la conexión de este malware con Flame, también encontramos ejemplos de este módulo que se usaban de forma simultánea con Gauss y se controlaban con el módulo principal de Gauss.
Información sobre miniFlame / SPE
El malware SPE, que llamamos “miniFlame”, es un módulo de espionaje pequeño y totalmente funcional, diseñado para el robo de datos y el acceso directo a sistemas infectados. Si Flame y Gauss eran operaciones de espionaje masivas, que infectaban a miles de usuarios, miniFlame/SPE es de alta precisión, una herramienta de ataque de precisión quirúrgica.
Es más, miniFlame está basado en la plataforma Flame, pero implementado como un módulo independiente. Puede operar de forma independiente, sin los módulos principales de Flame en el sistema, o como un componente controlado por Flame.
También llama la atención que miniFlame se puede usar junto a otro programa de espionaje, Gauss. Como muchos de nuestros lectores recordarán, se asumió que Flame y Gauss eran proyectos paralelos que no tenían módulos ni servidores de C&C en común. El descubrimiento de miniFlame, que funciona con ambos proyectos de espionaje, prueba que teníamos razón cuando llegamos a la conclusión de que provenían de la misma “fábrica de armas virtuales”.
Al parecer, el desarrollo de miniFlame comenzó hace muchos años y se mantuvo a lo largo de 2012. Basándonos en el código C&C, los protocolos de SP y SPE se crearon antes o al mismo tiempo que el protocolo de comunicación que usa FL (Flame), es decir, por lo menos en 2007.
Creemos que los desarrolladores de miniFlame hicieron docenas de modificaciones al programa. Por ahora hemos encontrado “sólo” seis de ellas, fechadas entre 2010 y 2011.
En algunos casos, los servidores de C&C se utilizaban de forma exclusiva para controlar la operación SPE. Al mismo tiempo, algunas variantes SPE trabajaban con los servidores que se comunicaban con Flame.
La principal diferencia entre miniFlame/SPE y Flame y Gauss es que su cantidad de infecciones mucho menor. Calculamos que Flame/Gauss ha infectado a más de 10.000 sistemas, mientras que SPE sólo se ha detectado en algunas docenas de sistemas del oeste de Asia. Esto indica que SPE es una herramienta que se usa para realizar ataques dirigidos, y es posible que se haya usado sólo contra objetivos muy específicos y significativos, los de mayor interés para los atacantes.
Nombre | Incidentes (estadísticas de KL) | Incidentes (aprox.) |
---|---|---|
Stuxnet | Más de 100 000 | Más de 300 000 |
Gauss | ~ 2500 | ~10 000 |
Flame (FL) | ~ 700 | ~5000-6000 |
Duqu | ~20 | ~50-60 |
miniFlame (SPE) | miniFlame (SPE) | ~50-60 |
A diferencia de Flame, que atacaba principalmente a equipos en Irán y Sudán, y de Gauss, que se enfocaba en el Líbano, SPE no hace una selección geográfica clara. Pero creemos que la selección de países depende de la variante SPE. Por ejemplo, la variante conocida como “4.50” se encuentra principalmente en el Líbano y Palestina. Las demás variantes se encontraron en otros países, como Irán, Kuwait y Qatar.
Se desconoce el vector de distribución SPE original. Pero, como se sabe que SPE trabajaba como parte de Flame y Gauss y comparte sus servidores de C&C con Flame, creemos que en la mayoría de los casos se instaló SPE desde servidores de C&C en sistemas que ya estaban infectados con Flame y Gauss.
La conexión con Gauss
El malware SPE/miniFlame es único en el sentido de que puede funcionar como un programa independiente, como un complemento de Flame o como un complemento de Gauss. En esencia, sirve de conexión entre los proyectos Flame y Gauss, aunque se mantiene independiente. Utiliza sus propios servidores de C&C o los servidores comunes de Flame.
En total, hemos detectado seis versiones diferentes de SPE. Todas se crearon entre el 1 de octubre de 2010 y el 1 de septiembre de 2011.
Hasta ahora, la versión 4.50 es la más expandida.
Estadísticas del sinkhole
A lo largo de la investigación pudimos capturar muchos dominios C&C de Flame y de miniFlame en una trampa conocida como “sinkhole”. Las siguientes estadísticas son sólo de las conexiones de miniFlame.
Entre el 28 de mayo y el 30 de septiembre de 2012, contamos casi 14.000 conexiones en total, que provenían de 90 IPs diferentes.
Distribución de las IP de las víctimas infectadas:
Rastreamos las IPs de Estados Unidos hasta conexiones VPN. De igual manera, las IP en Lituania pertenecen a un servidor que ofrece servicios de Internet por satelite en el Líbano. Las IP en Francia son las más raras – algunas parecen proxies o VPNs, pero otras no son tan obvias.
Por ejemplo, una de las IPs infectadas en Francia pertenece a la Francois Ravelais University of Tours:
Otras IPs en Francia son de usuarios de Internet para teléfonos móviles o que acceden a Internet de forma gratuita.
En general, parece que la mayoría de las víctimas está ubicada en el Líbano e Irán.
La puerta trasera de SPE/miniFlame:
El principal propósito de miniFlame es servir de puerta trasera en los sistemas infectados para que los atacantes tengan control directo de los sistemas.
El malware comprende las siguientes instrucciones:
Instrucción | Descripción |
---|---|
FIONA | Escribe el archivo desde el servidor de C&C al equipo de la víctima |
SONIA | Escribe el archivo desde el equipo de la víctima al servidor de C&C |
EVE | Carga un DLL específico y ejecuta el export indicado sin argumentos adicionales |
ELVIS | Crea un proceso con parámetros establecidos |
DRAKE | Elimina los parámetros StandardTimeBias del registro, da la señal de acción para la tarea“GlobalTRStepEvent” (autodestruir) |
CHARLES | Escribe un nuevo valor StandardTimeBias en el registro |
SAM | “Duerme” por un periodo indeterminado |
ALEX (Version 5.00) | Da la señal de acción al sistema en milisegundos |
BARBARA (Version 5.00) | Realiza una captura de pantalla de la ventana anterior si pertenece a uno de los procesos predefinidos. |
TIFFANY (Version 5.00) | Cambia al servidor de C&C de los parámetros del comando. |
Todos los comandos se propagan mediante el servidor de C&C y se codifican con un XOR básico de 10 bytes y una capa adicional de codificación Twofish.
Conclusiones
Durante el análisis del código del servidor C&C de Flame, descubrimos que el servidor reconocía cuatro tipos de malware diferentes: SP, SPE, FL e IP . El malware conocido como FL es Flame. Hoy, anunciamos el descubrimiento del malware SPE .
Nuestro análisis nos permitió compilar una serie de características de SPE, también llamado “miniFlame” o “John”, como se lo llama en la configuración de Gauss correspondiente:
El malware miniFlame no está muy expandido. Es posible que sólo se use para atacar a un pequeño número de víctimas “importantes”.
A diferencia de Gauss, SPE/miniFlame implementa una puerta trasera completa de cliente/servidor, lo que permite que el operador tenga acceso directo al sistema infectado.
El código C&C de Flame que analizamos no parece contener módulos específicos para controlar clientes SPE; asumimos que existen o existieron otros servidores C2 dedicados a SPE, con su propia base especial de códigos.
El desarrollo de SPE se realizó de forma simultánea a Flame y Gauss, durante 2010-2011.
Tanto Flame como Gauss utilizan el módulo miniFlame/SPE.
La variante más reciente de SPE es 5.00; la más antigua que se conoce es 4.00.
No se sabe cuál es el vector de infección específico para SPE; es posible que el malware se despliegue del servidor de comando y control durante las infecciones de Flame o Gauss.
La versión 4.20 del malware contiene una ruta de depuración en el binario que dirige a “C:projectseSP4.2general_vobspReleaseicsvnt32.pdb”. Esto indica que el autor llamó al malware “SP4.3”, aunque se refiera a él como “SPE” en C2. Es posible que SP sea una versión más antigua de miniFlame/SPE (v1.00 a v3.xx).
SPE/miniFlame consolida la teoría de que existe un vínculo muy fuerte entre los equipos de Flame y Gauss. miniFlame es un módulo común que ambos usan.
Todas las versiones 4.xx conocidas de SPE contienen una sección de información de la versión, que referencia la página 3081 del código, ENG_AUS, English (Australia).
Si Flame y Gauss eran operaciones de espionaje masivas, que infectaban a miles de usuarios, miniFlame/SPE es una herramienta de espionaje de alta precisión. Su cantidad de víctimas es comparable con la de Duqu .
Podemos asumir que este malware era parte de las operaciones de Flame y Gauss que se realizaron en muchas olas. Primera ola: infectar a tantas víctimas interesantes como pueda. En segundo lugar recolectar la información de las víctimas para que los atacantes puedan establecer sus perfiles y seleccionar los objetivos más interesantes. Por último, se despliega una herramienta espía como SPE/miniFlame para vigilar y monitorizar estos objetivos “selectos”.
Se mencionan otros dos archivos de malware dentro del código C&C de Flame: SP e IP. Si SP puede referirse a una variante más antigua del malware que exploramos en este informe, IP puede ser diferente y sigue siendo desconocido. Según el código fuente de C2, IP también es el malware más reciente del paquete.
Es posible que Flame, Gauss y miniFlame sólo nos hayan permitido explorar la superficie de una serie de operaciones masivas que se están llevando a cabo en el Medio Oriente. Su propósito real y final sigue siendo un misterio, y la identidad de las víctimas y atacantes sigue siendo desconocida.
Puedes leer nuestro Informe Técnico Completo sobre SPE/miniFlame aquí (en inglés).
Kaspersky Lab quiere agradecer a CERT-Bund/BSI por ayudarnos con esta investigación.
miniFlame, alias SPE: “Elvis y sus amigos”