Blog Threat Labs Cobertura contra ameaças da Netskope: malware Wiper das Olimpíadas de Tóquio 2020
Jul 29 2021

Cobertura contra ameaças da Netskope: malware Wiper das Olimpíadas de Tóquio 2020

Summary

Grandes eventos esportivos, como a Copa do Mundo ou as Olimpíadas, geralmente são alvos de cibercriminosos que se aproveitam da sua popularidade. Durante a Copa do Mundo de 2018, por exemplo, um documento infectado disfarçado de "previsão de jogo" entregou um malware que roubava dados confidenciais de suas vítimas, incluindo keystrokes e capturas de tela.

Uma nova ameaça de malware surgiu pouco antes da cerimônia de abertura dos Jogos Olímpicos de Tóquio 2020, capaz de danificar um sistema infectado ao fazer o wipe dos arquivos. Neste caso, o malware se disfarça como um documento PDF contendo informações sobre ataques cibernéticos associados às Olimpíadas de Tóquio. O componente wiper exclui documentos criados com o Ichitaro, um processador de texto popular no Japão. Este wiper é muito mais simples do que o “Olympic Destroyer”, usado nos Jogos Olímpicos de Inverno de 2018.

Ameaça 

O arquivo foi distribuído com o nome 【至急】東京オリンピック開催に伴うサイバー攻撃等発生に関する被害報告について”, que pode ser traduzido como “[Urgente] Relatórios de danos relativos à ocorrência de ataques cibernéticos, etc. associados às Olimpíadas de Tóquio”.

Screennshot of malware name
Nome do malware

O arquivo está compactado com UPX e foi aparentemente compilado em “2021” às “22:52:05” e, embora esta informação não possa ser 100% confiável, esta data é apenas um dia antes de sua primeira aparição pública.

Screenshot showing details about the malware executable
Detalhes sobre a execução do malware

O desenvolvedor incluiu muitas técnicas de anti-análise e anti-depuração. O primeiro é um truque simples que detecta se o arquivo está sendo executado em uma sandbox usando as APIs GetTickCount64 e Sleep.

Primeiro, o malware obtém o carimbo de data/hora atual com o GetTicketCount64 e depois fica inativo por 16 segundos. Em seguida, ele ativa o GetTicketCount64 novamente e verifica quanto tempo o código realmente demorou na função Sleep. Se o tempo for inferior a 16 segundos, o malware é encerrado, pois é provável que a função Sleep tenha sido ignorada por um ambiente de sandbox.

Screenshot of common anti-analysis technique
Técnica comum de anti-análise

Se o ambiente de sandbox não foi detectado neste ponto, o malware verifica se há ferramentas de análise listando todos os processos em execução no sistema operacional comparando com ferramentas conhecidas, como “wireshark.exe” ou “idaq64.exe”.

As strings relacionadas a esses processos são todas criptografadas dentro do binário e podem ser facilmente descriptografadas usando uma operação bitwise:

Screenshot decrypting a string from the wiper using Python
Descriptografando uma string do wiper usando Python

Usando a mesma lógica, criamos um script para extrair e descriptografar todas as strings automaticamente, revelando um comportamento importante do malware:

Screenshot of the decrypted strings from the malware
Captura de tela das strings descriptografadas do malware

Outra técnica interessante usada por esse malware para verificar se está sendo depurado é a verificação de pontos de interrupção. ara quem não está familiarizado com o que acontece “por debaixo dos panos”, quando você cria um ponto de interrupção de software, o depurador substitui o bytecode onde você deseja interromper, por meio da instrução de um byte int3, que é representada pelo opcode 0xCC. Portanto, quando o processador encontra essa instrução, o programa para e o controle é transferido de volta para o depurador, que substitui a instrução novamente pelo byte original.

Assim, este malware verifica a presença da instrução int3 no ponto de entrada de certas funções, comparando o byte com 0xCC.

Screenshot of malware searching for software breakpoints
Malware procurando por pontos de interrupção de software

