rootowanie / jailbreak telefonu
| Po angielsku | rooting / jailbreaking (mobile device) |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | rootowanie · jailbreaking · zrootowany telefon · jailbreakowanie |
| Kategoria | Mobile, IoT i OT/ICS |
Rootowanie / jailbreak telefonu (rooting / jailbreaking) to zdjęcie fabrycznych ograniczeń systemu telefonu po to, by uzyskać uprawnienia administratora. Kaspersky opisuje oba zabiegi jako wymuszenie dostępu do uprawnień administratora, które pierwotnie są dla użytkownika ograniczone; pierwsza nazwa dotyczy Androida, druga iPhone'ów i iPadów [2]. CERT Polska objaśnia jailbreakowanie jako proces modyfikacji systemu operacyjnego, który daje dostęp do funkcji i plików systemowych normalnie zablokowanych [1]. Właściciel zyskuje swobodę, ale telefon traci część mechanizmów, które chronią go przed obcym kodem.
Jak działa
Telefon z Androidem albo iOS uruchamia się w łańcuchu zaufania. Na Androidzie mechanizm Verified Boot ma zapewnić, że cały wykonywany kod pochodzi z zaufanego źródła, zwykle od producenta urządzenia, a nie od atakującego [4]. Każdy etap rozruchu sprawdza autentyczność i integralność następnego, zanim przekaże mu sterowanie, od sprzętowego korzenia zaufania, przez program rozruchowy, po partycję systemu [4]. Ochrona przed powrotem do starszej wersji ma zapobiegać temu, by exploit stał się trwały [4]. Rootowanie i jailbreak polegają na przerwaniu tego łańcucha albo na obejściu go przez lukę, czyli na zamierzonej eskalacji uprawnień wykonanej przez samego właściciela.
Schemat poniżej pokazuje, w którym miejscu łańcucha zaufania działa zmiana.
Po zabiegu aplikacja może otrzymać uprawnienia, których normalnie nie dostaje żaden program. Kaspersky zwraca uwagę, że aplikacja z dostępem root może robić wszystko, co chce, łącznie z czytaniem i wysyłaniem dokumentów innych aplikacji [2]. To znosi piaskownicę (sandbox), czyli izolację, na której opiera się model bezpieczeństwa obu systemów.
Odmiany
Obie odmiany prowadzą do podobnego skutku, ale różnią się drogą.
| Cecha | Rootowanie (Android) | Jailbreak (iOS) |
|---|---|---|
| Cel | uprawnienia administratora [2] | uprawnienia administratora [2] |
| Typowa droga | modyfikacja systemu po odblokowaniu rozruchu | luka w systemie lub w BootROM [3] |
| Instalacja spoza sklepu | możliwa bez roota, po zgodzie użytkownika [1] | historycznie wymagała jailbreaka [1] |
| Wykrywanie przez aplikacje | Play Integrity API [5] | własne testy aplikacji [6] |
Szczególny przypadek to jailbreak oparty na luce sprzętowej. W listopadzie 2019 roku Sekurak opisał narzędzie checkra1n, które działało na iPhone'ach do modelu X z iOS 12 i 13 i wykorzystywało podatność w BootROM [3]. BootROM uruchamia się przed systemem i nie da się go zaktualizować, więc takiej luki nie usunie żadna łatka (patch) [3]. Jailbreak był typu semi-tethered, czyli trzeba go było ponawiać po restarcie, i wymagał fizycznego dostępu do telefonu [3].
Zagrożenia i skutki
- Utrata izolacji. Złośliwa aplikacja z uprawnieniami root może sięgać do danych innych aplikacji [2]. Złośliwe oprogramowanie (malware) i trojany bankowe zyskują na takim telefonie znacznie więcej niż na nietkniętym.
- Niebezpieczne narzędzia. Programy do rootowania często zawierają luki, które mogą wykorzystać przestępcy [2]; pochodzą zwykle spoza oficjalnych sklepów, co łączy się z ryzykiem, jakie niesie sideloading.
- Aplikacje bankowe. Według Kaspersky'ego mobilne aplikacje bankowe odmawiają uruchomienia większości funkcji na odblokowanym urządzeniu [2].
- Gwarancja i wsparcie. Odblokowane urządzenie traci gwarancję, a problemy właściciel rozwiązuje sam [2].
- Mniejsza powierzchnia ochrony. CERT Polska zaznacza, że zamknięty model iPhone'a drastycznie redukuje wektory ataków przy założeniu, że urządzenie nie przeszło jailbreakingu [1].
Z punktu widzenia napastnika zrootowany telefon ułatwia instalację narzędzi działających jak rootkit albo stalkerware, bo nie musi on sam łamać zabezpieczeń systemu.
W WordPressie
Rootowanie nie dotyczy samej strony, tylko urządzeń, z których nią się zarządza. Telefon administratora bywa drugim składnikiem logowania: przechowuje aplikację generującą kody jednorazowe (OTP) do uwierzytelniania dwuskładnikowego (2FA) albo zapisane hasła aplikacji. Skoro aplikacja z dostępem root może czytać dokumenty innych aplikacji [2], dane takiej aplikacji uwierzytelniającej nie są na zrootowanym telefonie chronione piaskownicą. Zasada ostrożności jest prosta: konto administratora obsługuje się z telefonu bez roota i jailbreaka, z bieżącymi aktualizacjami systemu.
Jak się bronić
Po stronie użytkownika podstawą jest niezdejmowanie zabezpieczeń systemu i regularna aktualizacja oprogramowania, którą CERT Polska wymienia jako osobny punkt poradnika o bezpiecznym telefonie [1]. Organizacja, która dopuszcza prywatne telefony w modelu BYOD, może zarządzać nimi przez MDM (zarządzanie urządzeniami mobilnymi) i odmawiać dostępu urządzeniom zmodyfikowanym.
Po stronie twórców aplikacji standard OWASP MASVS w grupie RESILIENCE opisuje odporność na modyfikacje i inżynierię wsteczną; wymienia słabości polegające na braku wykrywania roota i jailbreaka oraz na braku atestacji urządzenia [6]. Na Androidzie służy do tego Play Integrity API: werdykt deviceIntegrity pomaga ustalić, czy aplikacja działa na prawdziwym, certyfikowanym urządzeniu z Androidem [5]. Dokumentacja wymienia poziomy zaufania, od najsłabszego MEETS_BASIC_INTEGRITY po MEETS_STRONG_INTEGRITY, który wymaga sygnałów bezpieczeństwa opartych na sprzęcie i niedawnej poprawki zabezpieczeń [5]. Weryfikacja werdyktu po stronie serwera jest przykładem kontroli, jakiej używają aplikacje bankowe.
Historia i przykłady
Rootowanie i jailbreak są niemal tak stare jak smartfony, a ich kosztem jest zawsze słabsza izolacja. Kaspersky pisał o tym w czerwcu 2014 roku, wskazując utratę gwarancji i blokady aplikacji bankowych [2]. Przypadek checkra1n z 2019 roku pokazał, że luka w pamięci rozruchowej daje jailbreak na całą generację telefonów, której producent nie może załatać aktualizacją [3]. Android od wersji 7.0 ściśle egzekwuje Verified Boot, by uniemożliwić start urządzeń naruszonych [4].
Przypisy
6- [1] Bezpieczeństwo twojej kieszeni, czyli jak ochronić swój telefon · CERT Polska
- [2] Rootowanie i jailbreaking: na czym polegają i jaki mają wpływ na bezpieczeństwo? · Kaspersky
- [3] Root na iPhony. Jailbreak działa na iOS 12 oraz 13. Wykorzystuje podatność w BootROM-ie · Sekurak
- [4] Verified Boot · Android Open Source Project
- [5] Play Integrity API — overview · Android Developers
- [6] MASVS-RESILIENCE: Resilience Against Reverse Engineering and Tampering · OWASP MAS