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

6 Comentários

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.

 

RAM_02


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.

4GB_DDR3_SO-DIMM-640x298

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.

Comentários

6

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de PSL
    PSL

    Acho que não.

    Difícil exploração mesmo localmente.

    Remotamente? Impossibru!

  2. Avatar de Gaspar
    Gaspar

    “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.

    1. Avatar de Joaquim Visconde
      Joaquim Visconde

      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

    2. Avatar de Ivan Lopes
      Ivan Lopes

      Impressionante!! Como é que sabes isso?

  3. Avatar de sakura
    sakura

    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
    #

  4. Avatar de tuga69
    tuga69

    keep dreaming…