O Stealth Falcon é um grupo de ameaças ativo desde 2012, conhecido por ataques a ativistas políticos e jornalistas no Médio Oriente. O grupo tem sido monitorado pela Citizen Lab, uma organização sem fins lucrativos de segurança e direitos humanos que, em 2016, publicou uma análise de um determinado ciberataque desse grupo. Em janeiro de 2019, a agência de notícias britânica Reuters publicou uma reportagem investigativa sobre o Projeto Raven, uma iniciativa que, de acordo com a agência de notícias, emprega ex-agentes da NSA para realizar ataques de ciberespionagem direcionados aos mesmos alvos que o Stealth Falcon.

Com base nestes dois relatórios que se referem aos mesmos alvos e ataques, o especialista em tecnologia sênior da Amnistia Internacional, Claudio Guarnieri, concluiu que o Stealth Falcon e o Project Raven são na realidade o mesmo grupo.

Figura 1. Claudio Guarnieri ligou o Stealth Falcon ao Projecto Raven.

Algumas informações técnicas sobre o Stealth Falcon já se tornaram públicas, principalmente na análise realizada pela Citizen Lab.

O principal componente do ataque documentado no relatório da Citizen Lab foi um backdoor baseado em PowerShell, enviado através de um documento malicioso que foi incluído em um e-mail.

Desta vez, encontramos um backdoor binário, nunca reportado antes, batizado como Win32/StealthFalcon. Neste post, vamos revelar as semelhanças entre este backdoor binário e o script do PowerShell com capacidades de backdoor atribuídos ao grupo Stealth Falcon. Consideramos que as semelhanças existentes são fortes evidências de que o Win32/StealthFalcon foi criado por este grupo.

O backdoor Win32/StealthFalcon, que parece ter sido criado em 2015, permite que o atacante controle remotamente o computador comprometido. Vimos um pequeno número de alvos nos Emirados Árabes Unidos, na Arábia Saudita, na Tailândia e nos Países Baixos - neste último caso, o alvo foi uma missão diplomática de um país do Médio Oriente. A forma como o backdoor foi distribuído e executado nos sistemas afetados está além do escopo desta pesquisa, já que nossa análise está focada em suas capacidades e sua comunicação com o C&C.

Comunicação com o C&C

Em sua comunicação com o servidor C&C, Win32/StealthFalcon usa o componente padrão do Windows conhecido como Background Intelligent Transfer Service (BITS), que é bastante incomum. O BITS foi projetado para transferir grandes quantidades de dados sem consumir uma grande quantidade de banda larga da rede, o que se consegue regulando o fluxo de dados enviados de forma a não afetar as necessidades de banda larga de outros aplicativos. É comumente usado por atualizadores e outros aplicativos projetados para executar em segundo plano. Isto significa que as tarefas BITS são mais prováveis de serem habilitadas por firewalls baseados em host.

Comparado à comunicação tradicional através de funções API, o mecanismo BITS é exposto através de uma interface COM, tornando mais difícil a detecção de um produto de segurança. Além disso, este projeto é confiável e sigiloso. A transferência é retomada automaticamente após ser interrompida por razões como uma interrupção de rede, logout do usuário ou reinicialização do sistema. Além disso, como o BITS ajusta a taxa de transferência de arquivos com base na banda larga disponível, o usuário não tem motivos para suspeitar.

O Win32/StealthFalcon pode alterar a comunicação entre dois servidores C&C cujos endereços são armazenados em uma chave de registro, juntamente com outros valores de configuração, e pode ser atualizado por um dos comandos do backdoor. Se o backdoor falhar em se comunicar com seus servidores C&C, a ameaça se removerá do sistema comprometido após várias tentativas falhas.

Capacidades do backdoor

O Win32/StealthFalcon é um arquivo DLL que, após ser executado, é programado como uma tarefa que é realizada a cada login de usuário. Embora suporte apenas comandos básicos, ele mostra uma abordagem sistemática para coleta de dados, vazamento de dados, uso de ferramentas maliciosas adicionais e atualização de sua configuração.

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

Tabela 1. Comandos do backdoor.

