Varonis descobriu um vírus de mineração de criptografia: nossa investigação



Nossa unidade de investigação de segurança recentemente conduziu um caso de uma rede de vírus de mineração de criptografia quase completamente em uma das empresas de médio porte. Análise
amostras de malware coletadas mostraram que uma nova modificação foi encontrada
tais vírus, chamados Norman , usando vários métodos para ocultar sua presença. Além disso, foi descoberto um shell interativo da web , que pode estar relacionado aos operadores de mineração.

Visão geral do estudo


  • Varonis detectou uma infecção em larga escala com cryptominers: quase todos os servidores e estações de trabalho da empresa foram infectados com esse software
  • Desde a infecção inicial que ocorreu há mais de um ano, o número de modificações e dispositivos infectados aumentou constantemente
  • O novo tipo de minerador de criptografia Monero (Norman) que descobrimos usa vários métodos para ocultá-lo da análise por software de segurança, a fim de evitar a detecção
  • A maioria das variantes de malware usava o DuckDNS (serviço DNS dinâmico gratuito) para conectar-se ao centro de controle (servidores C&C), além de obter parâmetros de configuração ou enviar novos dados
  • Norman - minerador de criptomoeda Monero de código-fonte aberto de alto desempenho - XMRig
  • Não temos evidências conclusivas da conexão de mineradores de criptografia com um shell PHP interativo. No entanto, existem boas razões para acreditar que sua origem é o mesmo invasor. Os pesquisadores coletam evidências adicionais para a presença ou ausência de tal relacionamento.
  • Neste artigo, você pode encontrar recomendações da Varonis sobre proteção contra shells remotos da Web e mineradores de criptografia.

Investigação


A investigação começou durante o próximo projeto piloto da Plataforma
A cibersegurança da Varonis (Varonis Data Security Platform), que permitiu identificar rapidamente vários eventos anômalos suspeitos no nível da rede durante solicitações da Internet (por meio de proxies da web) associados a ações anormais no sistema de arquivos.
O Cliente indicou imediatamente que os dispositivos identificados por nossa Plataforma,
pertencia aos mesmos usuários que relataram recentemente falhas de aplicativos e lentidão na rede.

Nossa equipe examinou manualmente o ambiente do cliente, passando de uma estação infectada para outra, de acordo com os alertas gerados pela Plataforma Varonis. A equipe de resposta a incidentes também desenvolveu uma regra especial no módulo DatAlert para detectar computadores que estavam minerando ativamente, o que ajudou a eliminar rapidamente a ameaça. Amostras do malware coletado foram enviadas para as equipes dos departamentos forenses e de desenvolvimento, que disseram que era necessário realizar pesquisas adicionais sobre as amostras.
Os sites infectados foram descobertos através do uso de chamadas DuckDNS , DNS dinâmico, que permitem que seus usuários criem seus próprios nomes de domínio e os mapeiem rapidamente para alterar os endereços IP. Como mencionado acima, a maior parte do malware no incidente foi para o DuckDNS para se conectar ao centro de controle (C&C), o outro para obter parâmetros de configuração ou enviar novos dados.

Quase todos os servidores e computadores foram infectados com malware. Aplicado principalmente
opções comuns de minerador de criptografia. Outros malwares incluíam ferramentas de despejo de senhas, shells PHP e várias ferramentas estavam em funcionamento há vários anos.

Fornecemos os resultados ao cliente, removemos o malware do ambiente e paramos mais infecções.

Entre todas as amostras descobertas de cripto-dominadores, uma se destacou. Nós o chamamos de Norman .

Me encontre! Norman Cryptominer


Norman é um minerador de criptomoeda Monero de alto desempenho baseado no código XMRig. Ao contrário de outras amostras de mineradores encontradas, Norman usa métodos para ocultá-lo da análise com software de segurança para evitar a detecção e impedir uma distribuição posterior.

