Receba as últimas notícias, ameaças e recursos do setor.
Sumário executivo
Em 23 de fevereiro de 2022, os pesquisadores da ESET identificaram um malware destrutivo, apelidado de “Hermetic Wiper “, visando computadores e sites ucranianos.
O binário do malware Hermetic Wiper usa um certificado digital assinado emitido pela “Hermetica Digital Ltd” e o driver detectado pelo malware tem um certificado digital assinado emitido para a “Chengdu Yiwo Tech Development Co Ltd” para contornar as verificações de segurança.
O malware deixa cair um driver, no diretório de drivers do Windows, que faz parte do programa Easeus com o nome de arquivo original EPMNTDRV.sys.
Ele abusa do driver carregado no sistema de destino, para acessar seu disco rígido com maiores privilégios e gravar dados inúteis nele.
O malware então torna o sistema inútil ao corromper os dados de inicialização, o que força o usuário a reinstalar o sistema operacional.
Análise técnica do malware Hermetic Wiper
Aproveitando certificados de assinatura de código para evitar a detecção
O certificado digital assinado pelo binário de malware é emitido para a Hermetica Digital Ltd., uma empresa de desenvolvimento de jogos com sede em Chipre.
O malware coloca um driver no diretório de drivers do Windows. O certificado digital assinado do binário descartado pertence à Chengdu Yiwo Tech Development Co Ltd., proprietária da Easeus Data, que é uma empresa de backup e recuperação de dados.
Certificados digitais assinados dos bináriosCertificados digitais assinados dos binários
Obtendo um identificador para o token do processo atual
O malware começa obtendo um identificador para o token do processo atual.
No Windows, um token é um objeto que representa o privilégio que um processo detém durante a execução no sistema. Uma lista completa de constantes de privilégios pode ser encontrada aqui.
O malware usa Token de processo aberto API com o Acesso desejado parâmetro definido como 0x0028 (TOKEN_QUERY 0x0008 | TOKEN_ADJUST_PRIVILEGES 0x0020).
Isso permite que o malware altere os privilégios atribuídos ao token.
Usando a API OpenProcessToken para alterar os privilégios do token
Alterando os privilégios do token
Depois de obter acesso ao token do processo atual, com privilégios definidos, o malware usa Valor Privilegiado de Pesquisa para garantir que o processo atual receba os seguintes privilégios:
Privilégio de desligamento
Privilégio SEBackup
O Ajustar privilégios do token A API é usada para ajustar os privilégios atuais do token se os privilégios listados acima ainda não estiverem atribuídos ao processo atual.
Processo de alteração dos privilégios do token do processo atual
Carregando a carga na memória do sistema
Depois de conceder privilégios, o malware resolve dinamicamente os endereços dos seguintes módulos e os carrega no processo atual:
WOW64 Desativar o redirecionamento WOW64FS
WOW64 Reverter o redirecionamento WW64FS
Processo iSWOW64
O WOW64 Desativar o redirecionamento WOW64FS e WOW64 Reverter o redirecionamento WW64FS os módulos são responsáveis pelo redirecionamento do sistema de arquivos nas versões de 64 bits do Windows. Isso ocorre quando um aplicativo de 32 bits é executado no Windows de 64 bits, onde o %windir%\ System32 o diretório é reservado somente para aplicativos de 64 bits. No entanto, como a amostra de malware é um aplicativo de 32 bits, é necessário que o malware acesse o System32 diretório. Isso é possível via WOW64 Desativar o redirecionamento WOW64FS. Também ajuda a acessar o registro sem o redirecionamento do Wow64.
O Processo iSWOW64 é usado para determinar se o processo especificado está sendo executado em WOW64 ou em um processador Intel64 ou x64. Isso é usado principalmente para selecionar a carga útil apropriada a ser descartada.
O malware carrega os módulos no processo atual
O malware tem várias imagens da carga útil. O malware contém as seguintes imagens de driver para carregamento posterior:
DRV_X64
DRV_X86
DRV_XP_X64 para gerações mais antigas do Windows
DRV_XP_X86 para gerações mais antigas do Windows
Várias imagens da carga útil no malwareVárias imagens da carga útil no malware
A versão do sistema é enumerada usando Verifique a versão do Infow API.
Enumeração da versão do sistema usando VerifyVersionInfow
O malware seleciona a carga a ser descartada com base na quantidade de bits (32/64) na seção de recursos do Portable Executable (PE). Depois disso, a imagem correspondente é recuperada da seção .rsrc do malware e carregada na memória do sistema.
Carregando a carga útil correspondente na memória do sistema
Despejando um driver no sistema de destino
O malware desativa Crash Dump ativado, que despeja a memória do sistema em caso de falha. Crash Dump ativado está habilitado por padrão no Windows 10 e tem um valor padrão de 0x7. O malware o altera para 0x0, desativando-o.
Isso é feito para evitar a análise forense caso algo dê errado quando o driver é carregado no sistema de destino.
Depois de desativar a configuração de crash dump no registro, o malware se prepara para copiar uma imagem do driver, mantida na seção .rsrc do PE, para o sistema de destino.
Um cachimbo \\\\. \\ EPMNTDRV\\ é criado para realizar a transferência dos dados.
Criando um tubo para transferir dados
O diretório do sistema para drivers C:\Windows\system32\drivers é então recuperado por meio do Obter diretório do sistema API.
Recuperando o diretório do sistema para drivers
Os dados são gravados por meio do LZ Abrir arquivo W e Cópia LZ APIs. O nome do arquivo é gerado aleatoriamente em tempo de execução e o nome atribuído ao arquivo é ttdr.sys.
Escrevendo os dados e gerando o arquivo ttdr.sys
Agora, o malware despejou com sucesso um driver no sistema de destino.
ttdr.sys despejado no sistema de destino
Carregamento de drivers e criação de serviços
Para carregar um driver no Windows, o processo deve possuir SELoad Driver Privilege. O malware verifica esse privilégio no processo atual usando o Valor Privilegiado de Pesquisa API.
Se o processo não tiver o privilégio necessário, o malware o adiciona por meio do Ajustar privilégios do token API.
O malware procura o SELoadDriverPrivilege
Depois de ajustar os privilégios, o malware abre o Service Control Manager no Windows para consultar serviços ativos por meio do Serviços ativos banco de dados.
Ele verifica se há algum serviço ativo com o nome do driver despejado, que neste caso é ttdr, por meio do Serviços abertos W API.
Verificando se há algum serviço ativo com o nome ttdr
Se o serviço não existir, Serviços abertos W Devoluções da API ERRO OU SERVICE_DOES_NOEXISTE, e, em seguida, um novo serviço é criado por meio de createServiceW, conforme mostrado abaixo
O novo serviço é criado por meio do CreateServiceW
O Iniciar o serviço W A API é então usada para executar o driver no sistema de destino.
Usando a API StartServiceW para executar o driver no sistema de destino
Isso pode ser verificado consultando o controle de serviço para verificar se o ESTADO o parâmetro está definido como “RUNNING”. Depois disso, o malware começa a interagir com o driver por meio do Dispositivo de controle IO API, que torna o malware um componente do usuário do driver implantado.
Consultando o controle de serviço
O link simbólico criado para comunicações de E/S é a verificação de que o driver foi carregado com êxito no sistema.
Link simbólico criado para comunicações IO
Se o serviço estiver presente, o malware obterá o status do serviço do Service Control Manager usando o Status do serviço de consulta API.
As configurações do serviço são alteradas, se o serviço estiver inativo, via Alterar configuração do serviço API. E a bandeira SERVIÇO_DEMANDA_INÍCIO (0x00000003) é passado como Tipo de início do DW valor para o Alterar configuração do serviço API.
Consultando e alterando as configurações do serviço
Processo de limpeza
Assim que o driver começa a ser executado no sistema de destino, ele inicia o processo de limpeza excluindo a entrada de serviço no registro e a imagem do driver no C:\Windows\system32\drivers diretório.
Excluindo a entrada de serviço do registro e da imagem do driver
Após o processo de limpeza, o malware desativa o Volume Shadow Copy Service (VSS) no sistema, por meio do Service Control Manager. O serviço VSS é aberto por meio do Serviços abertos W API para alterar a configuração do serviço posteriormente.
Desativando o serviço Volume Shadow Copy
Uma nova atualização de configuração é feita passando o sinalizador 0x00000004 (SERVIÇO_DESATIVADO) para Alterar configuração do serviço, desativando assim o VSS à força.
Desativando o VSS
O malware garante que o serviço tenha parado, passando 0x00000001 (SERVICE_CONTROL_STOP) como o Controle DW valor do parâmetro.
Verificar se o serviço foi interrompido
Corrompendo os dados do disco rígido
O malware usa o driver instalado para ler/gravar dados do disco rígido.
Para conseguir isso, o link simbólico usado pelo motorista (\ Dispositivo\ EPMNTDRV), se comunica por meio do Controle de IOT do dispositivo API, passando códigos IOCTL para fazer com que o driver execute uma tarefa específica.
O malware então acessa o Master Boot Record via \\\\. \\ Unidade física 0.
A lógica de corrupção de dados distingue os sistemas NTFS e FAT e tem uma lógica de corrupção diferente para cada um dos sistemas de arquivos presentes no disco.
Lógica de corrupção do NTFSLógica de corrupção gorda
O malware analisa os campos do Master File Record, como $ bitmap e $arquivo de log e outros fluxos de atributos NTFS, como $ DADOS, $I30, ou $INDEX_ALOCAÇÃO.
Vários threads são instanciados pelo malware para realizar várias atividades. No entanto, a execução de um dos threads é executada Iniciar o desligamento do sistema Ex, que é uma atividade privilegiada, como dano final.
Executando InitiateSystemShutdownEx como o dano final
Antes de desligar o sistema, o malware enumera os seguintes diretórios para limpeza de dados:
Meus documentos
Desktop
Dados do aplicativo
Registros de eventos do Windows (C:\Windows\System32\winevt\Logs)