Voltar
Ransomware
Tabela de conteúdo

2021 viu um surto de grupos e ataques de ransomware que afetaram todos os principais setores do mundo. Espera-se que essa tendência continue e até supere os números do ano anterior por uma margem significativa em 2022.

Em março de 2022, pesquisadores detectaram uma nova variedade de ransomware conhecida como Pandora, que utiliza táticas de dupla extorsão para exfiltrar e criptografar grandes quantidades de dados pessoais. Os operadores oferecem a chave de decodificação quando a vítima paga o resgate exigido. O ransomware Pandora é uma operação relativamente nova e, portanto, suas técnicas de infecção são desconhecidas.

No entanto, depois de se infiltrar no sistema de destino, o ransomware anexa a extensão de arquivo “.pandora” aos arquivos criptografados e deixa uma nota de resgate “Restore_My_Files.txt” com instruções sobre como recuperar os dados. Os pesquisadores acreditam que o ransomware Pandora é uma versão renomeada do ransomware Rook, que por sua vez é uma geração do código Babuk que vazou. Este artigo explora a análise técnica do ransomware Pandora, suas táticas de evasão, o processo de criptografia e mais detalhadamente.

Análise técnica do Pandora

A análise da amostra de arquivo binário do Pandora, 5b56c5d86347e164c6e571c86dbf5b1535eae6b979fede6ed66b01e79ea33b7b, indica que é um arquivo binário compactado UPX (Ultimate Packer for eXecutables). O UPX é um compressor de arquivos executável usado por agentes de ameaças para adicionar uma camada de ofuscação (criação de código difícil para humanos entenderem) ao malware. O código do ransomware é executado a partir do ponto de entrada original após ser descompactado na memória.

Ransomware code running from the entry point
Código de ransomware executado a partir do ponto de entrada

 

O ransomware usa strings ofuscadas e desofusca nomes de bibliotecas e funções internas em tempo de execução. Os módulos de biblioteca usados pelo Pandora são carregados dinamicamente por uso por meio das seguintes APIs:

  • Carregar biblioteca A
  • Obtenha o endereço do Proc
  • GetModuleHandleA

Inicialmente, o ransomware cria um mutex (objeto de exclusão mútua, que permite que vários threads de programa se revezem compartilhando o mesmo recurso) para garantir que apenas uma instância do malware esteja em execução no sistema. A string mutex, “ThisIsMutexA”, é desofuscada na memória. Ele verifica se há algum mutex existente no sistema via Abra o Mutexa, se não estiver presente, o malware cria um novo com o valor “ThisIsMutexa” via Crie Mutex A.

Mecanismo anti-depuração

O malware implementa verificações anti-depuração para impedir a análise.

Anti Debug Check
Verificação anti-depuração

 

  • O código destacado na imagem acima lê os dados no deslocamento 0x60 do registro do segmento GS. O Windows armazena o Bloco de informações do tópico (TIB) em FS [x86] e GS [x64] registros de segmentos.
  • O TIB detém o Bloco de ambiente de processo (PEB) no deslocamento 0x60. O malware acessa o PEB do processo por meio do registro GS.
  • Posteriormente, o malware lê os dados no deslocamento 0x2 no PEB (ds: [rsi+2]), que é o Sendo depurado membro na estrutura PEB e, em seguida, compara o valor obtido com 0. Se o processo estiver sendo depurado, BeingDebugged terá um valor diferente de zero. Se o teste falhar, o malware entra em um loop infinito e não prossegue.

Técnicas de evasão

Bypass de retorno de chamada de instrumentação

Os endpoints de segurança (especialmente o eTWTI) de um dispositivo usam o processo de retorno de chamada de instrumentação para verificar anomalias comportamentais e detectar novos malwares no sistema. O ransomware Pandora ignora esse mecanismo de retorno de chamada via processo de informação ntset, que altera as informações do processo.

  • ntsetinformationprocess é invocado com Retorno de chamada da instrumentação do processo como parte do Classe de informações do processo.
ntsetinfromationprocess being invoked
ntsetInfomationProcess sendo invocado

 

  • O terceiro argumento na imagem acima é uma estrutura de 10 bytes associada à classe de informações processInstrumentationCallback fornecida.
The third argument (10-byte long structure)
O terceiro argumento (estrutura de 10 bytes)
  • Os membros e valores associados na estrutura são os seguintes:
    • Versão=0 (0 para x64, 1 para x86)
    • Reservado = 0
    • Retorno de chamada = 0

Se o processo criado para o malware for bloqueado pelos serviços de segurança por meio de um membro de retorno de chamada, invocando o ntsetinformationprocess da forma mencionada acima com o retorno de chamada definido como 0, isso ajuda o malware a contornar esses ganchos.

Ignorar o rastreamento de eventos

