SafetyNeti riistvaratõend muudab juurte peitmise Magiskis tõeliselt raskeks

Juurjuurdepääsu peitmine Magiskis muutub tänu hiljutisele SafetyNeti muudatusele, mis toob kaasa riistvara atesteerimise, palju raskemaks.

Märtsis olid mõned Magiski installitud kasutajad märganud et nende seadmed ei vasta SafetyNeti atesteerimisele. See uudis oli XDA kogukonna jaoks murettekitav, sest see tähendab, et paljud olulised pangandus-/finantsrakendused ja populaarsed mängud, nagu Pokémon Go ja Fate/Grand Order, keeldusid juurdunud seadmetes töötamast. Mõnda aega tundus, et SafetyNeti karmistatud piirangud tõmmati tagasi, et viimastel nädalatel käputäie kasutajate jaoks uuesti kasutusele võtta. Google kinnitas aga mai alguses vaikselt, et nad testivad riistvaraga toetatud kinnitust SafetyNeti vastused, mistõttu ei suutnud Magisk alglaaduri avamisolekut uuesti varjata märtsil. Kui see muudatus laialdaselt kasutusele võetakse, tähendab see, et kasutajad peavad valima juur-/kohandatud ROM-idele/tuumadele/jms juurdepääsu vahel. või nende eelistatud pangarakendused ja mängud. Üks Androidi suurimaid atraktiivsusi energiakasutajatele võib peagi kaduda.

Selle sündmuste seeria kokkuvõtteks peaksime kõigepealt rääkima SafetyNetist endast. SafetyNet on Google Play teenuste API-de komplekt. SafetyNet Atestation API on üks neist API-dest ja seda saavad kutsuda kolmanda osapoole rakendused, et kontrollida, kas seadme tarkvarakeskkonda on mingil viisil rikutud. API kontrollib mitmesuguseid asju, nagu superkasutaja binaarfailide märgid, alglaaduri avamise olek ja palju muud. Kui juurutate seadet Magiskiga, loob see [SafetyNeti] tuvastamisprotsessi jaoks eraldatud "turvalise keskkonna" ja läbib Google'i API, et luua legitiimne SafetyNeti tulemus, mis ei kajasta seadme tegelikku olekut, ütleb XDA tunnustatud vanemarendaja topjohnwu. See võimaldab kasutajal oma telefoni juurutada, tagades samal ajal, et API tagastab alglaaduri avamise kontrollimisel alati väärtuse "false". See SafetyNeti alglaaduri avamise tuvastamisest möödahiilimise meetod on Magiski jaoks viimase paari jooksul töötanud aastat, kuid see on ainult sellepärast, et Google on riistvara abil alglaadimiskujutise terviklikkuse kontrollimisel tagasi hoidnud tunnistus. Märtsis tundus, et Google hakkab lõpuks kasutama SafetyNetis riistvaratõendit, et kontrollida alglaadimispilt, kuid me ei saanud kunagi Google'ilt ametlikku avaldust, mis kinnitaks muudatust ja ainult vähesed kasutajad olid mõjutatud. Nagu märkas XDA vanemliige DisplaxGoogle kinnitas aga 5. mail 2020, et mõne seadme SafetyNet Attestation API vastused sisaldavad nüüd riistvaraga toetatud kontrolle.

Google'i grupis "SafetyNet API klientidele" kirjeldas Google Atestation API uut funktsiooni: assessmentType. Mõne seadme JSON-i veebisignatuuri (JWS) vastuses on väli nimega „evaluationType“, mis „annab arendajatele ülevaate signaalide/mõõtmiste tüüpidesse, mis on kaasa aidanud iga üksiku SafetyNet Atestation API vastusele." Üks toetatud žetoonidest sellel väljal on "HARDWARE_BACKED", mis näitab, et API "[kasutas] kaugseadme saadaolevaid riistvaraga toetatud turvafunktsioone (nt. riistvaraga tagatud võtme kinnitus), et mõjutada [selle] hindamist." Google ütleb, et nad "hindavad ja kohandavad praegu riistvaratoega seadmete sobivuskriteeriume turvafunktsioonid." See tähendab, et mõnes seadmes kasutab Google Play teenused nüüd riistvaraga tagatud kinnitust, et tuvastada, et seadme tarkvara ei ole võltsitud. Google ei ole seda muudatust väljaspool Google'i grupis avaldatud teadet ametlikult dokumenteerinud, seega võivad mõned SafetyNeti kasutavad arendajad ei ole sellest muudatusest teadlik (ja seega ei kontrolli veel JWS-i vastuste välja "HARDWARE_BACKED".) Kuid nende rakenduste puhul, mis kontrollivad seda välja, ei saa nüüd nende eest juurjuurdepääsu peita, eeldusel et teie seade on osa Google'i testist jooksmine.