À primeira vista, esse malware é um mineiro comum escondido sob o nome svchost.exe. No entanto, o estudo mostrou que ele usa métodos mais interessantes de se esconder da detecção e manutenção do trabalho.

O processo de implantação deste malware pode ser dividido em três estágios:

  • realização;
  • implementação;
  • mineração.

Análise passo a passo


Etapa 1. Execução


A primeira etapa começa com o arquivo executável svchost.exe.

O software malicioso é compilado com o NSIS (Nullsoft Scriptable Install System), o que é incomum. O NSIS é um sistema de código aberto usado para criar instaladores do Windows. Como o SFX, esse sistema cria um arquivo morto e um arquivo de script que são executados durante o instalador. O arquivo de script informa ao programa quais arquivos executar e pode interagir com outros arquivos no arquivo morto.

Nota: Para obter o arquivo de script NSIS do arquivo executável, você deve usar o 7zip versão 9.38, pois essa função não é implementada nas versões posteriores.

O malware arquivado pelo NSIS contém os seguintes arquivos:

  • CallAnsiPlugin.dll, CLR.dll - módulos NSIS para chamar funções .NET DLL;
  • 5zmjbxUIOVQ58qPR.dll - a principal carga útil DLL;
  • 4jy4sobf.acz, es1qdxg2.5pk, OIM1iVhZ.txt - arquivos de carga útil;
  • Retreat.mp3, Cropped_controller_config_controller_i_lb.png são simplesmente arquivos que não estão de forma alguma associados a atividade maliciosa adicional.

O comando do arquivo de script NSIS que executa a carga útil é fornecido abaixo.



O software malicioso é executado chamando a função 5zmjbxUIOVQ58qPR.dll, que usa outros arquivos como parâmetros.

Etapa 2. Implementação


O arquivo 5zmjbxUIOVQ58qPR.dll é a carga útil principal, que segue o script NSIS acima. Uma análise rápida dos metadados mostrou que a DLL era originalmente chamada Norman.dll, e foi por isso que a chamamos.

Arquivo DLL desenvolvido no .NET e protegido contra engenharia reversa por ofuscação tripla
usando o conhecido produto comercial Agile .NET Obfuscator.

No curso da implementação, muitas operações de introdução da auto-introdução em seu próprio processo, bem como em outros processos, estão envolvidas. Dependendo da profundidade de bits do sistema operacional, o malware será
escolha caminhos diferentes para pastas do sistema e inicie processos diferentes.



Com base no caminho para a pasta do sistema, o malware selecionará diferentes processos para iniciar.



A carga útil implementada possui duas funções principais: executar um minerador de criptografia e impedir a detecção.

Se o sistema operacional for de 64 bits


Ao executar o arquivo de origem svchosts.exe (arquivo NSIS), ele cria um novo processo próprio e injeta a carga útil nele (1). Logo depois, ele lança o notepad.exe ou o explorer.exe e injeta um cryptominer nele (2).



Depois disso, o arquivo svchost.exe original é encerrado e o novo arquivo svchost.exe é usado como um programa que monitora a operação do processo do minerador.



Se o sistema operacional for de 32 bits


Durante a execução do arquivo svchosts.exe original (arquivo NSIS), ele duplica seu próprio processo e injeta uma carga útil nele, como na versão de 64 bits.

Nesse caso, o malware injeta a carga útil no processo do usuário explorer.exe. Já a partir dele, o código malicioso inicia um novo processo (wuapp.exe ou vchost.exe) e injeta o minerador nele.



O software malicioso oculta o fato da implementação no explorer.exe, substituindo o código implementado anteriormente por meio do wuapp.exe e dos valores vazios.



Como no caso da execução em um ambiente de 64 bits, o processo svchost.exe original é encerrado e o segundo é usado para injetar novamente o código malicioso no explorer.exe se o processo for encerrado pelo usuário.

No final do algoritmo de execução, o malware sempre injeta o cryptominer em seu processo legítimo.

Ele foi projetado para impedir a detecção desligando o mineiro quando o usuário inicia o Gerenciador de Tarefas.

Observe que, após iniciar o Gerenciador de tarefas, o processo wuapp.exe termina.



Após fechar o gerenciador de tarefas, o malware inicia o processo wuapp.exe repetidamente
introduz um mineiro nele.

Etapa 3. Mineiro


Considere o minerador XMRig mencionado acima.

O software malicioso injeta a versão UPX disfarçada do minerador no bloco de notas, exe, explorer.exe,
svchost.exe ou wuapp.exe, dependendo da profundidade de bits do sistema operacional e do estágio do algoritmo de execução.

O cabeçalho do PE no minerador foi removido e, na captura de tela abaixo, podemos ver que ele está mascarado usando UPX.



Após criar um despejo e reconstruir o executável, conseguimos executá-lo:



Deve-se notar que o acesso ao site XMR de destino é proibido, o que neutraliza efetivamente esse mineiro.

Configuração do mineiro:

"url": "pool.minexmr.com:5555","user": "49WvfokdnuK6ojQePe6x2M3UCD59v3BQiBszkuTGE7wmNJuyAvHM9ojedgxMwNx9tZA33P84EeMLte7t6qZhxNHqHyfq9xA","pass":"x" 

Misteriosa shell PHP transferindo dados para a C&C


No decorrer desta investigação, nossos especialistas forenses descobriram um arquivo XSL que chamou sua atenção. Após análise profunda da amostra, um novo shell PHP foi descoberto, constantemente conectado ao centro de controle (servidor C&C).

Em vários servidores no ambiente do cliente, foi encontrado um arquivo XSL iniciado pelo conhecido executável Windows (mscorsv.exe) a partir de uma pasta no diretório sysWOW64.

A pasta do malware foi chamada de AutoRecuperação e continha vários arquivos:

  • Arquivo XSL: xml.XSL
  • nove arquivos dll

Arquivos executáveis:
  • Msscorsv.exe
  • Wmiprvse.exe



Arquivo XSL


Arquivos XSL são folhas de estilo semelhantes às tabelas usadas em CSS que descrevem como exibir um documento XML.

Usando o bloco de notas, descobrimos que na verdade não era um arquivo XSL, mas o código PHP oculto do Zend Guard. Este fato curioso sugeriu que este
carga útil de malware com base em seu algoritmo de execução.



Nove DLLs


Uma análise inicial do arquivo XSL nos levou a concluir que ter tantos
DLLs fazem algum sentido. A pasta principal contém uma DLL chamada php.dll e três outras bibliotecas relacionadas ao SSL e MySQL. Nas subpastas, os especialistas encontraram quatro bibliotecas PHP e uma biblioteca Zend Guard. Todos eles são legítimos e são obtidos no pacote de instalação do PHP ou como dlls externos.

Nesta fase, assumiu-se que o malware era baseado em PHP e ofuscado pelo Zend Guard.

Executáveis


Também nesta pasta estavam dois arquivos executáveis: Mscorsv.exe e Wmiprvse.exe.

Após analisar o arquivo mscorsv.exe, descobrimos que ele não foi assinado pela Microsoft, embora o parâmetro ProductName tenha sido definido como “Microsoft. Estrutura de rede ".
No começo, parecia estranho, mas a análise do Wmiprvse.exe tornou possível entender melhor a situação.

O arquivo Wmiprvse.exe também não foi assinado, mas continha o símbolo de direitos autorais do grupo PHP e o ícone PHP. Durante uma varredura superficial, os comandos da ajuda do PHP foram encontrados em suas linhas. Ao executá-lo com a opção -version, descobriu-se que este é um arquivo executável projetado para executar o Zend Guard.



