Flame: preguntas y respuestas

Duqu y Stuxnet jugaron un notable papel en las ciberbatallas que se libran en el Medio Oriente. Pero ahora hemos descubierto lo que puede ser el arma cibernética más sofisticada nunca antes vista. El gusano Flame para el ciberespionaje llamó la atención de nuestros expertos en Kaspersky Lab cuando la International Telecommunication Union de las NN.UU. solicitó nuestra ayuda para encontrar un programa malicioso desconocido que borraba información confidencial en países del Medio Oriente. Durante la búsqueda de este código, apodado Wiper, descubrimos un nuevo código malicioso llamado Worm.Win32.Flame.

Flame presenta muchas características similares a las de las famosas ciberarmas Duqu y Stxnet. Si bien posee características distintas, la geografía y la cuidadosa selección de sus ataques, además de la explotación de determinadas vulnerabilidades en programas, parecen alinear este gusano con las conocidas “superarmas” que unos desconocidos están usando en el Medio Oriente. Flame puede describirse sencillamente como una de las amenazas más complejas que se haya descubierto hasta hoy. Es grande e increíblemente sofisticado, y redefine la noción de ciberguerra y ciberespionaje.

Para conocer más profundamente esta avanzada amenaza, sigue leyendo…

Preguntas generales

¿Qué es exactamente Flame? ¿Un gusano? ¿Un troyano puerta trasera? ¿Qué hace?

Flame es un sofisticado paquete de herramientas de ataque, mucho más complejo que Duqu. Es un troyano puerta trasera, pero también tiene las características de un gusano, lo que le permite replicarse en una red local y en dispositivos portátiles si se lo ordena su dueño.

Se desconoce el punto inicial de entrada de Flame; sospechamos que se instala a través de ataques dirigidos; sin embargo, no hemos visto el vector original y no sabemos cómo se propaga. Tenemos sospechas sobre el posible uso de la vulnerabilidad MS10-033, pero por el momento no podemos confirmarlo.

Una vez que se infecta el sistema, Flame comienza una compleja serie de operaciones, como la intercepción del tráfico de red, capturas de pantalla, grabación de conversaciones orales, la intercepción del teclado, entre otras. Todos estos datos se ponen a disposición de los dueños de Flame a través del enlace a sus servidores de comando y control.

Después, sus propietarios pueden elegir subir otros módulos para expandir la funcionalidad de Flame. Existen unos 20 módulos en total y se sigue investigando el propósito de la mayoría de ellos.

¿Cuán sofisticado es Flame?

En primer lugar, Flame es un enorme paquete de módulos con un tamaño de casi 20 MB cuando se instala por completo. Por eso, es un programa malicioso extremadamente difícil de analizar. La razón por la que Flame es tan grande es que incluye muchas bibliotecas diferentes, por ejemplo para compresión (zlib, libbz2, ppmd), manipulación de bases de datos (sqlite3) además de una máquina virtual LUA.

LUA es un lenguaje de programacion que se puede extender e interactuar con el código C con facilidad. Muchas de las partes de Flame tienen una lógica de nivel superior escrita en LUA, con efectivas subrutinas de ataque y bibliotecas compiladas con C++.

La parte efectiva del código LUA es más bien pequeña en comparación con el código en su conjunto. Nuestra estimación del ‘coste’ de desarrollo en LUA es de más de 3000 líneas de código, que a un desarrollador promedio puede llevarle hasta un mes en crear y depurar.

Además, usa bases de datos locales con peticiones SQL anidadas, múltiples métodos de codificación, varios algoritmos de compresión, secuencias de comandos Windows Management Instrumentation, secuencias de comandos batch, etc.

La ejecución y depuración de este programa malicioso tampoco es algo sencillo ya que no se trata de una aplicación ejecutable convencional, sino de varios archivos DLL que se cargan al iniciarse el sistema.

En general, podemos decir que Flame es una de las amenazas más completas que se haya descubierto.

¿Cuán distinto o más sofisticado es en comparación con otros troyanos puerta trasera? ¿Hace algo nuevo en concreto?

