Luka w Androidzie, która pozwala ominąć ekran blokady

W platformie Android zidentyfikowano lukę (CVE-2022-20465), która pozwala wyłączyć blokadę ekranu poprzez przełożenie karty SIM i wprowadzenie kodu PUK. Możliwość wyłączenia blokady wykazano na urządzeniach Google Pixel, ale ponieważ poprawka dotyczy głównej bazy kodu Androida, prawdopodobne jest, że problem dotyczy oprogramowania układowego innych producentów. Problem rozwiązano w listopadowym wydaniu poprawki zabezpieczeń systemu Android. Badacz, który zwrócił uwagę na problem, otrzymał od Google nagrodę w wysokości 70 tys. dolarów.

Problem wynika z nieprawidłowego przebiegu odblokowania po wpisaniu kodu PUK (ang. Personal Unblocking Key), który służy do wznowienia działania karty SIM, która została zablokowana po wielokrotnym wprowadzeniu błędnego kodu PIN. Aby wyłączyć blokadę ekranu, wystarczy zainstalować w telefonie kartę SIM zabezpieczoną kodem PIN. Po zmianie karty SIM zabezpieczonej kodem PIN na ekranie najpierw pojawia się prośba o podanie kodu PIN. Jeżeli trzykrotnie wprowadzisz błędny kod PIN, karta SIM zostanie zablokowana, po czym będziesz mieć możliwość wprowadzenia kodu PUK w celu jej odblokowania. Okazało się, że poprawne wprowadzenie kodu PUK nie tylko odblokowuje kartę SIM, ale prowadzi do przejścia do głównego interfejsu z pominięciem wygaszacza ekranu, bez potwierdzania dostępu za pomocą głównego hasła lub wzoru.

Podatność wynika z błędu w logice sprawdzania kodów PUK w procedurze obsługi KeyguardSimPukViewController, która odpowiada za wyświetlenie dodatkowego ekranu uwierzytelnienia. Android wykorzystuje kilka rodzajów ekranów uwierzytelniających (dla PIN-u, PUK, hasła, wzoru, uwierzytelniania biometrycznego) i ekrany te wywoływane są sekwencyjnie, gdy trzeba przeprowadzić wiele kontroli, na przykład gdy wymagany jest PIN i wzór.

Jeśli wpiszesz poprawnie kod PIN, uruchomi się drugi etap weryfikacji, polegający na wpisaniu głównego kodu odblokowującego, natomiast przy wpisaniu kodu PUK ten etap zostanie pominięty i dostęp zostanie przyznany bez pytania o hasło główne lub klucz wzorcowy . Kolejny etap odblokowania jest odrzucany, ponieważ przy wywołaniu KeyguardSecurityContainerController#dismiss() nie ma porównania pomiędzy oczekiwaną i zaliczoną metodą weryfikacji, tj. procesor uważa, że ​​sposób weryfikacji nie uległ zmianie, a zakończenie weryfikacji kodu PUK oznacza pomyślne potwierdzenie autoryzacji.

Luka została odkryta przez przypadek - telefon użytkownika był martwy i po naładowaniu i włączeniu kilka razy pomylił się przy wpisywaniu kodu PIN, po czym odblokował go kodem PUK i zdziwił się, że system o to nie zapytał dla głównego hasła służącego do odszyfrowania danych, po czym zawiesza się z komunikatem „Pixel uruchamia się...”. Użytkownik okazał się skrupulatny, postanowił dowiedzieć się, co się dzieje i zaczął eksperymentować z wprowadzaniem kodów PIN i PUK na różne sposoby, aż przypadkowo zapomniał o ponownym uruchomieniu urządzenia po zmianie karty SIM i uzyskał dostęp do środowiska zamiast zamrażanie.

Szczególnie interesująca jest reakcja Google'a na ogłoszenie o luce. Informację o problemie nadesłano w czerwcu, jednak aż do września badaczowi nadal nie udało się uzyskać jednoznacznej odpowiedzi. Uważał, że takie zachowanie można wytłumaczyć faktem, że nie on pierwszy zgłosił ten błąd. Podejrzenia, że ​​coś jest nie tak, pojawiły się we wrześniu, kiedy problem nie został naprawiony po zainstalowaniu aktualizacji oprogramowania sprzętowego wydanej 90 dni później, kiedy upłynął już podany okres nieujawniania informacji.

Ponieważ wszelkie próby sprawdzenia statusu wysłanej wiadomości o problemie kończyły się jedynie odpowiedziami automatycznymi i szablonowymi, badacz próbował osobiście skontaktować się z pracownikami Google, aby wyjaśnić sytuację wraz z przygotowaniem poprawki, a nawet wykazał lukę w londyńskim biurze Google . Dopiero po tym udało się wyeliminować lukę. Podczas analizy okazało się, że ktoś już wcześniej zgłaszał problem, jednak Google postanowił zrobić wyjątek i wypłacić nagrodę za ponowne zgłoszenie problemu, gdyż dopiero dzięki uporowi autora problem został dostrzeżony.

Źródło: opennet.ru

Dodaj komentarz