Proteja o Linux ou Windows das vulnerabilidades Spectre e Meltdown

Um dos componentes fundamentais em qualquer computador projetado para usar um sistema operacional, independente de seu desenvolvedor, é a CPU ou processador que tem avançado em passos gigantes nos oferecendo novas velocidades de processamento, novas tecnologias, mais núcleos e tudo isso para otimizar e melhorar a inicialização do sistema e a execução dos programas que nele instalamos.

Tudo isso é inovador e nos emociona quando compramos um computador com um excelente processador pois temos certeza que será um bom investimento mas o que acontece se o processador, seja Intel, AMD ou outro, apresentar dentro de seu design vulnerabilidades de segurança que Colocam em risco nossas informações e nossa confidencialidade, aí o assunto muda de rumo e nos faz pensar como esse tipo de situação pode acontecer em processadores renomados e grandes empresas em todo o mundo.

Bem, esta vulnerabilidade é uma realidade que foi descoberta há poucos dias, em 4 de janeiro, onde foram descobertas as vulnerabilidades Spectre e Meltdown, que estão ligadas ao design do processador onde um invasor tem permissão para acessar informações do sistema e memória onde é vital elementos como chaves de criptografia ou senhas são armazenados.

A pior coisa sobre todo esse problema é que essas vulnerabilidades afetam os processadores Intel, ARM e AMD, e é por isso que estamos todos abertos para ser vítimas dessas vulnerabilidades e é por isso que hoje na Solvetic analisaremos minuciosamente o que são essas vulnerabilidades, como elas ataque e como podemos proteger nossos servidores e equipamentos contra eles.

Vamos lembrar que essas vulnerabilidades atacarão todos os tipos de equipamentos, tanto em casa quanto na empresa, e atualmente os patches que servirão para nos proteger contra Spectre e Meltdown estão sendo lançados pelos desenvolvedores de sistemas operacionais e aplicativos.

O que é Spectre

Specter é uma vulnerabilidade que tem a capacidade de enganar o processador para que ele inicie o processo de execução especulativa porque os processadores modernos usam a previsão de Branch e a execução especulativa permite maximizar o desempenho do processador.

Os ataques de espectro permitem induzir a vítima a executar especulativamente certas operações que não ocorreriam durante a execução correta do programa e isso permite que informações confidenciais sejam vazadas por um canal lateral para o atacante de uma forma muito simples.

Os avisos de divulgação dessas vulnerabilidades descobriram duas variantes com diferentes níveis de complexidade e impacto do Spectre no processador e com ele na segurança do usuário.

Essas variantes são:

Variante 1 (CVE-2017-5753)Esta vulnerabilidade afeta os processadores Intel, AMD e ARM, permitindo ao atacante enganar os programas sem nenhum tipo de erro, seguindo as melhores práticas, para filtrar todas as informações do usuário armazenadas no computador.

Isso foi descoberto em 3 de janeiro deste ano pela equipe do Google Project Zero e essa variante faz uso excessivo da execução especulativa para realizar tarefas de desvio de verificação de limite, o que faz com que o código do kernel seja redirecionado com controle do invasor especulativamente.

Uma lista de sistemas que podem ser atacados por esta variante são:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • RHEV-M 4.0
  • RHEV-M para servidores
  • Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) para RHEL 7
  • Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) para RHEL 7
  • Red Hat Enterprise MRG 2
  • Plataforma Red Hat OpenStack v 09/08/10/11/12
  • Debian Linux wheezy
  • Debian Linux jessie
  • Debian Linux stretch
  • Buster Debian Linux, sid
  • SUSE Linux Enterprise Server para Raspberry Pi 12 SP2
  • SUSE OpenStack Cloud 6
  • Openstack Cloud Magnum Orchestration 7
  • SUSE Container as a Service Platform TODOS
  • SUSE Linux Enterprise Alta Disponibilidade 12 SP2 / SP3
  • SUSE Linux Enterprise Live Patching 12
  • Módulo SUSE Linux Enterprise para Nuvem Pública 12
  • SUSE Linux Enterprise Server 11 SP3-LTSS
  • SUSE Linux Enterprise Server 11 SP4
  • Kit de desenvolvimento de software SUSE Linux Enterprise 11/12 SP3 / SP4
  • SUSE Linux Enterprise para SAP 12 SP1
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux baseado em SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI

