Co to jest błąd „Dirty COW” i jak mogę zabezpieczyć system przed nim?

22

Właśnie usłyszałem o błędzie „Dirty COW”, który pozwala każdemu użytkownikowi z dostępem do odczytu na pliki również do nich pisać i uzyskiwać dostęp administracyjny. Jak chronić się przed tym błędem?

WinEunuuchs2Unix
źródło

Odpowiedzi:

20

The Ancient Dirty COW Bug

Ten błąd występuje już od wersji jądra 2.6.22. Umożliwia lokalnemu użytkownikowi z dostępem do odczytu uzyskanie uprawnień administracyjnych. Wydano ostrzeżenie ( Softpedia: jądra Linuksa 4.8.3, 4.7.9 i 4.4.26 LTS do łaty „Brud bezpieczeństwa Dirty COW” ), a użytkownicy proszeni są o aktualizację do jądra Linuksa 4.8.3, jądro Linuksa 4.7. 9 i jądro Linuksa 4.4.26 LTS. TEN LINK JEST NIEWŁAŚCIWY, ponieważ te wersje jądra nie są obsługiwane przez Ubuntu.

Ta odpowiedź jest dostosowana dla użytkowników Ubuntu i mówi:

  • Zalecane wersje jądra dla użytkowników Ubuntu
  • Jak wyświetlić aktualną wersję jądra
  • Jak zastosować poprawkę do jądra obsługiwanego przez Ubuntu
  • Jak zastosować poprawkę do nieobsługiwanych jąder Ubuntu

Użytkownicy Ubuntu „Dirty COW” polecili jądra

Ubuntu opublikowało aktualizacje bezpieczeństwa 20 października 2016 r. W celu poprawienia jądra używanego przez wszystkie obsługiwane wersje Ubuntu: Softpedia: łatki Canonical Starożytny błąd jądra „Dirty COW” we wszystkich obsługiwanych systemach operacyjnych Ubuntu

Canonical zachęca wszystkich użytkowników do natychmiastowego łatania systemów, instalując:

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

Zaktualizowano także jądro Xenial HWE dla Ubuntu 14.04 LTS do wersji linux-image-4.4.0-45 (4.4.0-45.66 ~ 14.04.1) oraz jądro Trusty HWE dla Ubuntu 12.04 LTS do wersji linux-image -3.13.0-100 (3.13.0-100.147 ~ precyzyjnie1).

Proszę natychmiast zaktualizować swoje instalacje Ubuntu, postępując zgodnie z instrukcjami dostarczonymi przez Canonical pod adresem : https://wiki.ubuntu.com/Security/Upgrades .

Wyświetl aktualną wersję jądra

Aby wyświetlić bieżącą wersję jądra, otwórz terminal za pomocą Ctrl+ Alt+, Ta następnie wpisz:

uname -a

Wersja jądra, którą uruchomiłeś, jest następnie wyświetlana w następujący sposób:

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

Pamiętaj, że po zainstalowaniu nowego jądra z łatkami możesz nadal uruchamiać starsze wersje jądra z Gruba. Starsze wersje nie będą miały zainstalowanej łaty, co ma miejsce w przypadku wersji jądra 4.8.1.

Po raz kolejny pamiętaj, że jądro w wersji 4.8.1 nie jest obsługiwane przez Ubuntu.

Jak naprawić jądra obsługiwane przez Ubuntu

Ponieważ Ubuntu opublikowało poprawkę błędu, wszyscy użytkownicy muszą zaktualizować swój system. Jeśli codzienne aktualizacje zabezpieczeń są włączone, aktualizacja jądra została już wykonana. Sprawdź wersję jądra na powyższej liście jąder.

Jeśli Ubuntu nie zaktualizował automatycznie wersji jądra, uruchom:

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

Po ponownym uruchomieniu sprawdź aktualną wersję jądra, powtarzając instrukcje z poprzedniej sekcji.

Jak naprawić nieobsługiwane jądra Ubuntu

Niektóre instalacje z nowszym sprzętem mogą korzystać z nieobsługiwanego jądra, takiego jak 4.8.1lub nowszego. Jeśli tak, będziesz musiał ręcznie zaktualizować jądro. Chociaż powyższy link do raportu o błędach mówi o używaniu jądra 4.8.3, według stanu na 30 października 2016 r. 4.8.5Jest on najnowszy i oto jak go zainstalować:

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

