As falhas de segurança Meltdown e Spectre que permitem aceder a informação guardada em computadores, smartphones e tablets, ou seja praticamente todos os dispositivos que usam processadores Intel, AMD e ARM foi revelada há já algum tempo aos fabricantes de chips, casas de software e empresas de serviços de Cloud. Esta revelação, feita em privado, tinha como objectivo, dar tempo a estas empresas para desenvolver actualizações dos seus produtos para resolver estes problemas.
O problema foi que outro conjunto de especialistas em segurança descobriu estas vulnerabilidades e anunciou-as ao mundo. Isto teve como resultado a revelação total dos problemas de segurança antes de tempo. Isto levou a respostas díspares das empresas envolvidas.
O que fazem o Spectre e o Meltdown?
De forma a melhorar o desempenho, os processadores modernos usam uma técnica chamada “execução especulativa”. Simplificando: quando há uma bifurcação no código de um programa, o processador tenta adivinhar qual a direcção da execução do programa e executa as instruções respectivas. Se adivinhar correctamente, essas instruções já estão executadas. Se estiver errado, os resultados são descartados e o processador executa as instruções correctas.
A execução especulativa não altera o comportamento do programa, no entanto perturba o estado do processador de uma forma mensurável. Esta perturbação pode ser detectada através da medição do tempo que o processador demora a processar algumas operações. Servindo-se destas medições é possível inferir as propriedades de dados que pertencem a outro processo, ou mesmo do kernel do sistema operativo (o código que faz funcionar as funcionalidades básicas do sistema operativo), ou do hipervisor (o código base) de uma máquina virtual.
Esta informação pode ser usada directamente. Por exemplo um script JavaScript (linguagem usada para construir as funcionalidades em muitos sites de Internet) a ser executado num qualquer browser, pode roubar passwords que estão guardadas nesse browser. Pode também ser usada em conjunto com outras vulnerabilidades para criar e tirar partido de “buffer overflows”, mesmo quando existem mecanismos que os impedem. Este tipo de ataques impedem o funcionamento correcto do sistema operativo ou aplicação e podem permitir o acesso a dados que estariam seguros se o sistema operativo ou o programa estivessem a funcionar como deve ser.
A falha Meltdown afecta todos os processadores de gama média e alta que a Intel fabricou nos últimos anos e também alguns processadores topo de gama da ARM. Esta é a falha mais fácil de explorar e permite a programas aceder a grandes partes dos dados do kernel. Numa nota mais positiva, esta é também a falha mais fácil de resolver porque depende da forma como os sistemas operativos partilham a memória entre os programas e o kernel. A solução é impedir essa partilha. No entanto, essa solução pode penalizar o desempenho dos computadores.
A falha Specter aplica-se a processadores fabricados pela Intel, AMD e ARM e é mais subtil. Funciona através de um teste aos limites da memória alocada a um processo. Este ataque pode ser usado para comprometer a integridade de uma máquina virtual e permitir ataques entre processos. Já foram desenvolvidas algumas soluções para esta falha de segurança, mas para se obter uma solução total requer que os programas e sistemas operativos que oferecem mais riscos sejam modificados.
O que os fabricantes estão a fazer?
Intel
Os produtos da Intel são os mais afectados por estes problemas de segurança principalmente pelo Meltdown. A empresa publicou um relatório que indica os procedimentos que ira adoptar para resolver ou mitigar as falhas de segurança nos seus produtos.
No que respeita à vulnerabilidade Spectre, a Intel recomenda a alteração dos programas e sistemas operativos para minimizar a utilização da execução especulativa dos seus processadores. A empresa irá alterar a forma como a execução especulativa funciona nos seus processadores que chegarão ao mercado no futuro. A Intel ira lançar patches para as BIOS de certas motherboards para actualizar o funcionamento de alguns processadores evitando necessidade de se instalar novo hardware.
Relativamente à falha Meltdown, a Intel recomenda a actualização do sistema operativo, mas que, no futuro, os seus processadores irão inclui formas de mitigar estes problemas.
AMD
Até agora os produtos da AMD parecem não serem susceptíveis à falha de segurança Meltdown, já no caso do Spectre a empresa tomou uma direcção diferente da da Intel e recomenda apenas a actualização dos sistemas operativos instalados nos computadores.
Até agora a AMD não divulgou muitos dados técnicos sobre a forma como os ataques podem afectar os sues produtos e que medidas irá tomar no futuro.
ARM
A ARM também publicou um documento técnico que descreve em detalhe a forma como os ataques podem afectar os seus produtos.
A resolução proposta pela ARM inclui a implementação de uma nova instrução que impede a utilização indevida da execução especulativa e até inclui exemplos de código para a sua correcta implementação. No caso da vulnerabilidade Meltdown que afecta os seus produtos topo de gama, como o Cortex A-75 a ARM recomenda alterações ao kernel dos sistemas operativos de forma a que a sua memória não seja partilhada com outros processos.
Apple
Como a Apple controla todos os aspectos do desenvolvimento do hardware e software dos seus produtos já actualizou todos os seus sistemas operativos para dispositivos móveis e computadores para minimizar estas falhas de segurança. No entanto, a protecção ainda não está completa, falta actualizar o browser Safari para além de outros pormenores relacionados com o ataque Spectre. Espera-se que a empresa lance mais actualizações em breve.
Microsoft
A Microsoft começou a trabalhar numa protecção para a falha Meltdown desde Novembro do ano passado. As correcções que a Microsoft está a tentar implementar não são aplicadas a certos processadores AMD e Intel Atom visto não utilizarem execução especulativa.
Durante o seu trabalho, a Microsoft, descobriu que certos programas antivírus tentam levar a cabo algumas tarefas que não estão documentadas com a memória do kernel e isso causa problemas com a implementação das actualizações de segurança. O resultado é impedir a utilização das actualizações de segurança até que os antivírus sejam actualizados para as suportarem.
O impacto no desempenho que as actualizações de segurança têm nos sistemas notam-se mais em servidores, principalmente nos que desempenham tarefas que utilizem muito a comunicação como disco rígido e rede. Por isso, os administradores de sistema dos servidores com Windows Server terão de indicar que as querem usar através da alteração de uma chave do Registry do Windows.
As actualizações desenvolvidas pela Microsoft também suportam as actualizações de segurança que a Intel vai disponibilizar para os seus processadores para resolver a vulnerabilidade Spectre. Assim que os processadores forem actualizados, o Windows começará a tirar partido delas.
A Microsoft também irá fazer alterações aos seus browsers, Edge e Internet Explorer, visto que estes programas podem usados para executar scripts Javascript que podem tirar partido destas falhas de segurança. Como ambas as falhas dependem muito da precisam da temporização. Estas correcções vão incluir uma alteração aos temporizadores que estão disponíveis para utilização pelos scripts Javascript que verão a sua precisão reduzida de 5 a 20 microsegundos. Esta solução já está a ser utilizada no Firefox e será também implementada no Chrome até ao fim de Janeiro.
Como os sistemas operativos da Google utilizam o kernel do Linux, a empresa irá adoptar as mesmas medidas de segurança do Linux. O Chrome OS para PC já foi actualizado e a versão para ARM sê-lo-á em breve.
No campo dos Android, só quando os processadores ARM A-75 chegarem ao mercado é que o problema se agudizará. Quase de certeza que a Google irá implementar as medidas de segurança que foram desenhadas para o kernel do Linux. A empresa também vai reduzir a precisão dos temporizadores disponíveis para as aplicações Android para impedir que qualquer programa malicioso consiga funcionar tirar partido das falhas de segurança.