Android platformā (CVE-2022-20465) konstatēta ievainojamība, kas ļauj atslēgt ekrāna bloķēšanu, pārkārtojot SIM karti un ievadot PUK kodu. Spēja atspējot bloķēšanu ir demonstrēta Google Pixel ierīcēs, taču, tā kā labojums ietekmē galveno Android kodu bāzi, visticamāk, problēma skars citu ražotāju programmaparatūru. Problēma ir risināta novembra Android drošības ielāpu izlaišanas laikā. Pētnieks, kurš pievērsa uzmanību problēmai, no Google saņēma atlīdzību 70 tūkstošu dolāru apmērā.
Problēmu rada nepareiza atbloķēšanas apstrāde pēc PUK koda (Personal Unblocking Key) ievadīšanas, kas tiek izmantots, lai pēc atkārtotas nepareizas PIN koda ievadīšanas atsāktu bloķētas SIM kartes darbību. Lai atspējotu ekrāna bloķēšanu, tālrunī ievietojiet SIM karti, kurai ir PIN koda aizsardzība. Pēc ar PIN kodu aizsargātas SIM kartes nomaiņas ekrānā vispirms tiek parādīts PIN koda pieprasījums. Trīs reizes nepareizi ievadot PIN kodu, SIM karte tiks bloķēta, pēc kā tiks dota iespēja ievadīt PUK kodu, lai to atbloķētu. Izrādījās, ka pareiza PUK koda ievadīšana ne tikai atbloķē SIM karti, bet arī noved pie pārejas uz galveno interfeisu, apejot ekrānsaudzētāju, neapstiprinot piekļuvi, izmantojot galveno paroli vai modeli.

Ievainojamību izraisa kļūda PUK kodu pārbaudes loģikā KeyguardSimPukViewController apdarinātājā, kas ir atbildīgs par papildu autentifikācijas ekrāna rādīšanu. Android izmanto vairāku veidu autentifikācijas ekrānus (PIN, PUK, parolei, modelim, biometriskajai autentifikācijai), un šie ekrāni tiek izsaukti secīgi, ja ir jāveic vairākas pārbaudes, piemēram, ja nepieciešams PIN un modelis.
Pareizi ievadot PIN kodu, tiek aktivizēts verifikācijas otrais posms, kurā jāievada galvenais atbloķēšanas kods, taču, ievadot PUK kodu, šis posms tiek izlaists un piekļuve tiek piešķirta, neprasot galveno paroli vai modeļa atslēgu. . Nākamā atbloķēšanas stadija tiek atmesta, jo, izsaucot KeyguardSecurityContainerController#dismiss(), netiek salīdzinātas paredzamās un nokārtotās verifikācijas metodes, t.i. apstrādātājs uzskata, ka verifikācijas metode nav mainījusies un PUK koda pārbaudes pabeigšana liecina par veiksmīgu pilnvaru apstiprināšanu.
Ievainojamība tika atklāta nejauši – lietotāja telefons bija beigts un pēc uzlādes un ieslēgšanas viņš vairākas reizes kļūdījās ievadot PIN kodu, pēc kā atbloķēja to ar PUK kodu un bija pārsteigts, ka sistēma neprasīja. galvenajai parolei, kas izmantota datu atšifrēšanai, pēc kuras tā sastinga ar ziņojumu “Pixel start...”. Lietotājs izrādījās pedantisks, nolēma izdomāt, kas notiek un sāka eksperimentēt ar PIN un PUK kodu ievadīšanu dažādos veidos, līdz nejauši pēc SIM kartes nomaiņas aizmirsa pārstartēt ierīci un ieguva pieeju videi, nevis sasalšana.
Īpaša interese ir Google reakcija uz paziņojumu par ievainojamību. Informācija par problēmu tika nosūtīta jūnijā, taču līdz septembrim pētnieks joprojām nevarēja iegūt skaidru atbildi. Viņš uzskatīja, ka šāda uzvedība ir izskaidrojama ar to, ka viņš nebija pirmais, kurš ziņoja par šo kļūdu. Aizdomas, ka kaut kas noiet greizi, radās septembrī, kad problēma palika neizlabota pēc 90 dienas vēlāk izlaista programmaparatūras atjauninājuma instalēšanas, kad jau bija beidzies norādītais neizpaušanas periods.
Tā kā visi mēģinājumi noskaidrot nosūtītā ziņojuma statusu par problēmu noveda tikai pie automatizētām un šabloniskām atbildēm, pētnieks mēģināja personīgi sazināties ar Google darbiniekiem, lai noskaidrotu situāciju ar labojuma sagatavošanu un pat demonstrēja ievainojamību Google Londonas birojā. . Tikai pēc tam darbs, lai novērstu ievainojamību, virzījās uz priekšu. Analīzes laikā izrādījās, ka kāds par problēmu jau bija ziņojis agrāk, taču Google nolēma izdarīt izņēmumu un maksāt atlīdzību par ziņošanu par problēmu vēlreiz, jo, tikai pateicoties tās autora neatlaidībai, problēma tika pamanīta.
Avots: opennet.ru
