Rastreando de ameaças emergentes de criptografia

Uma de nossas fontes de inteligência contra ameaças na Defiant é a limpeza de sites invadidos. Nesse caso, Ivan, um membro de nossa equipe de SST, limpou um site invadido e me forneceu os dados forenses para análise. O site havia sido invadido por meses antes de o proprietário descobrir que ele havia sido comprometido.

Minha rotina normal é começar verificando os arquivos que já detectamos para verificar se há alguma nova inteligência dentro de qualquer um deles. Geralmente não existe, e esta infecção não produziu surpresas nos arquivos que o Wordfence já detectou.

O que me surpreendeu é que o servidor tinha um grande número de arquivos maliciosos que não vimos antes. O servidor foi infectado por um longo tempo, o que pode ter deixado o invasor confiante o suficiente para fazer o upload de um código mais valioso. Para nós, um servidor com um código que não vimos antes é um tesouro, pois nos permite imediatamente adicionar novos recursos de detecção ao verificador de malware do Wordfence. Se um invasor for pego nesta situação, ele geralmente terá um dia ruim, porque muitos de seus arquivos que podem não ter sido detectados anteriormente por scanners de malware agora serão detectados por nossa varredura.

A primeira coisa que tornou esse atacante diferente dos outros é que, em vez de usar um ofuscador de código javascript padrão que apenas codifica o código, eles estavam usando uma lista de palavras finitas para substituir nomes de variáveis ​​e funções no código. Quando você olha para o código, os nomes das variáveis ​​e das funções parecem apenas rabiscos:

function flu(sake,immobilitys)
{
chains = neatly / seehis;
plotted = airs / lucky;
storm = immediately + lowly;
guests = soothed – lucie;
}

Eu procurei imediatamente por outros arquivos semelhantes das amostras restantes e encontrei vários, em seguida, continuei a escrever novas assinaturas para detectar esses arquivos. Isso realizado, mudei para o próximo arquivo na lista. Esse foi um arquivo PHP básico que redireciona seletivamente os usuários comuns, e não os mecanismos de busca, para um site malicioso. Essa é uma coisa padrão que vemos, então eu escrevi uma assinatura para detectar essa variante de malware atualizada e segui em frente.

Um binário criptográfico é encontrado
O terceiro arquivo foi um pouco mais interessante. Era um objeto compartilhado LSB de 64 bits ELF, x86-64, executável dinamicamente vinculado e separado. É um arquivo compilado projetado para rodar em um sistema Linux com uma arquitetura específica, que possui dados de depuração significativos removidos. É semelhante a um arquivo .exe do Windows. Estes são relativamente raros de ver em infecções do WordPress, porque a maioria dos servidores web não estão configurados para permitir a execução de executáveis ​​arbitrários e, para que isso funcione, um invasor precisa fazer mais trabalho.

Como já sabemos que esse arquivo de mistério está fazendo algo mal-intencionado, um bom primeiro passo é verificar se outro software antivírus já o identificou. O VirusTotal é uma maneira padrão do setor de atingir esse objetivo e, com certeza, alguns dos fornecedores suportados detectam e identificam o arquivo .

virustotal-cryptominer-detection

Os nomes que o VirusTotal retornou fornecem uma sugestão do que é o arquivo:

  • Misc.Riskware.BitCoinMiner.Linux,
  • LINUX / BitCoinMiner.dbwhf,
  • não-um-vírus: HEUR: RiskTool.AndroidOS.Miner.b,

