Há alguns meses seria praticamente impossível imaginar a existência de uma falha presente na maioria dos processadores lançados nos últimos vinte anos. Contudo, no início do mês, foi noticiado que duas falhas nestes dispositivos estavam deixando vulneráveis as informações de praticamente todos os usuários de computadores e dispositivos móveis ao redor do globo.

Tratam-se do Meltdown e do Spectre, falhas identificadas nos processadores da gigante Intel, assim como os de empresas como ARM e AMD. As falhas foram inicialmente noticiadas pelo site The Register, e então aprofundadas pela equipe do Project Zero, do Google. Desde então, as polêmicas acerca deste assunto vêm crescendo cada vez mais.

Neste artigo, explico um pouco mais sobre o Meltdown e o Spectre, falando sobre seus impactos, se há como se prevenir, e sobre como é importante garantir a qualidade de seus projetos bem no início deles.

O que são o Meltdown e o Spectre?

meltdown-spectre

Em uma definição bem clara e objetiva exposta em uma reportagem do TechCrunch, estes dois erros são “bugs que, fundamentalmente, permitem expor informações críticas que estão armazenadas em camadas profundas do sistema operacional”. Aqui, falamos de senhas, informações de cartões de crédito e informações privadas de qualquer nível – ou seja, aquelas que você mais espera que estejam seguras.

O Meltdown e o Spectre são “bugs que, fundamentalmente, permitem expor informações críticas que estão armazenadas em camadas profundas do sistema operacional”

O Meltdown é uma vulnerabilidade exclusiva dos processadores da Intel. A falha se caracteriza praticamente por “derreter” (daí o nome Meltdown) a barreira de proteção que há entre qualquer programa existente no seu computador e o sistema operacional. O comprometimento desta camada protetora faz com que o kernel do sistema operacional (que tem como uma das suas principais funções o gerenciamento da memória) fique vulnerável. Com isso, programas maliciosos facilmente conseguiriam informações privilegiadas diretamente da memória de um computador.

Abaixo está um vídeo do Meltdown em ação. Como diz David Koff em seu ótimo artigo no Medium, The Downfown of Computers, todos os itens que aparecem à direita do vídeo são informações que não deveriam ser expostas de maneira alguma.

E por que isso acontece? Basicamente, por conta da arquitetura dos processadores da Intel. Para oferecer um carregamento mais rápido ao usuário, os processadores executam as requisições de um software de uma maneira não ordenada (o que é conhecido como execução fora de ordem). Isso cria uma brecha para que programas maliciosos possam acessar o kernel e obter as informações.

Já a Spectre está presente tanto em processadores da Intel como nos de empresas como AMD e ARM e, embora seja mais difícil de ser explorado por terceiros, também apresenta uma maior dificuldade quanto à correção. O bug se aproveita de uma falha de design nos processadores para tomar ação e, através de um processo chamado execução especulativa ele consegue obter dados sigilosos.

A execução especulativa é basicamente uma série de “adivinhações” no modo tentativa e erro que os processadores utilizam para tentar prever quais os próximos passos que um usuário tomará com o objetivo de otimizar a performance do computador. Por exemplo, o chip pode supor que o próximo processo a ser executado pelo usuário será a abertura de uma pasta, e então ele começa a se preparar para tornar este processo mais rápido caso ele de fato ocorra. Caso o usuário não acabe não abrindo a pasta, essa execução prévia é descartada pelo processador.

vulnerabilidades-meltdown-spectre

O que o Spectre faz é rodar códigos maliciosos através da execução especulativa que fazem com que o processador siga o fluxo usual e tente adivinhar uma informação. Entretanto, como aconteceria normalmente, o processo não é descartado quando não cumprido — em vez disso e por conta da falha de design, são recebidos comandos que possibilitam a quebra de segurança em diversos produtos de software existentes no computador, permitindo o roubo das informações sigilosas contidas nas memórias dos próprios produtos.

Agora pense rapidamente nos aplicativos baixados no seu celular. Posso citar pelo menos três aplicações que você tem e que utilizam ou têm acesso aos seus dados privados: aplicativos de corrida, e-mail e internet banking. Você consegue mensurar por cima quais seriam seus impactos pessoais caso dados seus vazassem? Imagine agora estes impactos em grandes empresas.

Qual o impacto destas vulnerabilidades?

Se você está se perguntando se você está vulnerável a estes bugs, a resposta é sim. Pelo menos é o que diz o site oficial dedicado às falhas, idealizado pelas mesmas pessoas que as descobriram.

Para checar a extensão da abrangência do Meltdown, a falha foi procurada e identificada em em processadores lançados após 2011, tendo raras exceções. Contudo, todos os componentes lançados após 1995 estão vulneráveis às falhas por conta das semelhanças na arquitetura com os processadores testados.

Já o fato da execução especulativa existir em todos os processadores mais modernos faz com que o Spectre também esteja presente em todos eles, sendo os componentes da Intel, da ARM ou da AMD.

Todos os componentes da Intel lançados após 1995 estão vulneráveis ao Meltdown, enquanto todos os processores estão suscetíveis ao Spectre

Por conta do portfólio de processadores afetados ser muito vasto, as falhas estão presentes em computadores, servidores em nuvem, smartphones e até televisões. Quanto aos sistemas operacionais, elas aparecem tanto em Windows, quanto em Linux ou em iOS e macOS. Praticamente tudo o que geralmente faz parte do nosso cotidiano.

