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.

[ Hits: 11.612 ]

Por: Acquila Santos Rocha em 23/07/2019 | Blog: https://www.linkedin.com/in/acquila-santos-rocha-b8305a134/


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
Página anterior     Próxima página

Páginas do artigo
   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
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Sockets em Python

Introdução a Threads e como implementá-las em Python

Arduino com Bluetooth e pySerial

Gerar senhas seguras com Python

Interagindo com servidores HTTP com Python

  
Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts