Ransomware – Análise técnica e forense

Ransomware

O que é Ransomware?

 A palavra “Ransomware” é um termo utilizado para identificar ou descrever uma classe de malwares que tem como função realizar a extorsão digital das vítimas. Atualmente, o meio de pagamento comumente utilizado pelos criminosos são criptomoedas, como o Bitcoin, porém outros meios podem ser exigidos para determinadas famílias de Ransomware.  Este, dentre os malwares, é considerado o mais lucrativo, além de ser um ataque de fácil execução.

Os dois principais tipos de Ransomware são:

  1. aqueles que criptografam, ofuscam ou impedem o acesso aos arquivos;
  2. aqueles que restringem o acesso ou bloqueiam os usuários do sistema.

Vale salientar que este tipo de ameaça não está limitado à determinado sistema operacional, tipo de dispositivo ou posição geográfica, porém, existem diferenças quanto aos meios utilizados para o comprometimento de certos dispositivos ou sistemas, sempre mantendo sua característica principal de impedir o acesso à dados.

Antes de nos aprofundarmos sobre a análise prática de um ataque, convém abordarmos alguns aspectos históricos. Em 1989 surgiu um código malicioso conhecido como “AIDS”*, escrito por Joseph Popp, que realizava a substituição do arquivo “autoexec.bat” nos sistemas infectados. Este permitia 90 reinicializações do sistema, até ocultar todos os diretórios e alegar que teria criptografado os arquivos. Porém, após realizada análise do código malicioso, foi descoberto que apenas os nomes dos arquivos eram embaralhados com uma criptografia básica de chave simétrica, podendo ser facilmente removido e revertido através de programas conhecidos como “Aidsout” e “Clearaid”.  O código malicioso, criado em 1989, foi extinto no ano seguinte, retornando apenas em 2005 e encontra-se ativo até os dias de hoje.

*Caso queira conferir mais detalhes sobre o trabalho de Jim Bates referente ao código malicioso denominado como AIDS, este se encontra disponível em https://www.virusbulletin.com/uploads/pdf/magazine/1990 /199001.pdf

**Chave simétrica: são algoritmos para criptografia que usam a mesma chave criptográfica para encriptação de texto puro e texto cifrado. Neste caso ambas as partes possuem acesso à mesma chave secreta, sendo uma de suas maiores desvantagens para a criptografia.

A Kaspersky elabora um relatório anual das famílias Ransomware mais ativas no mundo. Em 2020, as mais comuns foram: WannaCry, Stop/Djvu, GranCrab, PolyRansom/VirLock e Crysis/Dharma.

Gráfico Ransomware

