¿Qué es el error "Dirty COW" y cómo puedo proteger mi sistema contra él?

22

Acabo de enterarme de este error "Dirty COW" que permite que cualquier usuario con acceso de lectura a los archivos también les escriba y obtenga acceso administrativo. ¿Cómo me protejo contra este error?

WinEunuuchs2Unix
fuente

Respuestas:

20

El antiguo error sucio de la vaca

Este error ha existido desde Kernel versión 2.6.22. Permite que un usuario local con acceso de lectura obtenga privilegios administrativos. Se ha emitido una advertencia ( Softpedia: Linux Kernels 4.8.3, 4.7.9 y 4.4.26 LTS para corregir la falla de seguridad "Dirty COW" ) y se insta a los usuarios a actualizar al Kernel Linux kernel 4.8.3, Linux kernel 4.7. 9 y kernel de Linux 4.4.26 LTS. ESTE ENLACE ES INCORRECTO porque estas versiones de Kernel no son compatibles con Ubuntu.

Esta respuesta está diseñada para usuarios de Ubuntu y te dice:

  • Versiones de kernel recomendadas para usuarios de Ubuntu
  • Cómo mostrar su versión actual del kernel
  • Cómo aplicar la corrección para los núcleos compatibles con Ubuntu
  • Cómo aplicar la corrección para kernels de Ubuntu no compatibles

Los usuarios de Ubuntu "Dirty COW" recomendaron Kernels

Ubuntu lanzó actualizaciones de seguridad el 20 de octubre de 2016 para parchear el Kernel utilizado por todas las versiones de Ubuntu compatibles: Softpedia: parches canónicos Antiguo error de kernel "Dirty COW" en todos los sistemas operativos Ubuntu compatibles

Canonical insta a todos los usuarios a parchear sus sistemas inmediatamente 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)

El kernel Xenial HWE para Ubuntu 14.04 LTS también se actualizó a la versión linux-image-4.4.0-45 (4.4.0-45.66 ~ 14.04.1), y el kernel Trusty HWE para Ubuntu 12.04 LTS a la versión linux-image -3.13.0-100 (3.13.0-100.147 ~ preciso1).

Actualice sus instalaciones de Ubuntu de inmediato siguiendo las instrucciones proporcionadas por Canonical en: https://wiki.ubuntu.com/Security/Upgrades .

Muestra tu versión actual del kernel

Para mostrar su versión actual de Kernel, abra el terminal con Ctrl+ Alt+ Ty luego escriba:

uname -a

La versión del kernel con la que arrancó se muestra así:

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

Recuerde que después de instalar el nuevo núcleo con los parches, aún puede arrancar versiones anteriores del núcleo desde Grub. Las versiones anteriores no tendrán el parche aplicado, que es el caso de esta versión del kernel 4.8.1.

Una vez más, recuerde que la versión de kernel 4.8.1 no es compatible con Ubuntu.

Cómo arreglar Kernels compatibles con Ubuntu

Desde que Ubuntu lanzó la corrección del error, todo lo que los usuarios deben hacer es actualizar su sistema. Si las actualizaciones de seguridad diarias están habilitadas, la actualización del kernel ya se ha realizado. Verifique la versión de su núcleo en la lista de núcleos anterior.

Si Ubuntu no ha actualizado automáticamente la versión de su núcleo, ejecute:

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

Después de reiniciar, verifique su versión actual del núcleo repitiendo las instrucciones de la sección anterior.

Cómo arreglar para kernels de Ubuntu no compatibles

Algunas instalaciones con hardware más nuevo pueden estar usando un Kernel no compatible como 4.8.1o mayor. Si es así, deberá actualizar manualmente el Kernel. Aunque el enlace del informe de error anterior dice usar Kernel 4.8.3, al 30 de octubre de 2016, 4.8.5es el más reciente y así es cómo instalarlo:

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

