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

22

Acabei de ouvir esse 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 me protejo contra esse bug?

WinEunuuchs2Unix
fonte

Respostas:

20

O erro sujo antigo da vaca

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: Linux Kernels 4.8.3, 4.7.9 e 4.4.26 LTS fora para corrigir a falha de segurança "Dirty COW" ) e os usuários são solicitados a atualizar para o kernel Linux kernel 4.8.3, Linux kernel 4.7. 9 e kernel do Linux 4.4.26 LTS. ESTE LINK É ERRADO, porque essas 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 pelo 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 Bug antigo do kernel "Dirty COW" em todos os sistemas operacionais suportados

A Canonical está pedindo a todos os usuários que corrijam seus sistemas imediatamente instalando:

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

O kernel Xenial HWE para 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 Ubuntu 12.04 LTS para a versão linux-image -3,13,0-100 (3.13.0-100.147 ~ preciso1).

Atualize suas instalações do Ubuntu imediatamente seguindo as instruções fornecidas pela Canonical em: https://wiki.ubuntu.com/Security/Upgrades .

Exiba sua versão atual do kernel

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

uname -a

A versão do kernel com a qual você inicializou é 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 de que depois de instalar o novo kernel com os patches, você ainda pode inicializar versões mais antigas do Grub. Versões anteriores não terão o patch aplicado, como é o caso desta versão 4.8.1 do kernel.

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

Como corrigir os Kernels suportados pelo 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 diárias de segurança estiverem ativadas, a atualização do kernel já foi feita. Verifique sua versão do kernel na 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 os Kernels do Ubuntu não suportados

Algumas instalações com hardware mais recente podem estar usando um Kernel não suportado, como um 4.8.1ou mais. Nesse caso, você precisará atualizar manualmente o Kernel. Embora o link do relatório de erros acima diga usar o Kernel 4.8.3, em 30 de outubro de 2016 4.8.5é o mais recente e é como 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 duas seções atrás.

WinEunuuchs2Unix
fonte
Em vez de "este link é enganoso", o que parece uma palavra muito forte para mim, eu diria algo como "essas instruções não se aplicam aos usuários do Ubuntu".
fkraiem
@ WinEunuuchs2Unix, eu sugeria "Este link, como está, é enganador, porque as versões mencionadas do kernel não são suportadas pelo Ubuntu". Também não sabe por que você está marcando datas em todos os lugares?
Thomas Ward
Tendo o Ubuntu 16.04 LTS, eu encontrei este comando me mostrou que tudo estava bem: apt list --installed | grep linux-image-4.4.0-45- ele retornou linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64 [installed,automatic].
usar o seguinte comando
1

Eu não sou um especialista, mas depois de ler um pouco a "Dirty COW", senti que realmente queria verificar se estou bem depois de concluir minha atualização mais recente há apenas duas horas.

A partir dos resultados da pesquisa por palavras-chave, escolhi este artigo e a discussão como promissores. Agora, eu consegui facilmente verificar o status "corrigido por COW" do meu sistema Xenial Xerox, primeiro seguindo as instruções do artigo acima para exibir sua versão atual do kernel (na verdade, é :) linux-image-4.4.0.-45. Apesar de uname -anão detalhar os patches, ele exibia a versão do kernel atualmente instalada, o que me permitiu seguir a sugestão do usuário 643722 - e com êxito:

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 pelos colaboradores do Linux / Ubuntu e pela rápida difusão de conhecimento entre os usuários.

Ano Nyma
fonte
1
O aviso desaparece se você usar em apt-getvez de aptpor si só.
WinEunuuchs2Unix 23/10
Obrigado, @ WinEunuuchs2Unix. Estou aprendendo todos os dias, o tempo todo ...
Ano Nyma
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 :

Por coincidência, pouco antes da publicação da vulnerabilidade, lançamos o Serviço Canonical Livepatch para Ubuntu 16.04 LTS. Os milhares de usuários que ativaram o canonical-livepatch em seus sistemas Ubuntu 16.04 LTS com essas primeiras horas receberam e aplicaram a correção ao Dirty COW, automaticamente, em segundo plano e sem reiniciar!

  1. Vá para https://ubuntu.com/livepatch e recupere seu token de livepatch Instale o snap canonical-livepatch

    $ sudo snap install canonical-livepatch

  2. Habilite o serviço com seu token

    $ sudo canonical-livepatch enable [TOKEN]

  3. verifique o status a qualquer momento usando:

    Status do $ canonical-livepatch --verbose

  4. Atualizar

    `$ sudo apt instala atualizações autônomas

  5. Versões mais antigas do Ubuntu (ou sistemas Ubuntu que atualizaram para 16.04) podem precisar ativar esse comportamento usando:

    $ sudo dpkg-reconfigure atualizações autônomas

`

GAD3R
fonte
Suas palavras fazem parecer que você trabalha para a Canonical, se for o caso, obrigado por informações privilegiadas :) #
WinEunuuchs2Unix
@ WinEunuuchs2Unix apenas um usuário
iniciante no
Oh bem, obrigado pela sua resposta de qualquer maneira. Receio que você tenha que conviver com o comentário falso sobre ser funcionário da Canonical por 11 horas até eu chegar em casa e excluí-lo do meu computador.
WinEunuuchs2Unix
$ sudo snap install canonical-livepatch error: cannot install "canonical-livepatch": snap not foundSocorro?
Hershey Gamer