Root dla każdego na Linuksie i Androidzie – Dirty COW głośno już ryczy w Sieci

Dirty COW (brudna krowa), czyli jedna z najciekawszych jak do tejpory luk w jądrze Linuksa, wzbudziła ogromne zainteresowaniespołeczności, otwierając drogę zarówno wyrafinowanym exploitom,jak i jailbreakom zablokowanych dotąd linuksowych urządzeń. Nicdziwnego – pozwala na niezawodne uzyskanie uprawnień roota przezpraktycznie każdą aplikację, a następnie pełen dostęp dosystemu plików. Świetna wiadomość w erze masowych ataków DDoSprzeprowadzanych przez urządzenia Internetu Rzeczy – z którychwielu nigdy nie będzie można załatać.

Root dla każdego na Linuksie i Androidzie – Dirty COW głośno już ryczy w Sieci

Obraz

Swoją nazwę ta nowa luka wzięła od mechanizmu Copy-on-Write(kopiowanie przy zapisie), którego tragicznej jakości implementacjapojawiła się już w wydanym w 2007 roku kernelu 2.6.22 i w takiejformie pozostała do teraz. Wyjaśnijmy, co zawiodło. ZwykleCopy-on-Write wykorzystywana jest do współdzielenia dużych ilościdanych między procesami czy wątkami, gdy nie wiadomo, czy będąone modyfikowane. Aby uniknąć kosztownego kopiowania pamięci,zwracany jest tylko wskaźnik do danych. Tylko gdy potrzebna jestmodyfikacja, kernel kopiuje dane na inną stronę pamięci, tak bymógł do nich uzyskać dostęp tylko jeden proces.

Kopiuj ile wlezie

Atak polega na stworzeniu warunków do zaistnienia hazardu (racecondition) w tym mechanizmie. Z przeprowadzonej przez odkrywcówDirty COW analizy wynika, że wystarczy otworzyć należący do rootaplik wykonywalny i zarezerwować mu pamięć (można to zrobić zkażdym odczytywalnym dla użytkownika plikiem wykonywalnym).Jednocześnie wywołuje się funkcję kernela madvise(), przez którąmówi się, że nie będzie się wykorzystywać tej zarezerwowanejpamięci.

Następnie w innym wątku tego samego procesu otwiera się plikwirtualnej pamięci procesu, do którego ma on uprawnienia odczytu izapisu (/proc/self/mem). W pliku tym poprzez normalne operacje zapisunadpisuje się obszary własnej pamięci, które zostałyzarezerwowane dla należącego do roota pliku wykonywalnego.Atakujący proces trzyma więc pamięć pliku wykonywalnego tylko doodczytu w prywatnym obszarze i w jednym wątku rozgłasza, żepamięci tej nie będzie ruszał, podczas gdy w drugim nadpisujepamięć zarezerwowaną dla tego obiektu. Próba takiego zapisupowinna uruchomić kopiowanie-przy-zapisie, tak by zmiana trafiłatylko do pamięci zarezerwowanej przez proces, nie dotykającodwzorowanego pliku.

Nie tak jednak zachowuje się linuksowy kernel. Hazardowasytuacja wywołana przez rozgłaszanie o nieużywaniu zarezerwowanejpamięci sprawia, że kernel nie przenosi w pełni wykonywalnegopliku z pamięci. Próba zapisu wywołuje oczywiście błąd, któryzostaje nawet poprawnie obsłużony – tyle że w tym wypadkumadvise() mówi, by porzucić stronę pamięci z odwzorowanym do niejobszarem. W ten sposób dane trafiają bezpośrednio do plikuwykonywalnego z uprawnieniami roota i zostają zachowane przez kernelbezpośrednio w systemie plików.

W ten sposób można więc wykorzystać dowolny należący doroota plik uruchamialny dla użytkownika, by uruchomić z niegopowłokę systemową z uprawnieniami roota – a wówczas hulajdusza, piekła nie ma, system należy do napastnika.

Co robić i jak żyć?

