Pesquisar neste blog

terça-feira, 23 de fevereiro de 2010

Evil Maid goes after TrueCrypt! (Ataque da Camareira Malvada ao TrueCrypt)

Olá Pessoal,
usar criptografia em nossos arquivos é bom, nos trás a sensação de estarmos seguros mesmo que imaginariamente. A informação que trago agora é sobre o ataque ao TrueCrypt, aplicação GPL que trabalha com os algorítimos AES-256, Serpent, e Twofish.  Ataque também  conhecido como  Evil Maid Attack, ou ataque da camareira malvada, publicado pela Joanna Rutkowska em seu blog.  Ela demonstra passo-a-passo os procedimentos, e o que mais me espanta é a facilidade do ataque descrito por ela.

O Ataque

Vamos entender rapidamente o Evil Maid Attack. O cenário que consideramos é quando alguém deixou um laptop criptografado num quarto de hotel. Vamos supor que o laptop usa criptografia completa de disco, como por exemplo esta fornecida pelo TrueCrypt ou PGP Whole Disk Encryption.
Muitas pessoas acreditam, inclusive alguns especialistas em segurança bem conhecidos, que é totalmente aconselhável desligar o seu laptop quando você usa criptografia completa de disco, a fim de evitar ataques via FireWire / PCMCIA ou "COLDBOOT" ataques. 


Então, vamos supor que temos um usuário razoavelmente paranóico, que usa criptografia completa de disco em seu laptop, e também desliga seu laptop cada vez que deixá-o sozinho em um quarto de hotel, ou em outro lugar.

Agora, este é o lugar onde nossa camareira malvada entra em jogo. O que o atacante precisa fazer é ir para o quarto do usuário e ligar seu laptop a partir do pendrive USB com o Evil Maid. Depois 1 ou 2 minutos, o laptop alvo fica infectado com Evil Maid Sniffer que irá gravar a senha de criptografia de disco quando o usuário inserí-la da próxima vez. Como qualquer usuário esperto já deve ter percebido, esta parte é ideal para ser executada por empregados do hotel, ou as pessoas que fingem ser elas. 

Assim, após nossa vítima voltar ao quarto de hotel e ligar seu laptop, a senha será gravada e, por exemplo armazenado em algum lugar do disco, ou talvez transmitidos através da rede (não implementado na versão atual).

 

Agora nós podemos seguramente roubar/confiscar o laptop do usuário, sabemos como decifrá-lo. Fim da história. 


Quick Start

Baixe a imagem aqui.  Para gravar o Evil Maid em seu pendrive USB use os seguintes comandos no Linux (você precisa ser root para fazer dd):

dd if=evilmaidusb.img of=/dev/sdX

Onde /dev/sdX deve ser substituído pelo dispositivo que representa o seu stick USB, por exemplo, /dev/sdb. Tenha cuidado, como a escolha de um dispositivo errado pode resultar em danos no disco rígido ou outros meios de comunicação! Além disso, certifique-se usar o dispositivo que representa o disco inteiro (por exemplo /dev/sdb), ao invés de uma partição do disco (por exemplo, / dev/sdb1).

No Windows você precisa obter um programa dd-like,  o comando ficaria mais ou menos como este (dependendo da aplicação dd que você use):

dd if=evilmaidusb.img of=\\?\Device\HarddiskX\Partition0 bs=1M


Onde HarddiskX deve ser substituído pelo seu dispositivo real.
Depois de preparar o pendrive USB com o Evil Maid, você está pronto para testá-lo contra alguns laptops criptografados com o TrueCrypt (mais tecnicamente: um laptop que usa o TrueCrypt, sistema de criptografia de disco). Basta iniciar o laptop usando o pendrive USB, confirmar que deseja executar a ferramenta (pressione 'E') e o carregador TrueCrypt em seu laptop deve estar infectado.

 
 Agora, o Evil Maid registrará as senhas fornecidas durante o boot. Para recuperar a senha gravada, basta inicializar novamente a partir do pendrive USB Maid Evil - ele detecta que já está infectado e mostra a senha sniffada.


 A implementação atual do Evil Maid sempre armazena a última senha escrita, assumindo que esta é a correta, no caso de o usuário ter tentato entrar com uma senha incorretamente em tentativas anteriores.

NOTA: É ilegal o uso do Evil Maid para obter a senha de outras pessoas sem o seu consentimento. Você deve sempre obter a permissão das pessoas antes de testar Evil Maid em seus laptops! 




ATENÇÃO: A imagem USB e fonte fornecida deve ser considerada apenas como prova de conceito. Use este código por seu próprio risco, e não execute-o contra um sistema em produção. Não nos responsabilizamos por quaisquer danos potenciais deste código ou que seus derivados podem causar.


 Como o Evil Maid USB Trabalha

A execução é extremamente simples. É feita uma leitura dos primeiros 63 setores do disco primário (/dev/sda) e checado (o primeiro setor) se o código se parece com um carregador TrueCrypt válido. Se isso acontecer, o restante do código é descompactado (usando gzip). Hooks Evil Maid tem a função de pedir a senha para o usuário, de modo que os registros dos hooks de qualquer senha fornecida para esta função. Também tomamos cuidado sobre como ajustar alguns campos na MBR, como o tamanho do gerenciador de inicialização e sua quantidade. Depois que é feito o hooking, o carregador é empacotado novamente e escrito de volta para o disco. 





Links Relacionados:
Sandro Süffert
Joanna Rutkowska



2 comentários:

SS disse...

Marcos, obrigado pela publicação do artigo sobre o "Evil Maid Attack" - gostaria de fazer uma correção: O meu nome é Sandro Süffert (você publicou Rafael Süffert como referência das informações..).

[ ]s,

Sandro Süffert

Marcos Abadi disse...

Bah, desculpe Sandro, não sei onde estava com a cabeça. Correção feita.
Grande abraço ao amigo