As vulnerabilidades da CPU têm estado na moda recentemente, com Zenbleed e Downfall sendo duas recentes. Mas quão preocupado você deveria estar?
Vulnerabilidades de CPU têm aparecido e saído das notícias nos últimos anos e muitas vezes vêm com uma mensagem bastante assustadora quando se trata de serem divulgadas. No caso de Sangramento Zen e Queda, era que qualquer aplicativo em seu computador pudesse acessar a memória de qualquer outro programa em execução nas circunstâncias certas. Parece intenso, certo?
No entanto, não é tão ruim quanto parece. Obviamente, é significativo o suficiente para garantir uma divulgação e uma atualização de software para corrigir os erros, mesmo às custas do desempenho, mas o que exatamente está causando esses problemas de segurança? Você deveria estar preocupado?
Você deveria se preocupar com vulnerabilidades de CPU como Zenbleed, Downfall e Inception?
Para ser honesto, nenhuma destas explorações afecta a grande maioria das pessoas. Embora possam vazar dados de um programa para outro, qualquer malware na máquina de um consumidor já tem um grande nível de acesso que pode abusar. Em vez disso, estes ataques são particularmente preocupantes nos contextos de computação em nuvem.
Para entender o problema, você precisa entender que muitos servidores em nuvem diferentes são simplesmente computadores com muita potência, grande largura de banda de rede e algum outro hardware especializado, se obrigatório. Muitas empresas alugam o que é chamado de VPS, ou servidor virtual privado, que são máquinas virtualizadas com potência limitada, nas quais dezenas de outras máquinas virtuais podem estar em execução.
Onde isso pode ser um problema é que uma pessoa em uma máquina virtual pode executar um desses vulnerabilidades, obtendo insights sobre quais dados estão fluindo através do processador, incluindo dados de outros máquinas virtuais. Isso não deveria ser possível e é uma violação grave de segurança. É por isso que quando o Zenbleed foi divulgado já existiam patches para os processadores Epyc da AMD, que são voltados para uso em servidores.
Vulnerabilidades de CPU mais graves atualmente
O padrão da indústria para "classificar" vulnerabilidades e sua gravidade é por meio do Common Vulnerability Scoring System (CVSS). Fornece uma medida quantitativa da gravidade, uma vez que os diferentes aspectos da vulnerabilidade terão impacto na pontuação. Ele mede levando em consideração o seguinte:
- Vetor de ataque: Rede/Adjacente/Local/Físico
- Complexidade do ataque: Baixo alto
- Privilégios necessários: Nenhum/Baixo/Alto
- Interação com o usuário: Nada solicitado
- Escopo: Inalterado/Alterado
- Confidencialidade: Nenhum/Baixo/Alto
- Integridade: Nenhum/Baixo/Alto
- Disponibilidade: Nenhum/Baixo/Alto
Tudo isso classifica a gravidade de um bug. Por exemplo, uma vulnerabilidade que pode ser executada em uma rede de baixa complexidade, sem necessidade de privilégios, sem interação do usuário, com escopo alterado, alto vazamento de confidencialidade de dados, alta violação de integridade de dados e alto impacto na disponibilidade terão pontuação 10 perfeita no CVSS 3.1, a pontuação mais alta possível.
Por essa métrica, podemos avaliar o dano que Zenbleed e Downfall são capazes de causar. Spoiler: Eles são iguais, embora afetem CPUs diferentes. Portanto, embora eles marquem uma certa quantia em contexto de vulnerabilidades, elas podem afetar diferentes quantidades de produtos, e isso não afetará seu pontuação. As pontuações do CVSS são essencialmente apenas para triagem, mas não contam a história completa.
Zenbleed: 6,5 (médio)
- Vetor de ataque: Local
- Complexidade do ataque: Baixo
- Privilégios necessários: Baixo
- Interação com o usuário: Nenhum
- Escopo: Mudado
- Confidencialidade: Alto
- Integridade: Nenhum
- Disponibilidade: Nenhum
Explicação: o vetor de ataque requer acesso local à máquina (ou seja, é executado na máquina), ao mesmo tempo que não tem impacto na integridade dos dados na máquina ou na sua disponibilidade. No entanto, ele muda o escopo (o que significa que impacta recursos além de seus privilégios) e a complexidade do ataque, e os privilégios necessários para execução são baixos. Também viola totalmente o sigilo das informações da máquina.
Queda: 6,5 (Médio)
- Vetor de ataque: Local
- Complexidade do ataque: Baixo
- Privilégios necessários: Baixo
- Interação com o usuário: Nenhum
- Escopo: Mudado
- Confidencialidade: Alto
- Integridade: Nenhum
- Disponibilidade: Nenhum
Explicação: o vetor de ataque requer acesso local à máquina (ou seja, é executado na máquina), ao mesmo tempo que não tem impacto na integridade dos dados na máquina ou na sua disponibilidade. No entanto, ele muda o escopo (o que significa que impacta recursos além de seus privilégios) e a complexidade do ataque, e os privilégios necessários para execução são baixos. Também viola totalmente o sigilo das informações da máquina.
Início: 5,6 (Médio)
- Vetor de ataque: Local
- Complexidade do ataque: Alto
- Privilégios necessários: Baixo
- Interação com o usuário: Nenhum
- Escopo: Mudado
- Confidencialidade: Alto
- Integridade: Nenhum
- Disponibilidade: Nenhum
Explicação: o vetor de ataque requer acesso local à máquina (ou seja, é executado na máquina), ao mesmo tempo que não tem impacto na integridade dos dados na máquina ou na sua disponibilidade. No entanto, ele muda o escopo (o que significa que impacta recursos além de seus privilégios), a complexidade do ataque é alta e os privilégios necessários para execução são baixos. Também viola totalmente o sigilo das informações da máquina.
Espectro: 5.6 (Médio) (Remendado)
O espectro, apesar de ser um fenômeno mais difundido, na verdade pontua menos do que Zenbleed e Downfall. Isso se deve ao fato de a complexidade do ataque ter sido apelidada de “Alta”, o que diminuiu sua pontuação.
- Vetor de ataque: Local
- Complexidade do ataque: Alto
- Privilégios necessários: Baixo
- Interação com o usuário: Nenhum
- Escopo: Mudado
- Confidencialidade: Alto
- Integridade: Nenhum
- Disponibilidade: Nenhum
Explicação: o vetor de ataque requer acesso local à máquina (ou seja, é executado na máquina), ao mesmo tempo que não tem impacto na integridade dos dados na máquina ou na sua disponibilidade. No entanto, ele muda o escopo (o que significa que impacta recursos além de seus privilégios), a complexidade do ataque é alta e os privilégios necessários para execução são baixos. Também viola totalmente o sigilo das informações da máquina.
Meltdown: 5.6 (Médio) (Remendado)
Assim como Spectre, Meltdown tem pontuação inferior a Zenbleed e Downfall, devido à maior complexidade de ataque necessária.
- Vetor de ataque: Local
- Complexidade do ataque: Alto
- Privilégios necessários: Baixo
- Interação com o usuário: Nenhum
- Escopo: Mudado
- Confidencialidade: Alto
- Integridade: Nenhum
- Disponibilidade: Nenhum
Explicação: o vetor de ataque requer acesso local à máquina (ou seja, é executado na máquina), ao mesmo tempo que não tem impacto na integridade dos dados na máquina ou na sua disponibilidade. No entanto, ele muda o escopo (o que significa que impacta recursos além de seus privilégios), a complexidade do ataque é alta e os privilégios necessários para execução são baixos. Também viola totalmente o sigilo das informações da máquina.
A maior causa: previsão de ramificação
Fonte: AMD
A previsão de ramificação e a execução especulativa referem-se amplamente a quando o seu computador executa operações que não são necessárias no momento, mas que serão em ciclos subsequentes. Isso geralmente é feito em momentos em que o sistema tem recursos livres, pois acelera o processamento geral quando as instruções ou dados ainda não estariam prontos para a CPU. Se o trabalho realizado não for necessário, ele normalmente é descartado e o processador pode voltar para onde precisa para executar a próxima instrução correta. Quando isso acontece, isso é chamado de erro de previsão de ramificação.
Para uma compreensão mais aprofundada dos preditores de ramificação, imagine um cenário em que um programa adiciona consistentemente os mesmos dois números em sua execução. Em algum momento, o processador pode reconhecer esse padrão e preparar as próximas etapas caso o método onde esses dois números são somados seja chamado novamente. Se esse resultado mudar em algum momento, mesmo que o processador tenha planejado que os mesmos dois números fossem iguais, a estimativa será descartada e substituída pelo fluxo de execução real. No entanto, durante o tempo em que esses números são o mesmo, então o processador pode pular essas instruções rapidamente.
Porém, existem muitos problemas quando se trata de execução especulativa, e vulnerabilidades como Spectre, Zenbleed, Downfall e outras são o resultado. É um recurso poderoso ao qual devemos muito o desempenho da CPU moderna, mas é um alvo importante quando os pesquisadores procuram vulnerabilidades nas CPUs.
Mitigação: um inibidor de desempenho
Mitigar essas vulnerabilidades é de extrema importância, mas o problema é que essas mitigações muitas vezes prejudicam o desempenho. No caso do Zenbleed mais recente da AMD, a mitigação pode gerar enormes sobrecargas de desempenho.
A razão para isso é que a única maneira real de contornar isso é desabilitar ou alterar o comportamento do preditor de ramificação no processador afetado. O mesmo impacto no desempenho pode ser encontrado nas mitigações para a queda da Intel, com relatórios iniciais sugerindo impactos no desempenho de até 39%. Jogos épicos uma vez famoso compartilhado Gráficos de utilização da CPU depois que a vulnerabilidade Meltdown foi divulgada e o impacto que essas mitigações tiveram no uso da CPU da empresa. Houve um grande aumento no uso da CPU, como seria de esperar. As coisas ficam assustadoras com a correção do Inception da AMD, descobriu-se que o desempenho caiu até 54%.
Como vulnerabilidades como essa afetam recursos fundamentais do processador, é difícil realmente corrigi-las, além de desabilitar ou mutilar gravemente os recursos principais. A execução especulativa é extremamente importante e estas mitigações serão sentidas por muitas pessoas. O desempenho dos jogos é menos previsível, portanto, se o uso principal do seu PC for jogos, você pode estar tudo bem, pois seu computador não pode fazer tantas previsões, mas esses problemas aumentam em escala muito maior sistemas.
Os futuros processadores serão afetados?
Felizmente, no caso do Intel Downfall e do Zenbleed, essas explorações afetam processadores mais antigos. Processadores mais novos de ambas as empresas são seguros e não há nada com que se preocupar por enquanto. Uma reformulação significativa geralmente é o que acaba resolvendo esses problemas. Por exemplo o Spectre afetou as CPUs de oitava e nona geração da Intel mas a nona geração incorporou uma versão de hardware das correções de software que foram implementadas completo com o impacto no desempenho. A 10ª geração da Intel ainda era segura, mas também não tinha mais impacto no desempenho dessas medidas de mitigação.
Como resultado, dado que tanto o Downfall quanto o Zenbleed já foram corrigidos nas versões mais recentes de seus respectivos processadores, os usuários não precisam se preocupar muito. É claro que sempre pode haver mais vulnerabilidades descobertas, mas neste momento você está seguro.