W sieci już znalazły się exploitywykorzystujące Brudną Krowę. Zarazem też łatka opracowana dlatego starożytnegobłędu trafiła już do linuksowych kerneli – poprawkowewersje są udostępniane m.in. w repozytoriach Debiana, Ubuntu,Fedory, OpenSUSE i Red Hata.

https://t.co/72uN9eo4VY <--Updated version of Linux COW exploit. Fully functional. Shells for days.

— daveaitel (@daveaitel) October 21, 2016Gorzej z Androidem oraz tymi wszystkimilinuksowymi urządzeniami wbudowanymi, tutaj na łatki trzeba będziejeszcze poczekać – o ile się doczekamy. Oczywiście dla wieluużytkowników telefonów nie mających roota będzie to niezłaokazja do uwolnienia swoich smartfonów. Zobaczcie zresztą sami:brudna krowa na Androidzie hasaśmiało – i to mimo tego, że Android korzysta przecież zSELinuksa, który jakoś powinien przecież blokować zapisy do/proc/self/mem.

Warto podkreślić, że sam Linus Torvalds przyznał, że ten błądpozwalający na stworzenie sytuacji hazardowej próbował naprawićjuż 11 lat temu, ale łatka okazała się wówczaswywoływać problemy na systemach s390. Zrezygnował z dalszych prób,ponieważ wywołanie hazardu było wówczas bardzo skomplikowane.Jednak kolejne zmiany architektury jądra sprawiły, żewyexploitowanie luki stało się bardzo łatwe – i w końcu zrobiłto badacz o imieniu Phil Oester.

Wiecej informacji znajdziecie na stroniepoświęconej tej luce, jak również na jej koncie na Twitterze(co za czasy, że bugi mają własne konta na Twitterze).

Programy

Zobacz więcej

Wybrane dla Ciebie

Komentarze (75)

Cenimy Twoją prywatność

Kliknij "AKCEPTUJĘ I PRZECHODZĘ DO SERWISU", aby wyrazić zgodę na korzystanie w Internecie z technologii automatycznego gromadzenia i wykorzystywania danych oraz na przetwarzanie Twoich danych osobowych przez Wirtualną Polskę, Zaufanych Partnerów IAB (878 partnerów) oraz pozostałych Zaufanych Partnerów (405 partnerów) a także udostępnienie przez nas ww. Zaufanym Partnerom przypisanych Ci identyfikatorów w celach marketingowych (w tym do zautomatyzowanego dopasowania reklam do Twoich zainteresowań i mierzenia ich skuteczności) i pozostałych, które wskazujemy poniżej. Możesz również podjąć decyzję w sprawie udzielenia zgody w ramach ustawień zaawansowanych.


Na podstawie udzielonej przez Ciebie zgody Wirtualna Polska, Zaufani Partnerzy IAB oraz pozostali Zaufani Partnerzy będą przetwarzać Twoje dane osobowe zbierane w Internecie (m.in. na serwisach partnerów e-commerce), w tym za pośrednictwem formularzy, takie jak: adresy IP, identyfikatory Twoich urządzeń i identyfikatory plików cookies oraz inne przypisane Ci identyfikatory i informacje o Twojej aktywności w Internecie. Dane te będą przetwarzane w celu: przechowywania informacji na urządzeniu lub dostępu do nich, wykorzystywania ograniczonych danych do wyboru reklam, tworzenia profili związanych z personalizacją reklam, wykorzystania profili do wyboru spersonalizowanych reklam, tworzenia profili z myślą o personalizacji treści, wykorzystywania profili w doborze spersonalizowanych treści, pomiaru wydajności reklam, pomiaru wydajności treści, poznawaniu odbiorców dzięki statystyce lub kombinacji danych z różnych źródeł, opracowywania i ulepszania usług, wykorzystywania ograniczonych danych do wyboru treści.


