Magiskin kehittäjä on havainnut, että Google on saattanut alkaa käyttää laitteistotarkastuksia määrittääkseen, onko laitteen käynnistyslatain vapautettu.
XDA: n tunnustettu kehittäjä topjohnwun "Magisk"-projektista on käytännössä tullut synonyymi "juurelle" Android-yhteisössä. Yksi tärkeimmistä syistä, miksi se on niin suosittu, on, että se voi piilottaa sen tosiasian, että käyttäjä on muokannut laitettaan. Google saattaa kuitenkin torjua Magiskin kykyä piilottaa käynnistyslataimen lukituksen avaustila sovelluksilta.
Puhelimen rootaamiseksi sinun on yleensä avattava käynnistyslataimen lukitus, jonka avulla voit flash-muistilla muuttaa muokattuja käynnistyskuvia. Tämä on tarpeen, koska Magisk muuttaa käynnistyskuvaa huijaamaan käynnistyslataimen tilaa ja/tai Verified Boot -tilan tarkistuksia. Googlen SafetyNet Attestation API -sovellusliittymää, joka on osa Google Play -palveluita, käytetään kertomaan sovellukselle, jos se toimii peukaloidussa laitteessa. jos SafetyNet API havaitsee, että käynnistyslataimen lukitus on avattu, se palauttaa virhetilan "Basic Integrity" -tarkistukseen. Laitteet, jotka eivät läpäise tätä tarkistusta, voidaan sitten lukita sovelluksista, jotka käyttävät SafetyNet APIa laitteen eheyden määrittämiseen. tällaisia sovelluksia ovat yleensä pankkisovellukset, maksusovellukset (kuten Google Pay) ja monet verkkopelit (kuten Pokémon Go). Koska SafetyNet API on toistaiseksi käyttänyt vain ohjelmistotarkistuksia määrittääkseen, onko laitetta peukaloitu, Magisk voi yksinkertaisesti huijata käynnistyslataimen ja/tai Verified Boot -tilan, koska se on asennettu alemmalle tasolle ja korkeammilla oikeuksilla kuin Google Play Palvelut ja muut käyttäjätilat sovellukset. Kuten topjohnwu selittää, MagiskHide "[luo] erillisen "turvallisen ympäristön" tunnistusprosessille, ja se kulkee Googlen API: n kautta luodakseen
kunnollinen SafetyNet-tulos, joka ei kuvasta laitteen todellista tilaa."Viime aikoina käyttäjät ovat kuitenkin huomanneet, että heidän käynnistyslataimella lukitsemattomat laitteet eivät läpäise SafetyNetin Basic Integrity -tarkistusta, vaikka he käyttivät Magiskia käynnistyskuvan korjaamiseen. Topjohnwun mukaan tämä johtuu siitä, että Google on saattanut ottaa käyttöön laitteistotason avainvarmistuksen varmistaakseen, että käynnistyskuvaa ei ole peukaloitu. Tarkemmin sanottuna tämä tarkoittaa, että Google Play Palvelut "[lähettää] muokkaamattoman avainsäilytysvarmenteen SafetyNet-palvelimille, varmistaa sen laillisuuden ja tarkistaa varmenteen laajennustiedot, jotta tiedät, onko laitteesi [on] vahvistanut käynnistyksen (käynnistyslataimen tila)." Tämä tarkoittaa, että se ei ehkä enää ole mahdollista piilottaa se tosiasia, että käynnistyslatain on avattu, mikä johtaa siihen, että sovellukset, kuten Google Pay ja Pokémon Go, eivät toimi yleensä.
Kuten topjohnwu huomautti, tämä muutos tapaan, jolla SafetyNet tarkistaa käynnistyslataimen lukituksen avauksen tilan, tulee Google Play -palveluihin sisältyvän SafetyNet API: n palvelinpuolen päivityksen kautta. Kaikki käyttäjät eivät kuitenkaan läpäise näitä päivitettyjä SafetyNet-tarkistuksia, joten uutta laitteistotason avaintodistusta ei ehkä vielä oteta laajalti käyttöön.
Olemme nähneet topjohnwun voittavan tekniset esteet kerta toisensa jälkeen. Google julkaisee SafetyNetissä usein uusia tarkistuksia, jotka topjohnwu sitten löytää ja ohittaa Magiskissa. Jokainen uusi Android-versio tuo muutoksia osiorakenteeseen tai käynnistyskuvaan, jolloin topjohnwu tutkii muutokset ja ottaa sitten käyttöön uuden korjausmenetelmän. Kuitenkin jopa topjohnwulla voi olla vaikeuksia löytää ohikulkutietä tällä kertaa.
Tämä johtuu siitä, että tällä kertaa kiertotapaan kuuluisi laitteiden Trusted Execution Environment (TEE) -laiteohjelmiston hakkerointi yksityisen avaimen hakemiseksi. Tämä on kuitenkin uskomattoman vaikea tehdä, koska se vaatii haavoittuvuuden löytämistä laiteohjelmistosta, joka on suunniteltu uskomattoman turvalliseksi. Itse asiassa monet yritykset tarjoavat maksuja satojen tuhansien dollareiden arvosta, jos tällainen haavoittuvuus havaitaan. Google esimerkiksi maksaa 250 000 dollaria koodin etäsuorittamisen haavoittuvuuksista Pixelin Trusted Execution Environment -ympäristössä. 1 000 000 dollariin asti haavoittuvuuksia varten Titan M turvasiru. Vaikka yksityinen avain jotenkin vuotaisi, on epätodennäköistä, että siitä olisi paljon hyötyä, koska Google voi peruuttaa avaimen etänä joten sitä ei voida käyttää laitteiden eheyden tarkistamiseen.
Kun laitteistotason avaintodistus on laajalti pakotettu SafetyNetille, useimmat laitteet, joissa on lukitsemattomat käynnistyslataimet, joissa on Android 8.0 Oreo tai uudempi versio, eivät läpäise SafetyNetin Basic Integrity -tarkistusta. Tämä johtuu siitä, että kaikissa laitteissa, jotka käynnistettiin Android 8.0 Oreolla tai uudemmalla, vaaditaan TEE: ssä toteutettu laitteisto-avainsäilö. Tietyissä laitteissa on nykyään jopa erilliset laitteistoturvamoduulit (HSM), jotka vaikeuttavat hyödyntämistä siirtämällä TEE: n pois pääprosessorista; Titan M Pixel 4:ssä ja Samsungin uusi turvasiru Galaxy S20:ssa ovat esimerkkejä tästä.
Topjohnwu myös selittää että muut mahdolliset kiertotavat ovat joko mahdottomia tai erittäin haastavia. Xposed Frameworkin käyttäminen SafetyNet Attestation API: n muokkaamiseen Google Play Palveluissa ei todennäköisesti toimi, koska "oikeat SafetyNet-tarkastukset vahvistavat tulokset etäpalvelimella, eivät [ laite, jota voidaan käsitellä koodin lisäyskehyksillä." Lisäksi Google Play Palvelut ovat erittäin hämäriä, mikä tekee tällaisen Xposed-moduulin luomisesta uskomattoman haastavaa. paikka. SafetyNet-testituloksen huijaus ei myöskään ole mahdollista, koska SafetyNet-vastaukset "tulevat Googlen palvelimilta ja ne on allekirjoitettu Googlen yksityisellä avaimella".
Googlella on ollut mahdollisuus koventaa SafetyNet-tarkistuksia laitteiston tukeman avaintodistuksen avulla jo useiden vuosien ajan. Se, että he kieltäytyivät tekemästä niin 3 vuoden ajan, on antanut käyttäjille mahdollisuuden nauttia juuri- ja Magisk-moduuleista tinkimättä mahdollisuudesta käyttää pankkisovelluksia. Näyttää kuitenkin siltä, että Magiskin kyky piilottaa tehokkaasti käynnistyslataimen lukituksen avaustila on pian loppumassa. Se on muutos, jota olemme odottaneet vuosia, mutta olemme surullisia nähdessämme sen vihdoin voimaan. Toivomme, että Google päivittää SafetyNet Attestation APIn palauttaakseen, käytettiinkö tilantarkistus laitteistopohjaista todistus, koska tämä antaisi sovelluskehittäjille mahdollisuuden päättää, haluavatko he estää kaikki käyttäjät, jotka ovat avanneet sovelluksen käynnistyksenlataaja.
Kiitos Daniel Micaylle (@DanielMicay) hänen panoksestaan tässä asiassa!