„SafetyNet“ techninės įrangos patvirtinimas labai apsunkins „Magisk“ šaknų slėpimą

Neseniai pakeitus „SafetyNet“, suteikiantį aparatinės įrangos patvirtinimą, paslėpti šakninę prieigą „Magisk“ bus daug sunkiau.

Dar kovo mėnesį keli vartotojai su įdiegta Magisk pastebėjo kad jų įrenginiai neatitinka „SafetyNet“ sertifikato. Šios naujienos sukėlė nerimą XDA bendruomenei, nes tai reiškia, kad daugelis svarbių bankininkystės / finansų programų ir populiarių žaidimų, pvz., Pokémon Go ir Fate / Grand Order, atsisakė paleisti įsišaknijusiuose įrenginiuose. Kurį laiką atrodė, kad sugriežtinti „SafetyNet“ apribojimai buvo panaikinti, o per pastarąsias kelias savaites vėl buvo pradėti taikyti saujelei vartotojų. Tačiau „Google“ gegužės pradžioje tyliai patvirtino, kad išbando aparatinės įrangos patvirtinimą „SafetyNet“ atsakymai, dėl kurių „Magisk“ negalėjo vėl paslėpti įkrovos įkrovos atrakinimo būsenos Kovas. Jei šis pakeitimas bus plačiai paplitęs, tai reikš, kad vartotojai turės pasirinkti prieigą prie šakninių / tinkintų ROM / branduolių / kt. arba jų pageidaujamas banko programas ir žaidimus. Vieno didžiausių „Android“ patrauklumo patyrusiems vartotojams netrukus gali nebelikti.

Norėdami apibendrinti šią įvykių seriją, pirmiausia turėtume pakalbėti apie patį „SafetyNet“. „SafetyNet“ yra „Google Play“ paslaugų API rinkinys. „SafetyNet Attestation“ API yra viena iš tų API, kurią gali iškviesti trečiųjų šalių programos, kad patikrintų, ar įrenginio programinė aplinka nebuvo kaip nors pažeista. API tikrina įvairius dalykus, pvz., supervartotojo dvejetainių failų požymius, įkrovos įkrovos atrakinimo būseną ir kt. Kai įgalinate įrenginį naudodami Magisk, jis „[sukuria] izoliuotą „saugią aplinką“ [SafetyNet] aptikimo procesui ir per Google API sukuria atitinkantys tikrove „SafetyNet“ rezultatas, kuris neatspindi tikrosios įrenginio būsenos“, – teigia XDA vyresnysis pripažintas kūrėjas topjohnwu. Tai leidžia vartotojui įsišaknyti savo telefone, tuo pačiu užtikrinant, kad API visada pateiks „klaidingą“ atliekant bet kokius įkrovos įkrovos atrakinimo patikrinimus. Šis „SafetyNet“ įkrovos įkrovos atrakinimo aptikimo metodas „Magisk“ pasiteisino keletą pastarųjų. metų, bet taip yra tik todėl, kad „Google“ sulaikė įkrovos vaizdo vientisumo patikrinimą naudodama aparatinę įrangą atestacija. Kovo mėn. atrodė, kad „Google“ pagaliau pradėjo naudoti „SafetyNet“ aparatinės įrangos patvirtinimą, kad patikrintų įkrovos vaizdas, bet mes niekada negavome oficialaus pareiškimo iš „Google“, patvirtinančio pakeitimą, ir tik keli vartotojai tai patvirtino paveiktas. Kaip pastebėjo XDA vyresnysis narys Displaksas, tačiau 2020 m. gegužės 5 d. „Google“ patvirtino, kad kai kurių įrenginių „SafetyNet Attestation“ API atsakymai dabar apima aparatinės įrangos patikrinimus.

„Google“ grupėje „SafetyNet API klientams“ „Google“ apibūdino naują patvirtinimo API funkciją: assessmentType. JSON žiniatinklio parašo (JWS) atsake iš kai kurių įrenginių bus laukas pavadinimu „evaluationType“, kuris „pateiks kūrėjams įžvalgų į signalų / matavimų tipus, kurie prisidėjo prie kiekvieno individualaus SafetyNet Attestation API atsako." Vienas iš palaikomų prieigos raktų Šiame lauke yra "HARDWARE_BACKED", o tai rodo, kad API "[naudojo] turimas nuotolinio įrenginio aparatine įranga paremtas saugos funkcijas (pvz. aparatinės įrangos rakto patvirtinimas), kad paveiktų [jos] vertinimą. Tai reiškia, kad kai kuriuose įrenginiuose „Google Play“ paslaugos dabar naudoja aparatinės įrangos patvirtinimą, kad nustatytų, jog įrenginio programinė įranga nebuvo sugadintas. „Google“ oficialiai nepatvirtino šio pakeitimo, išskyrus „Google“ grupėje paskelbtą pranešimą, todėl kai kurie kūrėjai, naudojantys „SafetyNet“, gali nežinote apie šį pakeitimą (todėl dar netikrinate JWS atsakymų lauko „HARDWARE_BACKED“.) Tačiau toms programoms, kurios tikrina šį lauką, dabar nėra galimybės nuo jų paslėpti root prieigos, jei jūsų įrenginys yra testo, kurį atlieka „Google“, dalis. bėgimas.

