Pular para o conteúdo

Breve Estudo Sobre Ransomwares e Análise Estática/Dinâmica do WannaCry

Os ransomwares são malwares que impedem que o detentor legítimo dos arquivos de acessar seus dados. A liberação dos dados só é efetivada mediante pagamento, normalmente realizado em Bitcoins por não ser rastreável. Esta categoria de malware explora vulnerabilidades específicas do sistema alvo, buscando criptografar recursivamente os dados e bloquear o acesso a eles.
Acquila Santos Rocha acquila
Hits: 14.918 Categoria: Python Subcategoria: Outros
  • Indicar
  • Impressora
  • Denunciar

Parte 6: Crypto Ransomwares (Prova de Conceito)

Atualmente, os ransomwares criptovirais mais perigosos utilizam tanto técnicas de criptografia simétrica, quanto assimétrica.

A criptografia simétrica utiliza uma única chave para criptografar e descriptografar dados. A chave utilizada geralmente tem 256 bits de tamanho, pois realiza a criptografia de forma mais rápida e eficiente quando comparado com outros tamanhos [12].

A criptografia assimétrica envolve a utilização de dois tipos diferentes de chave, uma pública e outra privada. Como exemplo o ransomware WannaCry gera uma chave simétrica aleatória com o padrão AES 256-bits para criptografar os arquivos do usuário, depois gera um par de chaves assimétricas RSA, onde a chave pública RSA servirá para criptografar a chave simétrica AES. Para descriptografar é necessária a chave privada.

Para demonstrar como os arquivos são criptografados e descriptografados, apresentamos os Algoritmos 1 e 2, respectivamente (na linguagem de programação Python). Estes algoritmos são apenas Prova de Conceito, ou seja, não se preocupam com a execução exata das linhas de código neles dispostas, mas buscam exemplificar o conceito geral de um Crypto Ransomware.

Uma implementação mais detalhada e funcional destes algoritmos, como parte de um todo, encontra-se neste endereço:
Linux: Breve Estudo Sobre Ransomwares e Análise Estática/Dinâmica do WannaCry
Figura 6 - Esquematização simplificada da utilização das chaves
No Algoritmo 1, Inicialmente, temos a presença de um par de chaves correspondente ao atacante, chamamos a chave pública e privada de Server-publicKey e Server-privateKey, respectivamente. Estas chaves são inicialmente criadas e armazenadas em um servidor, que em um momento seguinte será requisitado.

Quando o sistema alvo é infectado com o malware, apenas a chave pública do servidor atacante é conhecida. Nos Crypto Ransomwares mais atuais, também é utilizado um par de chave para a vítima, esse par de chaves é gerado no momento que o processo malicioso é executado.

Chamaremos a chave pública e privada da vítima de Client-publicKey e Client-privateKey, respectivamente. A Server-publicKey será utilizada para criptografar a Client-privateKey, já a Client-publicKey será utilizada para criptografar as chaves AES simétricas, geradas aleatoriamente com o objetivo de criptografar os arquivos da vítima.

A figura 6 representa a sequência de ações relacionadas a criptografia, sendo que as etapas 1, 2 e 3 ocorrem durante o período de criptografia dos arquivos. As etapas 4, 5, e 6 são relacionadas à descriptografia (Algoritmo 2), após a realização do pagamento.

O Algoritmo 2 descreve a fase de descriptografia, após o pagamento. Quando o Algoritmo 1 finaliza, percebemos que a vítima se torna incapaz de recuperar seus dados, por que a chave privada está criptografada, mas é necessária para descriptografar as chaves simétricas. Para recuperar o conteúdo original necessita-se da chave privada do servidor do ransomware. Assim como dito anteriormente, nessas fase se concretizam as etapas 4, 5, 6 da Figura 6.
Linux: Um breve estudo sobre Ransomwares e análise estática/dinâmica do WannaCry
Linux: Um breve estudo sobre Ransomwares e análise estática/dinâmica do WannaCry
   1. Prefácio
   2. Ransomware
   3. Fatores Históricos
   4. Formas de propagação
   5. Análise WannaCry
   6. Crypto Ransomwares (Prova de Conceito)
   7. Conclusão
Nenhum artigo encontrado.

Python - Usando requests anônimos através da rede Tor

Esteganografia e Esteganálise: transmissão e detecção de informações ocultas em imagens digitais

Como criar um bot para curtir e comentar perfis do Instagram

Como criar um keylogger em Python

OAK: Câmera Open Source de Visão Computacional com AI

#1 Comentário enviado por cizordj em 25/07/2019 - 08:56h
Meus parabéns pelo artigo, isso me fez refletir sobre como o meu ambiente de trabalho está implementado, mas me surgiu uma dúvida, se usarmos outro protocolo em um ambiente de trabalho que não seja o Samba o ransomware ainda pode se espalhar pela rede? ou isso depende do ransomware?

<---------------------------------------------------------------->
O seu tempo é o único bem que você não recupera
#2 Comentário enviado por acquila em 25/07/2019 - 11:10h

[1] Comentário enviado por Cizordj em 25/07/2019 - 08:56h

Meus parabéns pelo artigo, isso me fez refletir sobre como o meu ambiente de trabalho está implementado, mas me surgiu uma dúvida, se usarmos outro protocolo em um ambiente de trabalho que não seja o Samba o ransomware ainda pode se espalhar pela rede? ou isso depende do ransomware?

&lt;----------------------------------------------------------------&gt;
O seu tempo é o único bem que você não recupera


Obrigado! Cada ransomware explora uma vulnerabilidade específica, de acordo com o objetivo do malware. Se não me engano, todas as versões do Samba a partir da 3.5.0 estão sujeitas a execução de código remoto, possibilitando que um cliente malicioso carregue e execute uma biblioteca através do servidor. Até onde tenho conhecimento em questão de Ransomware, somente o WannaCry explora essa vulnerabilidade, mas posso estar enganado. Os detalhes sobre essa vulnerabilidade podem ser observados nesse link: https://www.samba.org/samba/security/CVE-2017-7494.html

Espero ter ajudado, até mais!

Contribuir com comentário

Entre na sua conta para comentar.