W ramach funkcji i funkcji specjalnych Wirtualna Polska może podejmować następujące działania:

  1. Dopasowanie i łączenie danych z innych źródeł
  2. Łączenie różnych urządzeń
  3. Identyfikacja urządzeń na podstawie informacji przesyłanych automatycznie
  4. Aktywne skanowanie charakterystyki urządzenia do celów identyfikacji

Cele przetwarzania Twoich danych przez Zaufanych Partnerów IAB oraz pozostałych Zaufanych Partnerów są następujące:

  1. Przechowywanie informacji na urządzeniu lub dostęp do nich
  2. Wykorzystywanie ograniczonych danych do wyboru reklam
  3. Tworzenie profili w celu spersonalizowanych reklam
  4. Wykorzystanie profili do wyboru spersonalizowanych reklam
  5. Tworzenie profili w celu personalizacji treści
  6. Wykorzystywanie profili w celu doboru spersonalizowanych treści
  7. Pomiar efektywności reklam
  8. Pomiar efektywności treści
  9. Rozumienie odbiorców dzięki statystyce lub kombinacji danych z różnych źródeł
  10. Rozwój i ulepszanie usług
  11. Wykorzystywanie ograniczonych danych do wyboru treści
  12. Zapewnienie bezpieczeństwa, zapobieganie oszustwom i naprawianie błędów
  13. Dostarczanie i prezentowanie reklam i treści
  14. Zapisanie decyzji dotyczących prywatności oraz informowanie o nich

W ramach funkcji i funkcji specjalnych nasi Zaufani Partnerzy IAB oraz pozostali Zaufani Partnerzy mogą podejmować następujące działania:

  1. Dopasowanie i łączenie danych z innych źródeł
  2. Łączenie różnych urządzeń
  3. Identyfikacja urządzeń na podstawie informacji przesyłanych automatycznie
  4. Aktywne skanowanie charakterystyki urządzenia do celów identyfikacji

Dla podjęcia powyższych działań nasi Zaufani Partnerzy IAB oraz pozostali Zaufani Partnerzy również potrzebują Twojej zgody, którą możesz udzielić poprzez kliknięcie w przycisk "AKCEPTUJĘ I PRZECHODZĘ DO SERWISU" lub podjąć decyzję w sprawie udzielenia zgody w ramach ustawień zaawansowanych.


Cele przetwarzania Twoich danych bez konieczności uzyskania Twojej zgody w oparciu o uzasadniony interes Wirtualnej Polski, Zaufanych Partnerów IAB oraz możliwość sprzeciwienia się takiemu przetwarzaniu znajdziesz w ustawieniach zaawansowanych.


Cele, cele specjalne, funkcje i funkcje specjalne przetwarzania szczegółowo opisujemy w ustawieniach zaawansowanych.


Serwisy partnerów e-commerce, z których możemy przetwarzać Twoje dane osobowe na podstawie udzielonej przez Ciebie zgody znajdziesz tutaj.


Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać wywołując ponownie okno z ustawieniami poprzez kliknięcie w link "Ustawienia prywatności" znajdujący się w stopce każdego serwisu.


Pamiętaj, że udzielając zgody Twoje dane będą mogły być przekazywane do naszych Zaufanych Partnerów z państw trzecich tj. z państw spoza Europejskiego Obszaru Gospodarczego.


Masz prawo żądania dostępu, sprostowania, usunięcia, ograniczenia, przeniesienia przetwarzania danych, złożenia sprzeciwu, złożenia skargi do organu nadzorczego na zasadach określonych w polityce prywatności.


Korzystanie z witryny bez zmiany ustawień Twojej przeglądarki oznacza, że pliki cookies będą umieszczane w Twoim urządzeniu końcowym. W celu zmiany ustawień prywatności możesz kliknąć w link Ustawienia zaawansowane lub "Ustawienia prywatności" znajdujący się w stopce każdego serwisu w ramach których będziesz mógł udzielić, odwołać zgodę lub w inny sposób zarządzać swoimi wyborami. Szczegółowe informacje na temat przetwarzania Twoich danych osobowych znajdziesz w polityce prywatności.