En primer lugar, no es común el uso de LUA en programas maliciosos. Tampoco es usual el gran tamaño de su paquete de herramientas de ataque. Los programas maliciosos modernos suelen ser pequeños y estar escritos en lenguajes de programación muy compactos, lo que les permite ocultarse con facilidad. Una de las nuevas y específicas características de Flame es su camuflaje mediante códigos extensos.
La grabación de datos audio desde el micrófono interno es también un rasgo novedoso. Por supuesto que hay otros programas maliciosos que pueden grabar audio, pero en el caso de Flame, la clave es que lo abarca todo: su capacidad para robar datos de tantas maneras.

Otro aspecto curioso de Flame es el uso que hace de los dispositivos Bluetooth. Cuando Bluetooth está activo, y la opción correspondiente está activada en el bloque de configuración, puede recoger información sobre dispositivos detectables cerca de la máquina infectada. Dependiendo de la configuración, también puede convertir la máquina infectada en una baliza, hacerla detectable mediante Bluetooth, y dar información general sobre el estado del programa malicioso codificado en la información del dispositivo.

¿Cuáles son las características más notables de Flame para el robo de información?

Aunque seguimos analizando los diferentes módulos, parece que Flame es capaz de grabar audio a través del micrófono, si lo hay. Guarda la grabación en formato comprimido mediante una biblioteca de fuentes públicas.

Los datos grabados se envían al servidor de comando y control mediante un canal SSL encubierto, con una frecuencia regular. Aún estamos analizando esto; pronto publicaremos más información en nuestro sitio web.

Este programa malicioso tiene la capacidad de tomar capturas de pantalla de forma regular; más aun, las toma cuando se están ejecutando ciertas aplicaciones “interesantes”, como IM. Las capturas de pantalla se guardan en formato comprimido y se envían con regularidad al servidor de comando y control, tal como en el caso de las grabaciones.

Todavía estamos analizando este componente y publicaremos más información tan pronto como sea posible.

¿Cuándo se creó Flame?

Los creadores de Flame cambiaron las fechas de creación de los archivos a propósito para que los investigadores no puedan establecer el verdadero momento de su creación. Los archivos tienen las fechas 1992, 1994, 1995, etc., pero es obvio que son falsas.

Creemos que el proyecto Flame se creó no antes de 2010, y que sigue desarrollándose activamente todavía. Sus creadores introducen cambios en los distintos módulos con frecuencia, pero siguen usando la misma arquitectura y los mismos nombres de archivos. Varios módulos se crearon o modificaron en 2011 y 2012.

Según nuestros datos, detectamos el uso de Flame en agosto de 2010. Además, en base a datos colaterales, podemos afirmar que Flame ya estaba circulando entre febrero y marzo de 2010. Es posible que antes de ese momento existiese una versión previa, pero no contamos con la información para confirmarlo, pero es algo muy posible.

¿Por qué se llama Flame? ¿De dónde proviene el nombre?

El programa malicioso Flame es un voluminoso paquete de herramientas de ataque compuesto por múltiples módulos. Uno de los principales módulos se llamaba Flame: el módulo responsable de atacar e infectar máquinas adicionales.

¿Se trata de un ataque propiciado por un gobierno o los responsables son ciberdelincuentes o hacktivistas?

Hoy en día hay tres tipos conocidos de actores que desarrollan programas maliciosos y programas espía: los hacktivistas, los ciberdelincuentes y los gobiernos. Flame no está diseñado para robar dinero desde cuentas bancarias. Difiere además de los sencillos programas maliciosos y herramientas de ataque que usan los hacktivistas. Entonces, excluyendo a los ciberdelincuentes y a los hacktivistas, llegamos a la conclusión de que pertenece al tercer grupo. Además, la geografía de los blancos (algunos países en el Medio Oriente) y la complejidad de sus niveles de amenaza no dejan dudas de que sea un gobierno quien ha financiado toda la investigación necesaria para su desarrollo.

¿Quién es el responsable?

No existe información alguna en el código que vincule a Flame con ningún gobierno en particular. Como en el caso de Stuxnet y Duqu, sus autores permanecen en el anonimato.

¿Por qué lo hacen?