(Fonte: https://securelist.com/Ransomwarebythenumbersreassessingthethreatsglobalimpact/101965/)

Análise técnica

A primeira fase do ataque consiste na instalação e execução de software malicioso (malware) com componentes dedicados a criptografar ou bloquear um determinado sistema. As principais formas de infecção são:

  • Download drive-by: Download automático de malware ou spyware, realizado por determinado sistema malicioso, sem o conhecimento do usuário. Pode ser executado por meio de visita a site web, visualização de mensagem de e-mail ou uma janela pop-up.
  • Comprometimento web: Também conhecido como watering hole, trata-se de uma estratégia utilizada pelo invasor que adivinha ou observa os websites acessados por determinado alvo e, posteriormente, infecta um ou vários destes sites com um malware.
  • E-mails de ataques phishing: Este tipo de ataque consiste em e-mails contendo links ou anexos maliciosos. Estes e-mails podem ser distribuídos sem qualquer critério, ou direcionados a segmentos, empresas ou pessoas específicas. Os anexos podem ser mais comuns são: .exe, .vbs, .wsf, .cpl, .cmd, .scr, .js, .pdf, .doc, .xls e .zip.
  • Exploração de vulnerabilidades em sistemas: Ataque por meio de scanning, ou seja, escaneamento de redes, ou varreduras abertas, em buscas de determinadas vulnerabilidades exploráveis.

A infecção ocorre após a execução de determinado Payload no sistema da vítima. Caso o alvo esteja utilizado o sistema Windows, o código malicioso definirá chaves no registro que garantirão a execução automática do próprio código sempre que o computador for inicializado.

O Ransomware, na sequência, passa a se espalhar lentamente pela rede afetada, instalando-se em diversos equipamentos, e criando compartilhamentos de arquivos que, por sua vez, serão simultaneamente criptografados. Ataques específicos podem utilizar outras técnicas para instalar, ofuscar, compactar e explorar falhas na tentativa de maximizar o resgate. Alguns malwares conseguem também analisar o sistema para detectar se está em uma máquina real ou em uma sandbox* virtual.

*Sandbox: mecanismo ou medida de segurança para separar programas em execução. Utilizado para executar programas ou códigos não confiáveis e posteriormente realizar a sua análise através de máquinas virtuais.

Em seguida, o Ransomware analisa o equipamento para determinar a viabilidade do ataque, que se inicia na sequência. Este processo muitas vezes se disfarça de um processo Windows padrão, como o svchost.exe. Além disto, são executados uma série de scripts para garantir que qualquer proteção nativa do Windows seja desativada, inclusive a funcionalidade de shadow copy (cópia de sombra) dos arquivos e volumes. A desativação desta funcionalidade prejudica a possibilidade de recuperação do sistema afetado. O Malware ainda pode desativar softwares anti-malware e funções de logging do sistema.

O código malicioso buscará então instruções sobre como deve executar o ataque, incluindo as extensões de arquivos que devem ser criptografados, o tempo de espera para o início do processo, e se devem continuar a se espalhar pela rede.

É importante salientar que, a depender do tipo de Ransomware, pode haver a transferência de informações significativas aos atacantes, como endereço de IP, nome de domínio, sistema operacional, ferramentas anti-malware, entre outras. Esta transferência pode se dar através de uma simples comunicação web HTTP sem criptografia, ou até utilizando serviços TOR.
De posse destes dados transmitidos, os atacantes podem determinar qual a empresa infectada, seu porte e segmento. Estas informações podem ser utilizadas para determinar o valor dos dados criptografados.

O próximo passo consiste na troca de chaves por meio de protocolo handshake predefinido, sendo que este poderá ser diferente para cada família de Rasomware. O tipo de protocolo utilizado também contribui para que os atacantes identifiquem a variante do malware executado, bem como o sistema infectado. A depender da complexidade do Ransomware, este passo pode variar de um cifrador simples de chave simétrica executado de forma precária, até um algoritmo complexo de criptografia RSA com 4096 bits.

Após a troca, a chave privada é mantida pelos criminosos enquanto a chave pública é entregue ao componente de criptografia do código malicioso instalado no sistema da vítima. Em algumas famílias a chave privada de criptografia pode ser excluída após a criptografia dos arquivos, restando apenas a chave pública.

Durante o processo de encriptação, todos os arquivos identificados pelos processos de comando e controle serão criptografados pelo código malicioso. Existem variantes que criptografam até mesmo os nomes dos arquivos para dificultar o entendimento quanto à extensão do ataque.

Concluído o processo de criptografia dos arquivos, uma mensagem em tela ou arquivo .txt é apresentada as vítimas informando sobre a ocorrência do ataque, bem como as instruções para realização do pagamento do resgate, normalmente em uma carteira de criptomoeda.

Fluxograma de ataque Ransomware:

Fluxograma de Ataque Ramsomware
(Fonte: autor Caique Barqueta. Informações extraídas do livro: LISKA, Allan e GALLO, Timothy. Ransomware. 1 Edição. O`Reilly.)

 Pagar ou não o resgate? 

Pagar ou não o resgate é uma das primeiras perguntas que surgem quando uma empresa sofre um ataque de Ransomware. Esta é uma decisão séria, e que deve ser estudada com cautela. Apesar de nossa recomendação ser pelo NÃO pagamento do resgate, nem sempre esta é uma decisão simples. Existem casos em que o pagamento do resgate pode realmente ser a opção mais lógica. Assim, cabe levantarmos alguns pontos que devem ser considerados pela empresa e que podem ser relevantes para a tomada de decisão. Todo o detalhamento a seguir envolve uma análise puramente técnica, não considerando questões éticas ou ideológicas.

Primeiramente, a empresa atacada deve avaliar a extensão dos danos, qual a quantidade de titulares afetados, a sensibilidade destes dados e se a perda, ou divulgação, dos dados pode causar danos a terceiros ou a própria empresa.

Em seguida deve-se identificar que tipo de família de Ransomware veio a infectar o sistema, pois atualmente existem diversos decriptadores para os Ransomwares mais comuns e que podem ser utilizados para recuperação dos arquivos criptografados.

O fator mais importante para a tomada de decisão é o backup. Deve-se verificar regularmente as rotinas de backup para confirmar sua integridade de forma que, no caso de uma eventualidade, a tomada de decisão seja rápida e precisa. Caso a empresa tenha os backups bem estruturados, pode verificar facilmente se todos os dados afetados têm backups e qual seria o volume de dados eventualmente perdido caso opte por restaurá-lo.

Caso não haja decriptador disponível para o Ramsonware, e não haja backup das informações afetadas, a empresa deve avaliar o valor destes dados e, principalmente, os danos que um vazamento destes dados pode causar.

Em uma situação hipotética, na qual a empresa não tenha backup dos seus dados, ou que o vazamento destes dados possa causar riscos ou danos consideráveis aos titulares, a empresa deve avaliar a possibilidade de pagamento do resgate.

É importante salientar que efetuar o pagamento do resgate tem os seus próprios riscos. Muitos dos Ransomwares criados sofrem alterações por outros cibercriminosos, que alteram a carteira de pagamento, de modo que o verdadeiro criador do malware não vem a receber o pagamento e, portanto, não restaura os dados criptografados.

 

Laboratório para estudo do Ransomware Wannacry

 

Simulamos em laboratório um ataque realizado pelo Ransomware Wannacry, um dos mais conhecidos da atualidade. O Wannacry tem como seu vetor de ataque a exploração de vulnerabilidades do Windows Server 2003, infiltrando-se através de código remoto em execução SMBv1 e SMBv2 do sistema operacional. Ele ainda cria um backdoor no sistema que pode ser explorado posteriormente.

Este Malware foi detectado pela primeira vez em fevereiro de 2017 e se propagava através de um anexo de correio eletrônico, ou através de computadores na mesma rede compartilhada, graças a um executável com características de Worm.

A seguir demonstraremos a análise forense de uma estação infectada com o Wannacry. O ataque foi replicado em uma Máquina Virtual Windows 7 64bits, não conectada a internet.

Inicialmente, foi possível identificar uma tela de aviso afirmando que os arquivos teriam sido criptografados. Havia ainda um cronometro em contagem regressiva, texto explicativo e o número de uma determinada carteira em bitcoin (nº 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn). No título da página constava o título “Wana Decryptor”. Após uma breve busca na internet foi possível identificar o malware como o Ransomware Wannacry.

 

Exemplo de aviso de ataque Ransomware Wannacry

(Aviso de ataque Ransomware Wannacry, fonte: autor)

 

Na área de trabalho foi possível verificar que os arquivos existentes tiveram suas extensões alteradas, e estavam inacessíveis.

Arquivos criptografados

(Arquivos criptografados, fonte: autor)

 

Para esta simulação não reiniciamos o equipamento, de modo que que foi possível capturar a memória volátil utilizando a ferramenta FTK Imager. De posse da memória volátil, faremos a análise e identificação de informações relevantes para a investigação.

A captura de memória gerou o arquivo de imagem “memdump.mem”. Utilizando a ferramenta Volatility, realizamos a identificação do sistema operacional utilizado através do comando imageinfo. Após execução do comando, foi possível identificar a build e sistema operacional utilizado, neste caso o Win7SP1x64, além de outros detalhes da captura da memória volátil como data e hora do procedimento.

Comando: volatility.exe -f memdump.mem imageinfo

(Comando: volatility.exe -f memdump.mem imageinfo. Fonte: Autor).

 

Através do comando pslist, pudemos verificar quais processos se encontravam em execução no momento da captura da memória.  Entre estes, foi possível observar processos suspeitos sendo executados, entre os quais o “Wannacry.exe” (PID 2168), bem como seus subprocessos.

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 pslist

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 pslist. Fonte: Autor)

 

Em seguida executamos o comando pstree, que retornou a árvore de processos do S.O.

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 pstree

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 pstree. Fonte: Autor )

 

Uma vez identificado todo o encadeamento de processos do Wannacry.exe, passamos a verificar se estes processos estavam enviando ou recebendo requisições externas via TCPv4 ou TCPv6, através do comando netscan:

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 netscan

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 netscan. Fonte: Autor)

 

Como informado, por se tratar de simulação em ambiente controlado, a máquina estaria desconectada da internet. Assim, não obtivemos quaisquer resultados de requisições ou envios relacionados aos PIDs identificados. Caso se tratasse de um ataque real, e fossem localizadas remessas e requisições de dados, esta informação poderia contribuir para identificar os atacantes.

O próximo passo consiste em realizar a extração do executável do processo PID 2168, de forma que seja possível realizar a análise dinâmica de todas as alterações que este provoca no sistema. Para realizar a captura do executável do referido processo, utilizamos o comando procdump –pid=2168:

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 procdump --pid=2168 dumpfiles --dum-dir=<local de armazenamento do executável pós extração>

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 procdump –pid=2168 dumpfiles –dum-dir=<local de armazenamento do executável pós extração>. Fonte: Autor).

 

Após realizar a extração do referido executável, listamos todas as dll’s utilizadas pelos processos suspeitos através do comando dlllist.

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist Fonte: Autor)

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist Fonte: Autor)

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlllist Fonte: Autor)

 

Após identificadas as referidas dlls, realizamos também a extração destas para posterior análise através do comando dlldump – pid=<números dos processos alvos>. Na imagem abaixo pode-se verificar a extração dos dlls do processo PID 2168.

Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlldump --pid=2168 dumpfiles --dum-dir=local do arquivo(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 dlldump –pid=2168 dumpfiles –dum-dir=<local do arquivo>. Fonte: Autor).

 

Por fim, realizamos a busca de arquivos despejados na memória através do comando handles. Conforme imagem abaixo, foi possível identificar que o executável despejou um arquivo de chave privada de extensão .eky*. Este Ransomware possui um comando de destruição da chave após a sua criação, de modo que não foi possível acessar o arquivo.

Comando: volatility.exe -f memdump.mem --profile=Win7SP1x64 handles -p 2168 File

(Comando: volatility.exe -f memdump.mem –profile=Win7SP1x64 handles -p 2168 File. Fonte: Autor).

 

*.eky: O Wannacry cria arquivos relacionados ao processo de criptografia, relacionados as chaves públicas e privadas: .pky: Microsoft Publickeyblob a qual contém a chave pública RSA2048. .res: Dados para comunicação C2. .eky: Chave privada ESA exclusiva da vítima criptografada com chave pública RSA incorporada. .dky: Chave privada RSA descriptografada transmitida à vítima após o pagamento do resgate.

 

Poderíamos realizar ainda mais uma análise da memória volátil capturada, porém optamos por realizar a análise do arquivo .exe extraído referente ao processo PID 2168, denominado Wannacry.exe. Para esta análise, submetemos o arquivo ao site Vírus Total (https://www.virustotal.com/gui/home/upload) para que seja verificado se o executável já foi reportado como arquivo malicioso por empresas especializadas em cybersegurança.

Como resultado, 60 das 68 empresas consultadas consideram o arquivo como malicioso e ainda disponibilizam algumas informações sobre o mesmo.

Captura de imagem do resultado do executável no Virus Total

(Captura de imagem do resultado do executável no Virus Total. https://www.virustotal.com/gui/home/upload Fonte: Autor)

 

Na próxima etapa daremos sequência à análise forense do Ransomware. Para tanto, utilizamos algumas ferramentas gratuitas, cujos links para download serão disponibilizados posteriormente. Salientamos que este artigo é de cunho educativo e faremos apenas uma análise forense superficial.

 

Importação do binário ao pestudio

 

A seguir realizamos a importação do binário ao pestudio, onde foi possível visualizar as strings e outras informações valiosas para a análise do arquivo.

Captura de tela do pestudio e suas demais abas para análise do código malicioso

(Captura de tela do pestudio e suas demais abas para análise do código malicioso. Fonte: Autor).

 

Carregando o arquivo executável no HxD

 

Após a análise das strings, realizamos a análise em hexadecimal do arquivo através do programa HxD. Já de posse de algumas informações coletadas nas fases anteriores, como o número da carteira para pagamento de resgate, realizamos a busca no arquivo para verificar em quais bytes se encontravam a referida informação.  Após a pesquisa, obtivemos três carteiras de bitcoins, com os seguintes números:

 

  • 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
  • 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
  • 13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

Resultado da pesquisa do número da carteira iniciando com “115p...” no software HxD(Resultado da pesquisa do número da carteira iniciando com “115p…” no software HxD. Fonte: Autor)

 

De posse das carteiras, realizamos pesquisas através do site: https://www.blockchain.com/pt/explorer, onde foi possível verificar que estes endereços já movimentaram alguns milhões de reais. Também é possível verificar a ocorrência de transações recentes, conforme imagens abaixo:

•           Carteira: 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn

Carteira: 115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn

(Fonte: Autor)

 

•           Carteira: 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

Carteira: 12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

(Observação de movimentação em 22/09/2021. Fonte: Autor)

 

•           Carteira: 13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

(Observação de movimentação em 27/05/2021. Fonte: Autor)

 

Buscando funções de criptografias no binário

Realizamos uma busca por palavras ou funções contendo o termo “Crypt” no binário (.exe), através do HxD, e identificamos 10 resultados.

Resultado da pesquisa “Crypt” no HxD.
(Resultado da pesquisa “Crypt” no HxD. Fonte: Autor)

 

Aqui podem ser percebidas diversas funções características de um ataque Ransomware, como a criptografia dos arquivos e a destruição da chave.

Arquivos criados após execução do binário

 

Realizamos novamente a execução do binário no equipamento, e monitoramos os novos processos criados pelo arquivo malicioso. Utilizamos também o software FILEGRAB para capturar os novos arquivos criados no “C:\\”.  Concluída a execução, foram listados e copiados 58 arquivos, entre eles o próprio binário do executável do Wannacry.

Arquivos criados no C:\\ e copiados para pasta para posterior análise.

(Arquivos criados no C:\\ e copiados para pasta para posterior análise. Fonte: Autor)

 

Alterações nos registros do sistema operacional

Antes que fosse executado o arquivo do Wannacry, realizamos a captura de todos os registros do sistema operacional através da ferramenta REGSHOT. Após a execução do código malicioso, capturamos novamente os registros do sistema para que fosse possível comparar as duas versões.

Após a comparação, foi possível confirmar que foram adicionados 467 valores nas chaves de registros do Sistema Operacional, conforme imagem:

Relatório do Regshot. Valores adicionados nos registros.

(Relatório do Regshot. Valores adicionados nos registros. Fonte: Autor)

 

Foram adicionados também 16 novos arquivos e deletados 2, conforme imagem:

Relatório do Regshot . Arquivos adicionados e deletados

(Relatório do Regshot . Arquivos adicionados e deletados. Fonte: Autor)

 

Caso deseje verificar todas as chaves alteradas pelo Ransomware, faça um backup dos Registros do S.O, podendo para isto ser utilizada a ferramenta WRR.  Para este artigo, não iremos verificar todos os arquivos de registros alterados, já que isto demandaria uma análise ainda mais extensa.

Após análise de todos os documentos gerados, concluímos que se trata de um Ransomware do tipo Wannacry.  Após algumas pesquisas, localizamos decrypters para reverter a criptografia do Ransomware.

A criação dos decrypters só foi possível já que que o Wannacry não apaga os números primos da memória antes de liberar a memória associada. Assim, o decrypter recupera os dois números primos usados na fórmula para gerar chaves de criptografia da memória. Alguns exemplos de Decrypters são o Wannakey e o WanaKiwi da Guinet, as quais podem ser encontradas na:

 

 

Atualmente existem alguns sites que tentam identificar a família e o tipo de Ransomware que infectou o equipamento, conforme links abaixo:

 

 

Realizamos acima uma breve análise forense de um ambiente atacado por um Ransomware Wannacry. Todos os conceitos apresentados foram passados de forma superficial podem ser aprofundados. Além disso, os métodos mencionados neste artigo apenas funcionarão caso o computador afetado não tenha sido reinicializado após ser infectado, ou caso a memória associada não tenha sido alocada ou apagada por algum outro processo.

 

Se surgirem dúvidas relacionadas a este artigo estarei disponível para saná-las através do contato com a DPO Expert, bem como através do meu LinkedIn

(https://www.linkedin.com/in/caiquebarqueta635613129/ )

 

Bibliografia e programas utilizados

 

Pestudio: https://www.winitor.com/

Volatility: https://github.com/volatilityfoundation/volatility

HxD (editor hexadecimal) https://mhnexus.de/en/hxd/

FTK Imager: https://accessdata.com/productdownload/ftkimagerversion45

Process Explorer: https://docs.microsoft.com/enus/sysinternals/downloads/processexplorer

FileGrab: https://github.com/merces/filegrab

RegShot: https://sourceforge.net/projects/regshot/

WRR: https://www.mitec.cz/wrr.html

NO MORE RANSOM: https://www.nomoreransom.org/pt/index.html

ID RANSOMWARE: https://idRansomware.malwarehunterteam.com/index.php

MALPEDIA: https://malpedia.caad.fkie.fraunhofer.de/

Wannakey: https://github.com/aguinet/wannakey

WannaKiwi: https://github.com/gentilkiwi/wanakiwi

Utilizando o WannaKiwi: https://www.youtube.com/watch?v=PGg2th0wSVY

LISKA, Allan; GALLO, Timothy. Ransomware. Defendendo-se da extorsão digital. 1ª edição. O’Reilly e Novatec. Marco de 2017.

 

Autor: Caique Barquetta

Consultor de Segurança da Informação e analista forense da DPO Expert