
No início deste ano, os tipos de ataque
Spectre e Meltdown já foram mostrados. Eles permitem que você ataque a vítima com o uso mínimo de recursos. Um JavaScript especialmente criado pode ser usado para executar um ataque Spectre. Os serviços em nuvem, tanto quanto se pode entender, são seguros - ambos os tipos de ataques são aplicáveis apenas à penetração de recursos de rede discretos.
Agora,
há informações sobre um novo tipo de ataque. Foi fornecido por pesquisadores da Universidade de Tecnologia de Graz, em homenagem a Karl e Franz. O especialista em segurança cibernética Daniel Grass, que descobriu o ataque original do Meltdown, também estava envolvido na descoberta de um novo tipo de ataque. Quanto ao novo produto, ele se chama NetSpectre. Sua peculiaridade é que um invasor pode ler remotamente os dados da memória sem executar nenhum código no sistema da vítima.
Vale ressaltar que todas as opções de ataque Spectre são baseadas no mesmo conjunto de princípios. Cada processador é caracterizado pelo comportamento arquitetural e microarquitetural. Eles podem variar, mas não drasticamente. Por exemplo, no primeiro caso, um programa que carrega um valor de uma área específica da memória aguardará até que o endereço seja conhecido antes de iniciar o download. No segundo caso, o processador pode tentar adivinhar o endereço para começar a receber o valor da memória, mesmo antes que o endereço exato seja conhecido.
Se o processador cometer um erro, o download será realizado de uma nova maneira, desta vez com o endereço correto. O valor "adivinhado" será ignorado e o comportamento definido arquiteturalmente será preservado. Mas o erro afetará outros elementos, em particular, o conteúdo do cache. Tais violações podem ser detectadas e identificadas por malware. Esse método de obtenção de dados é conhecido como canal de terceiros. Ou melhor - como um
ataque a canais de
terceiros (ou laterais).
Este não é um novo tipo de ataque, eles são conhecidos desde os anos 80 do século passado, mas se tornaram difundidos após a cobertura de Paul Kocher no 96º ano. O NetSpectre se baseia nesses princípios bem conhecidos de ataque, mas os desenvolvedores criaram algo próprio. Em particular, o ataque permite que você inicie um vazamento de dados da memória manipulando pacotes de rede enviados pela rede.
Para determinar os dados residuais do processador, os especialistas que falaram sobre o ataque sugerem o uso de fragmentos de código existentes nos aplicativos ou no kernel, que são ativados quando certos tipos de solicitações de rede aparecem. Por exemplo, para extrair dados que foram instalados no cache, os pesquisadores propõem a modificação do método Evict + Reload. Ele se baseia na criação de condições para agrupar dados do cache, bem como no processamento de solicitações, cujo tempo de execução nos permite avaliar a disponibilidade de dados no cache do processador.
Um ataque pode ser considerado muito perigoso se não for por seu baixo desempenho. Sob condições ideais, o novo método pode determinar de 15 a 60 bits por hora. Um dia - não mais que 45-180 bytes. Porém, condições ideais são muito raras; portanto, em condições normais, a velocidade do ataque é mínima - apenas 1-3 bytes em 3-8 horas de ataque. Para verificar um pouco nesse caso, são necessários cerca de 20 milhões de verificações.
Segundo especialistas, com o tempo, novos métodos serão propostos para aumentar a eficácia do ataque. Mas extrair, por exemplo, uma chave AES levará dias inteiros. Esse ataque é bloqueado por métodos de defesa eficazes contra a primeira versão da vulnerabilidade Spectre (CVE-2017-5753).

Para aumentar o desempenho do ataque em condições reais, mas não ideais, em até 60 bits por hora, os pesquisadores
sugerem o uso de gadgets com instruções AVX2 como um canal adicional para vazamento de informações. Este método usa os recursos de transferência da unidade AVX2 para o modo de economia de energia. No caso de uso inativo do AVX2, é fornecido um modo de economia de energia no qual a unidade AVX2 continuará operando, embora com uma diminuição no desempenho. Se o AVX2 estiver inativo por 1 ms, o processador o desligará, causando um atraso durante a próxima operação.
Os invasores podem determinar o fato da execução do código especulativo com base no desaparecimento do atraso para ativar o bloco acima. E isso, por sua vez, permite reduzir o número de verificações para determinar cada bit de informação.
Para executar este trabalho, você pode usar um utilitário especializado. Segundo especialistas, os fragmentos de código mencionados acima podem estar em qualquer aplicativo de rede. Incluindo - o código dos servidores http, SSH e outros manipuladores de pacotes de rede. Sob certas condições, você pode obter acesso total ao conteúdo de toda a memória do sistema.