Winnti: um ataque às cadeias de suprimentos - desenvolvedores de jogos asiáticos estão na vanguarda

Essa não é a primeira vez que atacantes atacam a indústria de jogos, comprometem os desenvolvedores, adicionam backdoors ao ambiente de criação do jogo e distribuem malware sob o disfarce de um legítimo. Em abril de 2013, a Kaspersky Lab relatou um incidente semelhante. Esse ataque é atribuído a um grupo cibernético chamado Winnti.

Recentemente, os especialistas da ESET foram atraídos por novos ataques às cadeias de suprimentos. Dois jogos e uma plataforma de jogos foram comprometidos para introduzir um backdoor. Esses ataques visam a Ásia e a indústria de jogos, com o Winnti novamente atrás deles.


Três casos, um backdoor


Apesar das diferentes configurações de malware, os três produtos de software comprometidos incluíam o mesmo código de backdoor e foram lançados usando o mesmo mecanismo. Agora não há backdoors em dois produtos, mas um ainda está distribuído em uma versão trojanizada - ironicamente, esse jogo é chamado Infestation, lançado pela empresa tailandesa Extreme Extreme. Tentamos entrar em contato com o desenvolvedor desde o início de fevereiro, mas até agora sem sucesso.

Analisaremos como a carga maliciosa é introduzida e consideraremos a backdoor em detalhes.

Implementação de carga útil


O código da carga útil é executado durante a execução do executável trojanizado. Imediatamente após o ponto de entrada do PE, a chamada de inicialização do C Runtime padrão ( __scrt_common_main_seh na figura abaixo) é interceptada para iniciar a carga maliciosa antes de qualquer outra coisa (Figura 2). Isso pode indicar que os atacantes alteraram a configuração do assembly, e não o próprio código fonte.



Figura 1. Ponto de entrada líquido no arquivo executável



Figura 2. Ponto de entrada de um executável comprometido

O código adicionado ao executável descriptografa e inicia o backdoor na RAM antes de retomar a execução normal do código de inicialização do Runtime C e do código do aplicativo host subsequente. A carga útil interna possui uma estrutura especial, mostrada na figura abaixo, que é interpretada pelo código de descompressão adicionado.



Figura 3. Estrutura de carga útil incorporada

Ele contém a chave RC4 (XOR criptografado com 0x37), usada para descriptografar o nome do arquivo e o arquivo DLL incorporado.

Carga maliciosa


A carga útil maliciosa real contém apenas 17 KB de código e dados.

Configuração


Os dados de configuração mostrados na figura abaixo são uma lista de linhas separadas por espaços.



Figura 4. Dados de configuração da carga útil

A configuração consiste em quatro campos:

  1. URL do servidor C & C de gerenciamento.
  2. A variável (t) usada para determinar o tempo limite em milissegundos antes de continuar. O tempo de espera é selecionado no intervalo de 2/3 a 5/3 t aleatoriamente.
  3. Linha que identifica a campanha.
  4. Uma lista de nomes de arquivos executáveis, separados por ponto e vírgula. Se algum deles funcionar, o backdoor interrompe sua execução.

Identificamos cinco versões da carga útil:



Nas três primeiras opções, o código não foi recompilado, mas os dados de configuração foram editados no próprio arquivo DLL. O restante do conteúdo é uma cópia em bytes.

Infraestrutura C&C


Os nomes de domínio são escolhidos de forma a se parecer com os sites dos desenvolvedores de aplicativos comprometidos. O domínio de nível superior está configurado para redirecionar para o site legítimo correspondente usando o serviço Namecheap, enquanto o subdomínio aponta para um servidor C&C mal-intencionado.



No momento da redação deste artigo, nenhum dos domínios estava disponível, os servidores C&C não estavam respondendo.

Relatório do estudo


O ID do bot é gerado a partir do endereço MAC da máquina. O backdoor transmite informações da máquina para o servidor C&C, incluindo nome de usuário, nome do computador, versão do Windows e idioma do sistema, e aguarda um comando. Os dados são criptografados com o XOR usando a chave “ *&b0i0rong2Y7un1 ” e codificados com a base64. Os dados recebidos do servidor C&C são criptografados usando a mesma chave.

Equipas


Um backdoor simples suporta apenas quatro equipes que podem ser usadas por atacantes:

- DownUrlFile
- DownRunUrlFile
- RunUrlBinInMem
- UnInstall