Po ponownym uruchomieniu sprawdź aktualną wersję jądra, powtarzając instrukcje dwie sekcje wstecz.

WinEunuuchs2Unix
źródło
Zamiast „ten link wprowadza w błąd”, co wydaje mi się zbyt mocnym słowem, powiedziałbym coś w stylu „te instrukcje nie dotyczą użytkowników Ubuntu”.
fkraiem
@ WinEunuuchs2Unix Chciałem zasugerować: „Ten link w obecnej formie wprowadza w błąd, ponieważ wspomniane wersje jądra nie są obsługiwane przez Ubuntu”. Nie jesteś też pewien, dlaczego odważnie widujesz daty?
Thomas Ward
Mając Ubuntu 16.04 LTS, stwierdziłem, że to polecenie pokazało mi, że wszystko było dobrze: apt list --installed | grep linux-image-4.4.0-45- powróciło linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64 [installed,automatic].
user643722,
1

W ogóle nie jestem ekspertem, ale po przeczytaniu trochę „Dirty COW” poczułem, że naprawdę chcę sprawdzić, czy wszystko w porządku po ukończeniu mojej ostatniej aktualizacji zaledwie kilka godzin temu.

Z wyników wyszukiwania moich słów kluczowych wybrałem ten artykuł i dyskusję jako obiecujące. Teraz z łatwością udało mi się zweryfikować status „załatanej COW” mojego systemu Xenial Xerox, najpierw wykonując instrukcje z powyższego artykułu, aby wyświetlić bieżącą wersję jądra (okazuje się, że :) linux-image-4.4.0.-45. Chociaż uname -anie wyszczególnia łatek, wyświetlał aktualnie zainstalowaną wersję jądra, co pozwoliło mi zastosować się do sugestii użytkownika 643722 - i udało się to:

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

Chociaż wyświetlono nieoczekiwany dodatkowy wiersz ...

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

... oczekiwane informacje w następnym wierszu:

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

Dzięki wszystkim - za szybkie wdrożenie rozwiązań w aktualizacjach przez autorów Linux / Ubuntu i szybkie rozpowszechnianie wiedzy wśród użytkowników.

Ano Nyma
źródło
1
Ostrzeżenie odchodzi jeśli używasz apt-getzamiast aptsama.
WinEunuuchs2Unix
Dziękuję, @ ​​WinEunuuchs2Unix. Uczę się codziennie, cały czas ...
Ano Nyma
1

Musisz zaktualizować swoje pakiety za pomocą apt-get:

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

Możesz także włączyć usługę Livepach :

Przypadkowo, tuż przed opublikowaniem luki w zabezpieczeniach, wypuściliśmy Canonical Livepatch Service dla Ubuntu 16.04 LTS. Tysiące użytkowników, którzy włączyli kanoniczno-podgląd na żywo w swoich systemach Ubuntu 16.04 LTS po pierwszych kilku godzinach otrzymali i zastosowali poprawkę do Dirty COW, automatycznie, w tle i bez ponownego uruchamiania!

  1. Przejdź do https://ubuntu.com/livepatch i pobierz token podglądu na żywo Zainstaluj przystawkę canonical-livepatch

    $ sudo snap install canonical-livepatch

  2. Włącz usługę za pomocą tokena

    $ sudo canonical-livepatch enable [TOKEN]

  3. sprawdź status w dowolnym momencie za pomocą:

    $ canonical-livepatch status --verbose

  4. Aktualizacja

    `$ sudo apt install nienadzorowane aktualizacje

  5. Starsze wersje Ubuntu (lub systemy Ubuntu zaktualizowane do 16.04) mogą wymagać włączenia tego zachowania przy użyciu:

    $ sudo dpkg-rekonfiguruj aktualizacje nienadzorowane

`

GAD3R
źródło
Twoje słowa brzmią tak, jakbyś pracował dla Canonical, jeśli tak, dziękuję za informacje poufne :)
WinEunuuchs2Unix
@ WinEunuuchs2Unix tylko początkujący użytkownik Linuksa :)
GAD3R
No cóż, dziękuję za twoją odpowiedź. Obawiam się, że będziesz musiał żyć z fałszywym komentarzem na temat bycia pracownikiem Canonical przez 11 godzin, dopóki nie wrócę do domu i nie będę mógł go usunąć z mojego komputera.
WinEunuuchs2Unix
$ sudo snap install canonical-livepatch error: cannot install "canonical-livepatch": snap not foundWsparcie?
Hershey Gamer,