Anatomia do Ransomware: Chimera

Anatomia do Ransomware: Chimera

Ransomware, um tipo de malware, tem se espalhado de forma quase epidêmica nos últimos anos. Tanto consumidores quanto empresas ao redor do mundo têm sido atingidos por essa ameaça. Após infectar o computador da vítima, esse malware criptografa os dados, tornando-os inutilizáveis. A vítima só pode recuperar seus dados após pagar um resgate, obtendo a chave dos criminosos cibernéticos para descriptografá-los. Geralmente, os resgates são relativamente baixos, geralmente na faixa de $300-500 para consumidores, mas houve casos em que hospitais, municípios e outras grandes instituições pagaram $100.000 ou mais.

Vamos dar uma olhada em um exemplo de um ransomware real para entender melhor como ele funciona. Este é um bom exemplo de como a Engenharia Reversa pode nos ajudar a compreender o funcionamento real do malware. Embora cada variante de ransomware seja ligeiramente diferente, elas tendem a operar de maneira semelhante. Neste caso, vamos analisar Chimera, uma variante do gênero de malware ransomware encontrada na Alemanha.

Usando Chimera como Exemplo

A maioria dos ransomware tem sido usada contra consumidores, mas Chimera foi usada principalmente para atacar empresas na Alemanha. Como a maioria dos ransomware funciona de maneira semelhante, podemos usar Chimera como um modelo para entender como o ransomware funciona em geral.

Nesta análise, vou resumir como Chimera opera, omitindo alguns passos para não deixar o texto muito longo.

Passo 1: Entrega do Malware

Assim como a maioria dos ransomware que apareceu nos últimos anos, Chimera foi entregue por e-mail, provavelmente com um componente de engenharia social para fazer alguém clicar em um link ou arquivo. Chimera foi escrito em .NET.

Nesta primeira etapa, Chimera começa entregando um trecho executável, cuja única função é chamar, descriptografar e decodificar a carga da segunda etapa na máquina da vítima (veja o Passo 8).

Passo 2: O Algoritmo AES

A segunda etapa consiste na carga criptografada e codificada que contém um método que claramente se assemelha a um algoritmo de criptografia AES. É muito provável que os criminosos cibernéticos o executem em várias threads para acelerar o processo. Para empresas com petabytes de dados, um processo de múltiplas threads seria necessário para criptografar os arquivos rapidamente antes de serem detectados.

Passo 3: Mapeamento na Memória

No estágio seguinte, Chimera realiza manualmente o mapeamento de seus processos na memória. Isso é altamente eficaz para driblar as proteções de ASLR (Randomização do Layout do Espaço de Endereço) e DEP (Prevenção de Execução de Dados) que estão incorporadas no Windows e em outros sistemas operacionais. Essas proteções randomizam a provável localização de um processo na memória, tornando mais difícil a implementação de uma sobrecarga de buffer. O ASLR e o DEP dificultam a tarefa, uma vez que o malware não pode prever o local do ponteiro de execução. Ao mapear manualmente o processo na memória, aumenta-se a probabilidade de que o malware funcione conforme o esperado, sendo uma estratégia eficaz.

Passo 4: Localizar um Processo de 32 Bits para Hospedar

Em seguida, a Chimera examina todos os processos do Windows em busca de um processo de 32 bits que possa servir de hospedeiro para sua carga útil e o abre.

Passo 5: Localizando o IP Local

Na etapa seguinte, Chimera procura e encontra o IP público da máquina que infectou utilizando o site www.whatismyipaddress.com. Em seguida, armazena esse valor em uma variável.

Passo 6: Contato com os Servidores de Comando e Controle

Após a Chimera obter o endereço IP do host infectado, ela faz uma conexão com seus servidores de comando e controle (C&C). Neste caso, esses servidores estão localizados em 95.165.168.168 e 158.222.211.81.

