Stealth Falcon es un grupo de amenazas activo desde 2012 conocido por ataques dirigidos a activistas políticos y periodistas en Medio Oriente. Ha sido monitoreado por Citizen Lab, una organización sin fines de lucro centrada en seguridad y derechos humanos que en 2016 publicó un análisis sobre un ciberataque en particular de este grupo. A su vez, en enero de 2019, Reuters publicó un reportaje de investigación sobre Project Raven, una iniciativa que según afirma el medio emplea a ex agentes de la NSA para llevar adelante ataques de ciberespionaje dirigidos a los mismos objetivos que Stealth Falcon.

Sobre la base de estos dos informes que se refieren a los mismos objetivos y ataques, el especialista en tecnología sénior de Amnistía Internacional, Claudio Guarnieri, ha concluido que Stealth Falcon y Project Raven son en realidad el mismo grupo.

Figura 1. Claudio Guarnieri vinculó Stealth Falcon con Project Raven

Cierta información técnica sobre Stealth Falcon ya se ha hecho pública, fundamentalmente en el análisis mencionado que realizó Citizen Lab.

El componente clave en el ataque documentado en el reporte elaborado por Citizen Lab fue un backdoor basada en PowerShell, enviado a través de un documento malicioso que se incluyó en un correo electrónico.

Ahora, hemos encontrado un backdoor binario, que nunca antes se había reportado, al que hemos llamado Win32/StealthFalcon. En este artículo, revelaremos las similitudes existentes entre este backdoor binario y el script de PowerShell con capacidades de backdoor atribuidos al grupo Stealth Falcon. Consideramos que las similitudes existentes son una fuerte evidencia de que Win32/StealthFalcon fue creado por este grupo.

El backdoor Win32/StealthFalcon, que parece haber sido creado en 2015, permite al atacante controlar la computadora comprometida de forma remota. Hemos visto un pequeño número de objetivos en los Emiratos Árabes, Arabia Saudita, Tailandia y los Países Bajos; en este último caso, el objetivo era una misión diplomática de un país de Medio Oriente. Cómo se distribuyó y ejecutó el backdoor en los sistemas afectados está más allá del alcance de esta investigación; ya que nuestro análisis está enfocado en sus capacidades y su comunicación con el C&C.

Comunicación con el C&C

En su comunicación con el servidor C&C, Win32/StealthFalcon utiliza el componente estándar de Windows conocido como Background Intelligent Transfer Service (BITS), lo cual es bastante inusual. BITS fue diseñado para transferir grandes cantidades de datos sin consumir una gran cantidad de ancho de banda de la red, lo cual logra al regular el caudal de datos enviados para no afectar las necesidades de ancho de banda de otras aplicaciones. Es comúnmente utilizado por los actualizadores y otras aplicaciones diseñadas para operar en segundo plano. Esto significa que las tareas BITS tienen más probabilidades de ser permitidas por los firewalls basados ​​en host.

En comparación con la comunicación tradicional a través de las funciones API, el mecanismo BITS está expuesto a través de una interfaz COM, por lo que es más difícil de detectar para un producto de seguridad. Además, este diseño es confiable y sigiloso. La transferencia se reanuda automáticamente después de ser interrumpida por razones como una interrupción de la red, el cierre de sesión del usuario o un reinicio del sistema. Además, debido a que BITS ajusta la ratio de transferencia de los archivos en función del ancho de banda disponible, el usuario no tiene motivos para sospechar.

Win32/StealthFalcon puede cambiar la comunicación entre dos servidores C&C cuyas direcciones estén almacenadas en una clave de registro, junto con otros valores de configuración, y pueden actualizarse mediante uno de los comandos del backdoor. En caso de que el backdoor no logre comunicarse con sus servidores C&C, el backdoor se remueve a sí mismo del sistema comprometido después de cierto número de intentos fallidos.

Capacidades del backdoor

