Meltdown

folclore

segurançaprogramação

Um ataque de 2018 que permite a programas de usuário ler memória protegida do kernel via execução especulativa.

O Meltdown quebrou o isolamento entre o espaço de usuário e o kernel em CPUs afetadas, permitindo ler memória arbitrária do kernel. A principal mitigação, o isolamento da tabela de páginas do kernel, trouxe um custo de desempenho mensurável.

O Meltdown quebrou a fronteira entre programas de usuário e memória do núcleo em processadores afetados, permitindo a um programa comum ler memória que não tinha permissão de ver. Foi divulgado junto com o Spectre e é frequentemente confundido com ele, embora seja mais estreito e, importante, corrigível.

O mecanismo é que um processador podia ler especulativamente memória privilegiada e agir sobre o valor antes de a verificação de permissão terminar, deixando rastros no cache que revelavam o conteúdo. Ao contrário do Spectre, isso estava mais perto de uma falha de implementação que de propriedade inerente à especulação, e é por isso que a mitigação pôde ser arquitetural.

Essa mitigação foi o isolamento das tabelas de páginas do núcleo, que separa os espaços de endereço do núcleo e do usuário, de modo que a memória privilegiada simplesmente não está mapeada quando código de usuário roda. Funciona e custa, porque toda chamada de sistema passa a exigir troca de espaço de endereços, e cargas que fazem muitas chamadas viram lentidões substanciais. O Meltdown é, portanto, um estudo de caso limpo de segurança custando desempenho de forma mensurável, inevitável e paga por todos, que é descrição mais honesta da maior parte da engenharia de segurança que o enquadramento usual.

Também conhecido como: Meltdown, CVE-2017-5754

Fontes

  • CVE-2017-5754 (2018)

Todos os verbetes do glossário