sexta-feira, 16 de fevereiro de 2018

O Meltdown e o Spectre, Pokémons?

Meltdown Spectre LogosE você pensando que estaria livre de “bugs”, e mais um caquinha nos aparece, com a admissão de culpa da Intel sobre a falha de projeto em seus chips de processamento x86. Tudo seria normal se nessa “mea culpa” não entrasse o jeito “joberiano” de ser ao empurrar seu estrume no colo dos “coleguinhas”. Ou pior, a suspeita de que a décadas havia o problema, um deles foi “empurrando” para 1995. E por que não notaram?

Um grupo liderado pelo pessoal do Project Zero do Google em colaboração com a empresa Cyberus Technology, bem como a Graz University of Technology descobriram em meados de 2017 duas “falhas” graves no desenho dos chips x86, as duas se baseado em um “comportamento legitimo”. A resposta da Intel depois do vazamento inesperado em 3 de janeiro foi vaga e ainda é ambígua.

De uma forma simples, as duas falhas são divididas em três níveis. Variante um, CVE-2017-5753 (bounds check bypass), dois CVE-2017-5715 (branch target injection), que formam a falha “Spectre”. E a variante três CVE-2017-5754 (Rogue Data Cache Load), e o Meltdown. De forma engraçado é como se tivesse furos na parede do banheiro de vizinha para olha-la pelo espelho. Ficou confuso? Vamos lá a outra explicação simples.

Meltdown (traduzido como derretimento ou fusão). Permite que um processo “desonesto” leia toda a memória, mesmo quando não está autorizado a fazê-lo. E isso acontece mesmo no espaço protegido do kernel, que pelas “regras” deveria ser exclusivo dele.

É possível um redesenho, já prometido pela Intel, pois no final das contas e verdadeiramente um “comportamento” que não deveria existir. E a verdadeira “falha”. A lista lançada pela empresa leva o problema ao surgimento da linha “Core”, apesar de parecer o contrario.

O Spectre (espectro) é uma característica documentada, de um recurso existente. Como se usar isso? Baseia-se no principio de que um erro pode deixar “efeitos colaterais observáveis”, informações binárias nos endereços de memória, que podem revelar dados privados aos atacantes.

Este é bem difícil de contornar, e de explorar também. Pois envolve recursos hoje cruciais nos processadores, abandona-los ou criar barreiras? Afeta Intel, AMD e alguns ARM, no dizer dos próprios descobridores será um “fantasma que nos assolará por muitos anos”.

Todas estas falhas baseiam-se em um recurso legitimo implantado lá no Pentium Pro de 1995 (P6), a execução fora de ordem – mas precisamente da execução especulativa (Speculative execution), e a predição de ramificação (Branch predictor). Mas todo o processo de “ataque” depende de uma ajudinha do cache e do Translation Lookaside Buffer (TLB) no caso da falha “exclusiva” da Intel.

E como se conserta um problema no microcódigo e no hardware sem recall? A solução paliativa foi um “patch” para o sistema operacional que resolve, mas “causa dano” no primeiro, e resolve em parte no segundo. No mundo Unix, no Linux foi no mesmo dia, ocorreu sem trauma.

Mas aqui entra o brilhantismo à lá Microsoft, alguns processadores AMD apresentaram problemas com a atualização para o sistema da empresa de Redmond, sendo que o problema mais grave só afete a Intel e não a AMD, isso te diz alguma coisa?

A história todo cheira a merda, menos de um mês antes do vazamento, Brian Krzanich, que é o CEO da Intel, vendeu suas ações. Sem contar que mesmo sabendo da falha desde meados 2017, se é que já não sabiam antes, resolveram assim mesmo lançar uma geração de processadores novos, e que não apresentava vantagem alguma em relação aos anteriores. Só para competir com sua rival AMD, devido ao sucesso do Ryzen.

Outra curiosidade: Em 2012 o kernel XNU usado no sistema da Apple foi acrescido do (KASLR) Kernel Address Space Layout Randomization, para mitigar o uso do espaço de memória do núcleo por programas sem privilégios para tê-lo. Em 2014 a “turma” do Linux fez o mesmo.

A Intel foi a primeira ao alegar que não era a única. Agora mais duas aparece alegando que pode ter os dois problemas, IBM com seu Power e a Oracle com o Sparc. Não preciso nem dizer que são duas canalhas que participaram de certo projetinho amigável. Fazendo uma analogia engraçada, você vai a uma oficina e lhe cobram, pelo concerto do seu quarto pneu, só que seu automóvel é um triciclo.

E muito estranho que ninguém tenha percebido isso, pois as informações que vêm chegando aos poucos mostram o contrario. Sim que no caso do Spectre já estava documentado, o que não se sabia até agora era se era possível um ataque.

Mas o Meltdown? Os indicadores demonstram que já haviam notado algo no passado, em 8 de maio de 1995, um artigo intitulado "A arquitetura do processador Intel 80x86: armadilhas para sistemas seguros", publicado no Simpósio IEEE sobre segurança e privacidade, alertava sobre a possibilidade de uso de um “canal secreto” no TLB. Patrocinado adivinhem por quem? Pelo Trusted Products Evaluation Program (TPEP) da NSA. Sim essa mesma.

Eu não me surpreenderia que um deles não fosse mais um dos “rebentos” dos desvarios do Bush. Se for a fundo é possível descobrir certas semelhanças com denuncias antigas, do Snodewn, que curiosamente foi o motivo de surgimento do Project Zero do Google.

Outra hipótese, está de minha cepa é que a Intel já sabia dos “problemas”, e é bem possível que tenha usado isso em seu favor, no “caso exclusivo” seu, já que é notório que a Intel se sai bem melhor que AMD, como? Ninguém sabia, era a magica Intel.

Nenhum comentário:

Postar um comentário