Anot topjohnwu, aparatinės įrangos patvirtinimas reiškia, kad „Google Play“ paslaugos dabar „[siunčia] nepakeistą raktų saugyklos sertifikatą SafetyNet serveriams, [patvirtina] jo teisėtumą ir [tikrina] sertifikato plėtinio duomenis, kad sužinotų, ar jūsų įrenginyje [yra] patvirtinta, kad įkrova įjungta (įkrovos įkroviklio būsena). Kadangi privatūs raktai, iš kurių gaunami raktų saugyklos sertifikatai yra palaikoma izoliuota telefono saugia aplinka, jas nuskaitant tektų nugalėti telefono patikimos vykdymo aplinkos (TEE) arba specialios aparatinės įrangos saugumą. modulis (HSM). Jei kažkaip pavyktų nutekėti privatų raktą, raktai būtų greitai atšaukti kai tik Google sužinojo. „Google“ siūlo šimtus tūkstančių dolerių atlygio už bet kokį kritinį saugos pažeidžiamumą, turintį įtakos „Pixel“ telefonų TEE, tai tik parodo, kad neįtikėtinai mažai tikėtina, kad tai bus galimas būdas apeiti įkrovos įkroviklio atrakinimo aptikimą šiaip ar taip.

Kitas galimas būdas, kaip „Magisk“ gali ir toliau klastoti įkrovos įkrovos atrakinimo būseną, yra „SafetyNet“ kliento kodo modifikavimas, kad visada būtų naudojamas BASIC įvertinimas. Kaip topjohnwu pažymi, tačiau tam reikės įvesti pasirinktinį kodą į „Google Play“ paslaugas naudojant „hoking“ sistemą, pvz., „Xposed Framework“. Tai ne tik sunku padaryti, nes „Google Play“ paslaugos yra labai užtemdytos, bet ir to neįmanoma nuslėpti, nes „tam tikra atminties erdvės analizė atskleis labai daug manipuliacijų kodu Be to, tai taip pat veiks tik tuo atveju, jei „Google“ serveriai ir toliau priims BASIC vertinimus ir jei HARDWARE_BACKED vertinimai nebus vykdomi įrenginiuose, kurie palaiko juos. (Pasak topjohnwu, „SafetyNet“ atsakymai „[ateina] iš „Google“ serverių ir yra pasirašyti naudojant „Google“ privatų raktą, todėl faktinių atsakymų negalima suklastoti.)

Nuo „Android 7 Nougat“ „Google“ reikalauja, kad visi įrenginiai turėtų izoliuotą saugią aplinką, reiškia, kad šis pakeitimas, kaip „SafetyNet“ tikrina įkrovos įkrovos atrakinimą, turės įtakos daugumai neveikiančių įrenginių ten. Kadangi senesni įrenginiai be izoliuotos saugios aplinkos akivaizdžiai negali atlikti aparatinės įrangos patvirtinimo, Magisk vis tiek galės paslėpti pagrindinę prieigą tuose įrenginiuose. Tačiau jei šis pakeitimas bus plačiai paplitęs, visi kiti turės sunkiai pasirinkti tarp root prieigos ir banko programų.

Deja, tikriausiai yra daug programų, kurios naudoja „SafetyNet“ patikras, kai iš tikrųjų to nereikia. Vienas iš pavyzdžių, kurį nurodė topjohnwu, yra oficiali McDonald's programa, kuri, atrodo, atsisako paleisti įkrovos tvarkyklės atrakintame įrenginyje. „Twitter“ tinkle topjohnwu vadina programas, kurios pernelyg naudoja API, kaip sukuriančias priešišką aplinką patyrusiems vartotojams. XDA pripažintas kūrėjas Quinny899 prisijungia prie anekdoto apie tai, kaip jo komanda svarstė galimybę naudoti „SafetyNet“ įrenginio saugos būsenai patikrinti. Galiausiai jie nusprendė to nesilaikyti, nes jo komandos programa užšifruoja visus neskelbtinus duomenis, su kuriais ji dirba. Jis teigia, kad „SafetyNet“ neturėtų būti naudojamas vietoj tinkamos saugos ir duomenų tvarkymo praktikos, ypač svarstant supervartotojo išnaudojimų galimybė.

Norėdami gauti daugiau informacijos apie tai, kaip naujasis SafetyNet pakeitimas veikia Magisk, žr. topjohnwu's puikūs DUK „Twitter“.. Jei tiesiog norite patikrinti, ar jūsų įrenginys yra naujojo „Google SafetyNet“ testo dalis, galite sekti šį vadovą XDA Senior Member Displax arba atsisiųskite naujausią Magisk Manager leidimą.


Šis straipsnis buvo atnaujintas 2020 m. birželio 30 d. 10.46 val. EST, siekiant ištaisyti, kad „Google“ moka atlygį tik už „Pixel“ telefonuose aptiktas TEE spragas. Be to, buvo pridėta išsami informacija apie naujausią „Magisk Manager“ laidą, kuri dabar rodo lauką „evaluationType“ įtaisytoje „SafetyNet“ tikrintuve.