Ataque de RAM RowPress

Novo método de ataque que bitflips células de memória.

O post de hoje é sobre um novo ataque aos chips DRAM, que pode afetar PCs, servidores e smartphones. O que é bastante oportuno, já que um novo estudo foi publicado que investiga um novo método de ataque DRAM apelidado de RowPress. Isso implica martelar uma linha DRAM muitas vezes, causando bitflips em (fisicamente) linhas próximas. A ideia em si não é nova – algo semelhante foi apresentado há quase uma década sob o nome de RowHammer. No entanto, RowPress é uma técnica mais eficaz. Mas antes, vamos descobrir o que "martelar" realmente significa.

Como funciona a RAM

Os chips de RAM nunca foram muito confiáveis. Vagamente falando, cada célula de memória, na qual um bit de informação é armazenado, é uma bateria em miniatura. Quando carregamos, escrevemos um "um" no celular. Se não houver cobrança, é "zero". E isso acontece... milhões de vezes por segundo! Nos microchips modernos, essas células são densamente embaladas em um grau fenomenal: bilhões delas todas em um cristal do tamanho de uma unha. Com a alta taxa de atualização e a extrema miniaturização dos componentes eletrônicos, mais cedo ou mais tarde as falhas são inevitáveis — a "bateria" em miniatura perderá sua carga, e a que se transformará em zero. Às vezes, as falhas são causadas por fatores externos, por exemplo, se o chip de memória for exposto ao calor ou mesmo a raios cósmicos.

Tais falhas podem levar a erros críticos. Imagine que um programa armazena um endereço na RAM que precisa ser acessado quando determinadas condições são atendidas. Se alguns bits neste endereço espontaneamente virar de um para zero, em vez do seu código, não há como saber o que será executado. Muitas tecnologias são usadas para evitar falhas; por exemplo, uma atualização forçada do conteúdo das células de memória: leitura/gravação sequencial de informações — mesmo que nem a CPU nem o programa precisem disso ali mesmo. O processo de leitura de dados é destrutivo, portanto, após serem acessadas, as informações devem ser substituídas. Há também um mecanismo de correção de erros: a memória armazena dados e informações separadas para verificar a exatidão dos dados. É importante entender que a alta densidade de células de memória nos computadores modernos é uma característica fundamental; eles não funcionarão de outra forma.

Ataque RowHammer

Mas voltemos ao relatório RowHammer de 2014. Pesquisadores da Universidade Carnegie Mellon e da Intel demonstraram como explorar os recursos descritos acima da RAM atualizada dinamicamente para causar danos. Se a leitura de dados é destrutiva e é seguida de substituição, o que acontece se escrevermos um programa que lê dezenas ou centenas de milhares de vezes por segundo? Esse processo é o que os pesquisadores chamam de "martelar".

Representação esquemática da estrutura das células RAM

Representação esquemática da estrutura das células RAM. Fonte

As células de memória são organizadas como uma matriz, e qualquer operação em uma célula específica envolve o acesso a toda uma gama delas. Descobriu-se que o acesso sequencial e repetido a uma fileira de células afeta as linhas vizinhas. Se essa operação for executada muitas vezes, os uns e zeros nas células da linha vizinha podem ser invertidos. O estudo de 2014 mostrou que tal ataque era possível nos módulos de memória DDR3 então padrão.

Por que isso é perigoso? Imagine que um hacker pode executar algum código arbitrário no sistema visado, mas sem privilégios especiais. Em um caso extremo, pode até ser o código de uma página da web, com um link enviado para a vítima. Se esse código tiver permissão para "martelar" uma determinada área da RAM, ele pode causar distúrbios de leitura em células vizinhas, onde, digamos, os dados do sistema operacional podem ser armazenados.

Em 2015, pesquisadores do Google mostraram como o RowHammer poderia ser usado para obter acesso ilimitado à RAM de um computador. Este é um ataque altamente complexo com muitas incógnitas: ainda é necessário entrar de alguma forma na área de memória certa e causar a corrupção de dados "certa" para que o computador não congele e o programa não pare de funcionar. No entanto, a possibilidade teórica de tal ataque foi confirmada.

BlackSmith: ignorando as proteções RowHammer

Como proteger os dados de um ataque RowHammer? A maneira mais simples é forçar uma atualização de informações em linhas vizinhas após uma solicitação para ler dados de uma linha de célula de memória. Isso reduz significativamente a probabilidade de corrupção de dados. Como no caso de vulnerabilidades de hardware em CPUs, mais cedo ou mais tarde um problema é descoberto em cada método de proteção.