Variante 2 (CVE-2017-5715)Esta variante é responsável por desencadear a execução especulativa, fazendo uso da injeção de alvo de ramificação. Baseia-se na presença de uma sequência de instruções específica e precisamente definida no código privilegiado, bem como na situação em que os acessos à memória podem causar o cache de dados do microprocessador incluindo instruções executadas especulativamente que nunca serão comprometidas.

Graças a essa variante, um invasor sem nenhum privilégio teria a capacidade de cruzar os limites do sistema e do computador para ler a memória privilegiada executando ataques de cache de canal lateral direcionados e, assim, ver a segurança do usuário invadida.

Os sistemas afetados são iguais aos listados acima.

Para evitar essas variantes no Linux, podemos realizar o seguinte processo.

Em ambientes CentOS ou RedHat, em primeiro lugar executamos as seguintes linhas:

 atualização de uname -r sudo yum

Assim que o sistema for atualizado, procedemos à reinicialização do sistema executando a linha:

 sudo reboot
Em seguida, confirmamos que o kernel foi atualizado usando o comando novamente:
 uname -r
Por fim, verificamos se as variantes são aplicadas no sistema executando o seguinte:
 rpm -q --changelog kernel | egrep 'CVE-2017-5715 | CVE-2017-5753 | CVE-2017-5754' 

PROLONGAR

No caso de usar Ubuntu ou Debian, podemos executar as seguintes linhas:

 sudo apt-get update sudo apt-get upgrade sudo shutdown -r 0

Formas de ataque de espectroSpecter faz uso de algumas técnicas de ataque, como:

  • Explorando a execução especulativa. Com esta técnica, Spectre ataca a tarefa do processador no nível de instruções de execução especulativa com sequências que não deveriam ter sido executadas durante a execução correta do programa e essas sequências serão eventualmente revertidas criando instruções transitórias das quais o atacante aproveita para filtrar o usuário informações afetadas.
  • Ataques usando código nativo:. Este ataque cria um programa que contém dados secretos em sua memória de acesso e uma vez que este programa é compilado, os binários e bibliotecas compartilhadas no sistema são analisados ​​para filtrar as informações do usuário.

Finalmente, é escrito outro programa de ataque que explora a função de execução especulativa da CPU para realizar as sequências encontradas anteriormente como instruções temporárias.

  • Ataques usando JavaScript. Este ataque é usado para violar a sandbox do navegador, montando código JavaScript portátil através dela.

Hardware afetado por SpectreAtualmente, foi descoberto que o Spectre é capaz de violar hardwares como:

  • Processadores baseados em Ivy Bridge
  • AMD Ryzen
  • Processadores Intel
  • Processadores Qualcomm

Em resumo, o ataque Spectre é composto pelas seguintes fases:

  • Fase 1. Primeiro, o ataque começa com uma fase de configuração, em que o adversário executa operações que causam falhas no processador para que a exploração especulativa errônea possa ser realizada.

Durante esta fase, o atacante pode preparar o canal lateral que será usado para extrair as informações da vítima.

  • Fase 2. Nesta fase, o processador executa especulativamente uma ou mais instruções que transferem informações confidenciais do contexto da vítima para uma microarquitetura de canal lateral.

Isso permite que o invasor execute uma ação, como syscall, socket e, em outros casos, o invasor pode tirar vantagem da execução especulativa de seu próprio código para obter informações confidenciais do mesmo processo pelo usuário.

  • Fase 3. Nesta fase, os dados confidenciais são recuperados do Spectre usando técnicas como flush + reload ou despejo + reload. Este processo de recuperação consiste em medir quanto tempo leva para ler os endereços de memória nas linhas de cache que são monitoradas periodicamente.

O que é Meltdown

O outro ataque que afeta a segurança dos usuários é o Meltdown, que permite que um invasor acesse as informações privadas do usuário por meio do sistema operacional instalado, como Microsoft Windows ou High Sierra.

Seu nome foi atribuído pela capacidade de violar os limites de segurança normalmente impostos pelo hardware do sistema.

A vulnerabilidade Meltdown foi catalogada como CVE-2017-5754, onde é referido que Meltdown tem a capacidade de penetrar no isolamento básico entre os aplicativos do usuário e o sistema operacional, não importa o que seja. Esse ataque permite que um programa acesse a memória e, com ela, também as informações confidenciais de outros programas e do próprio sistema operacional.