Neste ponto, imagino que você esteja achando que estamos a beira de uma situação apocalíptica. Entretanto, mesmo com a grande abrangência destes bugs, é bem pouco provável que você seja afetado de fato. Isso porque são falhas de difícil exploração, e por isso pode não parecer atrativo para uma pessoa má intencionada atacar um usuário individual… a não ser que este seja o Donald Trump 😉

Agora imagine uma grande empresa que utiliza computação em nuvem para realizar seus negócios e que também guarde infinitos terabytes de dados em seus computadores. É bem provável que seja um esforço válido para hackers tentar manipular estas falhas para conseguir as informações e se aproveitar delas.

De qualquer modo, é praticamente impossível saber se essas falhas foram exploradas por pessoas má intencionadas, mesmo com o uso de antivírus. Conforme descrito no site dedicado para explicar as vulnerabilidades, “a exploração [das falhas] não deixa nenhum tipo de rastros nos logs tradicionais”. Isso torna a mensuração das consequências muito mais difícil, agravando ainda mais o problema.

O que está sendo feito e como se proteger?

O Meltdown e o Spectre são falhas de difícil correção justamente por trabalharem na falha de arquitetura e design dos processadores, dependendo mais de modificações no hardware do que no software. Tecnicamente, as falhas só não existirão mais quando todos os computadores em uso estiverem utilizando processadores cuja montagem foi feita de maneira diferente — e, cá entre nós, ainda há muito tempo (e dinheiro) para que isso aconteça.

Neste meio tempo, algumas empresas vêm lançando patches de correção para remediar o problema e dificultar ainda mais a exploração das falhas. Empresas como Microsoft, Google e Apple lançaram atualizações emergenciais de seus sistemas para mitigar o risco de ataques.

processadores-meltdown-spectre

Entretanto, nem tudo é tão fácil assim: uma recente atualização do Windows acabou entrando em conflito com diversos antivírus que pudessem estar instalados nos computadores do usuário. Isso ocorre porque alguns desses softwares interagem com o kernel de forma irregular. Por conta disso, os antivírus têm que sinalizar ao Windows que são compatíveis com os patches de atualização emergenciais — caso contrário, não haverá atualização e o computador ficará desprotegido.

Em outro caso, atualizações da própria Intel fizeram com que máquinas com chips mais antigos começassem a reinicializar o sistema com uma frequência maior que o normal.

O preocupante é que umas das correções mais viáveis no momento consiste em alterar a maneira como os sistemas operacionais são montados, basicamente escondendo o kernel para que ele não possa mais ser acessado por programas má intencionados. De tal modo, a comunicação entre o sistema operacional e o kernel fica mais demorada, impactando o desempenho do seu computador.

Mesmo com essa queda de performance, manter seu sistema atualizado ainda é a melhor forma de se manter protegido dessas falhas, pois só assim você continuará a receber as melhorias que continuarão a prezar pela sua segurança. Coloque na balança: você prefere ter um computador um pouco mais lento ou ter suas informações sigilosas vazadas?

Manter seu sistema atualizado ainda é a melhor forma de se manter protegido dessas falhas

O que podemos tirar de ensinamento?

O caso da Meltdown e da Spectre é muito mais relacionado ao mundo do hardware do que ao do software, mas o princípio é o mesmo: durante um projeto de desenvolvimento, devemos ter cuidado para que tudo saia conforme o planejado e com a maior qualidade possível para que não tenhamos dor de cabeça e retrabalho no futuro.

As consequências de falhas em projetos se agravam com o decorrer do tempo e acabam se tornando como uma bola de neve: caso o Meltdown e o Spectre tivessem sido descobertos no início, com certeza a resolução teria sido mais fácil e o impacto não teria sido tão grande. Agora, em um cenário onde praticamente todos os computadores do mundo estão vulneráveis, os esforços (e os custos) para a resolução dos problemas serão bem maiores.

Pense também na imagem da marca: o envolvimento nesta situação por conta de um descuido de engenharia do passado tem o poder de trazer consequências bem negativas ao nome da Intel, que sempre foi referência em processadores. Agora, falando em termos financeiros, as ações da empresa caíram 7% após a descoberta das falhas. Só para você ter uma ideia do volume de dinheiro envolvido, o valor de mercado da Intel foi reduzido de US$ 219 bi (dados de 2/jan) para US$ 202 bi (dados de 12/jan), um prejuízo de US$ 17 bilhões em apenas 10 dias!!!

intel-market-cap

Fonte: YCharts

Nós, da One Day Testing, entendemos que garantir a qualidade de seu projeto pode te ajudar a descobrir os erros mais cedo o possível durante seu cronograma de desenvolvimento e evitar que estes erros tragam prejuízos para você e para sua empresa. Sendo assim, estamos preparados para te ajudar a mitigar estes riscos.

Você tem alguma dúvida sobre o Meltdown e o Spectre? Quer falar sobre garantir a qualidade de seu produto ou projeto? Entre em contato conosco e será um prazer conversar! Me escreva em bruno.abreu@sofist.com.br ou ligue em (19) 3291-5321 e vamos bater um papo.