quarta-feira, 24 de abril de 2019

AINDA SOBRE O MELTDOWN, O SPECTRE E O RETPOLINE


CHI VA, NON PUÓ; CHI PUÓ, NON VA; CHI SA, NON FA; CHI FA, NON SA; E COSI, MALE IL MONDO VA.

Antes do assunto do dia, um comunicado importante:
Patch Tuesday deste mês (liberado no último dia 9) trouxe problemas de incompatibilidade, travamento e congelamento total do sistema para alguns usuários, notadamente em PCs com antivírus das marcas Avast, Avira, Sophos e McAfee. No meu caso específico, o desconforto é mínimo — habilitar um ou dois módulos do Avast Premier toda santa vez que ligo ou reinicio o computador —, mas há relatos de pessoas que não conseguem reiniciar o Windows, que amargam uma lentidão exagerada na inicialização ou demoram horas para conseguir fazer o logon.

Não há como saber se e como a máquina será afetada até que a instalação do patch seja concluída e o sistema, reiniciado, mas sabe-se que as versões mais atingidas são o Windows 7, 8.1, Server 2008 R2, Server 2012 e Server 2012 R2. A Avast recomenda deixa o sistema na tela de logon por cerca de 15 minutos e, em seguida, reiniciar o computador, mas acessar o modo de segurança e desativar o antivírus é uma solução mais eficaz, desde que você habilite o Windows Defender e o Windows Firewall. Instalar uma suíte de segurança que não conflite com o patch só faz sentido se a ferramenta de proteção em uso for gratuita (ou se a licença estiver prestes a expirar), até porque espera-se que a Microsoft desenvolva uma correção para esse problema e a libere com a possível urgência.  
Alguns fabricantes de antivírus estão se antecipando e lançando suas próprias correções, o que nos leva especular se a falha de compatibilidade não está nesses softwares, e não no patch da Microsoft. Mas isso só ficará claro depois que a empresa se pronunciar oficialmente sobre o assunto.

***********************************

Vimos que uma falha de design dos processadores Intel dá acesso a blocos de memória protegidos pelo sistema operacional, e que pessoas mal-intencionadas pode explorar essa brecha para ter acesso remoto não autorizado a informações confidenciais dos usuários de máquinas vulneráveis. Essa falha deu origem a duas vulnerabilidades: a Meltdown, que remove a barreira entre as aplicações para usuários e as partes sensíveis do sistema operacional, e a Spectre, que engana funcionalidades vulneráveis, fazendo-as vazar o conteúdo da sua memória. Ambas advêm de uma falha de hardware e, portanto, demandam correção em nível de projeto.

Como paliativo, foram desenvolvidos patches (remendos de software) destinados a minimizar esse problema (para saber mais, clique aqui), mas eles acabaram criando outro ao provocar uma redução de até 30% no desempenho dos processadores. Mais adiante, uma solução criada originalmente pelo Google foi implementada pela Microsoft no build 1809 do Windows 10 (atualização de recursos lançada em novembro do ano passado), visando reduz o impacto da anterior na performance do computador e proporcionando, em alguns casos, ganho adicional de até 25%. Por alguma razão incerta e não sabida, essa correção precisa ser habilitada, o que significa basicamente executar dois comandos de prompt. Você pode obter informações detalhadas no site da Microsoftmas também pode seguir o roteiro simplificado que eu publico a seguir:

— Digite cmd na caixa de pesquisas da Barra de Tarefas (ou da Cortana, conforme a configuração do seu Windows 10) e tecle Enter. Clique com o botão direito sobre “Prompt de Comando/Aplicativo da área de trabalho” e selecione a opção Executar como administrador.

— Na linha de comando, digite:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0x400 e pressione a tecla Enter.

Observação: Note que qualquer espaço, letra ou caractere a mais, a menos ou trocado fará com o comando seja recusado.

— Em seguida, digite este comando:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 0x400 e torne a pressionar a tecla Enter (note que a recomendação anterior vale também neste caso).

— Feche a tela do prompt e reinicie o computador.

Para conferir se a configuração foi implementada com sucesso, basta executar no PowerShell (com poderes de administrador) um script que a Microsoft disponibiliza em seu GitHub. O procedimento é um tanto trabalhoso, mas seguro morreu de velho. Clique aqui para saber como fazer isso, aqui para informações adicionais e aqui para assistir ao tutorial completo em vídeo.