Devido a melhorias de segurança nos sistemas operacionais, o uso de rootkits está em declínio há vários anos. A este respeito, os desenvolvedores de malware - especialmente aqueles que trabalham em grupos de espionagem - estão ocupados desenvolvendo novos e sigilosos userland malwares.
Recentemente, pesquisadores da ESET investigaram um sofisticado backdoor usado pelo grupo de espionagem Turla, também conhecido como Snake. Esse backdoor, chamado LightNeuron, está segmentando especificamente o servidor de e-mail do Microsoft Exchange desde pelo menos 2014 e continua sendo usado em ações recentes. Embora não haja amostras disponíveis para análise, os detalhes no código na versão do Windows nos fazem acreditar que existe uma variante para o Linux.
Organizações vítimas do LightNeuron
Durante a nossa pesquisa e investigação, pudemos identificar pelo menos três organizações vítimas que foram vítimas da ameaça, entre elas, uma brasileira - como você pode ver na Figura 1.
Duas das vítimas - um ministério de Relações Exteriores e uma organização diplomática regional - estão associadas a uma recente campanha do grupo Turla que analisamos.
Atribuição ao Turla
Acreditamos, sem medo de errar, que o grupo Turla é quem opera o LightNeuron. Os aspectos a seguir, coletados durante nossa investigação, respaldam esta afirmação:
- Em um dos servidores Exchange comprometidos: um script do PowerShell contendo malware anteriormente atribuído ao Turla foi descartado 44 minutos antes do script do PowerShell usado para instalar o LightNeuron e ambos os scripts estavam localizados em C:\windows\system32.
- O script usado para instalar o LightNeuron tem um nome de arquivo - ps1 - que se parece com os típicos nomes de arquivos usados pelo Turla.
- Em outro servidor comprometido, o IntelliAdmin - uma ferramenta de administração remota, empacotada com um empacotador usado apenas pelo grupo Turla - foi droppeado pelo LightNeuron.
- Para cada ataque do LightNeuron, houve várias outras instâncias de malware do Turla na mesma rede.
- O endereço de e-mail usado pelos atacantes foi registrado na GMX por alguém que se passou por um funcionário da organização apontada como alvo. O mesmo provedor foi usado para o backdoor do Outlook e para um backdoor não-documentado do PowerShell que chamamos de PowerStallion.
Além disso, em um relatório de tendências do APT, pesquisadores da Kaspersky Labs atribuíram, sem muita certeza, o LightNeuron ao grupo Turla.
Atividade do operador
Ao analisar um ativo comprometido, conseguimos reconstituir parte das atividades dos atacantes. Em particular, conseguimos mapear as horas de trabalho dos operadores. Para isso usamos o tempo em que o servidor Exchange comprometido recebia os e-mails que continham comandos para o backdoor.
Nossa primeira observação é que a atividade está muito bem alinhada com a jornada de trabalho típica, que vai das 9h às 17h para o fuso horário UTC+3, como pode ser visto na Figura 2.
Nossa segunda observação é que nenhuma atividade foi observada entre 28 de dezembro de 2018 e 14 de janeiro de 2019, enquanto que, tanto antes como depois desse período os atacantes enviaram vários e-mails por semana. Esta pausa nas atividades corresponde ao período de recesso natalino.
Características principais
O LightNeuron é, até onde sabemos, o primeiro malware direcionado especificamente para os servidores de e-mail do Microsoft Exchange. Ele usa uma técnica de persistência nunca vista antes: um Transport Agent. Na arquitetura do servidor de e-mail, ele opera no mesmo nível de confiança dos produtos de segurança, como filtros de spam. A Figura 3 resume como o LightNeuron opera.
Ao pressionar o acesso do Transport Agent, o LightNeuron é capaz de:
- Ler e modificar qualquer e-mail através do servidor de e-mail.
- Criar e enviar novos e-mails.
- Bloquear qualquer e-mail. O destinatário original não receberá o e-mail.
Um conjunto de regras XML flexíveis permite essas funções, como você pode ver na Figura 4.
<class name="zip" metric="30" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<and>
<or>
<To condition="cnt" value="email1@[redacted]" />
<From condition="cnt" value="email1@[redacted]" />
<To condition="cnt" value="email2@[redacted]" />
<From condition="cnt" value="email2@[redacted]" />
[...]
</or>
<and>
<To condition="!cnt" value="email3@[redacted]" />
<From condition="!cnt" value="email3@[redacted]" />
[...]
</and>
</and>
</rule>
</class>
<class name="command" metric="40" id="1" dllName="ZipMe" type="dll" include="1">
<rule metric="10" id="1" include="1">
<attachment_Content-Type condition="cnt" value="image/jpeg" />
</rule>
</class>
log:logHandler
zip:zipHandler
changeSubject:changeSubjectHandler
changeBody:changeBodyHandler
create:createHandler
command:commandHandler
block:blockHandler
replace:replaceHandler
stat:statHandler
Figura 4 - Exemplo esboçado de um arquivo de regras.
Os endereços de e-mail usados nessas regras são personalizados para cada vítima com o objetivo de apontar para as pessoas mais interessantes.
No final das regras, há uma lista dos handlers implementados pelo LightNeuron. Essas funções são usadas nas regras para processar os e-mails. A Tabela 1 descreve os onze handlers diferentes.
Handler name | Description |
---|---|
block | Block the email |
changeBody | Change the body of the email |
changeTo | Change the recipient of the email |
changeSubject | Change the subject of the email |
command | Parse the jpg/pdf attachment, decrypt and execute the commands. |
create | Create a new email |
log | Log email attachment in LOG_OUTPUT |
replace | Replace the attachment |
spam | Re-create and re-send the email from the exchange server to bypass the spam filter |
stat | Log the From, Date, To, and Subject headers in CSV format in STAT_PATH |
zip | Encrypt the email with RSA and store it in the path specified by ZIP_FILE_NAME. |
Tabela 1 - Descrição dos handlers implementados na DLL
Backdoor
O comando handler é diferente dos outros que fazem modificações nos e-mails. É um backdoor controlado pelo e-mail. Os comandos estão ocultos em anexos PDF ou JPEG usando esteganografia.
Os atacantes só precisam enviar um e-mail contendo um documento PDF ou uma imagem JPEG especialmente criada para qualquer endereço de e-mail das organizações envolvidas. Isso permite assumir o controle total do servidor Exchange através do uso dos comandos mostrados na Tabela 2.
Instruction Code | Description | Argument 1 | Argument 2 | Argument 3 |
---|---|---|---|---|
0x01 | Write an executable. Execute it if it is an executable. | Exe path | N/A | File data |
0x02 | Delete a file | File path | N/A | N/A |
0x03 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x04 | Execute a process (CreateProcess) | Command line | N/A | N/A |
0x05 | Execute a command line (cmd.exe /c) | Command line | N/A | N/A |
0x06 | Return 0 | N/A | N/A | N/A |
0x07 | Disable backdoor for x minutes. | Minutes | N/A | N/A |
0x09 | Exfiltrate a file | File path | Set to “1” to delete the file | N/A |
0x65 | Return 0 | N/A | N/A | N/A |
Tabela 2 - Lista de códigos de instruções.
Depois que um e-mail é reconhecido como um e-mail comando, o comando é executado e o e-mail é bloqueado diretamente no servidor do Exchange. Desta forma, o atacante trabalha de forma sigilosa e o destinatário original não poderá vê-lo.
Esteganografia
O LightNeuron usa esteganografia para ocultar seus comandos dentro de um documento PDF ou imagem JPEG. Dessa forma, mesmo que o e-mail seja interceptado, a mensagem terá uma aparência legítima, pois contém um anexo válido.
No caso de um PDF, os dados do comando podem estar em qualquer parte do documento. Os operadores do LightNeuron só adicionaram um cabeçalho no início do PDF para especificar o ponto em que os dados estão localizados, como pode ser visto na Figura 5.
Uma vez que este grupo de dados tenha sido decifrado usando o AES-256, ele revela uma estrutura personalizada que pode ser vista na Figura 6.
Os campos mais interessantes são:
- Deslocamento 0x08, o endereço de e-mail para o qual o resultado do comando é enviado.
- Deslocamento 0x1D, o código de instrução. Corresponde a uma das funções descritas acima.
- Deslocamento 0x25, o primeiro argumento. Você irá para a função representada pelo código de instrução.
Se um e-mail contendo esse contêiner de comando, incorporado em um arquivo JPG ou em um PDF, for enviado para um servidor comprometido pelo LightNeuron, uma calculadora será executada no servidor do Microsoft Exchange.
Limpeza
A limpeza do LightNeuron não é uma tarefa fácil. O simples fato de eliminar os dois arquivos maliciosos interromperá o Microsoft Exchange, impedindo que todos na organização enviem e recebam e-mails. Antes de realmente excluir os arquivos, o Transport Agent malicioso deve ser desativado. Antes de implementar um mecanismo de limpeza, recomendamos que você leia o documento técnico completo.
Conclusão
Nos últimos anos, publicamos vários artigos e white papers que detalham as diferentes atividades do grupo Turla, incluindo os ataques de "Man in the Middle" contra o adobe.com ou o sofisticado userland malware. No entanto, até o momento, aparentemente o LightNeuron ganhou o título de malware mais avançado no arsenal do Turla.
Ao se apoiar em um mecanismo de persistência nunca antes visto, como o Transport Agent do Microsoft Exchange, o LightNeuron permite que seus operadores permaneçam sob o radar por meses ou anos. A ameaça permite que atacantes possam ter acesso a documentos confidenciais e controlar outras máquinas locais através de um mecanismo de C&C que é muito difícil de detectar e bloquear.
Continuaremos monitorando de perto as atividades do grupo Turla para fazer com que as vítimas possam proteger suas redes.
Uma lista completa de indicadores de compromisso (IoC) e amostras pode ser encontrada no white paper completo e no GitHub.
Para uma análise detalhada desse backdoor, confira o nosso documento técnico Turla LightNeuron: One Email Away from Remote Code Execution. Para qualquer dúvida ou para enviar amostras relacionadas ao assunto, entre em contato conosco através do e-mail threatintel@eset.com.