Chimera utiliza o Bitmessage para se comunicar através de um protocolo P2P nas portas 8444 e 8080. Bitmessage é um sistema de mensagens P2P seguro e criptografado que permite que uma única máquina envie mensagens para um ou vários destinatários. Como você pode observar na captura de tela abaixo, Chimera faz uso do cliente Bitmessage denominado PyBitmessage.

Passo 7: Navegar e Encontrar Unidades de Armazenamento e Arquivos

Antes de iniciar o processo de criptografia, o ransom precisa localizar as unidades de armazenamento, como discos rígidos (ou outros dispositivos), onde os dados estão guardados. Ela deve explorar cada uma das unidades lógicas e armazenar essas localizações em uma variável para uso posterior no processo de criptografia.

Passo 8: Obter Chave Aleatória

Agora que a Chimera conseguiu assumir com sucesso um processo de 32 bits, mapeou-se na memória (para evitar o ASLR) e enumerou os discos rígidos, ela precisa, em seguida, fazer uma chamada de retorno ao seu servidor de comando e controle (C&C) para obter uma chave aleatória com a qual criptografar os arquivos.

Assim que a chave aleatória é obtida do servidor de comando e controle, o Chimera chama a função do Passo 2 – o algoritmo de criptografia AES – e começa a criptografar arquivos críticos.

Antes de iniciar a criptografia, ele procura pelos seguintes tipos de arquivo:

.jpg, .jpeg, .xml, .xsl, .wps, .cmf, .vbs, .accdb, .ini, .cdr, .svg, .conf, .config, .wb2, .msg, .azw, .azw1, .azw3, .azw4, .lit, .apnx, .mobi, .p12, .p7b, .p7c, .pfx, .pem, .cer, .key, .der, .mdb, .htm, .html, .class, .java, .asp, .aspx, .cgi, .php, .jsp, .bak, .dat, .pst, .eml, .xps, .sqllite, .sql, .jar, .wpd, .crt, .csv, .prf, .cnf, .indd, .number, .pages, .x3f, .srw, .pef, .raf, .rf, .nrw, .nef, .mrw, .mef, .kdc, .dcr, .crw, .eip, .fff, .iiq, .k25, .crwl, .bay, .sr2, .ari, .srf, .arw, .cr2, .raw, .rwl, .rw2, .r3d, .3fr, .eps, .pdd, .dng, .dxf, .dwg, .psd, .png, .jpe, .bmp, .gif, .tiff, .gfx, .jge, .tga, .jfif, .emf, .3dm, .3ds, .max, .obj, .a2c, .dds, .pspimage, .yuv, .3g2, .3gp, .asf, .asx, .mpg, .mpeg, .avi, .mov, .flv, .wma, .wmv, .ogg, .swf, .ptx, .ape, .aif, .av, .ram, .m3u, .movie, .mp1, .mp2, .mp3, .mp4, .mp4v, .mpa, .mpe, .mpv2, .rpf, .vlc, .m4a, .aac, .aa3, .amr, .mkv, .dvd, .mts, .vob, .3ga, .m4v, .srt, .aepx, .camproj, .dash, .zip, .rar, .gzip, ., mdk, .mdf, .iso, .bin, .cue, .dbf, .erf, .dmg, .toast, .vcd, .ccd, .disc, .nrg, .nri, .cdi

Esses tipos de arquivo provavelmente são críticos para a operação da empresa. Eles incluem arquivos gráficos, arquivos de planilha, arquivos de banco de dados, arquivos de backup, arquivos de e-mail, arquivos Java, arquivos de áudio, arquivos de vídeo e chaves de criptografia. Sem eles, a empresa ficaria paralisada.

Passo 9: Solicitação de Resgate

Por fim, Chimera faz uma solicitação de resgate ao proprietário da empresa. Note que o navegador e seus arquivos associados estão isentos da criptografia para permitir a solicitação e o recebimento do pagamento do resgate.

Espero que este breve tutorial não apenas o ajude a compreender como o ransomware funciona, mas também a compreender o valor da engenharia reversa de malware.

Leave a Reply

Your email address will not be published. Required fields are marked *