Para la recolección sistemática de información sobre las operaciones de ciertos países en el Medio Oriente, incluyendo Irán, Líbano, Siria, Israel, y otros. A continuación ofrecemos un mapa que muestra los 7 países afectados:

¿Flame ataca a determinadas organizaciones para recoger información específica que pueda usarse en futuros ataques? ¿Qué tipo de información y datos buscan los atacantes?

A partir de un análisis inicial, parece que los creadores de Flame buscan cualquier tipo de inteligencia: mensajes de correo, documentos, mensajes, discusiones en locaciones confidenciales; es decir, de todo. No hemos detectado señales específicas que muestren un blanco en particular, como la industria de la energía, por ejemplo, lo que nos lleva a pensar de que es un paquete completo de herramientas diseñadas con objetivos generales de ciberespionaje.

Por supuesto, como vimos en el pasado, este tipo de programa malicioso altamente flexible puede usarse para instalar determinados módulos de ataque dirigidos a dispositivos SCADA, ICI, infraestructura crítica, etc.

¿Qué organizaciones o industrias ataca Flame? ¿Son instalaciones de control industrial/PLC/SCADA? ¿Quiénes y cuántos son los blancos?

Parece no haber ningún patrón visible para el tipo de organizaciones que Flame ataca. Las víctimas van desde individuos hasta organizaciones estatales e instituciones educativas. Por supuesto, la recopilación de investigación sobre las víctimas es difícil debido a las estrictas políticas sobre recopilación de datos personales diseñadas para proteger la identidad de nuestros usuarios.

En base a vuestro análisis, ¿existe una sola variante de Flame, o hay otras?

Según la inteligencia provista por Kaspersky Security Network, estamos frente a múltiples versiones de este programa maliciosos que circulan en Internet, de diferente tamaño y con distinto contenido. Asumiendo que este programa malicioso se hubiese desarrollado durante un par de años, se estima que estén circulando en Internet muchas versiones distintas.

Además, Flame consta de muchos plug-ins variados (hasta 20) que tienen distintas funciones específicas. Una infección específica de Flame puede tener 7 plug-ins, mientras que otra puede llegar a tener hasta 15. Todo depende del tipo de información que se busca de la víctima, y del tiempo que el sistema lleva infectado.

¿Sigue activo el principal servidor de comando y control? ¿Hay más de un servidor primario de comando y control? ¿Qué pasa cuando un ordenador infectado se pone en contacto con el servidor de comando y control?

Existen varios servidores de comando y control, dispersos por todo el mundo. Hemos contado alrededor de una docena de diferentes dominios de servidores de comando y control que se ejecutan en diferentes servidores. También podría haber otros dominios relacionados, lo que podría llevar a 80 diferentes dominios que el programa malicioso usa para ponerse en contacto con el servidor de comando y control. Por eso, resulta muy difícil rastrear el uso de servidores de comando y control.

¿Fue creado por el mismo grupo que Duqu/Stuxnet? ¿Comparten código similar o tienen alguna otra cosa en común?

En cuanto al tamaño, Flame es 20 veces mayor que Stuxnet, que incluye las muchas y variadas características de ataque y ciberespionaje. Flame no tiene mayores semejanzas con Stuxnet/Duqu.

Por ejemplo, cuando se descubrió Duqu, resultaba evidente para cualquier investigador competente que había sido creado por las mismas personas que crearon Stuxnet en la plataforma “Tilded”.

Al parecer, Flame es un proyecto que se ejecuta en forma paralela a Stuxnet/Duqu sin usar la plataforma Tilded. Sin embargo, existen algunos vínculos que podrían señalar que los creadores de Flame tenían acceso a la tecnología que se usó en el proyecto Stuxnet, como el uso del método de infección “autorun.inf”, además de la explotación de la misma vulnerabilidad en la cola de impresión (spooler) que aprovechaba Stuxnet, lo que indica que quizás los autores de Flame tenían acceso a los mismos exploits que los de Stuxnet.

Por otra parte, no podemos excluir que las variantes actuales de Flame se desarrollaron después del descubrimiento de Stuxnet. Es posible que los autores de Flame usaran información pública sobre los métodos de distribución de Stuxnet y los adaptaran a Flame.