e similar sugere que este é um mineiro de criptomoeda. Neste ponto, realizei uma inspeção superficial do arquivo binário para procurar por strings de texto simples ou desmontagem reconhecível e rapidamente identifiquei a compilação específica: Este é um xmrig ( https://github.com/xmrig/xmrig ) focado em Monero mineiro, bem conhecido naquela comunidade. Outros artefatos dentro do arquivo me permitem confirmar que ele foi compilado em 2018-01-16 com uma versão moderna do GCC.

Eu poderia dizer que houve algumas modificações do código-fonte original. Uma rápida olhada revelou que a alteração estava codificando os endereços para enviar os resultados – os endereços do pool – para que qualquer um que execute esse arquivo específico envie dinheiro para o invasor. Neste ponto, eu tinha informações mais do que suficientes para escrever uma assinatura confiável para detectar esse malware, e rapidamente o fiz. Temos mais amostras e eu ainda não tinha descoberto como o atacante corre e gerencia esse mineiro zumbi hackeado.

Analisando o arquivo de configuração

O próximo arquivo único mostra outro nível incomum de sofisticação técnica do atacante “comum” do WordPress: Uma configuração separada! Tendo acabado de ver o xmrig, é fácil dizer que este arquivo JSON contém instruções sobre como executar o executável de mineração.

Ele inclui instruções para executar em segundo plano (oculto), usar apenas 40% da CPU máxima disponível, diminuir a velocidade se a máquina estiver ocupada e outros detalhes técnicos específicos relacionados ao processo de mineração. Felizmente para nós, normalmente é uma péssima idéia usar cryptominers em seu servidor WordPress se você for a pessoa que paga por isso, então posso adicionar uma assinatura com segurança para identificar esse código de configuração que é benigno sem criar falsos positivos.

Descobrindo os Servidores de Comando e Controle

Com a nossa próxima amostra, atingimos o jackpot. É um script backdoor do Python que, durante a execução, procura novas instruções contra um comando centralizado e um servidor de controle a cada 5 minutos. O backdoor em si é escrito para se esconder dos administradores do sistema. Ele se disfarça como php-fpm ( https://php-fpm.org ), que é um processo normal para ser executado naquele servidor, e é “bem-comportado”. Ou seja, ele fica silencioso e a maior parte do o tempo não está fazendo nada incomum ou malicioso.

Construído no backdoor está uma função de relatório, usada para fornecer dados ao atacante sobre a máquina hackeada e atualizações de status de qualquer atividade, e uma variedade de tarefas normais de administração do sistema relacionadas ao download de arquivos, controle de processos e execução de comandos. O código é bem formado e tem atualizações e ajustes óbvios, o que implica que o atacante vem desenvolvendo e usando esse backdoor há algum tempo. O método de ocultação e o intervalo para verificar novos comandos são facilmente configuráveis ​​para escapar dos sistemas de detecção de intrusões e firewalls.

Mais importante ainda, o endereço IP e o método de comunicação do servidor de comando e controle estão agora disponíveis para nós. Verifiquei que ainda está “on-line” – on-line e respondendo a solicitações – e coloque um alfinete nele. Primeiro, eu precisava desenvolver uma assinatura para que o Wordfence detectasse esse backdoor, então inspecionei as amostras restantes para obter mais dicas sobre o invasor antes que eu me arriscasse a me expor como invasor de sua botnet .

Apenas uma das amostras restantes é digna de nota e relacionada ao backdoor. É um pequeno script Bash usado para iniciar o backdoor em execução. Duas coisas aqui novamente indicam um invasor relativamente sofisticado: o backdoor é instalado para se parecer com uma parte comum de um shell Linux e é executado de forma que pareça que o proprietário legítimo do servidor executou um comando inócuo. É fácil escrever uma assinatura para detectar, agora que a vimos. Mas essa técnica é um desvio efetivo para um sysop tentando identificar de onde vem a atividade maliciosa. Se o invasor tivesse excluído esse arquivo remanescente, provavelmente teria sido impossível identificar como o backdoor foi iniciado, dada a falta de registro forense no servidor.

Implantando assinaturas para nossos clientes Premium

Confirmei que todas as amostras anteriormente não detectadas são detectadas pelo Wordfence com nossas novas assinaturas e eu imediatamente as insira em nosso feed Premium BETA. Isso nos permite receber feedback instantâneo sobre possíveis bugs ou falsos positivos de nossos usuários que estão cientes do feed beta do Wordfence para assinaturas de varredura.

Fazemos um controle de qualidade mais rigoroso nas horas seguintes e, uma vez concluídas, as assinaturas continuam em nosso feed Premium de produção para que nossos clientes Premium recebam essa nova capacidade de detecção em tempo real. A parte importante é obter essa proteção para os nossos usuários o mais rápido possível antes de se envolver em outras pesquisas.

Indo mais abaixo do buraco de coelho

Mas agora, claro, eu estava livre para passar algum tempo fazendo essa pesquisa! Como mencionado anteriormente, eu tinha todas as informações necessárias para me comunicar com o servidor de comando e controle do invasor (servidor C & C). Em vez de configurar uma infecção controlada e monitorar como o script é executado, posso atuar manualmente como o “servidor infectado” e ver quais outros dados posso reunir enviando minhas próprias atualizações de status.

O servidor C & C funciona via HTTP e inclui vários terminais diferentes. Para os desenvolvedores do público, é uma API semelhante ao REST. Quando um servidor infectado é executado pela primeira vez, ele codifica um conjunto de valores que fornece ao atacante informações sobre o sistema operacional, o hardware e os processos ativos e solicita um arquivo de configuração.

Comecei enviando um relatório falso para um servidor inexistente e recebo uma configuração personalizada. O que recebo é muito semelhante ao arquivo de configuração JSON que examinei anteriormente, com configurações mais baixas para corresponder à máquina de baixa qualidade que estou fingindo ser, juntamente com algumas outras configurações feitas sob medida para melhorar o desempenho específico dessa máquina durante a criação de criptografia. Neste ponto, o backdoor vai esperar em silêncio por vários minutos, então eu fiz o mesmo.

No próximo relatório, enviei as mesmas informações da máquina e uma mudança plausível nos processos ativos e, desta vez, recebi um conjunto de comandos. O servidor C & C instruiu o backdoor a baixar um arquivo, aplicar técnicas básicas de cloaking, executar o arquivo e reportar a saída desse arquivo na próxima instrução. Eu baixei o arquivo e é outra compilação xmrig mais recentemente compilada. Ele também corresponde à arquitetura diferente que estou alegando ter. O comando inicial é um teste para confirmar se o programa funciona corretamente, e simulei isso e, no próximo intervalo do relatório, enviei os dados esperados.

Finalmente, o servidor C & C devolveu um conjunto de instruções para executar o minerador, reconfigurar o intervalo para enviar relatórios de status e continuar verificando a mudança de comandos a cada 5 minutos. O objetivo do atacante é ganhar dinheiro e este mineiro usará os recursos do servidor para minerar o Monero, uma criptomoeda sobre a qual escrevemos extensivamente no passado.

O Monero é especialmente adequado para esse tipo de invasão por dois motivos. Em primeiro lugar, ele é projetado para o anonimato individual e identificar a pessoa que está recebendo as moedas minadas é extremamente difícil. Em segundo lugar, o algoritmo de mineração deve ser executado em uma CPU em vez de GPU. A maioria dos servidores da Web não tem GPUs e, portanto, a mineração de uma moeda que permita o uso eficiente de uma CPU é uma maneira ideal de transformar o poder de processamento de servidores da Web roubados em criptomoedas rígidas. Quando você agrega milhares ou dezenas de milhares de servidores da Web invadidos, isso pode resultar em um lucro significativo para um invasor.

Empacotando

Depois de concluir minha análise e garantir que o Wordfence detecte todas as variantes desse novo malware, eu documentei as táticas, técnicas e procedimentos (TTPs) desse novo invasor, juntamente com o registro de malware e outros indicadores de comprometimento (IOCs) em nossa inteligência interna de ameaças. plataforma.

Vale a pena notar que o invasor que controla as máquinas comprometidas por essa infecção está controlando um grande cluster de poder de computação roubado. Você pode pensar nisso como uma nuvem privada da AWS que o atacante pode usar para qualquer coisa que precise de recursos de computação. Atualmente, eles estão usando seu cluster roubado para mineração de criptografia, mas não há nada que os impeça de usar esses recursos para realizar ataques DDoS, campanhas de spam por email, usar hashes de senha roubados ou usar as máquinas como proxies para direcionar mal outros sites. Eles podem até mesmo arrendar os recursos de computação para outros invasores.

É por isso que estou animado sempre que temos a oportunidade de adicionar detecção para esses tipos de novas infecções à verificação de malware do Wordfence. Ao analisar um único site comprometido e implantar a detecção no Wordfence, temos uma boa chance de desligar esse invasor, pois todos os sites que executam o Wordfence detectam essa infecção.

hostcuritiba

A HOSTCURITIBA é uma empresa de Hospedagem de Sites, Registro de domínios e especializada em apoio técnico e proteção de servidores para hospedagem em nuvem. Apoio 24x7 e monitoramento grátis para seu site. Central de vendas (41) 3014-8891 - [email protected]