Em 2021, pesquisadores demonstraram um ataque BlackSmith, que mostrou que, sob certas condições, é possível causar falhas mesmo com as proteções RowHammer em vigor. Como exatamente eles fizeram isso? E se, em vez de "martelar" a fileira de células de memória ao lado da alvo, alguém tentar combinações diferentes: interrogar as linhas acima e abaixo do alvo centenas de milhares de vezes ou atacar quatro linhas ao mesmo tempo em uma determinada sequência? Deu certo. Por que? Porque o problema fundamental (a alta densidade de células de memória) não foi a lugar nenhum!

RowPress: maior eficácia de ataque

O novo ataque RowPress é ainda mais eficaz, apesar de usar o mesmo princípio básico – com uma ligeira, mas crucial mudança: o atacante tenta manter uma fileira de células abertas para leitura o maior tempo possível. Os pesquisadores conseguiram encontrar outra característica padrão de como os chips de memória e o controlador operam que causa ainda mais distúrbios afetando fileiras vizinhas de células de memória. Em termos de eficácia (medida pelo número de "martelos" necessários – quanto menos, melhor), o RowPress é dezenas ou até centenas de vezes mais potente que o RowHammer. Em alguns casos marginais, o bitflip desejado foi alcançado após uma única operação de leitura em dados vizinhos.

Fluxograma de teste para investigação do funcionamento de módulos RAM.

Fluxograma de teste para investigação do funcionamento de módulos RAM. Fonte

Qual a gravidade do problema? A probabilidade de um ataque RowHammer, Blacksmith ou RowPress em usuários domésticos é minúscula. Em risco estão as empresas. Em teoria, esses ataques poderiam atingir a memória de servidores em execução em nuvens públicas. Afinal, os provedores dão acesso aos seus servidores, alocando uma espécie de máquina virtual para os usuários executarem qualquer código que quiserem. Eles devem garantir que essa máquina não tenha como escapar de seu ambiente virtual e obter acesso aos dados de outros clientes. Grosso modo, tal sistema virtual é um programa capaz de ler e gravar dados na RAM de um servidor; Em outras palavras, uma plataforma pronta para atacar a memória de um servidor físico.

O quão teórico é tal ataque pode ser visto na foto da configuração de teste usada para estudar o RowPress. O módulo de memória foi movido para uma placa separada. Conectado a ele é algum tipo de dispositivo de depuração para ajustar a operação de RAM. Alguns sistemas de proteção foram desativados. Mais importante, um aquecedor é instalado no módulo com chips de memória, elevando a temperatura para 50 ou até 80 graus Celsius, o que por si só aumenta as chances de corrupção acidental ou intencional de dados.

Especificações de ataque de hardware

Comparando o RowPress com o RowHammer anterior, basicamente vemos uma pequena modificação no método de acesso à memória que permite que os invasores contornem (inclusive em um sistema real, sem aquecimento ou "trapaça") as proteções implementadas pelos fabricantes de módulos. Os pesquisadores propuseram sua própria solução para esse problema, que, felizmente, tem pouco impacto no desempenho. No entanto, como acontece com a maioria das vulnerabilidades de hardware, livrar-se totalmente delas é irrealista. Reduzir a densidade dos chips de memória atuais não é uma opção. Pelo contrário, sua capacidade só cresce e cresce.

Nem a implementação de correção de erros "confiável" resolveria o problema, já que isso ocuparia até um terço da RAM. O método usual baseado em códigos de correção de erros (ECC) torna os ataques menos eficazes, mas não os elimina. Portanto, é seguro dizer que o RowPress não será o último ataque "martelo" que vemos.

Do lado positivo, tais estudos permanecem, por enquanto, um exercício amplamente teórico. Os pesquisadores estão encontrando novos vetores de ataque, e os fabricantes de dispositivos estão criando novas defesas. Claro, é possível que, eventualmente, eles descubram acidentalmente uma vulnerabilidade com potencial de exploração em massa. No entanto, a julgar pela história de tais estudos na última década, isso não parece provável.

Mas essa pesquisa também não deve ser descartada como puramente teórica e abstrata: o que especialistas baseados em laboratório podem fazer hoje, cibercriminosos reais podem ser capazes de fazer amanhã – ou em cinco ou dez anos. Quanto aos provedores de serviços em nuvem, eles precisam estar informados sobre os desenvolvimentos mais recentes agora e considerá-los em seus modelos de segurança com firmeza.


Strong

5178 Blog indlæg

Kommentarer