Dlaczego aplikacje do rootowania już nie działają?

10

Kilka lat temu łatwo było zrootować dowolne urządzenie: zainstaluj KingRoot, KingoRoot lub podobną aplikację, naciśnij duży przycisk ROOT i pozwól mu zrobić resztę. Po około 5 minutach zielony „Korzeń się powiódł!” pojawi się monit, a my możemy zatrzymać aplikację root lub odinstalować ją i zainstalować czystą aplikację root, taką jak SuperSU / Superuser.

Jak oni pracują? Dlaczego już nie pracują? A jeśli działają, czy powinienem ich używać, czy nie?

Naddźwiękowy
źródło
2
Może to być pomocne, szczególnie VERIFIED / SECURE BOOTsekcja: forum.xda-developers.com/android/general/…
Irfan Latif

Odpowiedzi:

16

Miałem to pytanie kilka miesięcy temu i znalazłem tę odpowiedź w ramach niektórych badań, więc postanowiłem podzielić się moimi badaniami na tej stronie, odpowiadając na moje pytanie, biorąc pod uwagę fałszywe informacje online. (Na przykład oficjalna strona KingoRoot mówi, że może zrootować Androida Oreo, co jest całkowicie błędną informacją)

Jak działają aplikacje do rootowania?

Istnieje wiele aplikacji do rootowania, KingRoot, KingoRoot, Z4Root, Root Genius, Universal Androot, aby wymienić kilka popularnych / kiedyś popularnych aplikacji. Wszystkie wykorzystują exploity / luki / luki w systemie operacyjnym Android, aby nadać sobie uprawnienia zastrzeżone dla aplikacji systemowych lub nawet samego systemu operacyjnego Android. Następnie montują jako odczyt / zapis katalog o nazwie /systemzawierającej procesy wymagane do uruchomienia systemu i aplikacji systemowych oraz umieszczają plik binarny o nazwie suw miejscu katalogu, a mianowicie /system/bin/su. Jeśli jakaś aplikacja wymaga roota, aplikacja wykonuje ten plik binarny i pojawia się monit o zezwolenie lub odmowę dostępu do roota.

Odkryte exploity / słabe punkty otrzymują CVEID, a następnie wyszczególnione na stronie CVE i naprawione w Biuletynach zabezpieczeń Androida . Przykładem jest niesławna luka DirtyC0W, której nadano CVEID CVE-2016-5195, która nęka i nadal nęka starsze jądra Linuksa. Niemal wszystkie wyżej wymienione aplikacje wykorzystują tę lukę.

Dlaczego aplikacje do rootowania już nie działają?

Jak wspomniano w powyższych biuletynach, Google rozwiązuje szereg problemów w Androidzie co miesiąc. Tak więc zakres luk w zabezpieczeniach znacznie się zmniejsza. Wszystkie luki, których do tej pory używały aplikacje rootujące, zostały usunięte w łatach bezpieczeństwa około stycznia 2018 r .

Ale mogą wystąpić problemy, o których zapomnieli niektórzy producenci! Co z nimi?

W Androidzie 6.0.0 lub nowszym spowoduje to, że urządzenie nie będzie się już uruchamiać. Aby zrozumieć przyczynę tego, musimy przyjrzeć się koncepcji o nazwie Chain of Trust .

Chain of Trust , w skrócie CoT, to mechanizm bezpieczeństwa, który został wprowadzony w celu ochrony systemu operacyjnego Android przed wirusami i nieautoryzowanymi modyfikacjami. Działa jak łańcuch sprzętu i oprogramowania, w którym każda część weryfikuje następną część. Krok po kroku:

  1. Po włączeniu urządzenia uruchamia się funkcja sprzętowa (czasami nazywana Boot ROM). Boot ROM jest wypalony na sprzęcie i nie można go zmienić.
  2. Boot ROM weryfikuje pierwsze oprogramowanie w CoT, bootloaderze, który jest surowym binarnym obiektem blob, czasami nazywanym preloaderem. (Również pamięć ROM rozruchowa czasami ładuje się i używa specjalnych niestandardowych partycji / plików binarnych w zależności od dostawcy). Jeśli moduł ładujący nie przejdzie weryfikacji, urządzenie zostanie wyłączone. Jeśli przejdzie, Boot ROM uruchomi bootloader.
  3. Program ładujący sprawdza opcje przekazane mu przez Boot ROM i wybiera odpowiedni tryb rozruchu. Typowe tryby uruchamiania, które istnieją na prawie każdym urządzeniu, to normalne uruchamianie Androida, odzyskiwanie i Fastboot / pobieranie.

Jeśli bootloader jest zablokowany , sprawdza, czy następna część CoT do uruchomienia jest nienaruszona, a jeśli tak, to uruchamia go. Jeśli tak nie jest, może się zamknąć, uruchomić ponownie lub utknąć w specjalnym trybie bootloadera, w zależności od modelu urządzenia.

Jeśli bootloader jest odblokowany , nie weryfikuje następnej części CoT, ale ładuje go bezpośrednio.

  1. Kolejna część nosi nazwę partycji rozruchowej . Obsługuje sposób uruchamiania samego systemu. W wersjach Androida na / nowszych niż 6.0.0 (Lollipop) sprawdza również, czy system jest nienaruszony, a jeśli zostanie zmodyfikowany, wyłącza się.

Jak wspomniano po pierwsze, te aplikacje root wykorzystują luki do zmodyfikowania /system, co jest weryfikowane przez partycję rozruchową, jak wspomniano w etapie 4 powyżej. Każda modyfikacja spowoduje, że urządzenie nie uruchomi się. Ten stan jest powszechnie określany jako „miękka cegła”, który można naprawić tylko przez ponowne flashowanie.

Tak więc nowsze urządzenia wymagają odblokowania bootloadera, jeśli chcesz zrootować urządzenie. Urządzenia te są zrootowane poprzez flashowanie odzyskiwania z większą liczbą opcji niż normalne odzyskiwanie (takie jak TWRP, ClockWorkMod), zwykle nazywane odzyskiwaniem niestandardowym, i używanie go do modyfikowania partycji rozruchowej (i wyłączania weryfikacji systemu). Możliwe jest również bezpośrednie zmodyfikowanie partycji rozruchowej bez niestandardowego odzyskiwania.

Niektórzy producenci dają możliwość odblokowania bootloadera, a niektórzy nie. Popularne urządzenia z zablokowanymi bootloadami (na przykład urządzenia Samsung S zablokowane przez amerykańskiego operatora) są zwykle wykorzystywane przez społeczność moderów Androida.

Moje urządzenie wciąż ma system Android 5.1.1 lub starszy! Czy powinienem ich używać do rootowania?

Większość tych starszych urządzeń można rootować za pomocą aplikacji do rootowania. Więc mógłbyś. Powinieneś? To zależy od twoich preferencji. Dostęp do rootowania zapewnia kontrolę nad wszystkim w systemie operacyjnym, a przy dostępie do roota zwykle nie zajmuje to nawet mikrosekundy, aby upewnić się, że urządzenie nigdy się nie uruchomi. Jest bardzo prawdopodobne, że aplikacje rootujące nigdy tego nie zrobią, ale mogą. Ponadto dzięki rootowi aplikacja może uzyskiwać dostęp do wszystkiego, co robi Twoje urządzenie, i wszystkiego, co trzyma w pamięci, w tym informacji o karcie kredytowej, haseł itp. Jeśli brzmi to jak poważne zagrożenie dla prywatności, być może nie używaj aplikacji root. Jeśli cię to nie obchodzi, możesz spróbować.

Jeśli jesteś wystarczająco bystry, istnieją źródła prawie wszystkich exploitów wykorzystywanych przez te aplikacje root. Możesz spróbować wyszukać je według CVEID, poszukać ich w Git, skompilować i uruchomić je oraz spróbować uzyskać powłokę root, a będziesz mógł samodzielnie zainstalować subinarne i inne zależności.

KingoRoot jest również znany z wysyłania bardzo wrażliwych danych, takich jak IMEI i numer seryjny na swoje serwery. Są szanse, że nigdy ich nie użyją, ale to ostatecznie twoja decyzja. A KingRoot jest znany z instalowania backdoora w swoim SDK, który pozwolił niektórym aplikacjom uzyskać dostęp do roota nieautoryzowanym przez użytkownika.

Wniosek

Era aplikacji do rootowania już dawno minęła. Aplikacje do rootowania już nie działają, a jeśli używasz ich w nowszych wersjach Androida, ryzykujesz miękkie zmiękczenie urządzenia i prawdopodobnie utratę wszystkich danych. Jeśli użyjesz ich w obsługiwanych wersjach Androida, będą one działać przez większość czasu, ale istnieją obawy dotyczące prywatności i bezpieczeństwa, które należy rozważyć przed kontynuowaniem.

Mam nadzieję, że moje badania pomogą w przyszłości komuś, kto dostanie tego samego problemu co ja. :)

Naddźwiękowy
źródło