Também encontramos verificações para outras instruções além de int3, como call e jmp, demonstrando que o desenvolvedor foi ainda mais longe para verificar as modificações no código original.

Posteriormente, o malware também verifica se o processo está sendo depurado por meio das APIs IsDebuggerPresent e CheckRemoteDebuggerPresent

Além disso, a ameaça verifica se o ambiente está sendo executado em uma máquina virtual, verificando a porta de I/O implementada pelo hypervisor da VMware.

Screenshot showing malware checking if the process is running under VMware.
Malware verificando se o processo está sendo executado em VMware.

Se qualquer sandbox, máquina virtual ou ferramenta de análise for detectada, o malware ativa uma função que executa uma linha de comando que se exclui.

cmd.exe /C ping 1.1.1.1 -n 1 -w 3000 > Nul & Del /f /q "C:/Users/username/Desktop/wiper.exe"
Screenshot showing malware deleting itself after detecting a memory breakpoint
Malware se excluindo após detectar um ponto de interrupção de memória

Apesar de todos esses truques de anti-análise e anti-depuração, o único objetivo do malware é executar uma sequência de comandos que procura e exclui arquivos com extensões específicas:

  • .csv
  • .doc
  • .docm
  • .docx
  • .ponto
  • .dotm
  • .dotx
  • .exe
  • .jtd
  • .jtdc
  • .jtt
  • .jttc
  • .registro
  • .pdf
  • .ppt
  • .pptm
  • .pptx
  • .txt
  • .xls
  • .xlsm
  • .xlsx
Screenshot of commands executed by the malware to delete files
Comandos executados pelo malware para excluir arquivos

Enquanto esses comandos estão sendo executados, o malware também tenta executar o programa “curl” para solicitar um site pornográfico, provavelmente para enganar a análise forense na máquina.

Proteção

O Netskope Threat Labs está monitorando ativamente esta campanha e garantiu cobertura para todos os indicadores de ameaças e cargas conhecidas. 

  • Netskope Threat Protection
    • Trojan.GenericKD.46658860
    • Trojan.GenericKD.37252721
    • Trojan.GenericKD.46666779
    • Gen:Variant.Razy.861585
  • A Netskope Advanced Protection oferece cobertura proativa contra essa ameaça.
    • Gen.Malware.Detect.By.StHeur indica uma amostra que foi detectada usando análise estática
    • Gen.Malware.Detect.By.Sandbox indica uma amostra que foi detectada por nosso sandbox na nuvem

Amostras de hashes

Nomesha256
wiper.exefb80dab592c5b2a1dcaaf69981c6d4ee7dbf6c1f25247e2ab648d4d0dc115a97
wiper_unpacked.exe295d0aa4bf13befebafd7f5717e7e4b3b41a2de5ef5123ee699d38745f39ca4f
wiper2.exec58940e47f74769b425de431fd74357c8de0cf9f979d82d37cdcf42fcaaeac32
wiper2_unpacked.exe6cba7258c6316e08d6defc32c341e6cfcfd96672fd92bd627ce73eaf795b8bd2

Uma lista completa de amostras de hashes, strings descriptografadas, regra Yara e uma ferramenta para extrair e descriptografar as strings de uma amostra do Olympics Wiper está disponível em nosso repositório Git.

author image
Sobre o autor
Gustavo Palazolo é especialista em análise de malware, engenharia reversa e pesquisa de segurança, atuando há muitos anos em projetos relacionados à proteção contra fraudes eletrônicas. Atualmente, ele está trabalhando na Equipe de Pesquisa da Netskope, descobrindo e analisando novas ameaças de malware.
Gustavo Palazolo é especialista em análise de malware, engenharia reversa e pesquisa de segurança, atuando há muitos anos em projetos relacionados à proteção contra fraudes eletrônicas. Atualmente, ele está trabalhando na Equipe de Pesquisa da Netskope, descobrindo e analisando novas ameaças de malware.