Share via


Ataques contra Encriptação de Disco via Acesso a DRAM

Persistência da Memória

"A Persistência da Memória", Salvador Dalí, 1931

Você já deve ter lido sobre o trabalho de pesquisadores da Universidade de Princeton sobre a possibilidade de quebrar diversos sistemas de encriptação obtendo as chaves acessando diretamente os chips de memória do sistema (o paper pode ser obtido aqui).

Nestes ataques, os pesquisadores usam uma propriedade física da memória DRAM, que mantém os dados armazenados por um período de tempo mesmo depois da energia ser cortada. Memórias DRAM são efetivamente capacitores que armazenam energia, e este período consiste no tempo em que o capacitor demora para decair ao estado de "terra". Este período depende da temperatura do ambiente, e em condições normais leva de 2,5 a 35 segundos, muito curto para um ataque na prática. No entanto, a uma temperatura de -50°C ou menor o conteúdo da memória pode se conservar por horas ou até mesmo dias, mesmo sem energia.

Isto permite que por exemplo um chip de memória possa ser retirado de um sistema em funcionamento, imediatamente congelado, e levado depois para análise em um outro PC onde todo o seu conteúdo poderá ser lido. Se a chave de encriptação estiver em memória - e normalmente está - ela vai poder ser lida e usada para decriptar o conteúdo do disco. Este ataque foi executado com sucesso contra vários sistemas de encriptação, incluindo o BitLocker presente no Windows Vista.

É um ataque interessante do ponto de vista técnico, mas na prática não significa nenhuma novidade para os usuários do BitLocker. Existem diversas formas de se obter a chave de encriptação acessando diretamente a memória, e o congelamento talvez seja uma das mais complicadas. Por exemplo,. devido a forma como a arquitetura dos PCs atuais foi desenhada, um equipamento conectado via interface Firewire, PCMCIA ou em um slot PCI pode ler diretamente a memória usando DMA e obter as chaves diretamente da memória - dispensando o nitrogênio líquido.

Em todos estes cenários o ataque tem que ser feito contra um sistema em funcionamento, já que a chave de encriptação tem que estar carregada na memória. A proteção contra este ataque, portanto, é manter o computador desligado quando o usuário não estiver ele próprio o utilizando. Isso significa desligar o equipamento quando você for sair com ele ou deixá-lo sozinho, ou usar a função de "hibernar" (hibernate) do Windows. O hibernate copia todo o conteúdo da memória para o disco (encriptado) e desliga totalmente o equipamento. Menos de um minuto depois o conteúdo da memória terá decaído e nenhum ataque poderá ser feito.

O hibernate é diferente do sleep (ou "suspender"), que na verdade apenas reduz o consumo de energia mas mantém o equipamento ligado, e portanto vulnerável a estes ataques. Portanto usuários do BitLocker nunca devem utilizar o recurso de sleep. Isto pode ser desabilitado nas novas opções de Gerenciamento de Energia incluídas nas políticas de grupo do Windows Vista. As mesmas políticas também podem programar o Vista para entrar em hibernate automaticamente depois de um determinado tempo de inatividade, protegendo assim o computador caso o usuário tenha deixado ele ligado sozinho.

Outro ponto importante é utilizar o BitLocker no chamado modo avançado, onde a proteção do TPM é completada com a inserção de um PIN ou chave USB pelo usuário. Desta forma somente com a presença do usuário o sistemapode ser ligado e a chave de encriptação carregada na memória.

Em resumo, para você ficar protegido:

1. Não use sleep, use hibernate.

2. Use BitLocker requerendo a entrada de um PIN ou uso de um token USB durante o boot.

No blog de System Integrity da Microsoft você pode ler também um post mais completo sobre esse assunto, colocado pelo Douglas Maciver do time de ataque e penetração do BitLocker.

Comments

  • Anonymous
    January 01, 2003
    Cima, De duas ou três reportagens que li sobre o assunto, só o linha defensiva explica claramente, outras dão a entender e não se preocupam em esclarecer, que o "ataque" não é por problemas de software, e nem de hardware, é física pura. Para a grande maioria dos que leram a reportagem, fica a sensação de que é mais um problema da microsoft devido a terem usado o  bitlocker como exemplo. Por mais que pareça complicado, não seria mais rápido?. Trocar a RAM e sair sem deixar vestígios?

  • Anonymous
    January 01, 2003
    Oi Bruno, Eu estava no post me referindo somente ao ataque de congelamento e remoção de memória, mas você tem razão: um outro ataque possível seria simplesmente reiniciar o sistema com um CD e fazer o dump da RAM remanescente. [Este ataque tem uma dificuldade prática, que é fazer com que o CD ocupe o menor "footprint" de memória possível e não sobrescreva a RAM remanescente. Mas é plenamente viável - muito mais eu diria que o congelamento.] Zerar a memória durante o boot realmente é um mitigador contra este ataque, e é uma recomendação também do TCG para sistemas como chip TPM. Para obter o logo do Vista com BitLocker o BIOS do PC deve implementar este recurso. Abraços,

  • Anonymous
    March 24, 2008
    Ola Cima, Infelizmente, não é preciso remover a DRAM do equipamento, resfriá-la e colocar em outro equipamento para poder fazer o "dump" da memoria, basta fazer um "cold boot" por uma .iso que faça o dump da DRAM, já que a premissa é que o atacante tenha acesso físico ao equipamento. Uma forma de mitigar o ataque do "cold boot", é a instrução TXT (Trusted Execution Technology), que permite que o sistema operacional marque áreas na DRAM que devem ser protegidas, e no caso do "cold boot" a BIOS primeiro "zera" essa área logo no inicio do POST, ie. antes que qualquer device capaz de boot esteja pronto. Agora, arrancar a memoria ainda não tem solução eficaz. My two cents! --bruno