Por Equipe de Consultoria

Com acesso físico a um computador, um agente malicioso pode realizar um ataque chamado “Evil Maid Attack”, o qual permite obter dados armazenados no disco ou até mesmo a conseguir acesso remoto ao sistema da vítima. Ainda que o dispositivo possua discos criptografados, o atacante é capaz de, a partir do Evil Maid, modificar o comportamento de inicialização do sistema e obter acesso remoto ao computador da vítima de forma praticamente indetectável.

Para demonstrar o funcionamento deste tipo de ataque, uma prova de conceito foi criada contra um dispositivo que possui disco rígido criptografado e que opera um sistema Linux. Esta PoC será detalhada a seguir.

O Ataque

Primeiramente o atacante precisa obter acesso físico ao dispositivo da vítima. Após conseguir isto, ele realiza o boot (a inicialização) de um sistema Linux em um pendrive ou, caso não possua a senha de inicialização do computador da vítima, ele retira o disco rígido do dispositivo e então o conecta em sua própria máquina. Com acesso ao disco criptografado, o atacante monta o volume responsável pela realização do processo de decifragem deste disco.

Imagem 01 — Montagem do volume responsável pela operação de decifragem do disco rígido do computador da vítima.

Dentro deste volume, diversos arquivos de inicialização são encontrados, como o Initrd, que possui uma imagem Linux e é responsável por executar os programas de inicialização que realizam o processo de decifragem do disco. O Initrd é então copiado para uma pasta onde será modificado para a inclusão de código malicioso.

Imagem 02 — Arquivo Initrd.

Arquivos Initrd possuem uma estrutura diferente que depende da distribuição Linux utilizada. Para averiguar o conteúdo do arquivo e suas delimitações, um programa de análise forense chamado binwalk foi utilizado.

Imagem 03 — Utilização do binwalk no arquivo Initrd.

Como mostrado na imagem 3, o Initrd possui diversos arquivos divididos entre arquivos do kernel da imagem Linux — que vão até o byte número 1605631 — e a imagem Linux em si, que neste caso é encontrada em formato Gzip. De posse destas informações, o atacante divide o arquivo Initrd em duas partes utilizando um programa chamado dd.

Imagem 04 — Divisão do Initrd utilizando o dd.

Após esta divisão, o arquivo que possui a imagem Linux é extraído revelando o seu conteúdo.

Imagem 05 — Extração da Imagem Linux.

Com a imagem extraída, é possível localizar o script responsável pela decifragem do disco, este pode ser encontrado no seguinte caminho:

/scripts/local-top/cryptroot

O script é então modificado para que após a decifragem do disco adicione um shell reverso ao computador da vítima.

Imagem 06 — cryptroot modificado.

Após a alteração do script, a imagem Linux é compactada e unida ao conjunto de arquivos do kernel, formando um Initrd modificado, que deve ser substituído pelo Initrd utilizado pelo computador da vítima.

Imagem 07 — Criação de um Initrd malicioso.

Com os procedimentos finalizados o atacante desliga o computador da vítima e aguarda até que ela ligue seu computador.

Imagem 08 — Vítima retorna ao seu computador.

Ao ligar o computador, a vítima fornece acesso remoto com privilégios de administrador ao atacante.

Imagem 09 — Atacante obtém acesso remoto ao computador da vítima.

Como se proteger de um Evil Maid

Não existem medidas que possam de fato proteger dispositivos contra um ataque de Evil Maid, mas uma série de ações podem ser tomadas para dificultar ou inviabilizar o processo, dependendo do nível de habilidade do atacante.

Nunca deixe seu computador em um local não confiável

Se você estiver viajando, por exemplo, uma boa opção para guardar o seu dispositivo seria o cofre do seu quarto de hotel, mas manter seus dispositivos e pendrives consigo é sempre a melhor opção.

Criptografe seus discos

Apesar de não impedir ataques mais sofisticados, um disco criptografado em nível de software adiciona tempo ao processo, impedindo um atacante de visualizar e modificar dados no momento do acesso ao disco.

Utilize o FDE

Além da criptografia dos discos em nível de software, a sua implementação em nível de hardware é tão ou mais importante, esta pode ser realizada por meio de tecnologias conhecidas, como FDE (Full Disk Encryption).

Desligue o seu computador quando for se ausentar

O fato do computador estar desligado impede diversos tipos de ataques de Evil Maid, além de colocar em ação a criptografia no disco rígido.

Adicione senha de boot na BIOS da sua placa-mãe

Utilizar senha de inicialização em seus dispositivos é uma medida que que deve atrasar a execução de um ataque; contudo, ele ainda pode ser realizado caso o atacante remova o disco rígido do aparelho.

Mantenha o TPM ativo

TPM é um chip presente em algumas placas-mãe responsável pela cifragem, decifragem e armazenamento de chaves criptográficas. Além disso, o TPM realiza checagem de integridade na BIOS e em arquivos do sistema.

Discos criptografados são uma importante camada de segurança; contudo, eles protegem apenas em casos em que o dispositivo é perdido ou furtado, não prevenindo ataques de Evil Maid. Esteja sempre atento ao local onde o seu dispositivo será guardado e implemente medidas que possam atrasar um possível atacante.

Referências

[1] http://theinvisiblethings.blogspot.com/2009/10/evil-maid-goes-after-truecrypt.html

[2] https://github.com/nyxxxie/de-LUKS

[3] https://www.cryptomathic.com/news-events/blog/the-trusted-platform-module-explained