Após a descoberta de vulnerabilidades como Spectre e Meltdown em 2018, os processadores Intel têm enfrentado mais vulnerabilidades com os ataques denominados Downfall. Esses ataques visam a parte da instrução Gather do AVX2/AVX-512 e afetam a 6ª geração do Skylake até a 11ª geração dos processadores Tiger Lake, que foram introduzidos em 2014.
Isso não afeta os processadores mais recentes e não deve afetar que comprou computadores com a geração 13º do Raptor Lake. No entanto, as pessoas que usam hardware com processadores Intel mais antigos têm que atualizar o sistema operacional e sofrer um impacto no desempenho, pelo menos para tarefas que utilizam AVX2 ou AVX-512.
Entendendo a vulnerabilidade Intel Downfall
Os ataques de Downfall visam uma falha crítica encontrada em bilhões de processadores modernos usados em computadores pessoais e em nuvem. Essa vulnerabilidade, identificada como CVE-2022-40982, permitem que um usuário acesse e roube dados de outros usuários que compartilham o mesmo computador. Por exemplo, um aplicativo malicioso obtidos em uma loja de aplicativos poderiam usar o ataque Downfall para roubar informações sensíveis, como senhas, chaves de criptografia e dados privados, como detalhes bancários, e-mails pessoais e mensagens. Da mesma forma, em ambientes de computação em nuvem, um cliente mal-intencionado poderiam explorar a vulnerabilidade Downfall para roubar dados e credenciais de outros clientes que compartilham o mesmo computador em nuvem.
A vulnerabilidade é causada por recursos de otimização de memória nos processadores Intel que inadvertidamente revelam registros internos de hardware para o software. Isso permite que um software não confiável acesse dados armazenados por outros programas, que normalmente não deveriam ser acessíveis. Descobri que a instrução Gather, destinada a acelerar o acesso a dados dispersos na memória, vaza o conteúdo do arquivo de registro de vetor interno durante a execução especulativa. Para aproveitar essa vulnerabilidade, introduzi as técnicas de Gather Data Sampling (GDS) e Gather Value Injection (GVI).
Vulnerabilidade Intel INTEL-SA-00828
O aviso da vulnerabilidade do Processador Intel-SA-00828 classifica-o como média severidade e descreve-o como:
Exposição de informações através do estado microarquitetural após a execução transitória em certas unidades de execução vetorial para alguns processadores Intel(R) pode permitir que um usuário autenticado potencialmente habilite a divulgação de informações por meio de acesso local.
O pesquisador de segurança, trabalhando dentro de condições controladas em um ambiente de pesquisa, demonstrou o problema GDS que depende do uso de instruções Gather no software. Embora esse ataque seja muito complexo de ser realizado fora dessas condições controladas, as plataformas afetadas têm uma mitigação disponível por meio de uma atualização de microcódigo. Os processadores Intel recentes, incluindo o Alder Lake, Raptor Lake e Sapphire Rapids, não são afetados. Muitos clientes, após revisarem o guia de avaliação de risco da Intel, podem decidir desabilitar a mitigação por meio de opções disponíveis nos sistemas operacionais Windows e Linux, bem como em VMMs. Em ambientes de nuvem pública, os clientes devem verificar com seu provedor a viabilidade dessas opções.
O kernel Linux 6.5 possui um patch para “Mitigar o problema de Coleta de Amostra de Dados” e a Intel lançou uma atualização de microcódigo para a vulnerabilidade Foreshadow, também conhecida como “Coleta de Amostra de Dados” (GDS). Observe que isso foi relatado em agosto de 2018 e levou muito tempo para que o problema fosse “corrigido”. Embora a Intel diga que a mitigação possa ser desativada, considerando o impacto de desempenho de até 50% supostamente comunicado aos parceiros, o site do Foreshadow diz que pode não ser uma boa ideia: foreshadow website.
As instruções SIMD AVX-512 e AVX2 são frequentemente utilizadas para decodificação e codificação de multimídia (áudio/vídeo). Portanto, é esperado que muitas pessoas sejam afetadas. Aplicar quaisquer medidas de mitigação para o seu sistema operacional preferido deve ser algo importante a se fazer, mesmo que isso afete o desempenho em certa medida. Entendo que a redução de desempenho em 50% é um péssimo cenário, portanto, seria importante acompanhar para ver como isso se desenrola para cargas de trabalho típicas que aproveitam a instrução GATHER.