Simple Science

Ciência de ponta explicada de forma simples

# Informática# Criptografia e segurança

Entendendo os Ataques Rowhammer e Seu Impacto

Explorando as ameaças dos ataques Rowhammer nos sistemas de memória dos computadores.

― 8 min ler


Rowhammer: Uma AmeaçaRowhammer: Uma AmeaçaSériade memória dos computadores.vulnerabilidades críticas nos sistemasAtaques Rowhammer expõem
Índice

Nos últimos anos, os sistemas de computador ficaram vulneráveis a vários tipos de ataques, principalmente na forma como lidam com a memória. Um problema significativo em que os pesquisadores têm se concentrado é um tipo de ataque chamado RowHammer. Esse ataque foca no sistema de memória dos computadores, especialmente a Memória Dinâmica de Acesso Aleatório (DRAM). Ele pode causar mudanças em bits armazenados na memória sem precisar de acesso direto a essa memória. Isso significa que um ator malicioso pode manipular dados sem que o usuário ou o sistema percebam.

O Rowhammer explora uma falha na forma como a DRAM armazena dados. Quando linhas específicas da memória são acessadas repetidamente, pode fazer com que bits em linhas adjacentes mudem, resultando em comportamentos inesperados em aplicativos e sistemas. Essas mudanças de bits podem levar a riscos de segurança, especialmente quando dados sensíveis, como senhas ou bandeiras de autenticação, estão armazenados nesses locais de memória.

Contexto sobre Ataques Rowhammer

Os ataques Rowhammer ganharam atenção por causa da sua capacidade de causar sérios problemas de segurança. Pesquisadores mostraram que esses ataques podem manipular variáveis armazenadas na memória, como aquelas usadas para autenticação em vários aplicativos. Por exemplo, se um atacante conseguir mudar um bit no processo de verificação de senha, ele pode acessar sistemas sem autorização.

O efeito Rowhammer ocorre quando uma linha de memória é acessada repetidamente, fazendo com que linhas vizinhas fiquem instáveis. Essa instabilidade faz com que bits adjacentes mudem e transbordem para verificações de segurança ou dados sensíveis. Basicamente, o Rowhammer permite que atacantes manipulem o que deveria ser informação segura, tornando os sistemas vulneráveis a invasões.

Como Funciona o Rowhammer

O ataque Rowhammer funciona usando técnicas específicas para acessar a memória de uma forma que causa mudanças de bits. Quando o ataque é iniciado, o atacante primeiro identifica quais linhas de memória atacar. Ao acessar essas linhas milhares de vezes em rápida sucessão, o atacante pode fazer com que os bits em linhas vizinhas mudem.

Essencialmente, se um atacante pode acessar repetidamente uma linha específica de memória, isso pode causar mudanças involuntárias em bits em linhas que guardam informações importantes, como senhas de usuários ou variáveis de autenticação. A chance de sucesso aumenta com o número de acessos, tornando possível que atacantes criem uma situação em que consigam contornar medidas de segurança.

O Impacto dos Ataques Rowhammer

O impacto do Rowhammer na segurança dos sistemas pode ser severo. Atacantes podem obter acesso não autorizado a sistemas e dados ao mudar bits em variáveis de autenticação. Por exemplo, em uma situação onde um usuário insere uma senha, se um bit na variável que verifica o status da senha mudar, o atacante pode ganhar acesso mesmo sem a senha correta.

Esse risco não é teórico; já houve casos documentados em que o ataque Rowhammer foi implementado com sucesso para contornar verificações de segurança. Aplicativos que dependem de variáveis de memória para segurança, como SUDO ou SSH, podem ser comprometidos, permitindo que um atacante ganhe privilégios elevados.

Ataques em Aplicativos Específicos

Contornando o SUDO

O SUDO é uma ferramenta vital em sistemas operacionais tipo Unix que permite aos usuários executar comandos com os privilégios de outro usuário, geralmente o superusuário ou root. Se um atacante pode manipular as verificações que confirmam a senha de um usuário, ele pode obter acesso root sem autorização.

Usando Rowhammer, os atacantes podem direcionar a variável que determina se uma senha está correta. Quando um bit nessa variável muda, o comando SUDO pode conceder acesso mesmo quando a senha fornecida está errada. Essa vulnerabilidade é decorrente da forma como o aplicativo lida com verificações de segurança na memória.

Ataques no OpenSSH

O OpenSSH fornece comunicações seguras sobre redes não seguras. Ele usa mecanismos de autenticação para garantir que o usuário que se conecta a um servidor esteja autorizado. Se um atacante puder manipular a variável que indica se um usuário está autenticado, ele pode efetivamente fazer login sem credenciais adequadas.

Ao explorar o Rowhammer, os atacantes podem direcionar o processo de autenticação no OpenSSH. Se um bit crucial na bandeira de autenticação mudar, o sistema pode pensar que um usuário está autenticado. Isso pode levar a acessos não autorizados a sistemas e dados sensíveis.

Ataques no MySQL

O MySQL é um sistema de gerenciamento de banco de dados amplamente utilizado, crucial para armazenar grandes quantidades de dados de forma segura. Se um atacante puder manipular as verificações de autenticação no MySQL, ele pode acessar informações sensitivas e funcionalidades do banco de dados.

