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