O Event Tracing for Windows (ETW) é um poderoso recurso de rastreamento incorporado ao sistema operacional, para monitorar várias atividades dos aplicativos da área do usuário e do kernel em execução no sistema. Esse recurso se tornou um instrumento vital para as soluções de segurança de terminais detectarem comportamentos anômalos em programas em execução. Como resultado, os desenvolvedores de malware começaram a integrar funcionalidades em seus malwares para neutralizar a capacidade de rastreamento. Um desses vetores é corrigir funções relacionadas ao ETW definidas em ntdll.dll na memória.

  • O ransomware carrega dinamicamente ntdll.dll na memória e desofusca a string EtwEvent Write.
Deobfuscation of “EtwEventWrite”
Desofuscação de “ETWEventWrite”

 

  • O endereço da função ETWEventWrite é obtido usando Obtenha o endereço do Proc API. Obter o endereço da função é uma etapa muito importante na correção, para contornar o recurso ETW.
  • Antes que o malware comece a ser corrigido, as proteções de memória na região das páginas confirmadas, onde o ETWEventWrite reside no espaço de endereço virtual, precisam ser alteradas, o que é feito via VirtualProtecteX API.
  • A região de memória das páginas em que a primeira instrução de ETWEventWrite reside é alterada para PAGE_EXECUTE_READWRITE a ser corrigido.
Arguments passed to VirtualProtectEx
Argumentos passados para o VirtualProtecteX

 

  • O Memória do processo de gravação A API é usada para escrever um byte no início da função ETWEventWrite. O segundo argumento aponta para o início de ETWEventWrite, e o terceiro argumento é a carga útil de um byte que é gravada no endereço de ETWEventWrite.
The data passed to WriteProcessMemory
Os dados passados para WriteProcessMemory

 

  • A carga útil de um byte é 0xC3, que é o opcode para a instrução”descansar”. Isso faz com que o ETWEventWrite simplesmente retorne à função do chamador, sem executar sua lógica para registrar um evento quando o ETWEventWrite é invocado por outros aplicativos.
One byte payload - 0xC3
Carga útil de um byte — 0xC3

 

  • Após a aplicação do patch, a proteção de memória do ETWEventWrite é revertida para a permissão inicial do PAGE_EXECUTE_READ via VirtualProtecteX.
Memory protection of EtwEventwrite
Proteção de memória do eTWEventWrite

 

Fase de pré-criptografia

Antes do início da criptografia, o software malicioso altera os parâmetros de desligamento do sistema via Definir parâmetros de desligamento do processo API. Essa função define uma ordem de desligamento para o processo de chamada em relação aos outros processos no sistema. Aqui, o malware invoca a API com valor zero para que o programa de ransomware seja o último a ser encerrado pelo sistema operacional.

Data passed to SetProcessShutdownParameters
Dados passados para setProcessShutdownParameters

 

Depois de definir esses parâmetros de desligamento, o malware esvazia a lixeira via Lixeira Shempty API.

O ransomware eleva a prioridade do processo em execução para a maior prioridade possível, que é CLASSE_PRIORITÁRIA EM TEMPO REAL através da Definir classe prioritária API. O segundo argumento é o parâmetro “dwPriorityClass”, que tem um valor de 0x100.

Data passed to SetPriorityClass
Dados passados para setPriorityClass

 

Finalmente, as cópias de sombra do volume são excluídas executando uma sequência de comandos via Shell Execute um. Ele usa o vssadmin para realizar a tarefa de excluir os arquivos de sombra.

Deleting shadow files using vssadmin
Excluindo arquivos de sombra usando vssadmin

 

Fase de criptografia: modelo de segmentação

O segmento principal do malware cria dois novos segmentos responsáveis pela criptografia dos dados do usuário.

Creation of two new threads
Criação de dois novos tópicos

 

As seguintes APIs são usadas para criar os threads:

  • Criar tópico
  • Definir máscara de afinidade de linha
  • Tópico de currículo

Os threads são criados com dwCreationFlags definido como CRIAR_SUSPENSO, posteriormente, a execução dos threads é retomada via Tópico de currículo.

O thread principal começa a enumerar as unidades presentes no sistema por meio das seguintes APIs:

  • Obtenha o tipo de unidade W
  • Encontre o primeiro volume W
  • Obtenha nomes de caminho de volume para VolumeName W
  • Definir ponto de montagem do volume W
  • Encontre o próximo volume W
  • Obtenha unidades lógicas

O Pandora utiliza portas de conclusão de E/S do Windows para acelerar com eficiência o processo de criptografia. As seguintes APIs são usadas para orquestrar a pesquisa e o bloqueio dos dados do usuário:

  • Criar porta de conclusão de IO
  • Status de conclusão pós-fila
  • Obter porta de conclusão em fila

Inicialmente, o thread principal do malware cria uma porta de conclusão de entrada/saída (E/S) por meio da API CreateIOCompletionPort.

