Vocês já devem ter visto que um zero day nos atingiu, e dessa vez foi no hardware, mais especificamente nos chips Intel, mas tudo indica também que afeta chips AMD e ARM.Praticamente todo mundo está vulnerável. Os kernels do Linux, Mac e Windows estão vulneráveis. Basicamente o problema permite que código rodando em user mode possa acessar memória de kernel mode.
O que está acontecendo
Vou tentar compilar aqui o que já levantei e que parece que vale a pena ler:
Explicação de alto nível das vulnerabilidades Meltdown e Spectre, do Beta News: https://betanews.com/2018/01/03/meltdown-spectre-apocalypse/
Explicação de médio nível, do The Register: https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/
Explicação de baixo nível, do Google Project Zero: https://googleprojectzero.blogspot.com.br/2018/01/reading-privileged-memory-with-side.html
Site agregando informações diversas dos dois problemas: https://meltdownattack.com/
Como anda a correção
A Intel disse que vai liberar um update de firmware que vai ajudar a resolver o problema. Lembro de ter lido que em até uma semana. Tudo isso está sendo um inferno de relações públicas pra eles e as informações estão desencontradas. Há chance de que estas correções de firmware não resolvam o problema e já tem gente dizendo que isso só será resolvido com novo hardware.
Parece que o impacto na AMD é menor, mas também não consegui concluir. Tem gente dizendo que afeta da mesma forma, tem gente dizendo que afeta de maneira menos grave, e tem gente dizendo que não afeta.
Microsoft lançou a correção hoje, feita out of band (normalmente os updates acontecem na segunda terça-feira do mês): https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892 Após instalar a atualização você vai ter que reiniciar a máquina, e vai levar cerca de dez minutos. No final, verifique se a versão do seu Windows está correta, deve ser 16299.192
. Pra isso, aperte a tecla Start do Windows, digite winver
e tecle enter. Deve estar assim:
Builds do Windows Insider já estão corrigidas faz um bom tempo.
Parece que a Apple corrigiu o problema em 6 de Dezembro de 2017 na versão 10.13.2
do macOS High Sierra: https://twitter.com/aionescu/status/948609809540046849
No Linux, eu li que o código já estaria no git do Kernel, mas não ainda liberado. As informações estão desencontradas, então, pra mim, está inconclusivo. A AWS disse que já aplicou o patch no Amazon Linux, então alguma coisa já está pronta.
Avaliação do Google no projeto Chromium: https://www.chromium.org/Home/chromium-security/ssca Essa avaliação poderia significar que estamos vulneráveis a CSRF via GET, ou seja, ninguém está livre e muita gente vai ser owned.
O Firefox, a partir da versão 57 (a mais atual, estável) já tem alguma proteção. Veja o que a Mozilla está dizendo: https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
No Chrome, uma forma que pode ajudar na mitigação é colocar cada site em um processo separado. No suporte do Google explica a fazer isso: https://support.google.com/chrome/answer/7623121 Basicamente:
- Navegue para chrome://flags/#enable-site-per-process
- Clique em
Enable
- Reinicie o Chrome
Impactos
Os patches liberados pra Linux, Mac e Windows vão impactar o desempenho em até 30%. Ninguém sabe exatamente o número correto. Relatos de problema de desempenho já estão aparecendo nas clouds. Isso porque os kernels agora precisarão separar as memórias de kernel e user mode, e isso obrigará a recarga de dados da memória e a dispensa de cache, entre outras operações.
Entre ontem e hoje tivemos diversos relatos de que as clouds estão reiniciando todas as máquinas, deixando inclusive serviços indisponíveis.
Aqui o que o Azure está fazendo: https://azure.microsoft.com/en-us/blog/securing-azure-customers-from-cpu-vulnerability/
O que o Google está fazendo: https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
O que a AWS está fazendo: https://aws.amazon.com/security/security-bulletins/AWS-2018-013/
Irresponsabilidade na liberação da informação
Eu ainda não entendi o que houve, mas alguém fez algo muito errado. Não parece que houve Responsible Disclosure. Muita gente foi pega descoberta, e o exploit foi revelado antes que os responsáveis pudessem corrigir o problema.
Conclusão
Atualize todos os seus softwares hoje. Verifique atualizações todos os dias. Tudo indica que o problema não vai passar do dia pra noite.
O que vai acontecer com a Intel é especulativo. Tem gente dizendo que as ações vão cair, outros dizendo o contrário. De fato, se eles forem processados e perderem o dano vai ser grande. Por outro lado, se todo mundo comprar novos processadores, eles vão ganhar muito dinheiro. Façam suas apostas.
E aí, o que vocês tem feito? Estão acompanhando o problema?
Giovanni Bassi
Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.