En resumen, es probable que Flame y Stuxnet/Duqu hayan sido creados por dos grupos diferentes. Diríamos que Flame es un proyecto que se ejecuta de forma paralela a Stuxnet o Duqu.

Decís que ha estado activo desde marzo 2010, casi en la misma época en que se descubrió Stuxnet. ¿Qué comparten Flame y Stuxnet? Es interesante que ambos exploten la vulnerabilidad en la cola de impresión.

Uno de los mejores consejos en cualquier tipo de operación es no poner todos los huevos en una sola canasta. Sabiendo que tarde o temprano se descubriría Stuxnet y Duqu, sería razonable producir otros proyectos similares, pero en base a una filosofía completamente diferente. De esta manera, si se descubre uno de los proyectos de investigación, el otro puede continuar sin dificultades.

Por eso creemos que Flame es un proyecto paralelo, creado como plan alternativo en caso de que se detectara algún otro proyecto.

En vuestro análisis de Duqu, mencionasteis algunos “parientes” de Duqu, o que podrían existir otras formas de programas maliciosos. ¿Se trata de una de ellas?

Por supuesto que no. Los “parientes” de Duqu se basaban en la plataforma Tilded, que también se usaba para Stuxnet. Flame no recurre a la plataforma Tilded.

Esto suena a una herramienta de robo de información, similar a Duqu. ¿Veis Flame como parte de una operación de recolección de inteligencia para crear un arma de cibersabotaje más grande, similar a Stuxnet?

La operación de recolección de inteligencia de Duqu era más bien pequeña y enfocada. Creemos que Duqu tuvo menos de 50 blancos en todo el mundo, aunque todos eran de muy alto perfil.

Flame parece estar mucho más extendido que Duqu, posiblemente con miles de víctimas en todo el mundo.

Asimismo, los blancos tienen mucho mayor alcance, incluyendo universidades, compañías privadas, determinados individuos, etc.
De acuerdo con nuestras observaciones, los operadores de Flame dan soporte artificialmente a la cantidad de sistemas infectados en un cierto y constante nivel. Esto puede compararse con el procesamiento secuencial de campos (infectan a varias docenas), análisis de los datos de la víctima, desinstalación de Flame en los sistemas que no son interesantes, optando por mantener los más importantes. Después, empiezan una nueva serie de infecciones.

¿Qué es Wiper?¿Tiene alguna relación con Flame? ¿Qué tan destructivo es? ¿Se lo ha encontrado en los mismos países?

El programa malicioso Wiper, sobre el que informaron muchos medios de prensa, sigue en el anonimato. Flame se descubrió en el transcurso de una investigación sobre algunos ataques de Wiper, y en este momento no existe información que relacione a Flame con los ataques de Wiper. Dada la complejidad de Flame, podría instalarse un plug-in para borrar información en cualquier momento y sin dificultad, pero hasta el momento no lo hemos constatado.

Además, los sistemas que se han visto afectados por el programa malicioso Wiper son completamente irrecuperables: la magnitud del daño es tal que no queda absolutamente nada que pueda servir para rastrear el ataque.

Sólo se tiene información sobre incidentes con Wiper en Irán. Nosotros hemos detectado Flame en varios países de la región, no sólo en Irán.

Preguntas sobre la funcionalidad y características de Flame

¿Cómo infecta los ordenadores? ¿Mediante dispositivos USB? ¿Explotaba otras vulnerabilidades, aparte de la cola de impresión, para evitar la detección? ¿Alguna vulnerabilidad de día-cero?

Parece que Flame tiene dos módulos diseñados para infectar los dispositivos USB, llamados “Autorun Infector” y “Euphoria”. Todavía no los hemos visto en acción, quizás porque Flame parece estar desactivado en la configuración. Sin embargo, el código tiene la capacidad de infectar dispositivos USB mediante dos métodos:

  1. Autorun Infector: El método “Autorun.inf” del Stuxnet original, usando el “truco” “shell32.dll”. Lo importante aquí es que el método específico se usó sólo en Stuxnet y no se ha vuelto a detectar en ningún otro programa malicioso.
  2. Euphoria: propagación en medios mediante un directorio “punto de empalme” que contiene módulos de programas maliciosos y un archivo LNK que dispara la infección cuando se abre este directorio. Nuestras muestras contenían los nombres de los archivos, pero no así el del enlace LNK.