Quando o mscorsv.exe foi iniciado da mesma maneira, os mesmos dados foram exibidos. Comparamos os dados binários desses dois arquivos e vimos que eles são idênticos, com exceção dos metadados
Copyright e nome da empresa / nome do produto.



Com base nisso, concluiu-se que o arquivo XSL contém código PHP que é executado usando o executável Zend Guard, oculto sob o nome mscorsv.exe.

Analisando um arquivo XSL


Usando a pesquisa na Internet, os especialistas rapidamente receberam uma ferramenta para desobstruir o Zend Guard e restauraram o arquivo xml.XSL original:



Verificou-se que o malware em si é um shell PHP constantemente conectado ao centro de controle (servidor C&C).

Os comandos e a saída que ele envia e recebe são criptografados. Como recebemos o código-fonte, tínhamos uma chave de criptografia e comandos.

Este malware contém a seguinte funcionalidade interna:

  • Eval - normalmente usado para modificar variáveis ​​existentes no código
  • Registro de arquivo local
  • Recursos de banco de dados
  • Recursos PSEXEC
  • Execução oculta
  • Mapeamento de Processo e Serviço

A variável a seguir sugere que o malware possui várias versões.



Ao coletar amostras, as seguintes versões foram descobertas:

  • 0.5f
  • 0.4p
  • 0.4o

A única função de garantir a presença constante de malware no sistema é que, quando executado, ele cria um serviço que se executa, e seu nome
varia de versão para versão.

Os especialistas tentaram encontrar amostras semelhantes na Internet e encontraram malware,
que, na opinião deles, era a versão anterior da amostra existente. O conteúdo da pasta era semelhante, mas o arquivo XSL era diferente e um número de versão diferente foi especificado nele.

Parle Wu Malvare?


Talvez o local de nascimento desse malware seja a França ou outro país de língua francesa: o arquivo SFX continha comentários em francês que indicam que o autor usou a versão francesa do WinRAR para criá-lo.



Além disso, algumas variáveis ​​e funções no código também foram nomeadas em francês.





Monitorando a execução e aguardando novas equipes


Os especialistas modificaram o código do malware e lançaram com segurança o já modificado
versão para coletar informações sobre as equipes que recebeu.



No final da primeira sessão de comunicação, os especialistas viram que o malware recebeu um comando codificado com Base64 como argumento para a chave de inicialização EVAL64.
Este comando é decodificado e executado. Ele altera várias variáveis ​​internas (o tamanho dos buffers de leitura e gravação), após o qual o malware entra no ciclo de trabalho de espera por comandos.

Nenhuma nova equipe foi recebida no momento.

Shell interativo PHP e minerador de criptografia: eles estão relacionados?


Os especialistas da Varonis não têm certeza se Norman está associado ao shell do PHP, pois há argumentos significativos a favor e contra essa suposição:

Por que eles podem estar relacionados


  • Nenhuma das amostras de software malicioso de mineração de criptografia teve a capacidade de distribuir independentemente para outros sistemas, apesar de terem sido encontradas em vários dispositivos em diferentes segmentos de rede. É possível que o invasor tenha infectado cada nó separadamente (possivelmente usando o mesmo vetor de ataque que infectou o "paciente zero"), embora seja mais eficiente usar um shell PHP para se espalhar pela rede que foi o alvo do ataque.
  • Campanhas automatizadas direcionadas em larga escala direcionadas a uma organização específica geralmente deixam artefatos técnicos ou traços reconhecíveis de ameaças à segurança cibernética em sua implementação. Nesse caso, nada desse tipo foi encontrado.
  • Norman e o shell PHP usaram o serviço DuckDNS.

Por que eles podem não estar relacionados


  • Não há semelhanças técnicas entre as opções de malware de mineração de criptografia e o shell PHP. O cryptominer malicioso foi criado em C ++ e o shell em PHP. Além disso, não há semelhanças na estrutura do código e as funções de rede são implementadas de maneira diferente.
  • Não há interação direta entre as opções de malware e o shell PHP para troca de dados.
  • Eles não têm comentários gerais do desenvolvedor, arquivos, metadados ou impressões digitais.

