Abrir menu principal

Spectre (informática)

Falha de segurança

Spectre é uma falha de segurança encontrada no design da maioria dos microprocessadores, modernos. O nome se dá ao fato dos processadores que realizam branch prediction e Speculative execution que basicamente são tecnologias usadas para tentar maximizar a performance, tentando realizar a predição do código, dessa forma poupando tempo de execução, onde essêncialmente foi encontrada a vulnerabilidade.

Logo do spectre

Índice

ExposiçãoEditar

Duas exposições de vulnerabilidade estão relacionadas ao spectre, as referências oficiais são CVE-2017-5753 e CVE-2017-5715 e foram relatadas em 3 de janeiro de 2018, em conjunto com outra vulnerabilidade chamada Meltdown, a descoberta foi feita pelo time de pesquisadores: Jann Horn, Paul Kocher, Daniel Genkin, Mike Hamburg, Moritz Lipp e Yuval Yarom.

ImpactoEditar

A grande maioria dos sistemas são afetados pelo Spectre: Desktops, Laptops, Servidores em Nuvem, Smartphones. Mais especificamente, todos os processadores modernos capazes de realizar mutiprocessamento são potencialmente vulneráveis. Sendo verificado o Spectre em processadores Intel, AMD, e ARM.

Através dessa vulnerabilidade é possível fazer com que o processador execute instruções atípicas e assim fure o isolamento entre aplicações, como por exemplo em navegadores, e faça com que o código executado tenha acesso a dados confidenciais de outras aplicações. [1]

Visão GeralEditar

Os ataques envolvem induzir a vitima a realizar operações, que não ocorrem durante a execução correta do programa, podendo revelar dados confidenciais da vitima, o ataque se dá em três fases, fase de configuração, execução de instruções e a fase final.

Fase de ConfiguraçãoEditar

A fase configuração realiza operações que induzem o processador a executar a predição especulativa de maneira errônea, possibilitando a exploração. Adicionalmente a fase de configuração induz a leitura direcionada de memória evitando que o processador 'consulte' o cache para obter um valor que é necessário para determinar o destino de uma instrução de ramificação. Durante essa fase o atacante prepara um canal que poderá ser usado para extrair informações da vítima.[1]

Fase de Execução de InstruçõesEditar

Durante essa fase o processador executa instruções que transferem informações sensíveis, do contexto da vítima, para um canal microarquitetural secundário, criado na primeira fase. Isso pode ser desencadeado por o invasor solicitar que a vítima execute uma ação (por exemplo, através de uma syscall, soquet, arquivo, etc.).[1]

Fase FinalEditar

O processo de recuperação consiste em marcar o tempo que as leituras são realizadas nos endereços de memória, nas linhas de cache que estão sendo monitoradas.[1]

Ver tambémEditar

Ligações externasEditar

Referências

  Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.