Además de estos métodos, Flame es capaz de copiarse a través de redes locales. Para ello usa:

  1. La vulnerabilidad de impresora MS10-061 que Stuxnet explota usando un archivo especial MOF, que se ejecuta en el sistema atacado mediante WMI.
  2. Tareas de operaciones remotas.
  3. Cuando un usuario que tiene autorizaciones administrativas para el controlador de dominios ejecuta Flame, este también puede atacar a otras máquinas en la red: crea cuentas de usuario puerta trasera con una contraseña predefinida que después se usa para copiarse en estas máquinas.

Hasta el momento, no hemos detectado el uso de ningún día-cero. Sin embargo, se sabe que el gusano, a través de la red, ha infectado sistemas Windows 7 completamente parchados, lo que indica la presencia de un alto riesgo de vulnerabilidades día-cero.

¿Puede autoreplicarse, como Stuxnet, o usa una forma más controlada de propagación, como Duqu?

Como Duqu, parece que el operador comanda la parte de la replicación y la controla con el archivo de configuración del robot. La mayoría de las rutinas de infección tienen contadores de ataques ejecutados y se limita a un determinado número de ataques permitidos.

¿Por qué tiene varios MBs de código el programa? ¿Qué funcionalidad tiene que lo hace mucho mayor que Stuxnet? ¿Cómo es que no se ha detectado si es tan grande?

Precisamente por su gran tamaño es que por mucho tiempo no fue descubierto este programa malicioso. En general, los programas maliciosos modernos son pequeños y enfocados. Resulta más fácil ocultar un archivo pequeño que uno grande. Además, en redes no confiables, la descarga de 100K tiene mayores posibilidades de éxito que una de 6MB.

Todos los módulos de Flame representan más de 20 MB. Muchos de estos son bibliotecas diseñadas para manejar tráfico SSL, conexiones SSH, husmear, ataques, intercepción de comunicaciones, etc. Consideremos esto: nos llevó varios meses analizar el código de 500K de Stuxnet. Probablemente nos llevará un año comprender en su totalidad los 20 MB del código de Flame.

¿Tiene Flame incorporado Time-of-Death, como Duqu o Stuxnet?

Hay muchos temporizadores diferentes incorporados en Flame. Monitorean el éxito de las conexiones con el servidor de comando y control, la frecuencia de ciertas operaciones de robo de datos, la cantidad de ataques exitosos, etc. Aunque este programa malicioso no tiene un temporizador suicida, los controladores tienen la habilidad de enviar un módulo de eliminación de determinados programas maliciosos (llamados “browse32”), que desinstala por completo el programa malicioso en un sistema, eliminando hasta el mínimo rastro de su presencia.

¿Qué hay sobre los JPEGs o las capturas de pantalla? ¿También los roba?

Este programa maliciosos es capaz de realizar capturas de pantalla con cierta frecuencia. Además, las realiza cuando se están ejecutando ciertas aplicaciones “interesantes”, como IM. Las capturas de pantalla se guardan en formato comprimido y se envían con regularidad al servidor de comando y control, lo mismo que las grabaciones.

Todavía estamos analizando este componente y publicaremos más información en cuanto sea posible.

En las próximas semanas compartiremos con los técnicos una amplia lista de los archivos y rastros en una serie de entradas en el blog de Securelist.

¿Qué hago si detecto una infección y quiero contribuir a la investigación brindando muestras de programas maliciosos?

Agradeceríamos mucho que se ponga en contacto con nosotros por correo a la dirección que hemos creado para la investigación sobre Stuxnet/Duqu: stopduqu@kaspersky.com.

Según nuestros análisis, Flame es idéntico al “SkyWiper” descrito por CrySyS Lab y el grupo Iran Maher CERT , que lo llama “Flamer”.

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *