Jak wykrywanie rootowania gry Anime doprowadziło do odkrycia luki w zabezpieczeniach w telefonach LG, OnePlus, Huawei, Xiaomi i innych

click fraud protection

Stwierdzono, że smartfony kilku producentów, takich jak LG, OnePlus, Huawei i Xiaomi, powodują wyciek informacji o procesach aplikacji. Oto, co to oznacza.

Używany jest mobilny system operacyjny Android ponad 2 miliardy urządzeń każdego miesiąca zarówno przez zwykłych konsumentów, jak i entuzjastów technologii. Chociaż liczba osób, które odblokowują bootloader i rootują swoje smartfony, jest stosunkowo niewielka, kiedy w porównaniu do ogólnej populacji użytkowników Androida, wciąż jest nas wielu na forach takich jak XDA i Reddit. Magisk jest niezbędnym narzędziem dla społeczności majsterkowiczów. Zapewnia bezsystemowy dostęp do roota i posiada narzędzia takie jak MagiskHide, które umożliwiają zrootowanym użytkownikom dalsze korzystanie z aplikacji, gier i usług, z których korzystają, bez ograniczeń. Jednak popularna gra Anime sprytnie wykorzystuje lukę w zabezpieczeniach systemu, aby ominąć wykrywanie rootowania przez Magisk. Oto, jak to działa i na jakich urządzeniach występuje ta luka w zabezpieczeniach.

  • W grze wykorzystano błąd do wykrycia, czy urządzenie zostało zrootowane. Jeśli urządzenie jest zrootowane, gra blokuje użytkownikowi możliwość grania.
  • Błąd umożliwia aplikacji odczytywanie stanu innych aplikacji w pamięci bez konieczności posiadania specjalnych uprawnień. Błąd nie pozwala aplikacjom na kradzież jakichkolwiek danych z innych aplikacji. Błąd nie jest poważny i jest dość nieszkodliwy.
  • Google już o tym wie problemu i zaktualizowała swoje narzędzia testowe, aby mieć pewność, że wszystkie urządzenia są chronione.

Tło

Popularna gra anime o nazwie Fate/Grand Order blokuje użytkownikom zrootowanym próbę grania w tę grę. Uznany programista XDA topjohnwu, wcześniej główny programista Magisk odkrył sposób aby ominąć wykrywanie roota przez Fate/Grand Order, ale jego rozwiązanie nie zadziałało na jego OnePlus 6 pomimo jego największych wysiłków. Zdecydowany nie poddawać się, programista przeanalizował Fate/Grand Order, aby dowiedzieć się, w jaki sposób nadal wykrywa rootowanie na jego urządzeniu OnePlus. Jak wyjaśnia w swoim Średni wpis, doprowadziło to go do odkrycia luki w zabezpieczeniach, którą Fate/Grand Order najwyraźniej wykorzystywał, aby nadal wykrywać dostęp roota na urządzeniach OnePlus.

Los/wielki porządek (angielski)Deweloper: Firma Aniplex sp.

Cena: za darmo.

4.

Pobierać

Procfs i Android

W systemach operacyjnych opartych na uniksie istnieje specjalny system plików zwany „procfs”, zawierający informacje o procesy (pomyśl o aplikacjach), takie jak wykorzystanie pamięci (pomyśl o RAM), status (czy proces jest uruchomiony, spanie itp.). W większości systemów operacyjnych opartych na uniksie użytkownik i aplikacje mają łatwy dostęp do procfs, aby zobaczyć, jakie rodzaje plików aplikacje i usługi działają w ich systemie (pomyśl o tym jak o Menedżerze zadań systemu Windows). Jednak Google zaczął zablokuj dostęp do procfs począwszy od Androida 7.0 Nougat. Przed Androidem Nougat aplikacje takie jak SystemPanel mogły zbierać dane o uruchomionych aplikacjach bez konieczności posiadania specjalnych uprawnień. Po Androidzie Nougat aplikacje muszą korzystać z interfejsów API, takich jak Statystyki użytkowania Lub Usługa dostępności, oba są ograniczone uprawnieniami, które muszą zostać przyznane przez użytkownika.

Panel systemowy 2Deweloper: NextApp, Inc.

Cena: za darmo.

4.2.

Pobierać

Google uniemożliwia aplikacjom odczytywanie stanu innych aplikacji poprzez procfs, montując /proc z flagą „hidepid=2”. Montując procfs z hidepid=2, aplikacje mogą zobaczyć tylko status swoich własnych procesów. Dlatego aplikacja musiałaby korzystać z akceptowanych interfejsów API, takich jak UsageStats lub AccessibilityService, aby uzyskać informacje o tym, jakie aplikacje i usługi działają na urządzeniu.

Słaby punkt

Co się stanie, jeśli procfs nie zostanie zamontowany z hidepid=2? Cóż, wtedy aplikacje mogłyby swobodnie odczytywać status innych aplikacji (i punktów montowania) działających w systemie bez konieczności posiadania dodatkowych uprawnień*. Google montuje procfs z hidepid=2 na swoich własnych urządzeniach, ale nie egzekwuje tego wymagania na urządzeniach innych producentów. Kilka urządzeń LG, OnePlus, Huawei/Honor, Xiaomi i innych nie montowało procfów hidepid=2, z którego korzystają aplikacje takie jak Fate/Grand Order, aby wykryć, czy Magisk jest obecny urządzenie.

*Zmiana zabezpieczeń w systemie Android 9 Pie uniemożliwia aplikacjom odczytywanie informacji poza ich własnym „kontekstem SELinux”, ponieważ każda aplikacja jest teraz izolowana indywidualnie. SELinux to moduł jądra, który pełni rolę swego rodzaju strażnika, blokując aplikacjom i usługom dostęp do plików, do których nie powinny. Kontekst SELinux jest jak etykieta pliku, która zawiera takie informacje, jak użytkownik i rola. Aplikacje z tym samym kontekstem SELinux mogą czytać informacje o innych aplikacjach w tym samym kontekście, jeśli flaga hidepid=2 nie jest włączona dla procfs. Na urządzeniach z systemem Android 9 Pie nowe zmiany SELinux w systemie Android Pie będą dotyczyć tylko aplikacji przeznaczonych dla systemu Android Pie. Aplikacje przeznaczone dla systemu Android 8.1 Oreo lub starszego będą korzystać ze starych reguł SELinux, umożliwiając im dostęp informacje o procesach w tym samym kontekście SELinux, o ile procfs jest zamontowany bez ukryj=2. Dzięki temu większość aplikacji działających na Twoim urządzeniu powinna przynajmniej być skierowana na system Android 8.0 Oreo nowe wymagania Google Play, ale wiele z nich nie zostało jeszcze zaktualizowanych pod kątem systemu Android Pie.

Poniższe zrzuty ekranu pokazują konsekwencje niemontowania procfs z hidepid=2.

Jak źle jest?

Gdybyśmy porównali tę lukę w systemie do exploitów takich jak Fusée Gelée, Niebiesko urodzony, KRACK, I Meltdown/Widmo, wtedy ten błąd blednie w porównaniu. Aplikacje nie mogą tego używać do uzyskiwania dostępu do konta root ani kradzieży haseł. Twoje konta bankowe są bezpieczne, podobnie jak karty kredytowe. Najgorsze, co aplikacja może zrobić, to stwierdzić, czy na Twoim urządzeniu działa inna aplikacja, co ma bardzo ograniczone zastosowania. Pamiętaj, że jest to standardowe zachowanie w wielu dystrybucjach GNU/Linux i że Google dopiero niedawno zaczął blokować dostęp do procfs w systemie Android Nougat. Ten błąd pozwala aplikacjom ominąć określone uprawnienia do monitorowania innych procesów, ale nadal nie może złamać piaskownicy Androida i ukraść dane z innych aplikacji. Niezależnie od tego jest to niezamierzone zachowanie i łamie funkcję prywatności Androida, dlatego należy to naprawić.

Czy problem dotyczy mojego urządzenia?

Oto lista urządzeń, które według nas nie montują procfs z hidepid=2:

OEM

Urządzenie

Wersja Androida

Wycieki procfs

Asusa

ZenFone’a 5Z

Androida 8.0 Oreo

Tak

Jeżyna

KLUCZ2

Androida 8.0 Oreo

NIE

Niezbędny

PH-1

Androida 9 Pie

NIE

Google

Piksel 2

Androida 9 Pie

NIE

Google

Piksel 3

Androida 9 Pie

NIE

Google

Piksel 3 XL

Androida 9 Pie

NIE

Honor

Magia 2

Androida 9 Pie

Tak

HTC

U12+

Androida 8.0 Oreo

Tak

Huaweia

Kolega 20X

Androida 9 Pie

Tak

LG

G7ThinQ

Androida 8.0 Oreo

Tak

LG

V40 ThinQ

Androida 8.1 Oreo

Tak

Motoroli

Moto G4

Androida 8.1 Oreo

NIE

Nokia

7.1

Androida 8.1 Oreo

NIE

OnePlus

6

Androida 8.1 Oreo/Androida 9 Pie

Tak

OnePlus

6T

Androida 9 Pie

Tak

Razera

Telefon 2

Androida 8.1 Oreo

Tak

SAMSUNG

Galaxy Note8

Androida 8.0 Oreo

NIE

SAMSUNG

Galaxy Note9

Androida 8.1 Oreo/Androida 9 Pie

NIE

SAMSUNG

Galaxy S7

Androida 8.0 Oreo

NIE

SAMSUNG

Galaxy S8

Androida 8.0 Oreo

NIE

SAMSUNG

Galaxy S9

Androida 9 Pie

NIE

SAMSUNG

Galaxy S9+ (Exynos)

Androida 8.0 Oreo

Tak

Sony

Xperii XZ1

Androida 9 Pie

NIE

Xiaomi

Mi Mix 2S

Androida 9 Pie

Tak

Xiaomi

POCO F1

Androida 8.1 Oreo

Tak

Jak sprawdzić, czy problem dotyczy Twojego urządzenia

Całkiem łatwo jest sprawdzić, czy Twoje urządzenie nie przecieka informacji o procesie do innych aplikacji (innymi słowy, procfs nie jest montowany z hidepid=2). Chociaż możesz używać poleceń powłoki tak jak my, możesz to również sprawdzić za pomocą aplikacji opracowanej przez topjohnwu. Jego aplikacja pozwala także na ponowne zamontowanie procfs za pomocą hidepid=2, jeśli Twój telefon jest zrootowany.

Pobierz ProcGate’a

Czy będzie poprawka?

Tak, zostanie to naprawione. Google będzie teraz wymagać, aby wszystkie urządzenia montowały procfs z hidepid=2. Będą to egzekwować aktualizacja Compatibility Test Suite (CTS), zestaw testów, które muszą przejść wszystkie urządzenia, aby móc korzystać z aplikacji i usług Google Play. Wszyscy producenci OEM (chcący sprzedawać urządzenia z preinstalowanym sklepem Google Play) muszą w najbliższej przyszłości wydać aktualizację, aby ponownie zamontować procfs z hidepid=2. Ponieważ urządzenia OnePlus były pierwszymi, na których wykryto ten problem, Firma OnePlus została już o tym poinformowana i pracuje nad rozwiązaniem. Zaktualizujemy ten artykuł, jeśli inni producenci OEM skomentują ten błąd, ale nie ma potrzeby zastanawiać się, czy producent OEM Twojego urządzenia wyda aktualizację. Jeśli chcą, aby ich aktualizacja przeszła CTS, muszą naprawić ten błąd.