Por exemplo, a capacidade fundamental do backdoor, o download e a execução de arquivos, é alcançada através de verificações periódicas de bibliotecas chamadas "win*.dll" ou "std*.dll" no diretório a partir do qual o malware é executado, e carregando essas bibliotecas.

Além disso, o Win32/StealthFalcon coleta arquivos e os prepara para vazamento, armazenando uma cópia criptografada com um prefixo codificado em uma pasta temporária. Ele então verifica regularmente esses arquivos e os vaza automaticamente. Uma vez que os arquivos foram vazados, o malware exclui automaticamente todos os arquivos de registro e arquivos coletados (antes de excluir os arquivos, ele os reescreve com dados aleatórios), para evitar a análise forense e a recuperação dos dados excluídos.

Os valores de configuração são armazenados na chave de registo HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions. Todos os valores são prefixados com o nome do arquivo do malware (sem a extensão).

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

Tabela 2. Dados de configuração armazenados no registro.

Possível truque para evitar a detecção

Seria interessante uma função que se executa antes que qualquer payload malicioso seja iniciado e que pareça redundante. Fazendo referência a mais de 300 importações, mas não as usa em sua totalidade. Em vez disso, sempre retorna e continua com o payload sem executar uma verificação de condição, sugerindo que este é um truque anti-emulação.

Figura 2: Uma função que se refere a centenas de importações não utilizadas, possivelmente adicionadas para evitar a detecção do malware.

Não sabemos a intenção exata desse recurso, mas suspeitamos que se trata de algum tipo de tentativa de burlar a detecção, ou alguns resquícios de uma estrutura maior usada pelos autores do malware.

Ligação com o Stealth Falcon

Tanto o Win32/StealthFalcon quanto o backdoor baseado no PowerShell descrito na análise do Citizen Lab compartilham o mesmo servidor C&C: o endereço windowsearchcache [.]com foi usado como um "Stage Two C2 Server Domain" no backdoor analisado pelo Citizen Lab, e também em uma das versões do Win32/StealthFalcon.

Ambos backdoors apresentam semelhanças significativas no código - e embora sejam escritos em diferentes idiomas, a lógica subjacente é preservada. Ambos também usam identificadores codificados (provavelmente ID da campanha/ID do alvo). Em ambos os casos, toda a comunicação de rede de host comprometida tem o prefixo desses identificadores e é criptografada com RC4 usando uma chave hardcodeada.

Para sua comunicação com o servidor C&C, ambos usam HTTPS, mas definem sinalizadores específicos para que a conexão ignore o certificado do servidor.

Conclusão

Descobrimos e analisamos um backdoor que usa uma técnica rara de comunicação com o C&C (usa Windows BITS), e algumas técnicas avançadas para evitar detecção e análise, e para garantir a persistência e complicar a análise forense. As semelhanças em código e infraestrutura com um malware previamente conhecido criado pelo Stealth Falcon nos levam à conclusão de que o backdoor Win32/StealthFalcon também é trabalho desse grupo de ameaças.

IoCs

Nome da detecção da ESET

Win32/StealthFalcon

SHA-1

31B54AEBDAF5FBC73A66AC41CCB35943CC9B7F72
50973A3FC57D70C7911F7A952356188B9939E56B
244EB62B9AC30934098CA4204447440D6FC4E259
5C8F83CC4FF57E7C67925DF4D9DAABE5D0CC07E2

Chaves RC4

258A4A9D139823F55D7B9DA1825D101107FBF88634A870DE9800580DAD556BA3
2519DB0FFEC604D6C9A655CF56B98EDCE10405DE36810BC3DCF125CDE30BA5A2
3EDB6EA77CD0987668B360365D5F39FDCF6B366D0DEAC9ECE5ADC6FFD20227F6
8DFFDE77A39F3AF46D0CE0B84A189DB25A2A0FEFD71A0CD0054D8E0D60AB08DE

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

Indicadores baseados no host

Nomes de arquivos do malware

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

Padrões de nomes de arquivos de registro

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

Chave/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

Nomes de trabalho 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.