Win32/StealthFalcon es un archivo DLL que, después de ejecutarse, se programa como una tarea que se ejecuta en cada inicio de sesión de usuario. Si bien solo soporta comandos básicos, muestra un enfoque sistemático para la recopilación de datos, exfiltración de datos, el empleo de herramientas maliciosas adicionales y la actualización de su configuración.

Command name Functionality
K Uninstall itself
CFG Update configuration data
RC Execute the specified application
DL Write downloaded data to file
CF Prepare a file for exfiltration
CFW Exfiltrate and delete files
CFWD Not implemented/no operation

Tabla 1. Comandos del backdoor

Por ejemplo, la capacidad fundamental del backdoor, la descarga y la ejecución de archivos, se logra mediante comprobaciones periódicas de librerías llamadas "win*.dll" o "std*.dll" en el directorio desde el que se ejecuta el malware, y cargando estas librerías.

Además, Win32/StealthFalcon recopila archivos y los prepara para la exfiltración almacenando una copia cifrada con un prefijo hardcodeado en una carpeta temporal. Luego, verifica regularmente dichos archivos y los exfiltra automáticamente. Una vez que los archivos se han exfiltrado correctamente, el malware auto elimina todos los archivos de registro y los archivos recopilados (antes de eliminar los archivos los reescribe con datos aleatorios), para evitar el análisis forense y la recuperación de los datos eliminados.

Los valores de configuración son almacenados en la clave de registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions. Todos los valores tienen como prefijo el nombre de archivo del malware (sin la extensión).

Value name suffix Content
-FontDisposition Randomly generated, 4-byte victim ID
-MRUData RC4-encrypted C&C domain
-MRUList RC4-encrypted C&C domain
-IconPosition Flag determining which of the C&C domains should be used
-IconDisposition Number of seconds to sleep after each iteration of contacting the C&C server
-PopupPosition Counter of failed attempts to reach the C&C servers

Tabla 2. Datos de configuración almacenados en el registro

Posible truco para evadir la detección

Es interesante una función que se ejecuta antes de que se inicie cualquier payload malicioso y que parece redundante. Referencia a más de 300 importaciones, pero no las usa en absoluto. En cambio, siempre regresa y continúa con el payload sin realizar una verificación de condición, lo que sugieran que se trata de un truco anti-emulación.

Figura 2. Una función que referencia a cientos de importaciones no utilizadas, posiblemente añadidas para evitar la detección del malware

 

No conocemos la intención precisa de esta función, pero sospechamos que se trata de algún tipo de intento para evadir la detección, o de algunos restos de un framework más grande utilizado por los autores del malware.

Vinculación con Stealth Falcon

Tanto Win32/StealthFalcon como el backdoor basado en PowerShell descrito en el análisis de Citizen Lab, ambos comparten el mismo servidor de C&C: la dirección windowsearchcache [.]com se utilizó como un "Dominio de Servidor C2 de etapa dos" en el backdoor analizado por Citizen Lab, y también en una de las versiones de Win32/StealthFalcon.

Ambos backdoors presentan similitudes significativas en el código; y si bien están escritos en lenguajes diferentes, la lógica subyacente se conserva. Asimismo, ambos utilizan identificadores hardcodeados (probablemente ID de campaña/ID de objetivo). En ambos casos, toda la comunicación de red del host comprometido tiene el prefijo de estos identificadores y está cifrada con RC4 utilizando una clave hardcodeada.

Para su comunicación con el servidor C&C, ambos usan HTTPS pero establecen banderas específicas para que la conexión ignore el certificado del servidor.

Conclusión

Descubrimos y analizamos un backdoor que utiliza una técnica poco común para la comunicación con el C&C (utiliza Windows BITS), y algunas técnicas avanzadas para evitar la detección y el análisis, y para garantizar la persistencia y complicar el análisis forense. Las similitudes en el código y la infraestructura con un malware previamente conocido y creado por Stealth Falcon nos llevan a la conclusión de que el backdoor Win32/StealthFalcon también es el trabajo de este grupo de amenazas.

IoCs

Nombre de detección de ESET

Win32/StealthFalcon

SHA-1