Essa falha também foi descoberta em 3 de janeiro pela equipe do Google Project Zero e outras equipes adicionais.
Esta vulnerabilidade afeta os processadores Intel x86-64, mas não os processadores AMD x86-64.

O derretimento pode afetar o sistema como:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux
  • Debian Linux wheezy
  • Debian Linux jessie
  • Debian Linux stretch
  • Buster Deiban Linux, Sid
  • SUSE Linux Enterprise 11
  • SUSE Linux Enterprise 12
  • OpenSuse Linux baseado em SUSE 12/11
  • Fedora Linux 26
  • Fedora Linux 27
  • Amazon Linux AMI
  • janelas
Atualmente, temos a solução para esta vulnerabilidade para as seguintes distribuições do Linux com sua versão do kernel como esta:
  • RHEL 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • CentOS 6.x [2.6.32-696.18.7] /7.x [3.10.0-693.11.6]
  • Fedora 26 [4.14.11-200] / 27 [4.14.11-300]
  • Debian stretch [4.9.0-5-amd64] / jessie [3.16.0-5-amd6] / wheezy [3.2.0-5-amd64]
  • CoreOS [4.14.11-Coreos]
  • Arch Linux [atualização para a versão atual]
  • Gentoo Linux [atualização para a versão atual]
  • Ubuntu Linux v16.04 [4.4.0-109-genérico ou 4.13.0-26-genérico] /v17.10 [4.13.0-25-genérico] /14.04 [3.13.0-139-genérico]
  • SUSE - SLES 12 SP3 [4.4.103-6.38.1] / SLES 12 SP2 [4.4.103-92.59.1] / SLES 11 SP4 [3.0.101-108.21.1] / SLES 11 SP3-LTSS [3.0.101 -0.47.106.11.1]

Para nos proteger desta vulnerabilidade CVE-2017-5754, podemos executar o seguinte:

  • No CentOS e RedHat:
 uname -r sudo yum atualização sudo reinicialização
  • No Fedora:
 sudo dnf - atualização do kernel de atualização 
  • No Debian e no Ubuntu:
 uname -r sudo apt-get update sudo apt-get dist-upgrade sudo shutdown -r 0

Como funciona o MeltdownVamos lembrar que um dos recursos centrais de segurança no nível de operação em sistemas operacionais modernos é o isolamento de memória, o que garante que os aplicativos do usuário não tenham acesso às memórias de outros usuários e programas e, assim, evita que os aplicativos dos usuários possam ler ou escrever para a memória do kernel.

Em processadores modernos, o isolamento entre o kernel e os processos do usuário é normalmente executado por um monitor de bits do processador que define se uma memória tem a capacidade de acessar a página do kernel ou não.
O Meltdown foi desenvolvido como um novo ataque que tem o poder de superar o isolamento da memória completamente, fornecendo uma maneira simples para qualquer processo do usuário ler a memória do kernel da máquina em execução, incluindo toda a memória física alocada na região do kernel.

O Meltdown funciona em todos os principais sistemas operacionais atuais e essa vulnerabilidade explora as informações do canal lateral disponíveis na maioria dos processadores modernos, como Intel ou AMD.

Meltdown dá a um invasor a capacidade de executar código em um processador vulnerável para despejar todo o kernel no espaço de endereço, incluindo qualquer memória física alocada.

A causa da simplicidade e do escopo do Meltdown são os efeitos colaterais causados ​​pela execução fora de ordem, ou seja, é um recurso dos processadores atuais que foi desenvolvido para superar as latências de unidades de execução ocupadas.

As fases de trabalho de fusão são:

  • Fase 1. Nesta fase, uma solicitação é feita para um local de memória ilegal no kernel do processador.
  • Fase 2. Nesta fase, uma segunda solicitação é realizada para ler condicionalmente um local de memória válido apenas se a primeira solicitação contiver um determinado valor ativo.
  • Fase 3. Nesta fase, a tarefa de execução especulativa é realizada onde o processador conclui o trabalho em segundo plano para as duas solicitações anteriores antes de verificar se a solicitação inicial é inválida. Assim que o processador entende que as solicitações envolvem memória fora dos limites, ele nega ambas as solicitações.
  • Fase 4. Uma nova solicitação é feita para o local de memória válido.

Portanto, podemos definir o seguinte com a vulnerabilidade Meltdown:

O conteúdo de um local de memória escolhido pelo invasor, que é inacessível para o invasor, é carregado em um registro do sistema.