Topjohnwu sõnul tähendab riistvaraga toetatud kinnitus, et Google Play teenused „[saadab] SafetyNeti serveritele muutmata võtmesalve sertifikaadi, [kinnitab] selle legitiimsust ja [kontrollib] sertifikaadi laienduse andmeid, et teada saada, kas teie seade [on] kinnitanud, et alglaadimine on lubatud (bootloaderi olek). Kuna privaatvõtmed, millest võtmesalve sertifikaadid on tuletatud mida toetab telefoni isoleeritud turvaline keskkond, nende hankimine hõlmaks telefoni usaldusväärse täitmiskeskkonna (TEE) turvalisuse või spetsiaalse riistvaraturbe kaotamist. moodul (HSM). Kui keegi saaks kuidagi privaatvõtme lekitada, siis võtmed tühistataks kiiresti kui Google sellest teada sai. Google pakub Pixeli telefonide TEE-d mõjutavate kriitiliste turvaaukude eest sadade tuhandete dollarite väärtuses preemiaid. mis lihtsalt näitab, et on uskumatult ebatõenäoline, et see oleks potentsiaalne viis alglaaduri avamise tuvastamisest mööda hiilimiseks igatahes.

Teine potentsiaalne viis, kuidas Magisk saaks jätkata alglaaduri avamise oleku petmist, on SafetyNeti kliendipoolse koodi muutmine nii, et see kasutaks alati BASIC-hinnangut. Nagu topjohnwu märgibSee eeldaks aga kohandatud koodi sisestamist Google Play teenustesse haakeraamistiku, nagu Xposed Framework, kaudu. Seda pole mitte ainult raske teha, kuna Google Play teenused on väga hägustatud, vaid seda on ka võimatu varjata, kuna "mõne mäluruumi analüüs paljastab koodiga manipuleerimise väga Lisaks toimiks see ainult siis, kui Google'i serverid jätkavad BASIC-hinnangute aktsepteerimist ja kui HARDWARE_BACKED hinnanguid ei jõustata seadmetes, mis toetavad neid. (SafetyNeti vastused "[tulevad] Google'i serveritest ja on allkirjastatud Google'i privaatvõtmega", ütles topjohnwu, nii et tegelikke vastuseid ei saa võltsida.)

Alates Android 7 Nougatist on Google nõudnud, et kõigil seadmetel oleks isoleeritud turvaline keskkond, See muudatus selles, kuidas SafetyNet alglaaduri avamise kontrollib, mõjutab enamikku väljalülitatud seadmeid seal. Kuna vanemad seadmed, millel puudub isoleeritud turvaline keskkond, ei saa ilmselgelt riistvaraga toetatud atesteerimist teostada, saab Magisk siiski nende seadmete juurjuurdepääsu peita. Kuid kui see muudatus levib laialdaselt, peavad kõik teised tegema raske valiku juurjuurdepääsu ja pangarakenduste vahel.

Kahjuks on seal tõenäoliselt palju rakendusi, mis kasutavad SafetyNeti kontrolle, kui nad seda tegelikult ei vaja. Üks topjohnwu toodud näide on ametlik McDonaldsi rakendus, mis näiliselt keeldub käivitamast alglaaduriga lukustamata seadmes. Twitteris nimetab topjohnwu rakendusi, mis liigkasutavad API-d, et luua vaenulik keskkond võimsatele kasutajatele. XDA tunnustatud arendaja Quinny899 ühineb anekdoodiga selle kohta, kuidas tema meeskond kaalus SafetyNeti kasutamist seadme turvaoleku kontrollimiseks. Lõpuks otsustasid nad seda mitte teha, kuna tema meeskonna rakendus krüpteerib kõik tundlikud andmed, millega see töötab. Ta väidab, et SafetyNeti ei tohiks kasutada õigete turva- ja andmetöötlustavade asemel, eriti kui arvestada superkasutajate ärakasutamise võimalus.

Lisateabe saamiseks selle kohta, kuidas uus SafetyNeti muudatus Magiskit mõjutab, vaadake topjohnwu's suurepärane KKK Twitteris. Kui soovite lihtsalt kontrollida, kas teie seade on osa Google'i uuest SafetyNeti testist, saate seda jälgida see juhend XDA vanemliikme Displaxi poolt või laadige alla uusim Magisk Manageri väljalase.


Seda artiklit värskendati 30. juunil 2020 kell 10.46 EST, et parandada, et Google maksab preemiaid ainult Pixeli telefonides leitud TEE haavatavuste eest. Lisaks lisati üksikasjad viimase Magisk Manageri väljaande kohta, mis näitab nüüd sisseehitatud SafetyNeti kontrollija välja assessmentType.