31B54AEBDAF5FBC73A66AC41CCB35943CC9B7F72
50973A3FC57D70C7911F7A952356188B9939E56B
244EB62B9AC30934098CA4204447440D6FC4E259
5C8F83CC4FF57E7C67925DF4D9DAABE5D0CC07E2

Llaves RC4

258A4A9D139823F55D7B9DA1825D101107FBF88634A870DE9800580DAD556BA3
2519DB0FFEC604D6C9A655CF56B98EDCE10405DE36810BC3DCF125CDE30BA5A2
3EDB6EA77CD0987668B360365D5F39FDCF6B366D0DEAC9ECE5ADC6FFD20227F6
8DFFDE77A39F3AF46D0CE0B84A189DB25A2A0FEFD71A0CD0054D8E0D60AB08DE

Note: Malware derives a second RC4 key by XORing each byte of the hardcoded key with 0x3D.

Indicadores basados en host

Nombres de archivo del malware

ImageIndexer.dll
WindowsBackup.dll
WindowsSearchCache.dll
JavaUserUpdater.dll

Patrones de nombre de archivos de registro

%TEMP%\dsc*
%TEMP%\sld*
%TEMP%\plx*

Llave/valores de registro

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions
X-MRUList
X-MRUData
X-FontDisposition
X-IconDisposition
X-IconPosition
X-PopupPosition
X is the malware’s filename (without extension).

Indicadores de redes

Nombres de trabajo BITS

WindowsImages-
WindowsBackup-
WindowsSearchCache-
ElectricWeb

Servidores C&C

footballtimes[.]info
vegetableportfolio[.]com
windowsearchcache[.]com
electricalweb[.]org
upnpdiscover[.]org

Técnicas de MITRE ATT&CK

Tactic ID Name Description
Execution T1059 Command-Line Interface Malware uses cmd.exe to execute some commands.
T1106 Execution through API Malware uses CreateProcessW API for execution.
T1085 Rundll32 Malware uses rundll32.exe to load the backdoor DLL.
T1053 Scheduled Task Malware schedules rundll32.exe to be executed on each login, and subsequently to load the backdoor DLL.
Persistence T1053 Scheduled Task Malware establishes persistence by scheduling a task that loads the backdoor on each user login.
Defense Evasion T1197 BITS Jobs Malware uses BITS file transfer mechanism for network communication, in an attempt to avoid detection.
T1140 Deobfuscate/Decode Files or Information Strings are encrypted with a custom XOR cipher.
#rowspan# #rowspan# Configuration data and log files are encrypted with RC4, using a hardcoded key.
T1107 File Deletion Malware overwrites files with random data, and deletes them after exfiltration.
T1036 Masquerading Malware attempts to disguise itself by using seemingly-legitimate file names.
T1112 Modify Registry Malware stores its configuration in a registry key.
T1027 Obfuscated Files or Information Strings are encrypted with a custom XOR cipher.
#rowspan# #rowspan# Configuration data and log files are encrypted with RC4, using a hardcoded key.
Discovery T1063 Security Software Discovery Malware terminates itself if McAfee Agent binary (cmdagent.exe) is detected.
Collection T1074 Data Staged Malware stores collected data in a temporary folder in files named with a hardcoded prefix.
T1005 Data from Local System Malware has a command to collect/steal a file from the compromised system.
Command and Control T1008 Fallback Channels Malware is able to communicate with two C&C servers; it also supports switching to a different C&C server using a backdoor command.
T1105 Remote File Copy Malware uses BITS Jobs for C&C communication.
T1005 Standard Cryptographic Protocol Malware encrypts C&C communication using RC4 with a hardcoded key.
Exfiltration T1020 Automated Exfiltration Malware automatically exfiltrates files in a temporary folder in files named with a hardcoded prefix.
T1022 Data Encrypted Malware encrypts the collected data using RC4 with a hardcoded key, prior to exfiltration.
T1041 Exfiltration Over Command and Control Channel Malware exfiltrates data over the C&C channel.