Os ataques Meltdown e Spectre dominaram as conversas de cibersegurança de 2018 e é provável que não se consigam criar defesas de software contra este tipo de técnicas, alerta uma equipa de investigação da Google. Os atacantes tiraram partido das discrepâncias entre o comportamento téorico previsto de um processador e o comportamento real das implementações, estando a vulnerabilidade presente em todos os processadores modernos. Durante o ano passado, foram sendo descobertas novas variações que tiravam partido destas falhas. Algumas destas não permitem qualquer solução eficaz baseada em software.
Os processadores modernos funcionam com base em especulações que, em teoria, não são vistas pelos programas em execução. Embora se esperasse que as especulações erradas fossem ignoradas, descobriu-se que tal não é verdade e que é possível a um atacante fazer com que o processador especule com base em valores do seu interesse e usar a informação obtida para conduzir outros ataques mais sofisticados. O ArsTechnica explica que um JavaScript malicioso pode usar os dados revelados desta forma para aprender mais sobre o layout de memória onde os processos correm e usar essa informação para alavancar novos ataques onde executem código.
O Meltdown tira partido da informação do kernel do sistema operativo. A Intel fez alterações específicas aos processadores para corrigir o Meltdown e também os sistemas operativos foram atualizados para esconder este tipo de dados. No caso do Spectre, no entanto, foram feitas algumas alterações e aplicadas técnicas de software para tentar bloquear a execução de código sensível ou limitar a informação que pode ser acedida. Os investigadores concluiram agora que as correções aplicadas são de alguma forma limitadas e que podem até afetar a performance do sistema. Uma defesa que pode ser interessante passa por tornar os relógios disponíveis para as aplicações menos precisos: assim, se um atacante tiver de medir variações ao nanossegundo e o relógio disponibilizado for preciso ao milissegundo, esta alteração pode tornar o ataque ineficaz.
A mitigação destes ataques por software afigura-se assim difícil de implementar e manter, enquanto a mitigação por hardware pode ser possível, mas terá diferentes variações e ainda não há uma solução definitiva encontrada.