Zraniteľnosť v systéme Android, ktorá vám umožňuje obísť uzamknutú obrazovku

V platforme Android (CVE-2022-20465) bola identifikovaná chyba zabezpečenia, ktorá umožňuje deaktivovať zámok obrazovky výmenou SIM karty a zadaním kódu PUK. Možnosť deaktivácie zámku bola preukázaná na zariadeniach Google Pixel, no keďže oprava ovplyvňuje hlavnú kódovú základňu Androidu, je pravdepodobné, že problém sa týka aj firmvéru od iných výrobcov. Problém bol vyriešený v novembrovom vydaní záplaty zabezpečenia systému Android. Výskumník, ktorý na problém upozornil, dostal od Googlu odmenu 70 XNUMX dolárov.

Problém je spôsobený nesprávnym spracovaním odomknutia po zadaní kódu PUK (Personal Unblocking Key), ktorý sa používa na opätovnú aktiváciu karty SIM, ktorá bola zablokovaná po viacnásobnom nesprávnom zadaní kódu PIN. Ak chcete vypnúť zámok obrazovky, všetko, čo musíte urobiť, je vložiť SIM kartu do telefónu, ktorý má ochranu na základe kódu PIN. Po zmene SIM karty chránenej kódom PIN sa na obrazovke najskôr zobrazí požiadavka na kód PIN. Ak je PIN kód zadaný trikrát nesprávne, SIM karta sa zablokuje a potom budete mať možnosť zadať PUK kód na jej odomknutie. Ukázalo sa, že správne zadanie kódu PUK nielenže odomkne SIM kartu, ale vedie k prechodu na hlavné rozhranie, ktoré obchádza šetrič obrazovky, bez potvrdenia prístupu pomocou hlavného hesla alebo vzoru.

Zraniteľnosť je spôsobená chybou v logike kontroly kódov PUK v obslužnom programe KeyguardSimPukViewController, ktorý je zodpovedný za zobrazenie ďalšej obrazovky overenia. Android používa niekoľko typov overovacích obrazoviek (pre PIN, PUK, heslo, vzor, ​​biometrické overenie) a tieto obrazovky sa vyvolávajú postupne, keď sa vyžaduje viacero overení, napríklad keď sa vyžaduje PIN aj vzor.

Ak je PIN kód zadaný správne, spustí sa druhá fáza overenia vyžadujúca zadanie hlavného odblokovacieho kódu, ale pri zadávaní PUK kódu sa táto fáza preskočí a prístup sa udelí bez vyžiadania hlavného hesla alebo vzoru. Ďalšia fáza odblokovania sa zahodí, pretože pri volaní KeyguardSecurityContainerController#dismiss() sa neporovnáva očakávaná a úspešne vykonaná metóda kontroly, t.j. psovod sa domnieva, že k zmene spôsobu overenia nedošlo a vykonanie overenia PUK kódom znamená úspešné potvrdenie oprávnenia.

Na zraniteľnosť sa prišlo náhodou – používateľovi sa vybila batéria v telefóne a po nabití a zapnutí sa niekoľkokrát pomýlil pri zadávaní PIN kódu, po čom odomkol PUK kód a bol prekvapený, že sa mu systém nepomýlil. vyžiadať hlavné heslo používané na dešifrovanie údajov, po ktorom visel so správou „Pixel sa spúšťa ...“. Ukázalo sa, že používateľ je pedantný, rozhodol sa prísť na to, čo sa deje a začal rôznymi spôsobmi experimentovať so zadávaním PIN a PUK kódov, až kým náhodou nezabudol po výmene SIM karty reštartovať zariadenie a namiesto toho získal prístup do prostredia. zmrazenie.

Mimoriadne zaujímavá je odpoveď spoločnosti Google na správu o zraniteľnosti. Informácie o probléme boli zaslané v júni, no až do septembra sa výskumníkovi nepodarilo dostať jasnú odpoveď. Domnieval sa, že toto správanie bolo spôsobené tým, že nebol prvý, kto túto chybu nahlásil. Podozrenia, že niečo nie je v poriadku, vznikli v septembri, keď problém zostal neopravený po vydaní aktualizácie firmvéru o 90 dní neskôr, po uplynutí uvedenej lehoty na nezverejnenie.

Keďže všetky pokusy o zistenie stavu zaslaného hlásenia o probléme viedli len k automatizovaným a šablónovým odhláseniam, výskumník sa pokúsil osobne kontaktovať zamestnancov Google, aby objasnili situáciu s prípravou opravy, a dokonca preukázal zraniteľnosť v londýnskej pobočke Google. Až potom sa práce na odstránení zraniteľnosti pohli dopredu. Počas analýzy sa ukázalo, že problém už niekto nahlásil, no Google sa rozhodol urobiť výnimku a zaplatiť odmenu za opätovné nahlásenie problému, keďže problém bol zaznamenaný len vďaka vytrvalosti jeho autora .

Zdroj: opennet.ru

Pridať komentár