Três recomendações para proteção contra cascas removidas


O software malicioso, que requer comandos do centro de controle (servidores C&C), não se parece com vírus comuns. Suas ações não são tão previsíveis e se assemelham às ações de um hacker ou pentester realizado sem ferramentas ou scripts automatizados. Portanto, detectar esses ataques sem assinaturas de malware é uma tarefa mais complexa do que as verificações antivírus convencionais.

Abaixo estão três recomendações para proteger as empresas contra shells remotos:
  1. Mantenha todos os softwares atualizados
    Os invasores costumam explorar vulnerabilidades em software e sistemas operacionais para se espalhar pela rede da organização e procurar dados de interesse para
    roubo. A instalação oportuna de patches reduz significativamente o risco de tais ameaças.
  2. Rastrear eventos anormais de acesso a dados
    Provavelmente, os atacantes tentarão exibir os dados confidenciais da organização em todo o perímetro. O monitoramento de eventos anormais de acesso a esses dados permitirá
    detectar usuários comprometidos e todo o conjunto de pastas e arquivos que realmente podem cair nas mãos dos atacantes, e não considerar apenas todos os dados disponíveis para esses usuários.
  3. Rastrear tráfego de rede
    Graças ao uso de um firewall e / ou servidor proxy, é possível detectar e bloquear conexões maliciosas com centros de controle de malware (servidores C&C), o que impedirá que os invasores executem comandos e dificulta a tarefa de saída
    dados de perímetro.

Preocupado com a questão da mineração cinza? Seis recomendações de proteção:

  1. Mantenha todos os sistemas operacionais atualizados.
    O gerenciamento de patches é muito importante para evitar o uso indevido de recursos e a infecção por malware.
  2. Monitorar o tráfego de rede e proxies da Web
    Faça isso para detectar alguns ataques e para impedir parte deles, você pode bloquear o tráfego com base em informações sobre domínios maliciosos ou limitar canais de transmissão de dados desnecessários.
  3. Use e mantenha soluções antivírus e sistemas de segurança de terminais (mas em nenhum caso se limite a usar apenas essa camada de proteção).
    Os produtos nos dispositivos finais permitem a detecção de criptominadores conhecidos e a prevenção de infecções antes que o desempenho dos sistemas e o uso de eletricidade sejam comprometidos. Deve-se ter em mente que novas modificações ou novos métodos para impedir a detecção podem fazer com que os recursos de segurança nos dispositivos finais não detectem novas versões do mesmo malware.
  4. Monitorar a atividade da CPU do computador
    Como regra, os mineradores de criptografia usam o processador central do computador para mineração. É necessário analisar todas as mensagens sobre a degradação do desempenho ("Meu computador começou a ficar lento".).
  5. Monitore o DNS para uso incomum de serviços de DNS dinâmico (como DuckDNS) \

    Apesar do fato de o DuckDNS e outros serviços de DNS dinâmico não serem prejudiciais ao sistema, o uso do malware DuckDNS simplificou a detecção de nós infectados pelas equipes de especialistas envolvidas na investigação.
  6. Desenvolver um plano de resposta a incidentes
    Verifique se você possui os procedimentos necessários descritos para esses incidentes que detectam, limitam e eliminam automaticamente a ameaça da mineração de criptografia cinza.

Nota para os clientes da Varonis.
O Varonis DatAlert inclui modelos de ameaças que detectam malware para mineração de criptografia. Os clientes também podem criar suas próprias regras para a descoberta direcionada de software com base em domínios candidatos à lista negra. Para garantir que você esteja usando a versão mais recente do DatAlert e aplicando os modelos de ameaças apropriados, entre em contato com seu representante de vendas ou o suporte da Varonis.

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


All Articles