Data passed to CreateIoCompletionPort
Dados passados para createIOCompletionPort

 

  • O quarto argumento é “NumberOfConcurrentThreads”. Em nosso caso, dois threads podem processar simultaneamente pacotes de conclusão de E/S para a porta de conclusão de E/S.
  • Após a criação da porta de E/S, uma fila é criada internamente, para a qual os threads podem enviar o status de conclusão.
  • Os dois threads criados anteriormente acessarão as portas de E/S para realizar a enumeração e a criptografia de arquivos no sistema infectado.

Em geral, o ransomware in the wild adotou um modelo para otimizar o processo de criptografia. O objetivo aqui é utilizar com eficiência a potência dos processadores multicore para realizar simultaneamente a enumeração e a criptografia de arquivos. Um grupo de threads de trabalho buscaria os caminhos do arquivo e os publicaria na fila via Status de conclusão pós-fila, e outro tópico pode recuperar os arquivos postados (caminhos) para criptografia via Obter status de conclusão na fila.

Optimization of the encryption process
Otimização do processo de criptografia

 

O Pandora usa o algoritmo RSA 4096 para criptografia, a chave pública está embutida no malware.

Public key embedded in the malware
Chave pública embutida no malware

 

Como etapa anterior do processo de criptografia, o malware acessa diretórios nas unidades de rede e despeja a nota de resgate (Restore_My_Files.txt). A nota de resgate é criada usando as três APIs a seguir:

  • Criar arquivo W
  • Escrever arquivo W
  • Fechar alça
Contents of the ransom note
Conteúdo da nota de resgate

 

Processo de criptografia

O processo explicado nesta seção é executado por segmentos de trabalho destacados na imagem abaixo. Esses segmentos podem enumerar e criptografar dados simultaneamente por meio da porta de conclusão de E/S do Windows.

Worker Threads
Tópicos de trabalho

 

  • Depois de despejar a nota de resgate, o malware usa Encontre o primeiro arquivo W para abrir uma alça para os arquivos no disco.
  • O identificador recuperado é verificado em relação a um conjunto de nomes de diretórios e extensões de arquivo.
  • Os seguintes diretórios estão excluídos do bloqueio:
AppData Opera SoftwareBootmozillaWindows.Antigo Mozilla Firefox Tor BrowserDados de programas do Internet Explorer Arquivos de programas do Google (x86) Opera #recycle
  • Os seguintes arquivos estão excluídos da criptografia:
autorun.infbootmgfw.efiboot.inidesktop.inibootfont.biniconcache.dbbootsect.bakntldrbootmgrntuser.datbootmgr.efirestore_my_files.txt
  • E as seguintes extensões estão excluídas do bloqueio:
.hta.cur.exe.drv.dll.hlp.cpl.icl.ini.icns.cab.ico.idx.sys.spl.ocx.pandora
  • Depois de realizar as verificações de exclusão, o caminho absoluto do arquivo que passou na verificação é calculado e, em seguida, o thread solicita Status de conclusão pós-fila para enviar o caminho para a fila de E/S criada anteriormente via Criar porta de conclusão de IO.
  • Logo após a chamada postQueuedCompletionStatus, o mesmo thread de trabalho pode continuar buscando o caminho absoluto do próximo arquivo por meio da API FindNextFileW.
  • Outro tópico de trabalho agora pode ligar Obter status de conclusão na fila para recuperar o caminho absoluto do arquivo de destino para começar a criptografar os arquivos.
  • Em seguida, o atributo do arquivo é alterado por meio da API setFileAttributeSW para ARQUIVO_ATRIBUTO_NORMAL e, em seguida, o arquivo é buscado para criptografia por meio das seguintes APIs:
    • Criar arquivo W
    • Obter tamanho de arquivo EX
    • Ler arquivo
    • Definir ponteiro de arquivo Ex
  • Depois de configurar o ponteiro do arquivo para os dados de destino, a criptografia começa carregando a chave pública na memória, e os dados criptografados são gravados no arquivo via Gravar arquivo API. Posteriormente, o arquivo é renomeado via Mova o arquivo EXW API a ser adicionada”.pandora” extensão para o arquivo criptografado.
Renamed file with the “.pandora” extension
Arquivo renomeado com a extensão “.pandora”

 

Chaves de registro

HKCU registry key
Chave de registro HKCU

 

O ransomware Pandora grava dois valores, Privado e Público, sob o HKCU/Software chave de registro. O valor público tem a chave pública usada pelo ransomware para criptografar os arquivos do usuário, enquanto o valor privado tem a chave privada protegida armazenada para descriptografia. A ferramenta de decodificação que a vítima recebe após pagar o resgate usa essas informações armazenadas no registro para descriptografar os arquivos bloqueados.

Indicadores de compromisso

Binário5b56c5d86347e164c6e571c86dbf5b1535eae6b979fede6ed66b01e79ea33b7bRegistroHKCU\ Software\ PrivateHKCU\ Software\ PúblicoArquivos descartadosRestore_My_Files.txt

Nenhum item encontrado.

Blogs relacionados