O que é o bug “Dirty COW” e como posso proteger meu sistema contra ele?

22

Acabei de ouvir falar desse bug "Dirty COW" que permite que qualquer usuário com acesso de leitura aos arquivos também escreva para eles e obtenha acesso administrativo. Como eu protejo contra esse bug?

    
por WinEunuuchs2Unix 21.10.2016 / 05:35

3 respostas

20

O antigo vírus de vaca suja

Este bug existe desde a versão 2.6.22 do Kernel. Ele permite que um usuário local com acesso de leitura obtenha privilégios administrativos. Um aviso foi emitido ( Softpedia: Kernels Linux 4.8.3, 4.7.9 e 4.4.26 LTS Out para a falha de segurança" Dirty COW ") e os usuários estão instado a atualizar para o Kernel Linux kernel 4.8.3, kernel Linux 4.7.9 e kernel Linux 4.4.26 LTS. ESTE LINK É MISLEADING porque estas versões do Kernel não são suportadas pelo Ubuntu.

Esta resposta é personalizada para usuários do Ubuntu e informa:

  • Versões recomendadas do Kernel para usuários do Ubuntu
  • Como exibir sua versão atual do Kernel
  • Como aplicar a correção para os Kernels Suportados do Ubuntu
  • Como aplicar a correção para os Kernels do Ubuntu não suportados

Usuários do Ubuntu "Dirty COW" recomendaram Kernels

O Ubuntu lançou atualizações de segurança em 20 de outubro de 2016 para corrigir o Kernel usado por todas as versões suportadas do Ubuntu: Softpedia: Patches canônicos Antigo Bug de Kernel" Dirty COW "em todos os sistemas operacionais Ubuntu suportados

A Canonical está instando todos os usuários a corrigir seus sistemas imediatamente instalando:

  • linux-image-4.8.0-26 (4.8.0-26.28) para o Ubuntu 16.10
  • linux-image-4.4.0-45 (4.4.0-45.66) para o Ubuntu 16.04 LTS
  • linux-image-3.13.0-100 (3.13.0-100.147) para o Ubuntu 14.04 LTS
  • linux-image-3.2.0-113 (3.2.0-113.155) para o Ubuntu 12.04 LTS
  • linux-image-4.4.0-1029-raspi2 (4.4.0-1029.36)

O kernel Xenial HWE para o Ubuntu 14.04 LTS também foi atualizado para a versão linux-image-4.4.0-45 (4.4.0-45.66 ~ 14.04.1) e o kernel Trusty HWE para o Ubuntu 12.04 LTS para a versão linux-image-3.13.0-100 (3.13.0-100.147 ~ preciso1).

Por favor, atualize suas instalações do Ubuntu imediatamente seguindo as instruções fornecidas pela Canonical em: link .

Exibe sua versão atual do Kernel

Para exibir sua versão atual do Kernel, abra o terminal com Ctrl + Alt + T e digite:

uname -a

A versão do kernel que você inicializou com é então exibida assim:

Linux dell 4.8.1-040801-generic #201610071031 SMP Fri Oct 7 14:34:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Lembre-se que depois de instalar o novo kernel com os patches, você ainda pode inicializar as versões antigas do kernel do Grub. Versões mais antigas não terão o patch aplicado, que é o caso desta versão do kernel 4.8.1.

Mais uma vez, lembre-se de que a versão do kernel 4.8.1 não é suportada pelo Ubuntu.

Como consertar os Kernels suportados do Ubuntu

Desde que o Ubuntu lançou a correção do bug, todos os usuários precisam fazer o upgrade do sistema. Se as atualizações de segurança diárias estiverem ativadas, a atualização do kernel já foi feita. Verifique sua versão do kernel para a lista de kernels acima.

Se o Ubuntu não atualizou automaticamente sua versão do kernel, execute:

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

Após a reinicialização, verifique sua versão atual do kernel, repetindo as instruções da seção anterior.

Como corrigir para Kernels Ubuntu não suportados

Algumas instalações com hardware mais novo podem estar usando um Kernel não suportado, como 4.8.1 ou maior. Em caso afirmativo, você precisará atualizar manualmente o Kernel. Embora o link acima relato de bug diz para usar o Kernel 4.8.3 , em 30 de outubro de 2016, 4.8.5 é o mais recente e é assim que instalá-lo:

cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot

Após a reinicialização, verifique sua versão atual do kernel, repetindo as instruções de duas seções.

    
por WinEunuuchs2Unix 21.10.2016 / 05:35
1

Eu não sou um especialista, mas tendo lido um pouco sobre o "Dirty COW", senti que queria verificar se estava tudo bem depois de concluir minha atualização mais recente há apenas algumas horas.

A partir dos resultados da minha pesquisa de palavras-chave, escolhi este artigo & discussão como soando promissor. Agora, consegui verificar facilmente o status "COW-patched" do meu sistema Xenial Xerox seguindo as instruções do artigo acima para Exibir sua versão atual do Kernel (é: linux-image-4.4.0.-45 ) . Apesar de uname -a não detalhar os patches, ele exibiu a versão do kernel atualmente instalada, o que me permitiu seguir a sugestão do usuário 643722 - e com sucesso assim:

apt list --installed | grep linux-image-4.4.0-45

Embora uma linha extra inesperada tenha sido exibida ...

WARNING: apt does not have a stable CLI interface. 
Use with caution in scripts.

... as informações esperadas seguidas na próxima linha:

linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64  [Installiert,automatisch]

Obrigado a todos - pela rápida implementação de soluções em atualizações por colaboradores Linux / Ubuntu e rápida difusão de conhecimento entre usuários.

    
por Ano Nyma 23.10.2016 / 02:58
1

Você precisa atualizar seus pacotes usando apt-get :

sudo apt-get update && sudo apt-get dist-upgrade

Além disso, você pode ativar o serviço livepach :

Coincidentally, just before the vulnerability was published, we released the Canonical Livepatch Service for Ubuntu 16.04 LTS. The thousands of users who enabled canonical-livepatch on their Ubuntu 16.04 LTS systems with those first few hours received and applied the fix to Dirty COW, automatically, in the background, and without rebooting!

  1. Go to https://ubuntu.com/livepatch and retrieve your livepatch token Install the canonical-livepatch snap

    $ sudo snap install canonical-livepatch

  2. Enable the service with your token

    $ sudo canonical-livepatch enable [TOKEN]

  3. check the status at any time using:

    $ canonical-livepatch status --verbose

  4. Upgrade

    '$ sudo apt install unattended-upgrades

  5. Older versions of Ubuntu (or Ubuntu systems that upgraded to 16.04) might need to enable this behavior using:

    $ sudo dpkg-reconfigure unattended-upgrades

'

    
por GAD3R 16.11.2016 / 12:55