2 pontos por GN⁺ 2025-01-29 | 1 comentários | Compartilhar no WhatsApp

SLAP: ataques de especulação de dados (data Speculation attacks via Load Address Prediction)

  • O ataque SLAP é um novo ataque de execução especulativa que afeta CPUs Apple Silicon M2/A15.
  • Ele melhora o desempenho por meio do previsor de endereços de carga (LAP), que prevê o próximo endereço de memória com base nos padrões de acesso à memória.
  • Quando a previsão falha, a CPU processa por execução especulativa dados que não deveria acessar, criando um risco de segurança.
  • Como caso real, foi demonstrado um ataque no navegador Safari em que um invasor remoto pode recuperar o conteúdo de e-mails e o comportamento de navegação.

FLOP: previsões falsas da saída de carga (False Load Output Predictions)

  • O ataque FLOP é outro ataque de execução especulativa que ocorre em CPUs Apple M3/A17 ao prever dependências de dados.
  • Ele melhora o desempenho por meio do previsor de valor de carga (LVP), que prevê o valor de dados que será retornado pelo subsistema de memória.
  • Quando a previsão falha, isso abre uma superfície de ataque capaz de contornar verificações críticas da lógica do programa para segurança de memória e vazar segredos armazenados na memória.
  • Foram demonstrados ataques em navegadores Safari e Chrome capazes de recuperar histórico de localização, eventos de calendário, informações de cartão de crédito e mais.

Demonstrações

  • Vazamento de dados da caixa de entrada do Proton Mail: treina o LVP da CPU M3 com código JavaScript dentro do WebKit para trazer o conteúdo da caixa de entrada ao espaço de endereçamento.
  • Lendo O Grande Gatsby: prova de conceito que usa LAP em uma CPU Apple M2 para recuperar uma string secreta.
  • Lendo Harry Potter: prova de conceito que usa LVP em uma CPU Apple M3 para prever um índice de array incorreto e referenciar caracteres de uma string.

Pesquisadores

  • Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
  • Yuval Yarom (Ruhr University Bochum)

FAQ sobre SLAP e FLOP

