Pplware

Rowhammer: Sabia que as memórias DRAM têm um bug físico?

No mundo informático a segurança tornou-se num dos tópicos mais importantes e mais discutidos da actualidade.

O Google Project zero é um projecto que tem como objectivo investigar ao máximo a integridade da segurança dos equipamentos informáticos através de qualquer meio ( seja físico ou virtual). Desta vez a equipa do projecto,  surpreendeu o mundo inteiro com a sua mais recente descoberta – um bug físico nas memórias DRAM ao qual foi dado o nome de Rowhammer.

 

O bug, agora descoberto, baseia-se no facto das memórias DRAM (Dynamic Random Access Memory) poderem ser exploradas no sentido de se poder alterar certos bits para fins de elevação de privilégios, modificação de parâmetros do kernel, negação de serviço, entre outros. Com esta “manipulação” de bits é possível, por exemplo, modificar o valor de uma transacção bancária.

Para clarificar melhor este bug vamos primeiro entender como a memória DRAM é estruturada a nível físico.

A memória RAM é composta de uma matriz, que por sua vez, é composta por colunas e linhas. Estas são mapeadas pelo kernel e usadas numa página para virtualizar os endereços. Esta medida de virtualização e paginação serve como uma “sandbox” ou uma camada de protecção, para prevenir os programas de acederem a zonas ou endereços de memória que não lhes foram atribuídos.

Quando tentam aceder, ocorrem erros do tipo “segmentation fault”. Mas esta protecção foi contornada pelo bug “rowhammer”. O acesso de duas colunas repetidamente no mesmo bloco físico pode fazer converter bits de 0 para 1, e vice-versa, das colunas adjacentes às colunas a serem acedidas (hammering). Este bug deve-se ao facto de cada vez mais as memórias terem um comprimento físico pequeno, o que poderá levar a que uma “descarga eléctrica” numa célula possa influenciar a informação presente numa célula vizinha.

Até à data RAMs low voltage (DDR3L e DDR3U) parecem não ser afectadas pela vulnerabilidade. O bug também não afecta memórias DDR4 ou DIMMs que tenham tecnologia ECC memory (Error-correcting code memory) que permite corrigir eventuais erros.

O que acham sobre esta descoberta? Será que estamos noutro nível de exploração da segurança informática?

Por: Vítor Hugo Silva (as known as int3), estudante da Faculdade de Ciências da Universidade do Porto, no Departamento de Ciências de Computadores no Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos.

Exit mobile version