Después de reiniciar, verifique la versión actual de su núcleo repitiendo las instrucciones de dos secciones.

WinEunuuchs2Unix
fuente
En lugar de "este enlace es engañoso", lo cual me parece una palabra demasiado fuerte, diría algo como "esas instrucciones no se aplican a los usuarios de Ubuntu".
fkraiem
@ WinEunuuchs2Unix Iba a sugerir "Este enlace, tal cual, es engañoso, porque las versiones de kernel mencionadas no son compatibles con Ubuntu". ¿Tampoco estás seguro de por qué estás en negrita en todas partes?
Thomas Ward
Teniendo Ubuntu 16.04 LTS, encontré que este comando me mostró que todo estaba bien: apt list --installed | grep linux-image-4.4.0-45- regresó linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64 [installed,automatic].
user643722
1

No soy un experto en absoluto, pero después de leer un poco sobre "Dirty COW", sentí que realmente quería comprobar si estoy bien después de completar mi actualización más reciente hace solo un par de horas.

De los resultados de mi búsqueda de palabras clave elegí este artículo y discusión como prometedor. Ahora, he logrado verificar fácilmente el estado "parcheado por COW" de mi sistema Xenial Xerox siguiendo primero las instrucciones del artículo anterior para mostrar su versión actual del kernel (resulta que es :) linux-image-4.4.0.-45. Aunque uname -ano detalla los parches, muestra la versión del kernel instalada actualmente, lo que me permitió seguir la sugerencia del usuario 643722, y con éxito:

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

Aunque se mostró una línea extra inesperada ...

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

... la información esperada seguida en la siguiente línea:

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

Gracias a todos: por la rápida implementación de soluciones en actualizaciones por parte de los contribuyentes de Linux / Ubuntu, y la rápida difusión del conocimiento entre los usuarios.

Ano Nyma
fuente
1
La advertencia desaparece si la usa en apt-getlugar de hacerlo aptsolo.
WinEunuuchs2Unix
Gracias, @ WinEunuuchs2Unix. Estoy aprendiendo todos los días, todo el tiempo ...
Ano Nyma
1

Necesita actualizar sus paquetes usando apt-get:

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

También puede habilitar el servicio livepach :

Casualmente, justo antes de que se publicara la vulnerabilidad, lanzamos el servicio Canonical Livepatch para Ubuntu 16.04 LTS. ¡Los miles de usuarios que habilitaron canonical-livepatch en sus sistemas Ubuntu 16.04 LTS con esas primeras horas recibieron y aplicaron la solución a Dirty COW, automáticamente, en segundo plano y sin reiniciar!

  1. Vaya a https://ubuntu.com/livepatch y recupere su token livepatch Instale el complemento canonical-livepatch

    $ sudo snap install canonical-livepatch

  2. Habilita el servicio con tu token

    $ sudo canonical-livepatch enable [TOKEN]

  3. verifique el estado en cualquier momento usando:

    $ canonical-livepatch status --verbose

  4. Mejorar

    `$ sudo apt instalar actualizaciones desatendidas

  5. Es posible que las versiones anteriores de Ubuntu (o los sistemas Ubuntu que se actualizaron a 16.04) necesiten habilitar este comportamiento usando:

    $ sudo dpkg-reconfigure actualizaciones desatendidas

``

GAD3R
fuente
Sus palabras hacen que parezca que trabaja para Canonical, si es así, gracias por la información privilegiada :)
WinEunuuchs2Unix
@ WinEunuuchs2Unix solo un usuario
principiante de
Oh bien, gracias por tu respuesta de todos modos. Me temo que tendrá que vivir con el falso comentario sobre ser un empleado canónico durante 11 horas hasta que llegue a casa y pueda eliminarlo de mi computadora.
WinEunuuchs2Unix
$ sudo snap install canonical-livepatch error: cannot install "canonical-livepatch": snap not found¿Ayuda?
Hershey Gamer