Hace tres años, un 28 de mayo de 2012, anunciábamos el descubrimiento de un programa malicioso conocido como Flame. Al mismo tiempo que publicábamos nuestras Preguntas y Respuestas sobre Flame, CrySyS Lab publicaba su detallado análisis de sKyWIper. Unos días antes, Maher CERT había publicado IOCs para Flamer. En resumen, Flame, sKyWlper y Flamer eran nombres distintos para una misma amenaza que tomó por sorpresa al mundo como la primera gran revelación después de Stuxnet y Duqu.
Desde el descubrimiento de Flame, hemos informado sobre muchos otros programas maliciosos avanzados, incluyendo Regin y Equation, pero Flame sigue siendo especial por ser una de las más complejas, sorprendentes e innovadoras campañas maliciosas que hayamos visto.
Volviendo al descubrimiento de Flame, estas son algunas de las lecciones que aprendimos.
- Un programa malicioso de alta gama y nivel gubernamental puede ser pesado. El conjunto completo de módulos instalados pesaba 20 MB, que era mucho. Antes de esto, los programas maliciosos más sofisticados pesaban entre unos kilobytes y algunos cientos de kilobytes, y la mayoría de los usuarios descartaba un archivo ejecutable de 6 MB por ser “poco interesante”. Ya no es así.
- Cómo evadir los air-gaps. Flame fue uno de los primeros programas maliciosos en implementar mecanismos para evadir los air-gaps de seguridad mediante el uso de unidades USB. Al conectar una unidad USB en un equipo infectado con Flame sin conexión a Internet, el programa malicioso guardaba la información robada en un archivo oculto en la unidad USB. Este archivo era invisible ante la mayoría de los exploradores de archivos y contenía hasta 16 MB de documentos robados, y otra información, del equipo de la víctima. Cuando esta unidad USB se introducía a otro equipo infectado con Flame y conectado a Internet, entonces la información robada se extraía de esta unidad y se enviaba a sus servidores C&C.
- Docenas de C&Cs. Llegamos a contar hasta 100 servidores diferentes de comando y control de Flame. Para un programa malicioso con objetivos definidos, esto resultaba inusual, además de ser una cantidad elevada. Los autores de Flame crearon diferentes versiones del programa malicioso que se conecta a muchos C&Cs a fin de limitar el impacto de la clausura de uno de ellos.
- Captura de audio Bluetooth. Uno de los módulos de Flame se encargaba de identificar dispositivos Bluetooth próximos al equipo infectado y los usaba para grabar el audio en el ambiente. Este es un ataque muy raro introducido por Flame.
- La era de la vigilancia masiva. Creemos que el principal objetivo de Flame era facilitar la vigilancia masiva. Este programa malicioso estaba diseñado para extraer todo en los equipos infectados, desde documentos hasta capturas de pantalla, actividad en el teclado y audio. Los servidores C&C de Flame no incluían provisiones para la operación manual del programa malicioso; todo ocurría de forma automática.
- MD5 está muerto. Una de las características más interesantes de Flame era la forma en que infectaba otros equipos en la red local. El ataque incluía la casi mágica reingeniería de un certificado que servía para firmar actualizaciones de Windows. Este certificado se basaba en una firma MD5 que los atacantes lograron falsificar, lo que indica que tenían la habilidad de descifrar hashes MD5 arbitrarios.
- Caída de la confianza en las actualizaciones de Windows. Uno de los módulos más interesantes de Flame realizaba lo que llegó a describirse como un exploit “en modo Dios” que alteró las actualizaciones de Windows al secuestrar las peticiones de actualización de Windows. Por años se recomendó a los usuarios que actualizaran frecuentemente Windows, y otros programas de terceras partes. Flame se aprovechó de la confianza de los usuarios en estas actualizaciones, y la alteró.
- La punta del iceberg. Después de descubrir Flame, nuestra detección genérica comenzó a activarse con otras muestras. Por la similitud de los códigos, detectamos otros dos programas maliciosos del mismo grupo: Gauss y MiniFlame. Esto nos llevó a darnos cuenta de que existen muchos otros programas maliciosos por descubrir, y que posiblemente nos lleve años hacerlo.
- Todo está conectado. Cuando descubrimos Flame, muchos usuarios preguntaron: “¿Está relacionado con Stuxnet?”. Respondimos: “No, no hay indicios”. Estábamos equivocados. Tras varias semanas descubrimos un módulo de Flame que también se usó en la versión 2009 de Stuxnet para replicarse. En esencia, el Stuxnet 2009 se compiló para replicarse usando un exploit de Flame. Esto muestra que, en realidad, ambos estaban conectados. Al mismo tiempo, Stuxnet estaba conectado con Duqu y, como descubrimos hace poco, con el grupo Equation, a través de sus exploits inicialmente usados por el gusano Fanny. A veces toma tiempo ver todas las conexiones, incluso si no parecen obvias al principio.
- “Flame es soso”. Cuando Kaspersky y CrySyS Lab publicaron nuestros análisis de Flame, algunos usuarios los descartaron por poco interesantes. “Un programa malicioso de 20 MB puede ser l33t? ¡Imposible!”. (Las críticas se acallaron cuando el ataque a Microsoft Windows Updates y el colapso de MD5 se detectaron y repararon). Mikko Hypponen de F-Secure tiene un estupendo blog sobre este tema: https://www.f-secure.com/weblog/archives/00002383.html.
Finalmente, queremos terminar con un discurso fantástico por el activista del derecho a la privacidad, Chris Soghoian, titulado “Lecciones del ataque contra Bin Laden y la Ciberguerra: Inmunizaciones y actualizaciones de seguridad”.
https://archive.org/details/ChrisSoghoian-LessonsFromTheBinLadenRaidAndCyberwarImmunizations
Se refiere a Flame en el punto 5:00, pero recomendamos mirar todo el video. Como Chris menciona en este video: “a pesar de la aparente ventaja a corto plazo que representa hackear las actualizaciones de seguridad, esto es algo que no vale la pena”. Estamos de acuerdo, y añadimos que actuar en contra de la seguridad global siempre será contraproducente para quien lo hace.
Lecciones aprendidas de Flame, tres años después