O conjunto de 3 falhas, batizadas de Meltdown (CVE-2017-5754) e Spectre (CVE-2017-5753 e CVE-2017-5715), permitem o acesso a áreas protegidas da memória, de forma que um programa malicioso possa acessar áreas de memória do kernel ou de outros processos. Ambos ataques aproveitam uma técnica para otimização de desempenho chamada de "execução especulativa", presente nos processadores modernos. O Meltdown consegue quebrar o isolamento entre as áreas de memória do Sistema Operacional e de outros programas, enquanto o Spectre ataca o isolamento entre diferentes programas.
Como dizem os sites oficiais:
"Meltdown breaks the most fundamental isolation between user applications and the operating system. This attack allows a program to access the memory, and thus also the secrets, of other programs and the operating system."Resumindo, tanto o Meltdown quanto o Spectre permitem aos usuários comuns (de baixo privilégio) ler informações da memória do mesmo sistema explorando o recurso de Execução Especulativa. A diferença é que o Meltdown explora um problema específico de escalada de privilégios nos processadores da Intel, enquanto o Spectre usa a combinação de Execução Especulativa e Branch Prediction.
Fonte: https://meltdownattack.com
"Spectre breaks the isolation between different applications. It allows an attacker to trick error-free programs, which follow best practices, into leaking their secrets. In fact, the safety checks of said best practices actually increase the attack surface and may make applications more susceptible to Spectre."
Fonte: https://spectreattack.com
Com isso, programas maliciosos conseguiriam acessar áreas de memória de outros programas rodando no mesmo computador, e assim, ler e manipular esses dados. É possível, por exemplo, capturar uma senha que o usuário digita em outra aplicação.
Como a imprensa tem destacado, essa vulnerabilidade afeta todos os chips produzidos pela Intel nos últimos 10 anos, e espera-se que as correções existentes podem causar prejuízo na performance dos chips de até 30%.
Agora imagine o desespero de um gestor de TI que tem que aumentar o tamanho do seu datacenter em 1/3 do dia para a noite!!!
A falha foi descoberta pelo pessoal do Google Project Zero além de outros 3 grupos de pesquisadores (que trabalharam separadamente e, por coincidência, descobriram essas vulnerabilidades em um intervalo de tempo de poucos meses entre um e outro), e foi notificada aos fabricantes pela primeira vez no dia 01 de junho de 2017. Logo após a divulgação do bug, no dia 03/01, vários pesquisadores de segurança correram para criar exploits e formas de testar essas vulnerabilidades. No exemplo abaixo, criaram um programa em JavaScript com 5 linhas de código:
Embora seja, um problema na arquitetura dos processadores modernos (isto é, no hardware), o Meltdown e o Specter podem ser evitados com patches de software. Os fabricantes de sistemas operacionais (Windows, iOS, Linux, etc) trabalharam para preparar patches que pudessem mitigar essa vulnerabilidade, mas tiveram que antecipar o lançamento desses patches devido ao que parece ter sido uma divulgação imprevista do problema. Entretanto, como as vulnerabilidades estão no hardware, as únicas correções reais envolveriam trocar a CPU por uma nova, com uma arquitetura sem essas falhas. Mas como isso ainda não é possível, estamos dependendo de ajustes feitos nos SOs para evitar que essas falhas sejam exploradas.
A correção consiste em separar completamente a memória do kernel dos processos dos usuários, como no caso do recurso batizado de "Kernel Page Table Isolation" (KPTI) incorporado no Linux. O time de desenvolvedores, ao criar essa funcionalidade, pensaram em batizá-la de forma bem criativa como "Forcefully Unmap Complete Kernel With Interrupt Trampolines", ou seja, "FUCKWIT".
Praticamente todos os garndes fabricantes de sistemas operacionais e grandes provedores de serviços em nuvem correram para atualizar seus sistemas contra essas vulnerabilidades. O site The Hacker News fez um excelente apanhado das correções disponibilizadas pelos principais fabricantes, veja aqui: "[Guide] How to Protect Your Devices Against Meltdown and Spectre Attacks".
Algumas explicações sobre o bug e "execução expeculativa"
O Meltdown trouxe a tona uma feature das CPUs modernas que, apatentemente, ninguém estava familiarizado: a "execução especulativa". Em poucas palavras de leigo, para ganhar um pouco mais de performance e conseguir executar mais insctuções, os processadores modernos aproveitam os ciclos de processamento que a CPU deveria estar livre para adiantar a execução das próximas instruções, quando o processamento está parado esperando algum dado ou resposta. Assim, se ele "adivinhar" qual foi a resposta certa, ele ficou na vantagem porque processou algumas instruções durante um tempo que ceveria estra parado. Se errou, então basta descartar o que foi processado, e a vida segue.
Veja esses artigos:
- Post no blog do RicBit, curto e objetivo;
- Texto bem legal que explica o problema do Meltdown: “Time-travelling exploits with Meltdown”
- Artigo bem legal do Alberto Azevedo que explica os problemas que deram origem al Meltdown e ao Spectre: "Bem vindo ao Cyberggedon - O "apocalipse dos processadores" é muito pior do que você imagina";
- O pessoal do Raspberry Pi também escreveram um artigo bem didático.
O pessoal do XKCD explicou isso:
Bônus: Humor
Para saber mais
- Site do Meltdown (paper) e Spectre (paper);
- Descrição detalhada do pessoal do Google Project Zero: "Project Zero: Reading privileged memory with a side-channel"
- Resposta oficial da Intel
- Artigo um pouco mais detalhado da Intel: "Facts about Side-Channel Analysis and Intel Products"
- Aviso no CERT: "CPU hardware vulnerable to side-channel attacks"
- CVEs: CVE-2017-5715, CVE-2017-5753 e CVE-2017-5754;
- Post no blog do SANS Storm Center: "Spectre and Meltdown: What You Need to Know Right Now"
- Reportagem bem detalhada do The Register: "Kernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign"
- Artigo:
"Meltdown e Spectre: Umas das maiores falhas da história (explicada)"(artigo praticamente traduzido letra-a-letra do original: "CPU Vulnerability Can Allow Attackers to Read Privileged Kernel Memory and Leak Data") - Artigos no site The Hacker News:
- "Meltdown and Spectre CPU Flaws Affect Intel, ARM, AMD Processors"
- "Huge Flaws Affect Nearly Every Modern Device; Patch Could Hit CPU Performance"
- "[Guide] How to Protect Your Devices Against Meltdown and Spectre Attacks"
- Ótimo: "A Simple Explanation of the Differences Between Meltdown and Spectre"
- Post no blog do RicBit que explica a idéia de "execução especulativa";
- Artigo do TechMundo (só está aqui por ser uma referência em Português): "Falha grave atinge todas as CPUs fabricadas pela Intel nos últimos 10 anos";
- Treta: "CEO da Intel vendeu US$ 11 milhões de suas ações antes da divulgação do Meltdown";
- Curiosidade: "OpenBSD devs worked on Meltdown/Spectre fixes eleven years ago"
- Dica do Nelson Brito: essa palestra da Black Hat 2010 ("Memory Corruption Attacks: The Almost Complete History"), que segundo ele é uma das poucas falando da arquitetura como percursora dos problemas de memória;
- Google Online Security Blog: "More details about mitigations for the CPU Speculative Execution issue";
- Artigo bem interessante na Wired, que discute como 4 grupos de pesquisadores conseguiram descobrir praticamente juntos uma vulnerabilidade que estava desconhecida há décadas: "Triple Meltdown: How So Many Researchers Found a 20-Year-Old Chip Flaw At the Same Time";
- Resposta de vários fabricantes (aproveitando os links que recebi de um grupo no Whatsapp):
- Microsoft (cuidado: aparentemente o patch da Microsoft tem incompatibilidade com processadores AMD)
- Microsoft Azure
- AWS
- Linux RedHat
- VMware
- Citrix
- Google Chrome
- Mozilla Firefox
- Snort
- Raspberry Pi
- O Fernando Mercês fez um vídeo sobre esse assunto: "Falhas nos processadores"
- PoC do pessoal do Project Zero: "CPUs: information leak using speculative execution"
- Sobre os impactos de performance e estabilidade após instalação do patch para o Meltdown e Spectre:
- Wired: The Hidden Toll of Fixing Meltdown and Spectre
- Meltdown, Spectre bug patch slowdown gets real – and what you can do about it
- Now Meltdown patches are making industrial control systems lurch
- Visualizing Meltdown on AWS
- Intel Confirms Fresh Spectre, Meltdown Patch Problems
- Intel Warns Users Not to Install Its 'Faulty' Meltdown and Spectre Patches
- Spectre mitigations in MSVC: O compilador do Microsoft Visual C tem agora a opção /Qspectre para mitigar uma variante do Spectre;
- Meltdown-and-Spectre-detector comes to Windows Analytics
- Intel Faces 32 Spectre/Meltdown Lawsuits
- Intel Admits It Won't Be Possible to Fix Spectre (V2) Flaw in Some Processors
- Spectre and Meltdown Flaws: Two More Variants Discovered
- New Spectre (Variant 4) CPU Flaw Discovered—Intel, ARM, AMD Affected
2 comentários:
Estou procurando conteudo para possivel ajuizamento, tem algum conteudo das ações de lá nos EUA?
Não tenho :(
Postar um comentário