9-letni błąd jądra Linuksa nazwany „Dirty Cow” może zrootować każdą wersję Androida

Dirty Cow to nowo odkryty, ale mający już 9 lat błąd, który można wykorzystać do przyznania dostępu do konta root we wszystkich wersjach Androida.

Pomimo faktu, że dziesiątki tysięcy użytkowników aktywnie przegląda kod źródłowy jądra Linuksa, aktywnie szukając luk w zabezpieczeniach, nierzadko zdarza się, że poważne błędy pozostają niezauważone. W końcu, chociaż ryzyko przeoczenia czegoś niezwykle poważnego jest zmniejszone, jeśli więcej oczu będzie sprawdzało kod, wszyscy nadal jesteśmy ludźmi i z pewnością popełnimy błąd. Błąd tym razem wydaje się niestety dość poważny. A Exploit polegający na eskalacji uprawnień został niedawno odkryty w zeszłym tygodniu i chociaż tak jest zostało już załatane w głównym jądrze Linuksa błąd mógł wystąpić potencjalnie zostać wykorzystane na prawie każdym telefonie z Androidem dostępnym na rynku, dopóki każde urządzenie nie otrzyma odpowiedniej poprawki do jądra.


Wejdź do Brudnej Krowy

Błąd polegający na eskalacji uprawnień jest potocznie nazywany exploitem Dirty Cow, ale jest skatalogowany w systemie śledzenia błędów jądra Linuksa jako CVE-2016-5195. Chociaż błąd został odkryty dopiero w zeszłym tygodniu, błąd istniał w kodzie jądra Linuksa 

9 lat. Co więcej, kod, który można wykorzystać, znajduje się w dostarczanej części jądra Linuksa praktycznie każdy nowoczesny system operacyjny zbudowany na jądrze Linuksa – włączając w to Androida, wg droga. Co gorsza, badacze, którzy odkryli exploit, znaleźli dowody na jego istnienie wykorzystywane złośliwie w świecie rzeczywistym, dlatego doradzają wszystkim dostawcom oprogramowania zbudowanego na jądrze Linuksa, aby natychmiast załatali exploit.

Dirty Cow sama w sobie nie jest exploitem, ale raczej luką w zabezpieczeniach. Jednakże ta luka pozwala na eskalację uprawnień procesu w przestrzeni użytkownika, przyznając mu uprawnienia superużytkownika. Wykorzystując tę ​​lukę, złośliwy proces w przestrzeni użytkownika może uzyskać nieograniczony dostęp do konta root na urządzeniu ofiary. Mówiąc bardziej technicznie, błąd dotyczy wyścigu w technice powielania pamięci Linuksa, znanej jako kopiowanie przy zapisie. Wykorzystując tę ​​sytuację wyścigu, użytkownicy mogą uzyskać dostęp do zapisu w mapowaniach pamięci, które zwykle są ustawione na tylko do odczytu. Można uzyskać więcej szczegółów na temat luki w zabezpieczeniach Tutaj, Tutaj, I Tutaj.

Lukę w zabezpieczeniach uważa się za dość łatwą w wykorzystaniu i już w ciągu zaledwie kilku dni od upublicznienia luki Exploit polegający na eskalacji uprawnień w ramach dowodu koncepcji zostało wykazane dla wszystkie urządzenia z Androidem. Dowolne urządzenie z systemem Android z jądrem Linux w wersji wyższej niż 2.6.22 (czytaj: każdą istniejącą dystrybucję Androida) może potencjalnie paść ofiarą tego exploita sprawdzającego koncepcję. Chociaż exploit weryfikujący koncepcję w rzeczywistości nie umożliwia uzyskania dostępu do konta root, zaatakowanie systemu przy użyciu tej luki sprawia, że ​​jest to całkiem proste. W e-mailu wysłanym do ArsTechnica Phil Oester, programista jądra Linuksa, który kataloguje znane w świecie rzeczywistym exploity Dirty Cow na jego strona internetowa miałem to do powiedzenia na temat błędu:

W moich testach każdy użytkownik może zostać rootem w <5 sekund, co jest bardzo niezawodne. Straszna rzecz.

Lukę najłatwiej wykorzystać, uzyskując lokalny dostęp do systemu, np. do kont powłoki. W mniej trywialny sposób działa również każda luka w zabezpieczeniach serwera WWW/aplikacji, która umożliwia osobie atakującej przesłanie pliku do systemu, którego dotyczy problem, i wykonanie go.

Konkretny exploit, który został przesłany do mojego systemu, został skompilowany przy użyciu GCC 4.8.5 wydanego 20150623, nie powinno to jednak oznaczać, że luka nie była dostępna wcześniej niż podana data długość życia. Jeśli chodzi o to, kto jest celem, narażony jest każdy, kto używa Linuksa na serwerze internetowym.

Przez ostatnie kilka lat przechwytywałem cały ruch przychodzący na moje serwery internetowe w celu analizy kryminalistycznej. Praktyka ta okazała się nieoceniona przy wielu okazjach i polecam ją wszystkim administratorom. W tym przypadku udało mi się wyodrębnić przesłany plik binarny z tych przechwyceń, aby przeanalizować jego zachowanie i przekazać sprawę odpowiednim opiekunom jądra Linuksa.

Po dalszych pracach programistów nad wykazaniem skuteczności wykorzystania Dirty Cow na Androidzie jednemu programiście udało się to zrobić pomyślnie zrootuj swój HTC urządzenie w ciągu kilku sekund, wykorzystując lukę. W XDA ogólnie cieszymy się z możliwości uzyskania przez użytkowników dostępu do konta root, ale nie świętujemy istnienia takiej możliwości exploity root, takie jak ten, szczególnie taki, który jest tak powszechny i ​​potencjalnie niezwykle niebezpieczny do zakończenia użytkownicy. Aby dać Ci wyobrażenie o tym, jak niebezpieczna może być Dirty Cow na wolności, YouTuber Computerphile nakręcił krótki film demonstrując potencjalne wektory złośliwego ataku, których hakerzy mogą użyć, aby po cichu uzyskać dostęp do konta root na Twoim komputerze urządzenie.


Źródło: ArsTechnica [1]

Źródło: ArsTechnica [2]