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.
Este artigo tem mais de um ano
Acho que não.
Difícil exploração mesmo localmente.
Remotamente? Impossibru!
“Bugs fisicos” como estes há em muito hardware nos nossos dispositivos. Por exemplo “escutar” um disco rígido com microfones precisos e algoritmos de triangulação, etc é possível saber o que está a ser escrito ou a ler no disco.
Para isto ser um problema de segurança é preciso que se dediquem a fabricar hardware especifico para se connectar às board da RAM e depois é preciso saber muito bem quais os endereços específicos a forçar a mudança de estado lógico para que afecte, como o exemplo dado, o nº da conta bancaria.
Dou ainda outro exemplo de “bug físico”, através de feixes de radiação num correcto comprimento de onda (scan) é possível ver o que está escrito num sdd.
Quem trabalha no desenvolvimento de hardware conhece estas falhas, mas para obter o proveito das mesmas são precisas condições minuciosas de trabalho/laboratório.
No caso das memorias não seria necessário fabricar hardware especifico. Seria suficiente por software, visto que poderia usar a vulnerabilidade para conseguir acessos a memoria.
Cumprimentos
Impressionante!! Como é que sabes isso?
localmente é um maq.virtual c/ linux em um datacenter…… hihihi ECC.
#login
brut force bitflip remover blidagem do telemovel, encostar a mem, fazer uma chamda
unicode_start skipped on /dev/pts/1
#
keep dreaming…