Os nomes das equipes falam por si. Eles permitem que os invasores executem executáveis ​​adicionais a partir de um determinado URL.

Talvez o último comando seja menos óbvio. UnInstall não remove o malware do sistema. No final, ele é incorporado em um arquivo executável legítimo que ainda será executado. Em vez de excluir algo, o comando desabilita o código malicioso, definindo o valor como 1 para a chave do Registro:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ImageFlag

Depois de iniciar a carga, o valor do registro é solicitado e, se especificado, a execução é cancelada. Talvez os invasores estejam tentando reduzir a carga em seus servidores C&C, evitando retornos de chamada de vítimas sem interesse.

Segunda etapa


De acordo com a telemetria, uma das cargas de segundo estágio enviadas às vítimas é o Win64 / Winnti.BN. Até onde sabemos, o conta-gotas desse malware é baixado via HTTPs do api.goallbandungtravel[.]com . Vimos que ele foi instalado como um serviço do Windows e como uma DLL em C:\Windows\System32 usando os seguintes nomes de arquivo:

- cscsrv.dll
- dwmsvc.dll
- iassrv.dll
- mprsvc.dll
- nlasrv.dll
- powfsvc.dll
- racsvc.dll
- slcsvc.dll
- snmpsvc.dll
- sspisvc.dll

As amostras que analisamos eram grandes o suficiente - cerca de 60 MB. No entanto, isso é apenas visibilidade, pois o tamanho real ou o arquivo PE é de 63 a 72 KB, dependendo da versão. Muitos arquivos limpos são simplesmente adicionados a arquivos maliciosos. É provável que isso seja feito por um componente que redefine e instala um serviço mal-intencionado.

Depois de iniciar o serviço, ele adiciona a extensão .mui ao .mui DLL e a descriptografa usando o RC5. O arquivo MUI descriptografado contém código independente da posição com deslocamento 0. A tecla RC5 é obtida a partir do número de série do disco rígido e da linha “ f@Ukd!rCto R$. " Não foi possível obter os arquivos MUI ou o código que os instala primeiro. Assim, o objetivo exato do serviço malicioso é desconhecido para nós.

Versões recentes de malware incluem um mecanismo de atualização automática usando o servidor C & C http://checkin.travelsanignacio[.]com . Este servidor serviu a versão mais recente dos arquivos MUI criptografados com a chave estática RC5. No decorrer de nossa pesquisa, este servidor C&C não respondeu.

Objetivos


Vamos começar com aqueles para os quais a campanha não é direcionada especificamente. No início da carga, o malware verifica se o idioma do sistema é russo ou chinês (veja a figura abaixo). Se a resposta for sim, o programa para de funcionar. É impossível contornar essa exceção - os invasores não estão fundamentalmente interessados ​​em computadores com essas configurações de idioma.



Figura 5. Verificando o idioma antes de ativar a carga útil

Estatísticas de distribuição


De acordo com a telemetria, a maioria das infecções ocorreu na Ásia, especialmente na Tailândia. Dada a popularidade do aplicativo comprometido, que ainda está sendo distribuído pelo desenvolvedor, não surpreende que o número de vítimas chegue a dezenas e centenas de milhares.



Conclusão


Os ataques da cadeia de suprimentos são difíceis de detectar no lado do usuário. É impossível analisar todo o software em execução, bem como todas as atualizações recomendadas. Por padrão, o usuário confia nos desenvolvedores e assume que seus arquivos não contêm código malicioso. Provavelmente, é por isso que vários grupos cibernéticos têm como alvo ataques a fornecedores de software - o comprometimento permitirá a criação de uma botnet, cujo tamanho é comparável à popularidade do software trojanizado. Essa tática tem uma desvantagem - quando o esquema é revelado, os invasores perdem o controle da botnet e os usuários podem limpar o sistema instalando a próxima atualização.

Atualmente, os motivos do grupo cibernético Winnti são desconhecidos. Talvez os invasores estejam buscando ganhos financeiros ou planejando usar a botnet como parte de uma operação maior.

Os produtos ESET detectam a ameaça como Win32 / HackedApp.Winnti.A, Win32 / HackedApp.Winnti.B, a carga útil como Win32 / Winnti.AG, o segundo estágio como Win64 / Winnti.BN.

Indicadores de compromisso estão disponíveis aqui .

Source: https://habr.com/ru/post/pt443416/


All Articles