Início » Computador » O que é a falha Foreshadow que afeta processadores Intel

O que é a falha Foreshadow que afeta processadores Intel

Chamada pela Intel de L1TF, Foreshadow é uma vulnerabilidade importante que afeta processadores Core e Xeon

Emerson Alecrim Por

A fase crítica das falhas Spectre e Meltdown pode até ter passado, mas a Intel ainda não está livre de problemas: recentemente, a companhia reconheceu uma nova vulnerabilidade que afeta quase todos os processadores Intel Core e diversos chips da linha Xeon: trata-se da L1TF ou Foreshadow.

Na verdade, o problema consiste em um conjunto de três técnicas que foi batizado pela Intel como L1 Terminal Fault ou, como já dito, L1TF. Esse nome foi adotado porque envolve dados na memória cache L1 do processador.

Cada técnica explora características distintas do chip para obter dados protegidos, mas tem praticamente o mesmo modo de ação. A companhia afirma, porém, não ter sido notificada de nenhum caso de ataque baseado na vulnerabilidade.

L1TF / Foreshadow

O que é a falha L1TF (ou falha Foreshadow)?

Precisamente, a técnica mais importante explora o Software Guard Extensions (SGX) da Intel. Essa é uma tecnologia que cria enclaves, isto é, áreas protegidas na memória por meio de criptografia que permitem a execução de códigos que não podem ser acessados ou alterados a partir do sistema operacional. Os enclaves podem ser usados, por exemplo, para isolar dados sensíveis e, assim, evitar que eles fiquem expostos caso o computador seja contaminado por malwares, por exemplo.

Se você se inteirou da falha Spectre, deve se lembrar que ela está relacionada à execução especulativa. Com ela, o processador tenta adivinhar qual código será executado na sequência e antecipa esse trabalho para ganhar tempo. Se a previsão estiver errada, o resultado é descartado. Com o Spectre, é possível induzir a execução especulativa de uma operação maliciosa, abrindo brechas para vazamento de dados.

Os pesquisadores que identificaram a falha L1TF perceberam que ela também pode usar a execução especulativa, mas para obter dados no SGX. Os mesmos pesquisadores atribuíram o nome Foreshadow à vulnerabilidade (reforçando, L1TF foi a denominação adotada pela Intel).

As operações executadas especulativamente podem fazer dados serem carregados na L1, mesmo se eles também estiverem no SGX. Mas o detalhe crítico é que os enclaves só protegem com criptografia dados que estão na memória principal, não em cache.

O processador vai descartar todas as execuções especulativas quando elas envolverem dados em cache que têm acesso proibido (como dados no SGX), mas esse procedimento não é instantâneo. Uma instrução maliciosa executada especulativamente pode então ter acesso a esses dados antes do descarte.

É claro que o processador tem mecanismos que evitam que dados nos enclaves sejam lidos por meio de execução especulativa. No entanto, graças à falha Foreshadow, pode-se contornar a sinalização que aponta para uma tentativa não autorizada de leitura dos dados. Aí é só executar procedimentos para explorar a memória cache.

Para piorar, os pesquisadores descobriram que é possível adicionar técnicas para reduzir as chances de os dados presentes na L1 serem sobrescritos durante a operação maliciosa.

Tem mais: quando notificada sobre o problema, a Intel tratou de conduzir uma investigação própria e, nesse processo, descobriu que não só o SGX pode ser acessado indevidamente, como também dados em outras áreas protegidas de memória por meio de duas técnicas parecidas.

O vídeo anterior contém explicações dadas pelos pesquisadores. Já o vídeo abaixo contém uma explicação da Intel:

Correções para a falha L1TF / Foreshadow

A Intel foi notificada do problema em janeiro por duas equipes distintas de pesquisadores, com diferença de dias entre os avisos de ambas. Depois disso, os dois grupos passaram a trabalhar conjuntamente. Graças a isso, eles perceberam que a falha é muito complexa, mas realmente pode ser explorada por alguém com conhecimento suficiente.

Felizmente, a Intel desenvolveu correções de firmware para a L1TF / Foreshadow. Elas estão sendo liberadas pelo menos desde maio a fabricantes de computadores e parceiros. Correções no nível do sistema operacional também devem começar a ser distribuídas para Windows e Linux.

No entanto, os pesquisadores não estão seguros sobre a plena eficácia dessas soluções. Já há indícios de que elas não eliminam totalmente os riscos quando o processador usa hyperthreading, por exemplo. Esse detalhe é particularmente preocupante em servidores, razão pela qual desativar o hyperthreading parece ser uma boa medida de precaução, ao menos até que correções mais confiáveis sejam liberadas.

Soluções definitivas só mesmo no nível do hardware. A Intel já prometeu trabalhar nisso, mas, obviamente, elas só contemplarão as novas gerações de processadores da companhia.

Há mais informações no site que os pesquisadores criaram para o Foreshadow.

Com informações: Wired, Ars Technica.

Comentários

Envie uma pergunta

Os mais notáveis

Comentários com a maior pontuação

Guilherme Alves

OUTRA FALHA, INTEL?
Caralh* hein, tá foda.
Vou acabar desistindo de pegar um I7 ano que vem quando vir a nova geração e pegar um amd threadripper.

davi koscianski vidal

