Escape de máquina virtual em um ataque Spectre v2

Um novo artigo de pesquisa mostra como vulnerabilidades complexas em CPUs podem ser exploradas nos ataques mais significativos a sistemas em nuvem.

Uma equipe de pesquisadores do Instituto Federal de Tecnologia Suíço (ETH Zurich), em Zurique, publicou um estudo demonstrando como um ataque Spectre v2 pode ser utilizado no escape de um sandbox em ambiente virtualizado. Os pesquisadores tiveram acesso a apenas uma máquina virtual isolada e conseguiram roubar dados valiosos, que normalmente apenas o administrador do servidor conseguiria acessar. Servidores em CPUs AMD (incluindo o mais recente, com arquitetura Zen 5) ou Coffee Lake da Intel são suscetíveis ao ataque.

A ameaça dos ataques Spectre em ambientes virtuais

Regularmente escrevemos sobre vulnerabilidades de CPU que empregam execução especulativa, em que recursos de hardware padrão são explorados para roubar segredos. Confira nossas publicações anteriores sobre esse assunto aqui , aqui e aqui. Nelas, descrevemos em detalhes os princípios gerais desses ataques.

Apesar de esse tipo de vulnerabilidade ter sido descoberto em 2018, nenhum ataque realista havia sido demonstrado pelos pesquisadores até a publicação deste artigo. Todos os esforços dos pesquisadores resultaram na ideia de que, teoricamente, um ataque sofisticado e direcionado, semelhante ao Spectre, é viável. Além disso, na maioria desses artigos, os pesquisadores se restringiram ao cenário de ataque mais básico: instalar malware em um computador e aproveitar a vulnerabilidade da CPU para roubar segredos. A desvantagem dessa abordagem é que, se um atacante conseguir instalar o malware em um PC, ele poderá roubar os dados utilizando vários outros métodos bem mais simples. Por isso, é improvável que ataques como o Spectre e similares representem uma ameaça a dispositivos de usuário final. No entanto, em ambientes de nuvem, o Spectre não deve ser subestimado.

Suponha que um provedor alugue servidores virtuais para organizações ou indivíduos. Cada cliente recebe sua própria máquina virtual, onde pode executar qualquer software que deseja. Os sistemas virtuais de outros clientes podem ser executados no mesmo servidor. Assim, é essencial separar as permissões de acesso aos dados. É necessário impedir que um atacante que obteve acesso a uma máquina virtual possa ler os dados confidenciais de um cliente adjacente, ou que comprometa a infraestrutura do provedor obtendo acesso aos dados do host. É exatamente nesse cenário que os ataques Spectre começam a se tornar uma ameaça significativamente mais perigosa.

VMScape: uma visão prática de um ataque Spectre v2

Nos estudos anteriores sobre a viabilidade do ataque Spectre, os pesquisadores não se aprofundaram em um cenário realista. Para um artigo acadêmico, isso é normal. Uma comprovação do conceito sobre um vazamento de dados costuma ser suficiente para fazer com que os fabricantes de CPU e desenvolvedores de software reforcem suas defesas e desenvolvam contramedidas.

Os autores do novo artigo do ETH Zurich abordam diretamente essa brecha, deixando claro que os cenários de ataques em ambientes virtualizados examinados anteriormente (como os deste artigo, também do ETH Zurich) partiam de uma suposição bastante ampla: que os invasores já haviam conseguido instalar malware no host. Assim como nos ataques a computadores desktop comuns, isso não tem muito sentido prático. Se o servidor já estiver comprometido, o dano já aconteceu.

O novo ataque, chamado de VMScape, proposto em seu artigo, utiliza o mesmo mecanismo de injeção de alvo de ramificação presente em todos os ataques desde o Spectre v2. Já falamos sobre isso várias vezes aqui, mas faremos um breve resumo.

A injeção de alvo de ramificação é uma forma de treinar o sistema de previsão de ramificação de uma CPU, acelerando os programas com a execução especulativa. Isso significa que a CPU tenta executar o próximo conjunto de comandos antes de obter os resultados dos cálculos anteriores. Caso ele acerte o caminho, ou ramificação, que o software seguirá, o desempenho aumenta significativamente. Se ele errar, os resultados são descartados.

A injeção de alvo de ramificação é um ataque em que um atacante engana a CPU para acessar dados secretos e os move para o cache durante a execução especulativa. Em seguida, o atacante recupera esses dados indiretamente, utilizando um canal lateral.

Os pesquisadores descobriram que a segregação das permissões entre os sistemas operacionais do host e convidado durante a execução especulativa é insuficiente. Isso permite uma nova versão do ataque de injeção de alvo de ramificação, que chamaram de “Spectre-BTI baseado em virtualização” ou vBTI.

Como resultado, os pesquisadores conseguiram ler dados arbitrários da memória do host, mesmo com um acesso a uma máquina virtual com configuração padrão. A velocidade de leitura de dados foi de 32 bytes por segundo em uma CPU AMD Zen 4, com quase 100% de confiabilidade. Isso é rápido o suficiente para roubar chaves de criptografia de dados, o que abre um caminho direto para roubar informações de máquinas virtuais adjacentes.

O VMScape é uma ameaça no mundo real?

Da primeira até a quinta geração, as CPUs AMD com arquitetura Zen provaram ser vulneráveis a esse ataque. Isso ocorre por conta das diferenças sutis em como essas CPUs implementam as proteções contra ataques Spectre, bem como pela forma como os vBTI primitivos dos autores operam. Em CPUs Intel, esse ataque só é possível em servidores com processadores Coffee Lake mais antigos, de 2017. As arquiteturas Intel mais recentes têm proteções otimizadas que impossibilitam a versão atual do ataque VMScape.

O êxito dos pesquisadores foi desenvolver o primeiro ataque Spectre v2 em um ambiente virtual próximo às condições reais. Esse cenário não depende de suposições excessivamente permissivas nem em artifícios como software malicioso no hipervisor. O ataque VMScape é eficaz, pois consegue ignorar muitas medidas padrões de segurança, incluindo KASLR, e consegue roubar um segredo valioso como a chave de criptografia.

Felizmente, logo após desenvolverem o ataque, os pesquisadores também propuseram uma correção. O problema recebeu o identificador de vulnerabilidade CVE-2025-40300 e foi corrigido no kernel do Linux. Esse patch específico não reduz o desempenho computacional de maneira significativa, o que costuma ser uma preocupação com proteções baseadas em software contra ataques Spectre.

Métodos de proteção de dados confidenciais em ambientes virtuais são conhecidos há algum tempo. A AMD possui uma tecnologia chamada “Secure Encrypted Virtualization (SEV)” e seu subtipo SEV-SNP, enquanto a Intel conta com Trusted Domain Extensions (TDX). Essas tecnologias criptografam os segredos, tornando inútil tentar roubá-los diretamente. Os pesquisadores confirmaram que o SEV fornece proteção adicional contra o ataque VMScape em CPUs AMD. Em outras palavras, um ataque VMScape real contra servidores modernos é improvável. No entanto, a cada novo estudo, os ataques Spectre parecem cada vez mais viáveis.

Apesar da natureza acadêmica da pesquisa, os ataques que exploram a execução especulativa em CPUs modernas continuam sendo significativos. Os operadores de ambientes virtualizados devem continuar considerando essas vulnerabilidades e possíveis ataques em seus modelos de ameaça.

Dicas