Is my Apple device affected?

  • Notebooks Mac: todos os modelos lançados desde 2022 (MacBook Air, MacBook Pro)
  • Desktops Mac: todos os modelos lançados desde 2023 (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: todos os modelos iPad Pro, Air e Mini lançados desde setembro de 2021
    • Pro de 6ª e 7ª geração, Air de 6ª geração, Mini de 6ª geração
  • iPhone: todos os modelos lançados desde setembro de 2021
    • Todas as linhas iPhone 13, 14, 15 e 16, além do SE de 3ª geração

Why are the SLAP and FLOP attacks significant?

  • Mecanismo de proteção: normalmente, navegadores da web isolam duas páginas abertas para que uma página não possa ler o conteúdo da outra
  • Vulnerabilidade: SLAP e FLOP anulam essa proteção, permitindo que a página do invasor leia dados sensíveis da página-alvo
    • Dados expostos: histórico de localização, informações de cartão de crédito etc.

How can I defend against SLAP and FLOP?

  • O FLOP possui medidas de mitigação, mas elas exigem patches dos fornecedores de software e não podem ser resolvidas diretamente pelo usuário
  • A Apple afirmou que corrigirá esse problema em futuras atualizações de segurança, e é importante manter as atualizações automáticas ativadas e o sistema operacional e os aplicativos na versão mais recente

What about other processor vendors?

  • Até o momento, não foram encontrados sinais de SLAP ou FLOP em produtos da Intel, AMD, Qualcomm, Ampere e outras

What about other web browsers?

  • Outros navegadores, como Firefox, não foram testados

Can I detect if someone is using SLAP or FLOP on my device?

  • SLAP e FLOP são ataques baseados em microarquitetura e não deixam rastros nos logs do sistema

Are any malicious actors abusing SLAP or FLOP in the wild?

  • Até agora, não há evidências de uso real de SLAP ou FLOP

When did you notify Apple?

  • SLAP: reportado à Apple em 24 de maio de 2024
  • FLOP: reportado à Apple em 3 de setembro de 2024

Perguntas técnicas

O que é um side channel?

  • Um ataque que explora vulnerabilidades na implementação de hardware de computadores
    • Em vez de bugs de software, aproveita vazamentos de informação causados pelo comportamento do hardware
  • Caminhos de vazamento de dados
    • Fenômenos físicos como som, ondas eletromagnéticas e dissipação térmica
    • Contenção em recursos compartilhados da CPU (núcleo, cache, buffers internos etc.)
  • Exposição de informações por contenção na CPU
    • O padrão de comportamento do alvo pode ser inferido por variáveis indiretas como medição de tempo e consumo de energia

O que é um ataque de execução especulativa?

  • Execução especulativa: técnica de otimização em que a CPU prevê o fluxo de controle e executa instruções antecipadamente
    • Se a previsão estiver errada, o estado é revertido, mas traços sutis permanecem, como no cache
  • Ataque Spectre
    • Induz a execução especulativa por um fluxo incorreto previsto
    • Se, durante a execução especulativa, forem executadas instruções que usam dados sensíveis, o valor dos dados pode ser exposto indiretamente
  • Extensão em SLAP e FLOP
    • As CPUs da Apple preveem não só o fluxo de controle, mas também o fluxo de dados
    • O FLOP provoca a execução de instruções com base em valores de dados incorretos

Como o SLAP funciona

  1. Análise de Load Address Prediction (LAP)
    • Ao treinar padrões específicos de endereços de memória, o LAP prevê o próximo endereço e executa operações de dados
    • Diferentemente do prefetching por hardware, ele executa instruções com os dados previstos
  2. Exploração da vulnerabilidade no Safari
    • Com base no problema de isolamento do Safari descoberto pelo iLeakage, força páginas web diferentes a serem processadas no mesmo processo
    • A página web do invasor acessa os dados de string da página web alvo

Como o FLOP funciona

  1. Análise de Load Value Prediction (LVP)
    • Quando o mesmo valor de dados é retornado repetidamente, o LVP prevê o resultado
    • Executa instruções usando um valor de memória incorreto
  2. Ataques contra Safari e Chrome
    • Safari: prevê informações de tipo em estruturas de dados JavaScript e executa instruções sobre uma estrutura de dados incorreta
    • Chrome: uma leitura incorreta de memória ocorre devido a argumentos errados durante a chamada de função WebAssembly

Diferenças entre SLAP e FLOP

  • SLAP: usa o Load Address Predictor (LAP) para explorar a proximidade na alocação de strings
  • FLOP: usa o Load Value Predictor (LVP) para contornar verificações de integridade de dados
  • LAP vs LVP
    • LAP: prevê o próximo endereço de memória
    • LVP: prevê o retorno do próximo valor de memória
    • O LAP exige um longo processo de treinamento, mas é capaz de prever padrões

O que são JavaScript e WebAssembly?

  • JavaScript: linguagem que atualiza conteúdo web dinamicamente
  • WebAssembly: linguagem para aplicações web de alto desempenho, integrada ao JavaScript
  • Impacto do ataque
    • Como ambas as linguagens são executadas automaticamente no navegador, o ataque é possível mesmo sem baixar código malicioso

Por que Safari e Chrome foram escolhidos como alvo

  • Safari:
    • Não possui isolamento de sites (Site Isolation), permitindo que páginas web de domínios diferentes sejam executadas no mesmo processo
    • Amplia a superfície de ataque baseada em LAP e LVP
  • Chrome:
    • Embora o isolamento de sites esteja aplicado, em alguns casos subdomínios do mesmo site são processados em um único processo
    • Ataques LAP e LVP ainda são possíveis

Apoio à pesquisa

  • Esta pesquisa recebeu apoio de AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco e Zama.

1 comentários

 
GN⁺ 2025-01-29
Comentários do Hacker News
  • A demo do SLAP mostra bem como defesa em profundidade pode determinar a viabilidade de explorar uma vulnerabilidade. A falha no Safari ocorre porque ele não isola uma nova janela como um processo separado ao chamar window.open

  • A parte de engenharia reversa da presença de LVP no M3 é interessante. Em loads de 8 bytes, o LVP só é ativado quando o valor carregado é 0. Isso pode ser uma medida de mitigação para segurança de memória

  • Vale a pena ler sobre os ataques Spectre e Meltdown e os artigos relacionados para quem ainda não os conhece

  • No Safari, usa-se um princípio de amplificação de cache baseado em porta NOT para distinguir cache hit de miss. É possível diferenciar cache hit e miss até no ambiente web

  • Isso mostra que o isolamento de sites do Chrome não é uma mitigação perfeita. Existe um caso de borda em que dois subdomínios do mesmo site podem ser mesclados em um único processo

  • A cultura de marketing em torno do anúncio de vulnerabilidades de hardware parece estranha. Fico me perguntando por que, em vez de simplesmente reportar a vulnerabilidade e publicar o artigo, criam domínio personalizado, logo, FAQ etc.

  • Conheci o professor Daniel Genkin no ano passado em uma aula de Intro to Cyber Security. Ele disse que estava pesquisando ataques especulativos contra CPUs da Apple. Isso me fez entender que a segurança quase nunca é garantida

  • Tenho a tendência de desativar js por padrão em sites não confiáveis. Afinal, é o programa de outra pessoa sendo executado na nossa máquina

  • A Apple anunciou recentemente atualizações de versão menor do macOS e do iOS com correções de segurança. Fico curioso se alguém verificou se essa vulnerabilidade foi corrigida

  • Parece que a RUB se tornou um centro global de trabalhos avançados de segurança ofensiva. Fico me perguntando se eu simplesmente não prestava atenção nisso há 10 anos ou se é um fenômeno novo