O Rowhammer pode afetar como o MySQL verifica a validade da senha. Ao mudar um bit na variável responsável por essa verificação, um atacante poderia se autenticar sem inserir a senha correta. Essa ação manipulativa pode ter consequências graves para a segurança dos dados.

Desafios na Prevenção de Ataques Rowhammer

Prevenir ataques Rowhammer é desafiador por várias razões. Primeiro, a natureza da DRAM e como ela funciona torna difícil proteger completamente contra esses tipos de vulnerabilidades. Enquanto patches e atualizações de software podem melhorar a segurança, muitas vezes não eliminam completamente o risco.

Além disso, muitos aplicativos e sistemas dependem da memória para várias operações, tornando impraticável evitar completamente interações de memória. À medida que os sistemas se tornam mais complexos, o risco de encontrar vulnerabilidades como o Rowhammer também aumenta.

Medidas de Combate ao Rowhammer

Aumentando as Taxas de Atualização

Uma abordagem comum sugerida para mitigar os efeitos do Rowhammer é aumentar as taxas de atualização da DRAM. Ao atualizar a memória mais frequentemente, a chance de mudanças de bits devido ao Rowhammer é reduzida. No entanto, esse método vem com desvantagens, incluindo redução de desempenho e maior consumo de energia.

Randomização de Layout de Espaço de Endereçamento (ASLR)

ASLR é uma técnica que randomiza onde os dados são armazenados na memória. Ao dificultar que um atacante preveja onde certas variáveis estão, o ASLR pode ajudar a reduzir a taxa de sucesso dos ataques Rowhammer. No entanto, esse método tem suas limitações, já que atacantes ainda podem encontrar maneiras de inferir layouts de memória por meio de vários meios.

Códigos de Correção de Erros (ECC)

A memória ECC é projetada para detectar e corrigir pequenos erros nos dados armazenados na memória. Embora o ECC possa ajudar a mitigar alguns problemas causados pelo Rowhammer, ele não é infalível. Atacantes podem explorar vulnerabilidades em como o ECC opera, tornando-o insuficiente como única medida de combate.

Reforçando a Lógica de Segurança em Aplicativos

Outra abordagem é reforçar a lógica usada nas verificações de segurança dentro dos aplicativos. Por exemplo, em vez de usar condições como "se não for zero", os desenvolvedores podem implementar verificações mais rigorosas. Isso dificulta para os atacantes explorarem vulnerabilidades com sucesso, já que uma condição específica precisa ser atendida para conceder acesso.

Monitoramento e Detecção de Ataques Rowhammer

A pesquisa está em andamento para desenvolver métodos para detectar ataques Rowhammer em tempo real. Isso pode envolver o monitoramento de padrões de acesso à memória e a detecção de comportamentos incomuns que sugerem um ataque Rowhammer ativo. Técnicas de aprendizado de máquina podem ser exploradas para aprimorar as capacidades de detecção.

Conclusão

O Rowhammer representa uma ameaça severa à segurança dos computadores, principalmente na forma como dados sensíveis são manipulados na memória. Sua capacidade de manipular variáveis cruciais pode levar a acessos não autorizados e graves brechas de segurança em aplicativos como SUDO, OpenSSH e MySQL.

Embora várias medidas de combate existam, a natureza da arquitetura de memória e a complexidade dos aplicativos modernos apresentam desafios para mitigar completamente o risco. À medida que os pesquisadores continuam a estudar e desenvolver soluções, entender as implicações do Rowhammer permanece crucial para melhorar a segurança dos computadores em geral.

A vigilância contínua e atualizações proativas de software e hardware serão essenciais para proteger contra esses tipos de ataques. À medida que a tecnologia e os sistemas evoluem, os métodos usados para protegê-los também devem se adaptar para enfrentar de forma eficaz ameaças emergentes como o Rowhammer.

Fonte original

Título: Mayhem: Targeted Corruption of Register and Stack Variables

Resumo: In the past decade, many vulnerabilities were discovered in microarchitectures which yielded attack vectors and motivated the study of countermeasures. Further, architectural and physical imperfections in DRAMs led to the discovery of Rowhammer attacks which give an adversary power to introduce bit flips in a victim's memory space. Numerous studies analyzed Rowhammer and proposed techniques to prevent it altogether or to mitigate its effects. In this work, we push the boundary and show how Rowhammer can be further exploited to inject faults into stack variables and even register values in a victim's process. We achieve this by targeting the register value that is stored in the process's stack, which subsequently is flushed out into the memory, where it becomes vulnerable to Rowhammer. When the faulty value is restored into the register, it will end up used in subsequent iterations. The register value can be stored in the stack via latent function calls in the source or by actively triggering signal handlers. We demonstrate the power of the findings by applying the techniques to bypass SUDO and SSH authentication. We further outline how MySQL and other cryptographic libraries can be targeted with the new attack vector. There are a number of challenges this work overcomes with extensive experimentation before coming together to yield an end-to-end attack on an OpenSSL digital signature: achieving co-location with stack and register variables, with synchronization provided via a blocking window. We show that stack and registers are no longer safe from the Rowhammer attack.

Autores: Andrew J. Adiletta, M. Caner Tol, Yarkın Doröz, Berk Sunar

Última atualização: 2024-04-12 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2309.02545

Fonte PDF: https://arxiv.org/pdf/2309.02545

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Ligações de referência

Mais de autores

Artigos semelhantes