Na segurança de computadores, um ataque de cold boot (ou, em menor grau, um ataque de reinicialização de plataforma) é um tipo de ataque de canal lateral no qual um invasor com acesso físico a um computador realiza um dump de memória da memória de acesso aleatório (RAM) de um computador executando um reinício forçado (hard reset) da máquina alvo. Normalmente, os ataques de cold boot são usados para recuperar chaves de criptografia de um sistema operacional em execução por motivos maliciosos ou de investigação criminal. O ataque baseia-se na propriedade de remanência de dados de DRAM e SRAM para recuperar conteúdos da memória que permanecem legíveis nos segundos a minutos seguintes ao desligamento da energia.
Um invasor com acesso físico a um computador em execução normalmente executa um ataque de cold boot realizando um boot a frio na máquina e iniciando um sistema operacional leve a partir de um disco removível para despejar o conteúdo da memória física pré-inicialização em um arquivo. O invasor fica então livre para analisar os dados despejados da memória para encontrar dados sensíveis, como as chaves, usando várias formas de ataques de busca de chaves. Como os ataques de cold boot visam a memória de acesso aleatório, esquemas de criptografia de disco total, mesmo com um módulo de plataforma confiável (TPM) instalado, são ineficazes contra esse tipo de ataque. Isso ocorre porque o problema é fundamentalmente de hardware (memória insegura) e não uma questão de software. No entanto, o acesso malicioso pode ser evitado limitando o acesso físico e usando técnicas modernas para evitar o armazenamento de dados sensíveis na memória de acesso aleatório.
Os módulos de memória DIMM perdem dados gradualmente ao longo do tempo conforme perdem energia, mas não perdem todos os dados imediatamente quando a energia é cortada. Com certos módulos de memória, a janela de tempo para um ataque pode ser estendida para horas ou até uma semana ao resfriá-los com spray congelante e nitrogênio líquido. Além disso, à medida que os bits desaparecem na memória com o tempo, eles podem ser reconstruídos, pois desaparecem de maneira previsível. Consequentemente, um invasor pode realizar um dump de memória de seu conteúdo executando um ataque de cold boot. A capacidade de executar o ataque de cold boot com sucesso varia consideravelmente entre diferentes sistemas, tipos de memória, fabricantes de memória e propriedades da placa-mãe, e pode ser mais difícil de realizar do que métodos baseados em software ou um Ataque de DMA. Embora o foco da pesquisa atual seja a criptografia de disco, qualquer dado sensível mantido na memória é vulnerável ao ataque.
Invasores executam ataques de cold boot reiniciando de forma forçada e abrupta uma máquina alvo e, em seguida, iniciando um sistema operacional pré-instalado a partir de um pendrive, CD-ROM ou através da rede. Em casos onde não é prático reiniciar a máquina alvo, um invasor pode, alternativamente, remover fisicamente os módulos de memória do sistema original e colocá-los rapidamente em uma máquina compatível sob o controle do invasor, que é então inicializada para acessar a memória. Uma análise posterior pode então ser realizada contra os dados despejados da RAM.
Um tipo semelhante de ataque também pode ser usado para extrair dados da memória, como um Ataque de DMA que permite que a memória física seja acessada através de uma porta de expansão de alta velocidade, como FireWire. Um ataque de cold boot pode ser preferido em certos casos, como quando há alto risco de danos ao hardware. O uso da porta de expansão de alta velocidade pode causar curto-circuito ou danificar fisicamente o hardware em certos casos.
Ataques de cold boot são normalmente usados para investigações forenses digitais, fins maliciosos como roubo e recuperação de dados, embora a simples diversão não possa ser descartada.
Em certos casos, um ataque de cold boot é usado na disciplina de computação forense para preservar de forma forense os dados contidos na memória como evidência criminal. Por exemplo, quando não é prático preservar os dados na memória por outros meios, um ataque de cold boot pode ser usado para realizar um despejo dos dados contidos na memória de acesso aleatório. Por exemplo, um ataque de cold boot é usado em situações em que um sistema está protegido e não é possível acessar o computador. Um ataque de cold boot também pode ser necessário quando um disco rígido é criptografado com criptografia de disco total e o disco potencialmente contém evidências de atividade criminosa. Um ataque de cold boot fornece acesso à memória, que pode fornecer informações sobre o estado do sistema no momento, como quais programas estavam em execução.
Um ataque de cold boot pode ser usado por invasores para obter acesso a informações criptografadas, como informações financeiras ou segredos comerciais, com intenção maliciosa.
Um propósito comum dos ataques de cold boot é contornar a criptografia de disco baseada em software. Ataques de cold boot, quando usados em conjunto com ataques de busca de chaves, demonstraram ser um meio eficaz de contornar esquemas de criptografia de disco total de vários fornecedores e sistemas operacionais, mesmo onde um coprocessador seguro Trusted Platform Module (TPM) é usado.
No caso de aplicativos de criptografia de disco que podem ser configurados para permitir que o sistema operacional inicialize sem a inserção de um PIN de pré-inicialização ou a presença de uma chave de hardware (por exemplo, BitLocker em uma configuração simples que usa um TPM sem um PIN de autenticação de dois fatores ou chave USB), o intervalo de tempo para o ataque não é limitante de forma alguma.
O BitLocker em sua configuração padrão usa um módulo de plataforma confiável que não requer nem um PIN, nem uma chave externa para descriptografar o disco. Quando o sistema operacional inicia, o BitLocker recupera a chave do TPM, sem qualquer interação do usuário. Consequentemente, um invasor pode simplesmente ligar a máquina, esperar o sistema operacional começar a inicializar e então executar um ataque de cold boot contra a máquina para recuperar a chave. Devido a isso, a autenticação de dois fatores, como um PIN de pré-inicialização ou um dispositivo USB removível contendo uma chave de inicialização junto com um TPM, deve ser usada para contornar essa vulnerabilidade na implementação padrão do BitLocker. No entanto, essa solução alternativa só evita um ataque de cold boot se a máquina estivesse desligada antes de o invasor obter acesso físico. Se a máquina já tivesse inicializado e estivesse em execução, ela não impede que um invasor recupere dados sensíveis da memória, nem que recupere chaves de criptografia armazenadas em cache na memória.
Como um dump de memória pode ser facilmente realizado executando um ataque de cold boot, o armazenamento de dados sensíveis na RAM, como chaves de criptografia para criptografia de disco total, é inseguro. Várias soluções foram propostas para armazenar chaves de criptografia em áreas que não sejam a memória de acesso aleatório. Embora essas soluções possam reduzir a chance de quebrar a criptografia de disco total, elas não fornecem proteção para outros dados sensíveis armazenados na memória.
Uma solução para manter as chaves de criptografia fora da memória é o armazenamento de chaves baseado em registros. As implementações desta solução são TRESOR e Loop-Amnesia. Ambas as implementações modificam o kernel de um sistema operacional para que os registradores da CPU (no caso do TRESOR, os registradores de depuração x86 e, no caso do Loop-Amnesia, os registradores de perfil AMD64 ou EMT64) possam ser usados para armazenar chaves de criptografia, em vez da RAM. As chaves armazenadas neste nível não podem ser lidas facilmente do espaço do usuário[carece de fontes] e são perdidas quando o computador reinicia por qualquer motivo. Tanto o TRESOR quanto o Loop-Amnesia devem usar a geração de chave de rodada em tempo real devido ao espaço limitado disponível para armazenar tokens criptográficos dessa maneira. Para segurança, ambos desabilitam interrupções para evitar que as informações das chaves vazem para a memória a partir dos registradores da CPU enquanto a criptografia ou descriptografia está sendo realizada, e ambos bloqueiam o acesso aos registradores de depuração ou perfil.
Existem duas áreas potenciais em processadores x86 modernos para armazenar chaves: os registradores SSE, que poderiam ser tornados privilegiados desabilitando todas as instruções SSE (e necessariamente, quaisquer programas que dependam delas), e os registradores de depuração, que eram muito menores, mas não apresentavam tais problemas.
Uma distribuição prova de conceito chamada 'paranoix', baseada no método de registrador SSE, foi desenvolvida. Os desenvolvedores afirmam que "executando o TRESOR em uma CPU de 64 bits que suporte AES-NI, não há penalidade de desempenho em comparação com uma implementação genérica de AES", e roda um pouco mais rápido do que a criptografia padrão, apesar da necessidade de recálculo de chave. A principal vantagem do Loop-Amnesia em relação ao TRESOR é que ele suporta o uso de várias unidades criptografadas; as principais desvantagens são a falta de suporte para x86 de 32 bits e o pior desempenho em CPUs que não suportam AES-NI.
O "cache congelado" (às vezes conhecido como "cache como RAM") pode ser usado para armazenar chaves de criptografia com segurança. Funciona desabilitando o cache L1 de uma CPU e usando-o para armazenamento de chaves; no entanto, isso pode degradar significativamente o desempenho geral do sistema a ponto de ser muito lento para a maioria dos propósitos.
Uma solução semelhante baseada em cache foi proposta por Guan et al. (2015) empregando o modo de cache WB (Write-Back) para manter os dados nos caches, reduzindo os tempos de computação de algoritmos de chave pública.
Mimosa no IEEE S&P 2015 apresentou uma solução mais prática para computações criptográficas de chave pública contra ataques de cold boot e ataques de DMA. Ele utiliza a memória transacional de hardware (HTM), que foi originalmente proposta como um mecanismo de acesso especulativo à memória para aumentar o desempenho de aplicativos multithread. A garantia de atomicidade forte fornecida pela HTM é utilizada para derrotar acessos concorrentes ilegais ao espaço de memória que contém dados sensíveis. A chave privada RSA é criptografada na memória por uma chave AES que é protegida pelo TRESOR. Mediante solicitação, uma computação de chave privada RSA é conduzida dentro de uma transação HTM: a chave privada é primeiro descriptografada na memória e, em seguida, a descriptografia ou assinatura RSA é realizada. Como uma chave privada RSA em texto simples só aparece como dados modificados em uma transação HTM, qualquer operação de leitura desses dados interromperá a transação - a transação retornará ao seu estado inicial. Observe que a chave privada RSA é criptografada no estado inicial e é o resultado de operações de gravação (ou descriptografia AES). Atualmente, a HTM é implementada em caches ou buffers de armazenamento, ambos localizados em CPUs, não em chips de RAM externos. Assim, os ataques de cold boot são evitados. O Mimosa derrota ataques que tentam ler dados sensíveis da memória (incluindo ataques de cold boot, ataques de DMA e outros ataques de software) e introduz apenas uma pequena sobrecarga de desempenho.
As melhores práticas recomendam desmontar quaisquer discos criptografados que não sejam do sistema quando não estiverem em uso, já que a maioria dos softwares de criptografia de disco é projetada para apagar com segurança as chaves armazenadas em cache na memória após o uso. Isso reduz o risco de um invasor conseguir recuperar chaves de criptografia da memória executando um ataque de cold boot. Para minimizar o acesso a informações criptografadas no disco rígido do sistema operacional, a máquina deve ser completamente desligada quando não estiver em uso para reduzir a probabilidade de um ataque de cold boot bem-sucedido. No entanto, os dados podem permanecer legíveis por dezenas de segundos a vários minutos, dependendo do dispositivo de RAM física na máquina, permitindo potencialmente que alguns dados sejam recuperados da memória por um invasor. Configurar um sistema operacional para desligar ou hibernar quando não estiver em uso, em vez de usar o modo de suspensão, pode ajudar a mitigar o risco de um ataque de cold boot bem-sucedido.
Normalmente, um ataque de cold boot pode ser evitado limitando o acesso físico de um invasor ao computador ou tornando cada vez mais difícil a realização do ataque. Um método envolve a soldagem ou colagem dos módulos de memória na placa-mãe, para que eles não possam ser facilmente removidos de seus soquetes e inseridos em outra máquina sob o controle de um invasor. No entanto, isso não impede que um invasor inicialize a máquina da vítima e realize um dump de memória usando um pendrive removível. Uma mitigação como o UEFI Secure Boot ou abordagens de verificação de boot semelhantes pode ser eficaz para evitar que um invasor inicialize um ambiente de software personalizado para despejar o conteúdo da memória principal soldada.
Criptografar a memória de acesso aleatório (RAM) mitiga a possibilidade de um invasor conseguir obter chaves de criptografia ou outro material da memória por meio de um ataque de cold boot. Essa abordagem pode exigir alterações no sistema operacional, nos aplicativos ou no hardware. Um exemplo de criptografia de memória baseada em hardware foi implementado no Microsoft Xbox. Implementações em hardware x86-64 mais recente estão disponíveis na AMD e nos Intel Willow Cove e posteriores.
A criptografia de memória total baseada em software é semelhante ao armazenamento de chaves baseado em CPU, já que o material da chave nunca é exposto à memória, mas é mais abrangente, pois todos os conteúdos da memória são criptografados. Em geral, apenas páginas imediatas são descriptografadas e lidas em tempo real pelo sistema operacional. As implementações de soluções de criptografia de memória baseadas em software incluem: um produto comercial da PrivateCore. e o RamCrypt, um patch de kernel para o kernel Linux que criptografa dados na memória e armazena a chave de criptografia nos registradores da CPU de maneira semelhante ao TRESOR.
Desde a versão 1.24, o VeraCrypt suporta criptografia de RAM para chaves e senhas.
Mais recentemente, vários artigos foram publicados destacando a disponibilidade de processadores comerciais x86 e ARM com segurança aprimorada. Nesse trabalho, um processador ARM Cortex A8 é usado como substrato sobre o qual uma solução de criptografia de memória total é construída. Segmentos de processo (por exemplo, pilha, código ou heap) podem ser criptografados individualmente ou em composição. Este trabalho marca a primeira implementação de criptografia de memória total em um processador comercial de propósito geral. O sistema fornece proteções de confidencialidade e integridade de código e dados que são criptografados em todos os lugares fora dos limites da CPU.
Como os ataques de cold boot visam a memória de acesso aleatório não criptografada, uma solução é apagar os dados sensíveis da memória quando eles não estiverem mais em uso. A "Especificação de Mitigação de Ataque de Reinicialização de Plataforma TCG", uma resposta da indústria a este ataque específico, força o BIOS a sobrescrever a memória durante o POST se o sistema operacional não foi desligado de forma limpa. No entanto, esta medida ainda pode ser contornada removendo o módulo de memória do sistema e lendo-o em outro sistema sob o controle do invasor que não suporte estas medidas.
Um recurso eficaz de apagamento seguro seria que, se a energia for interrompida, a RAM seja limpa em menos de 300 ms antes que a energia seja perdida, em conjunto com um BIOS seguro e um controlador de disco rígido/SSD que criptografe dados nas portas M.2 e SATA. Se a RAM em si não contivesse presença serial ou outros dados e os tempos fossem armazenados no BIOS com alguma forma de segurança exigindo uma chave de hardware para alterá-los, seria quase impossível recuperar qualquer dado e também seria imune a ataques TEMPEST, "man-in-the-RAM" e outros métodos de infiltração possíveis. Alguns sistemas operacionais, como o Tails, fornecem um recurso que grava dados aleatórios de forma segura na memória do sistema quando o sistema operacional é desligado para mitigar um ataque de cold boot. No entanto, o apagamento da memória de vídeo ainda não é possível e, até 2022, ainda era um chamado aberto no fórum do Tails. Ataques potenciais que poderiam explorar essa falha são:A geração de um par de chaves GnuPG e a visualização da chave privada em um editor de texto poderia levar à recuperação da chave.
O uso de um programa específico pode mostrar os padrões do usuário. Por exemplo, se um programa de esteganografia for usado e aberto, pode-se presumir que o usuário está escondendo dados. Da mesma forma, se um mensageiro instantâneo estiver sendo usado, uma lista de contatos ou mensagens pode ser exibida.
Um ataque de cold boot pode ser evitado garantindo que nenhuma chave seja armazenada pelo hardware sob ataque.
O usuário insere a chave de criptografia de disco manualmente.
Uso de uma unidade de disco rígido totalmente criptografada fechada, onde as chaves de criptografia são mantidas em hardware separado da unidade de disco rígido.
O Embaralhamento de memória pode ser usado para minimizar efeitos parasitários indesejáveis de semicondutores como um recurso dos processadores Intel Core modernos. No entanto, como o embaralhamento é usado apenas para descorrelacionar quaisquer padrões dentro do conteúdo da memória, a memória pode ser desembaralhada por meio de um ataque de desembaralhamento. Portanto, o embaralhamento de memória não é uma mitigação viável contra ataques de cold boot.
O Modo de suspensão não oferece proteção adicional contra um ataque de cold boot porque os dados normalmente ainda residem na memória enquanto estão nesse estado. Como tal, os produtos de criptografia de disco total ainda são vulneráveis ao ataque porque as chaves residem na memória e não precisam ser inseridas novamente uma vez que a máquina retorne de um estado de baixa energia.
Embora limitar as opções de dispositivo de boot no BIOS possa tornar um pouco mais difícil inicializar outro sistema operacional, o firmware em chipsets modernos tende a permitir que o usuário ignore o dispositivo de boot durante o POST pressionando uma tecla de atalho especificada. Limitar as opções de dispositivo de boot também não impedirá que o módulo de memória seja removido do sistema e lido em um sistema alternativo. Além disso, a maioria dos chipsets fornece um mecanismo de recuperação que permite que as configurações do BIOS sejam redefinidas para o padrão, mesmo que estejam protegidas com uma senha. As configurações do BIOS também podem ser modificadas enquanto o sistema está em execução para contornar quaisquer proteções impostas por ele, como a limpeza de memória ou o bloqueio do dispositivo de boot.
O ataque de cold boot pode ser adaptado e realizado de maneira semelhante em smartphones Android. Um cold boot pode ser realizado desconectando a bateria do telefone para forçar um reinício total ou mantendo pressionado o botão liga/desliga. O smartphone é então carregado (flashed) com uma imagem de sistema operacional que pode realizar um dump de memória. Normalmente, o smartphone é conectado à máquina de um invasor usando uma porta USB.
Normalmente, os smartphones Android apagam com segurança as chaves de criptografia da memória de acesso aleatório quando o telefone é bloqueado. Isso reduz o risco de um invasor conseguir recuperar as chaves da memória, mesmo que tenha sucesso na execução de um ataque de cold boot contra o telefone.
|url= (ajuda) (pdf). Defense Technical Information Center. suspeito removido%5d Cópia arquivada em 8 de abril de 2013 Verifique valor |arquivourl= (ajuda)Lest We Remember: Cold Boot Attacks on Encryption Keys no YouTube
Prova de Conceito da McGrew Security
Especialistas congelam telefone para quebrar criptografia de dispositivo Android
Skorobogatov, Sergei (junho 2002). «Low temperature data remanence in static RAM». University of Cambridge. doi:10.48456/tr-536
. Consultado em 27 de fevereiro de 2008. Cópia arquivada em 23 de março de 2026