Mas esse tipo de falha não é coisa de remover um IF ou então remover umas 2 ou 3 instruções...
As falhas estão no projeto do processador. Pra arrumar isso, é preciso reprojetar tudo do zero.

Isso não é viável porque TODO MUNDO depende da arquitetura x86. A Intel tentou "quebrar" isso com o Itanium (e a arquitetura IA-64). Não deu certo porque não tinha retrocompatibilidade com os softwares escritos pra x86. Foi por isso que a AMD ganhou MUITO mercado quando lançou o Opterom (com a arquitetura AMD64).

O trunfo da AMD foi, a grosso modo, emular um processador x86 dentro de um processador 64 bits. Daí o nome x86_64 que conhecemos hoje.

A proposta da Intel era muito melhor e, se seguida, talvez não tivéssemos que nos deparar com essas 3 falhas recentes. Mas o custo pra isso é incomensurável.

Para ter uma ideia da dimensão que esse problema pode tomar, recomendo a leitura: https://bitquabit.com/post/...

Extrapole isso para TODOS os softwares, sistemas operacionais e drivers fabricados nos últimos 30 anos. :)

Deealt Noubeza ( ͡° ͜ʖ ͡°)

não testaram por isso, foi divulgado pro povão.

empresas antispyware se atualizaram contra esse código...

Deealt Noubeza ( ͡° ͜ʖ ͡°)

mas aí que tá.

eles que fizeram a bagaça, sabem exatamente quais ordens dar para o processador ignorar (e corrigir a falha).

se eles mexessem no hardware seria muito mais caro, mudar uma instrução na arquitetura de um processador (lá) é muito mais caro do que chamar o engenheiro pra enviar um pacote com instruções diferentes pros programadores de S.O.

Molinex

1 centavo...
E não precisa nem ser global, se alguém conseguisse pegar 1 centavo de, por exemplo, todos os usuários do banco do brasil, já ficaria podre de rico kkk
Lembro que a muito tempo atras, tinha uma lenda urbana sobre isso. Um hacker que conseguiu tal proeza...

Usando essas falhas de processador, eu acho dificil, porque teria que atacar usuário, por usuário, mas vai saber...
Tem tanas pessoas que manjam tanto de TI, que já pensam em binario, e desses caras eu não duvido de nada kkkk

Hélio Márcio Matos dos Santos

<conspiration-mode-on/>

Estaria a Intel garantindo as vendas de mais algumas gerações depois dos processadores chegarem num nível tecnológico tão alto de que estão beirando a estagnação?

<conspiration-mode-off/>

Hélio Márcio Matos dos Santos

Ainda bem que são falhas extremamente complexas de serem exploradas. Poucos devem conseguir, porém não vale a pena viver com essa "sensação de segurança". Mas um JavaScript? Realmente é preocupante.

Hélio Márcio Matos dos Santos

Duas preocupações:

1. Será que essa correção vai ser paga com uns % de perca de desempenho?
2. Beleza, poucos hackers convencionais deve conseguir explorar isso ai. Mas ´será que a NSA já usou isso?

Hélio Márcio Matos dos Santos

Me identifiquei kkk. Hoje perdi horas de trabalho por causa de um erro causado por uma linha:

@JoinColumn(name = "xxx")

quando deveria ser:

@JoinColumn(name = "xxx", referencedColumnName = "yyy")

7csP9tkb

Imagine, só imagine que alguém ou um grupo use essa falha em larga escala para roubar, por exemplo, 10 centavos de cada conta bancária. Um valor irrisório, que ninguém sentiria falta, mas que poderia chegar facilmente a casa dos milhões de reais por mês. Agora imagine essa falha em nível global.

Maico Andrade

E lá vamos nós ...

Bruno Cardim

Realmente tenho uma conta, acesso pelo smartphone. Mas quem não chegou na casa de milhões, creio que seja só mais um ralé no mundo. Quem perderia tempo para tentar tirar uns 10 mil que tem seguro? Só nesse quesito meu ponto de vista mesmo.
Gosto do PC pra jogar mesmo, reduzir o desempenho para manter segurança que não dou aberturas ou vacilo, acho mancada.

Que se foda a intel kkkk

Molinex

Ralé não tem i7, mas quem tem i7, tem conta em banco. E geralmente usa um internet bank no pc e, ou celular...
Lembro que quando a google divulgou o melt, um código em JS besta, era o suficiente para explorar a falha...
Estranho é nenhum hacker ter usado dela, pra conseguir umas senhas de banco, de usuários com o i7 trincando, de falhas...
Também vai saber se não conseguiram. Nunca saberemos...

Respeito sua opinião, mas prefiro segurança, e que se foda a intel kkkk

Bruno Cardim

Prefiro desempenho.
Quem vai querer informações de um ralé como eu? Que se foda a segurança, quero o meu i7 funcionando trincando!

davi koscianski vidal

Eu acho essas falhas impressionantes!
Não são triviais de serem exploradas, muito menos de serem descobertas. E são ainda mais difíceis de serem corrigidas via hardware. Mas, mesmo assim, farão uma correção via software.

Quando eu estou programando, frequentemente esqueço um ponto-e-vírgula ou algo do gênero. Enquanto isso, os caras da Intel estão corrigindo uma falha de hardware NO SOFTWARE!

É com coisas assim que eu vejo o quanto eu sou um bosta mesmo.

Exibir mais comentários