Uma instrução transitória acessa uma linha de cache com base no conteúdo secreto do registro.

O invasor usa Flush + Reload para determinar o acesso à linha do cache e, assim, acessar as informações armazenadas no local de memória escolhido.

Depois de entendermos como essas vulnerabilidades funcionam, veremos como protegeremos nossos computadores delas, embora devamos esclarecer que até o momento nenhum ataque foi relatado que envolva usuários e administradores.

1. Como se proteger de Spectre e Meltdown em sistemas Linux


No caso do Linux, usaremos specter-meltdown-checker.sh que é um script de shell para determinar se o kernel do Linux é vulnerável aos 3 CVEs que mencionamos dessas vulnerabilidades.

ObservaçãoEste script deve ser executado como usuário root.

Passo 1
Para instalar este script, iremos primeiro para o diretório / tmp desta forma:

 cd / tmp / 
Passo 2
Uma vez no referido diretório, procedemos à obtenção do script executando a seguinte linha:
 wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh 

ObservaçãoOutra opção para obtê-lo é executando a seguinte linha:

 git clone https://github.com/speed47/spectre-meltdown-checker.git 

Como verificar se somos ou não vulneráveis ​​a Spectre ou MeltdownPara verificar a segurança de nossa distribuição, podemos executar a seguinte linha:

 sudo sh specter-meltdown-checker.sh

É simples assim. Podemos verificar se nosso sistema está ou não vulnerável a essas novas ameaças.

2. Como se proteger de Spectre e Meltdown em sistemas Windows


Neste caso usaremos o Windows 10 e para isso devemos acessar o Windows PowerShell como administradores clicando com o botão direito do mouse no aplicativo e selecionando a opção “Executar como administrador”.

Passo 1
Depois que o terminal do PowerShell é aberto, passamos a executar a seguinte linha:

 Install-Module SpeculationControl
Passo 2
Nas questões apresentadas, inseriremos a letra S para confirmar:

PROLONGAR

etapa 3
A política de execução padrão do Windows não nos permite executar este script, para isso, para executar o script, devemos salvar a configuração atual para que possa ser restaurada posteriormente e, em seguida, alterar a política de execução para que possa ser executado o roteiro. Para isso, executaremos os dois comandos a seguir:

 $ SaveExecutionPolicy = Get-ExecutionPolicy Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PROLONGAR

Passo 4
Agora, podemos executar o script executando o seguinte:

 Import-Module SpeculationControl Get-SpeculationControlSettings

PROLONGAR

Etapa 5
Podemos ver informações detalhadas do sistema e devemos olhar para duas linhas em particular:

Suporte do sistema operacional Windows para mitigação de injeção de destino de filialEsta linha indica a atualização de software da Microsoft e se seu valor é verdadeiro significa que o computador está protegido contra ataques Meltdown e Spectre.

Suporte de hardware para mitigação de injeção de alvo de filialEsta linha se refere ao firmware ou atualização do BIOS / UEFI exigida do fabricante do computador se seu valor for verdadeiro isso significa que estaremos protegidos contra a vulnerabilidade Spectre.

Etapa 6
Para restaurar a política de execução à sua configuração original depois de verificar a segurança do sistema, podemos executar a seguinte linha:

 Set-ExecutionPolicy $ SaveExecutionPolicy -Scope Currentuser 

PROLONGAR

Etapa 7
Vale lembrar a importância de manter o sistema operacional atualizado, pois os desenvolvedores estarão lançando patches de segurança para evitar essas falhas de segurança:

3. Informações oficiais de Spectre e Meltdown pelos fabricantes


Nos links a seguir podemos encontrar informações sobre essas vulnerabilidades em cada um dos principais sites dos desenvolvedores e, assim, ter informações mais detalhadas sobre como prevenir e estar um passo à frente do problema:
  • Intel
  • BRAÇO
  • AMD
  • NVIDIA
  • Microsoft Windows
  • Servidor Windows
  • Amazonas
  • Google
  • Android
  • Manzana
  • Lenovo
  • HP
  • Huawei
  • Cisco
  • Mozilla
  • Chapéu vermelho
  • Debian
  • Ubuntu
  • Fedora
  • VMWare

Como podemos constatar, embora as vulnerabilidades estejam sempre presentes, podemos tomar as medidas necessárias para estarmos atentos a qualquer falha e assim evitar que nossas informações sejam afetadas.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave