{"id":4410,"date":"2023-07-19T09:48:09","date_gmt":"2023-07-19T08:48:09","guid":{"rendered":"https:\/\/soc.dag.pl\/?p=4410"},"modified":"2023-08-30T16:31:08","modified_gmt":"2023-08-30T15:31:08","slug":"przypadkowe-obejscie-ekranu-blokady-google-pixel-warte-70-tys-dolaro","status":"publish","type":"post","link":"https:\/\/soc.dag.pl\/przypadkowe-obejscie-ekranu-blokady-google-pixel-warte-70-tys-dolaro\/","title":{"rendered":"Przypadkowe obej\u015bcie ekranu blokady Google Pixel warte 70 tys. dolar\u00f3w"},"content":{"rendered":"

Problemy z telefonem przytrafiaj\u0105 si\u0119 tak\u017ce specjalistom od cyberbezpiecze\u0144stwa. Czasami mog\u0105 doprowadzi\u0107 ich do warto\u015bciowych odkry\u0107. Tak w\u0142a\u015bnie znaleziono luk\u0119 wp\u0142ywaj\u0105c\u0105 na prawdopodobnie wszystkie telefony Google Pixel, z powodu kt\u00f3rej odblokowane zosta\u0107 mog\u0142o jakiekolwiek zablokowane urz\u0105dzenie. B\u0142\u0105d zosta\u0142 naprawiony w aktualizacji bezpiecze\u0144stwa z 5 listopada 2022 roku.<\/p>\n

 <\/p>\n

B\u0142\u0105d umo\u017cliwia\u0142 napastnikowi z fizycznym dost\u0119pem do telefonu obej\u015bcie zabezpiecze\u0144 ekranu blokady (odcisk palca, PIN, itp.) i uzyskanie pe\u0142nego dost\u0119pu do urz\u0105dzenia u\u017cytkownika. Luka zosta\u0142a oznaczona jako\u00a0CVE-2022-20465<\/a>\u00a0i mo\u017ce dotyczy\u0107 r\u00f3wnie\u017c innych producent\u00f3w Androida. Badaczowi kt\u00f3ry \u2013 ca\u0142kowicie przypadkiem \u2013 znalaz\u0142 i zg\u0142osi\u0142 t\u0119 luk\u0119, Google wyp\u0142aci\u0142o 70 tys. dolar\u00f3w nagrody.<\/p>\n

 <\/p>\n

\u00a0Zapominany kod PIN do karty SIM\u00a0<\/strong><\/p>\n

 <\/p>\n

Badacz wr\u00f3ci\u0142 do domu, a jego Pixel 6 mia\u0142 1% na\u0142adowania baterii. Roz\u0142adowa\u0142a si\u0119, gdy u\u017cytkownik by\u0142 w \u015brodku wysy\u0142ania wiadomo\u015bci tekstowych. Pospieszy\u0142 po \u0142adowark\u0119 i uruchomi\u0142 telefon z powrotem.<\/p>\n

Pixel uruchomi\u0142 si\u0119 i poprosi\u0142 o kod PIN do karty SIM. Po wpisaniu 3 nieprawid\u0142owych PIN-\u00f3w, karta SIM zablokowa\u0142a si\u0119. Teraz potrzebny by\u0142 kod PUK, aby odblokowa\u0107 telefon i m\u00f3c u\u017cywa\u0107 go ponownie.<\/p>\n

Badacz wpisa\u0142 kod PUK, a Pixel poprosi\u0142 o ustawienie nowego kodu PIN. Po pomy\u015blnym zako\u0144czeniu tego procesu wy\u015bwietli\u0142 ekran blokady. Co\u015b jednak by\u0142o nie tak.<\/p>\n

 <\/p>\n

\"google1\"<\/p>\n

 <\/p>\n

By\u0142 to \u015bwie\u017cy boot, a zamiast zwyk\u0142ej ikony blokady pokazywa\u0142a si\u0119 ikona odcisku palca. Zaakceptowa\u0142a ona palec badacza, co nie powinno mie\u0107 miejsca, gdy\u017c po restarcie trzeba przynajmniej raz wpisa\u0107 PIN lub has\u0142o do ekranu blokady, aby odszyfrowa\u0107 urz\u0105dzenie.<\/p>\n

 <\/p>\n

Po zaakceptowaniu palca telefon utkn\u0105\u0142 na dziwnym komunikacie \u201ePixel is starting…\u201d i pozosta\u0142 w tym stanie, dop\u00f3ki nie zosta\u0142 zrestartowany ponownie.<\/p>\n

 <\/p>\n

 <\/p>\n

Co w\u0142a\u015bnie si\u0119 sta\u0142o?\u00a0<\/strong><\/p>\n

 <\/p>\n

Po ponownym uruchomieniu telefonu, 3-krotnym wprowadzeniu b\u0142\u0119dnego PIN-u, wpisaniu PUK-u i wybraniu nowego PIN-u, badacz doszed\u0142 do tego samego stanu. Na ekranie widnia\u0142o: \u201ePixel is starting…\u201d.<\/p>\n

Sprawdza\u0142 ten proces wiele razy, ale jeden raz zapomnia\u0142 zrestartowa\u0107 telefon i po prostu rozpocz\u0105\u0142 proces od normalnego stanu. Zablokowa\u0142 urz\u0105dzenie, zrobi\u0142 hot-swap tacki SIM i reset PIN-u karty SIM. Nawet nie zdawa\u0142 sobie sprawy z tego, co w\u0142a\u015bciwie robi\u0142.<\/p>\n

Tak jak wcze\u015bniej wpisa\u0142 kod PUK i wybra\u0142 nowy PIN. Tym razem telefon zab\u0142ysn\u0105\u0142, a badacz znalaz\u0142 si\u0119 na swoim osobistym ekranie g\u0142\u00f3wnym.<\/p>\n

To by\u0142o niepokoj\u0105co dziwne. Zrobi\u0142 to jeszcze raz. Zablokowanie telefonu, ponowne w\u0142o\u017cenie tacki SIM, zresetowanie PIN-u… I zn\u00f3w by\u0142 na ekranie g\u0142\u00f3wnym.<\/p>\n

W ten spos\u00f3b odkry\u0142 pe\u0142ne obej\u015bcie ekranu blokady na w pe\u0142ni za\u0142atanym Pixelu 6. Odtworzenie b\u0142\u0119du na Pixelu 5 mia\u0142o taki sam efekt.<\/p>\n

Oto proces odblokowania w akcji – do obejrzenia\u00a0tutaj<\/a>.<\/p>\n

Poniewa\u017c atakuj\u0105cy m\u00f3g\u0142 po prostu przynie\u015b\u0107 w\u0142asn\u0105 kart\u0119 SIM z blokad\u0105 PIN, do odblokowania telefonu nie by\u0142o wymagane nic poza dost\u0119pem fizycznym. Atakuj\u0105cy m\u00f3g\u0142 po prostu podmieni\u0107 kart\u0119 SIM w urz\u0105dzeniu ofiary i wykona\u0107 exploit za pomoc\u0105 karty SIM, kt\u00f3ra mia\u0142a blokad\u0119 PIN i dla kt\u00f3rej atakuj\u0105cy zna\u0142 prawid\u0142owy kod PUK.<\/p>\n

 <\/p>\n

Co spowodowa\u0142o b\u0142\u0105d?<\/strong><\/p>\n

 <\/p>\n

Poniewa\u017c Android jest oprogramowaniem open source, commit naprawiaj\u0105cy ten problem wraz ze wszystkimi zmianami w kodzie jest widoczny publicznie.<\/p>\n

\"google2\"<\/p>\n

Pierwsz\u0105 rzecz\u0105, kt\u00f3ra zaskoczy\u0142a badacza, gdy po raz pierwszy spojrza\u0142 na ten commit, by\u0142a liczba zmienionych plik\u00f3w. Wcze\u015bniej my\u015bla\u0142, \u017ce ten b\u0142\u0105d b\u0119dzie mia\u0142 tylko prost\u0105, jednolinijkow\u0105 poprawk\u0119, usuwaj\u0105c\u0105 nieprawid\u0142ow\u0105 lini\u0119 kodu odpowiedzialn\u0105 za wywo\u0142anie odblokowania. Jednak nie by\u0142o to takie proste.<\/p>\n

\"google3\"<\/p>\n

Wygl\u0105da na to, \u017ce w systemie Android istnieje poj\u0119cie \u201eekranu bezpiecze\u0144stwa\u201d. Ekranem bezpiecze\u0144stwa mo\u017ce by\u0107 ekran wprowadzania PIN-u, ekran skanowania linii papilarnych, ekran wprowadzania has\u0142a lub w naszym przypadku ekran wprowadzania PIN-u SIM i PUK-u SIM.
\nTe ekrany bezpiecze\u0144stwa mog\u0105 by\u0107 u\u0142o\u017cone \u201ena wierzchu\u201d siebie. Tak wi\u0119c na przyk\u0142ad, gdy telefon by\u0142 zablokowany, a wpisanie kodu PIN by\u0142o widoczne, mia\u0142 on ekran bezpiecze\u0144stwa PIN \u201ena wierzchu\u201d ekranu bezpiecze\u0144stwa linii papilarnych.<\/p>\n

Gdy SIM PUK zosta\u0142 wprowadzony pomy\u015blnie, funkcja .dismiss() zosta\u0142a\u00a0wywo\u0142ana<\/a>\u00a0przez komponent resetuj\u0105cy PUK na \u201estosie\u201d ekran\u00f3w bezpiecze\u0144stwa, powoduj\u0105c, \u017ce urz\u0105dzenie odrzuci\u0142o bie\u017c\u0105cy i pokaza\u0142o ekran bezpiecze\u0144stwa, kt\u00f3ry by\u0142 \u201epod\u201d nim. W naszym przyk\u0142adzie by\u0142 to ekran bezpiecze\u0144stwa odcisk\u00f3w palc\u00f3w.<\/p>\n

Poniewa\u017c funkcja .dismiss() po prostu odrzuca\u0142a bie\u017c\u0105cy ekran bezpiecze\u0144stwa, by\u0142a podatna na warunki wy\u015bcigu. Wyobra\u017a sobie, co by si\u0119 sta\u0142o, gdyby co\u015b w tle zmieni\u0142o bie\u017c\u0105cy ekran bezpiecze\u0144stwa, zanim komponent resetuj\u0105cy PUK dotar\u0142by do wywo\u0142ania .dismiss()? Czy komponent PUK odrzuci\u0142by niepowi\u0105zany ekran bezpiecze\u0144stwa, gdy w ko\u0144cu wywo\u0142a .dismiss()?
\nWygl\u0105da na to, \u017ce dok\u0142adnie tak si\u0119 sta\u0142o. Jaka\u015b inna cz\u0119\u015b\u0107 systemu monitorowa\u0142a stan SIM w tle, a kiedy wykry\u0142a zmian\u0119, zaktualizowa\u0142a to, kt\u00f3ry ekran bezpiecze\u0144stwa by\u0142 aktualnie aktywny. Komponent w tle ustawi\u0142 np. ekran odcisk\u00f3w palc\u00f3w jako aktywny ekran bezpiecze\u0144stwa, nawet zanim komponent PUK by\u0142 w stanie dotrze\u0107 do w\u0142asnego wywo\u0142ania funkcji .dismiss(). Zanim komponent PUK wywo\u0142a\u0142 funkcj\u0119 .dismiss(), tak naprawd\u0119 wcze\u015bniej zwolni\u0142 ekran bezpiecze\u0144stwa odcisk\u00f3w palc\u00f3w, zamiast po prostu zwolni\u0107 ekran bezpiecze\u0144stwa PUK, jak to by\u0142o pierwotnie zamierzone. Wywo\u0142anie .dismiss() na ekranie bezpiecze\u0144stwa odcisk\u00f3w palc\u00f3w spowodowa\u0142o odblokowanie telefonu.<\/p>\n

In\u017cynierowie Androida najwyra\u017aniej zdecydowali si\u0119 na refaktoryzacj\u0119 funkcji .dismiss() i sprawili, \u017ce wymaga ona dodatkowego parametru, w kt\u00f3rym osoba dzwoni\u0105ca mo\u017ce okre\u015bli\u0107, jaki typ ekranu bezpiecze\u0144stwa chce odrzuci\u0107. W naszym przypadku, komponent PUK teraz jawnie wywo\u0142uje .dismiss(SecurityMode.SimPuk), aby odrzuci\u0107 tylko ekrany bezpiecze\u0144stwa z typem SimPuk. Je\u015bli aktualnie aktywny ekran bezpiecze\u0144stwa nie jest ekranem SimPuk (poniewa\u017c jaki\u015b komponent t\u0142a zmieni\u0142 go, tak jak w naszym przypadku), funkcja .dismiss nie robi nic.<\/p>\n

W ten spos\u00f3b roz\u0142adowany telefon badacza przyczyni\u0142 si\u0119 do zwi\u0119kszenia bezpiecze\u0144stwa wszystkich u\u017cytkownik\u00f3w. Oczywi\u015bcie nie zawsze mo\u017cemy liczy\u0107 na szcz\u0119\u015bliwy przypadek, a o cyberbezpiecze\u0144stwo warto aktywnie dba\u0107.<\/p>\n

 <\/p>\n

 <\/p>\n

Potrzebujesz profesjonalnej ochrony? Chcesz dowiedzie\u0107 si\u0119, jak dzia\u0142a\u0107 z takimi problemami, jak ten opisany powy\u017cej? Skontaktuj si\u0119 z naszymi ekspertami ju\u017c dzi\u015b.\u00a0<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"

Problemy z telefonem przytrafiaj\u0105 si\u0119 tak\u017ce specjalistom od cyberbezpiecze\u0144stwa. Czasami mog\u0105 doprowadzi\u0107 ich do warto\u015bciowych odkry\u0107. Tak w\u0142a\u015bnie znaleziono luk\u0119 wp\u0142ywaj\u0105c\u0105 na prawdopodobnie wszystkie telefony Google Pixel, z powodu kt\u00f3rej odblokowane zosta\u0107 mog\u0142o jakiekolwiek zablokowane urz\u0105dzenie. B\u0142\u0105d zosta\u0142 naprawiony w aktualizacji bezpiecze\u0144stwa z 5 listopada 2022 roku.   B\u0142\u0105d umo\u017cliwia\u0142 napastnikowi z fizycznym dost\u0119pem do […]<\/p>\n","protected":false},"author":4,"featured_media":3417,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57],"tags":[79],"class_list":["post-4410","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cyber-security","tag-cyberochrona"],"_links":{"self":[{"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/posts\/4410"}],"collection":[{"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/comments?post=4410"}],"version-history":[{"count":2,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/posts\/4410\/revisions"}],"predecessor-version":[{"id":4412,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/posts\/4410\/revisions\/4412"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/media\/3417"}],"wp:attachment":[{"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/media?parent=4410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/categories?post=4410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soc.dag.pl\/wp-json\/wp\/v2\/tags?post=4410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}